From 796a7ef0befd21e25c2b9e42f53a6d7a4421941d Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Tue, 14 Feb 2023 03:09:06 +0000
Subject: [PATCH] add nk_io at24_eeprom driver

---
 kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi |   10 
 kernel/drivers/misc/nkmcu/nk_mcu.c                  |  161 +
 kernel/drivers/misc/Makefile                        |    2 
 kernel/arch/arm64/boot/dts/rockchip/NK-R36S0.dts    |    8 
 kernel/arch/arm64/boot/dts/rockchip/NK-R36S0.dtsi   |  562 +++++
 kernel/drivers/misc/nkio/nk_io_core.c_suspend       | 1882 ++++++++++++++++++
 kernel/drivers/misc/nkio/nkio.h                     |   36 
 kernel/drivers/misc/nkio/Kconfig                    |   15 
 kernel/drivers/misc/nkio/Makefile                   |    1 
 mk-rootfs.sh                                        |   50 
 kernel/drivers/misc/nkio/mcu/jw_mcu.c               |  866 ++++++++
 kernel/drivers/misc/nkio/mcu/jw_mcu_isp.c           |  238 ++
 kernel/arch/arm64/configs/rockchip_linux_defconfig  |    6 
 kernel/drivers/misc/nkio/mcu/Kconfig                |   12 
 kernel/drivers/misc/nkio/mcu/jw_mcu.h               |   85 
 kernel/drivers/misc/nkio/mcu/jw_mcu_isp.h           |   12 
 kernel/drivers/misc/nkmcu/Makefile                  |    1 
 kernel/drivers/misc/nkio/mcu/Makefile               |    5 
 kernel/drivers/misc/nkio/nk_io_core.c               |  622 ++++++
 kernel/drivers/misc/nkio/mcu/jw_mcu_isp.dat         | 1606 +++++++++++++++
 20 files changed, 6,175 insertions(+), 5 deletions(-)

diff --git a/kernel/arch/arm64/boot/dts/rockchip/NK-R36S0.dts b/kernel/arch/arm64/boot/dts/rockchip/NK-R36S0.dts
new file mode 100644
index 0000000..34b6829
--- /dev/null
+++ b/kernel/arch/arm64/boot/dts/rockchip/NK-R36S0.dts
@@ -0,0 +1,8 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2020 Rockchip Electronics Co., Ltd.
+ *
+ */
+
+#include "NK-R36S0.dtsi"
+#include "rk3568-android.dtsi"
diff --git a/kernel/arch/arm64/boot/dts/rockchip/NK-R36S0.dtsi b/kernel/arch/arm64/boot/dts/rockchip/NK-R36S0.dtsi
new file mode 100755
index 0000000..0d47eea
--- /dev/null
+++ b/kernel/arch/arm64/boot/dts/rockchip/NK-R36S0.dtsi
@@ -0,0 +1,562 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2020 Rockchip Electronics Co., Ltd.
+ *
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include "rk3568.dtsi"
+#include "rk3568-evb.dtsi"
+
+/ {
+	model = "Rockchip RK3568 EVB1 DDR4 V10 Board";
+	compatible = "rockchip,rk3568-evb1-ddr4-v10", "rockchip,rk3568";
+
+	rk_headset: rk-headset {
+		compatible = "rockchip_headset";
+		headset_gpio = <&gpio3 RK_PC2 GPIO_ACTIVE_LOW>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&hp_det>;
+	};
+
+	vcc2v5_sys: vcc2v5-ddr {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc2v5-sys";
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <2500000>;
+		regulator-max-microvolt = <2500000>;
+		vin-supply = <&vcc3v3_sys>;
+	};
+
+	vcc3v3_vga: vcc3v3-vga {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc3v3_vga";
+		regulator-always-on;
+		regulator-boot-on;
+		gpio = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		vin-supply = <&vcc3v3_sys>;
+	};
+
+	pcie30_avdd0v9: pcie30-avdd0v9 {
+		compatible = "regulator-fixed";
+		regulator-name = "pcie30_avdd0v9";
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <900000>;
+		regulator-max-microvolt = <900000>;
+		vin-supply = <&vcc3v3_sys>;
+	};
+
+	pcie30_avdd1v8: pcie30-avdd1v8 {
+		compatible = "regulator-fixed";
+		regulator-name = "pcie30_avdd1v8";
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		vin-supply = <&vcc3v3_sys>;
+	};
+
+	vcc3v3_pcie: gpio-regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc3v3_pcie";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		enable-active-high;
+		gpio = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
+		startup-delay-us = <5000>;
+		vin-supply = <&dc_12v>;
+	};
+
+	vcc3v3_bu: vcc3v3-bu {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc3v3_bu";
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		vin-supply = <&vcc5v0_sys>;
+	};
+
+	vcc_camera: vcc-camera-regulator {
+		compatible = "regulator-fixed";
+		gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&camera_pwr>;
+		regulator-name = "vcc_camera";
+		enable-active-high;
+		regulator-always-on;
+		regulator-boot-on;
+	
+    	};
+
+	    nk_io_init {
+                compatible = "nk_io_control";
+                hub_host2_5v_gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; //USB_HOST_PWREN_H_GPIO0_A6
+		usb_en_oc_gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;  //USB_EN_OC_GPIO0_A5
+		lcd_bk_en_gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>; //LCD0_BKLT_EN_3V3
+		lcd_pwblk_gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;  //LCD0_BKLT_EN_3V3
+		vcc3_io_en_gpio = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>; //VCC3_IO_EN_GPIO0_C4_3V3
+                hub_host2_5V_rest_gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; //HUB_RST_GPIO4_D2_3V3
+                hub_host3_5v_gpio = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>; //HOST3_EN_GPIO4_B2_1V8
+//              hub_host3_5V_rest_gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>; 
+                vcc_5v_io = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;   //VCC5_IO_EN_GPIO1_A4_3V3
+                vcc_12v_io = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>; //VCC12_IO_EN_GPIO0_C7_3V3
+                en_4g_gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; //4G_PWREN_H_GPIO0_C6
+                reset_4g_gpio = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>; //4G_RST_GPIO01_B2_3V3
+                air_mode_4g_gpio = <&gpio1 RK_PB0 GPIO_ACTIVE_HIGH>; //4G_AIR_MODE_GPIO01_B0_3V3
+                wake_4g_gpio = <&gpio1 RK_PB1 GPIO_ACTIVE_HIGH>; //4G_WAKEUP_GPIO01_B1_3V3
+                
+		edp_enable_gpio = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>;
+                edp_gpio0 = <&gpio3 RK_PD2 GPIO_ACTIVE_LOW>; //7511_GPIO0-GPIO3_D2
+        	edp_gpio1 = <&gpio3 RK_PD3 GPIO_ACTIVE_LOW>; //7511_GPIO1-GPIO3_D3
+        	edp_gpio2 = <&gpio3 RK_PD4 GPIO_ACTIVE_LOW>; //7511_GPIO2-GPIO3_D4
+        	edp_gpio3 = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>; //7511_GPIO3-GPIO3_D5
+                edp_reset = <&gpio3 RK_PD1 GPIO_ACTIVE_LOW>; //7511_RST_GPIO3_D1
+//              tp_reset = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;
+//              vddio_mipi = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;
+		
+		wifi_power_en_gpio = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>; //WIFI_PWREN_GPIO3_C6_1V8
+
+  //      pinctrl-names = "default";
+//        pinctrl-0 = <&nk_io_gpio>;
+        nodka_lvds = <9>;
+        };
+
+	
+};
+
+&combphy0_us {
+	status = "okay";
+};
+
+&combphy1_usq {
+	status = "okay";
+};
+
+&combphy2_psq {
+	status = "okay";
+};
+
+&csi2_dphy_hw {
+	status = "okay";
+};
+
+&csi2_dphy0 {
+	status = "okay";
+
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		port@0 {
+			reg = <0>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			mipi_in_ucam0: endpoint@1 {
+				reg = <1>;
+				remote-endpoint = <&ucam_out0>;
+				data-lanes = <1 2 3 4>;
+			};
+			mipi_in_ucam1: endpoint@2 {
+				reg = <2>;
+				remote-endpoint = <&gc8034_out>;
+				data-lanes = <1 2 3 4>;
+			};
+			mipi_in_ucam2: endpoint@3 {
+				reg = <3>;
+				remote-endpoint = <&ov5695_out>;
+				data-lanes = <1 2>;
+			};
+		};
+		port@1 {
+			reg = <1>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			csidphy_out: endpoint@0 {
+				reg = <0>;
+				remote-endpoint = <&isp0_in>;
+			};
+		};
+	};
+};
+
+/*
+ * video_phy0 needs to be enabled
+ * when dsi0 is enabled
+ */
+&dsi0 {
+	status = "okay";
+};
+
+&dsi0_in_vp0 {
+	status = "disabled";
+};
+
+&dsi0_in_vp1 {
+	status = "okay";
+};
+
+&dsi0_panel {
+	power-supply = <&vcc3v3_lcd0_n>;
+};
+
+/*
+ * video_phy1 needs to be enabled
+ * when dsi1 is enabled
+ */
+&dsi1 {
+	status = "disabled";
+};
+
+&dsi1_in_vp0 {
+	status = "disabled";
+};
+
+&dsi1_in_vp1 {
+	status = "disabled";
+};
+
+&dsi1_panel {
+	power-supply = <&vcc3v3_lcd1_n>;
+};
+
+&edp {
+	hpd-gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
+	status = "okay";
+};
+
+&edp_phy {
+	status = "okay";
+};
+
+&edp_in_vp0 {
+	status = "okay";
+};
+
+&edp_in_vp1 {
+	status = "disabled";
+};
+
+&gmac0 {
+	phy-mode = "rgmii";
+	clock_in_out = "output";
+
+	snps,reset-gpio = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;
+	snps,reset-active-low;
+	/* Reset time is 20ms, 100ms for rtl8211f */
+	snps,reset-delays-us = <0 20000 100000>;
+
+	assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
+	assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>, <&cru CLK_MAC0_2TOP>;
+	assigned-clock-rates = <0>, <125000000>;
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&gmac0_miim
+		     &gmac0_tx_bus2
+		     &gmac0_rx_bus2
+		     &gmac0_rgmii_clk
+		     &gmac0_rgmii_bus>;
+
+	tx_delay = <0x3c>;
+	rx_delay = <0x2f>;
+
+	phy-handle = <&rgmii_phy0>;
+	status = "disabled";
+};
+
+&gmac1 {
+	phy-mode = "rgmii";
+	clock_in_out = "output";
+
+	snps,reset-gpio = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
+	snps,reset-active-low;
+	/* Reset time is 20ms, 100ms for rtl8211f */
+	snps,reset-delays-us = <0 20000 100000>;
+
+	assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
+	assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru CLK_MAC1_2TOP>;
+	assigned-clock-rates = <0>, <125000000>;
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&gmac1m1_miim
+		     &gmac1m1_tx_bus2
+		     &gmac1m1_rx_bus2
+		     &gmac1m1_rgmii_clk
+		     &gmac1m1_rgmii_bus>;
+
+	tx_delay = <0x4f>;
+	rx_delay = <0x26>;
+
+	phy-handle = <&rgmii_phy1>;
+	status = "okay";
+};
+
+/*
+ * power-supply should switche to vcc3v3_lcd1_n
+ * when mipi panel is connected to dsi1.
+ */
+&gt1x {
+	power-supply = <&vcc3v3_lcd0_n>;
+};
+
+&i2c3 {
+	status = "okay";
+       //mac eeprom
+        eeprom@51 {
+                //compatible = "atmel,24c02";
+                compatible = "atmel,24c256";
+                reg = <0x51>;
+        };
+	
+	  //nk-mcu
+        nkmcu@15 {
+                compatible = "nk_mcu";
+                reg = <0x15>;
+        };
+
+
+
+};
+
+&i2c4 {
+	status = "okay";
+	gc8034: gc8034@37 {
+		compatible = "galaxycore,gc8034";
+		status = "okay";
+		reg = <0x37>;
+		clocks = <&cru CLK_CIF_OUT>;
+		clock-names = "xvclk";
+		pinctrl-names = "default";
+		pinctrl-0 = <&cif_clk>;
+		reset-gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_LOW>;
+		pwdn-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_LOW>;
+		rockchip,grf = <&grf>;
+		power-domains = <&power RK3568_PD_VI>;
+		rockchip,camera-module-index = <0>;
+		rockchip,camera-module-facing = "back";
+		rockchip,camera-module-name = "RK-CMK-8M-2-v1";
+		rockchip,camera-module-lens-name = "CK8401";
+		port {
+			gc8034_out: endpoint {
+				remote-endpoint = <&mipi_in_ucam1>;
+				data-lanes = <1 2 3 4>;
+			};
+		};
+	};
+	os04a10: os04a10@36 {
+		compatible = "ovti,os04a10";
+		reg = <0x36>;
+		clocks = <&cru CLK_CIF_OUT>;
+		clock-names = "xvclk";
+		power-domains = <&power RK3568_PD_VI>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&cif_clk>;
+		reset-gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_LOW>;
+		pwdn-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
+		rockchip,camera-module-index = <0>;
+		rockchip,camera-module-facing = "back";
+		rockchip,camera-module-name = "CMK-OT1607-FV1";
+		rockchip,camera-module-lens-name = "M12-40IRC-4MP-F16";
+		port {
+			ucam_out0: endpoint {
+				remote-endpoint = <&mipi_in_ucam0>;
+				data-lanes = <1 2 3 4>;
+			};
+		};
+	};
+	ov5695: ov5695@36 {
+		status = "okay";
+		compatible = "ovti,ov5695";
+		reg = <0x36>;
+		clocks = <&cru CLK_CIF_OUT>;
+		clock-names = "xvclk";
+		power-domains = <&power RK3568_PD_VI>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&cif_clk>;
+		reset-gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_HIGH>;
+		pwdn-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
+		rockchip,camera-module-index = <0>;
+		rockchip,camera-module-facing = "back";
+		rockchip,camera-module-name = "TongJu";
+		rockchip,camera-module-lens-name = "CHT842-MD";
+		port {
+			ov5695_out: endpoint {
+				remote-endpoint = <&mipi_in_ucam2>;
+				data-lanes = <1 2>;
+			};
+		};
+	};
+};
+
+&mdio0 {
+	rgmii_phy0: phy@0 {
+		compatible = "ethernet-phy-ieee802.3-c22";
+		reg = <0x0>;
+	};
+};
+
+&mdio1 {
+	rgmii_phy1: phy@0 {
+		compatible = "ethernet-phy-ieee802.3-c22";
+		reg = <0x0>;
+	};
+};
+
+&video_phy0 {
+	status = "okay";
+};
+
+&video_phy1 {
+	status = "disabled";
+};
+
+&pcie30phy {
+	status = "okay";
+};
+
+&pcie3x2 {
+	reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
+	vpcie3v3-supply = <&vcc3v3_pcie>;
+	status = "okay";
+};
+
+&pinctrl {
+	cam {
+		camera_pwr: camera-pwr {
+			rockchip,pins =
+				/* camera power en */
+				<0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
+	headphone {
+		hp_det: hp-det {
+			rockchip,pins = <3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
+		};
+	};
+
+	wireless-wlan {
+		wifi_host_wake_irq: wifi-host-wake-irq {
+			rockchip,pins = <3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_down>;
+		};
+	};
+
+	wireless-bluetooth {
+		uart8_gpios: uart8-gpios {
+			rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
+
+	nk_io_gpio: nk_io_gpio_col{
+                        rockchip,pins =
+                                <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>,
+                                <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,
+                                <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>,
+                                <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>,
+                                <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>,
+                                <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>,
+                                <1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>,
+                                <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
+	};
+};
+
+&rkisp {
+	status = "okay";
+};
+
+&rkisp_mmu {
+	status = "okay";
+};
+
+&rkisp_vir0 {
+	status = "okay";
+
+	port {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		isp0_in: endpoint@0 {
+			reg = <0>;
+			remote-endpoint = <&csidphy_out>;
+		};
+	};
+};
+
+&route_dsi0 {
+	status = "okay";
+	connect = <&vp1_out_dsi0>;
+};
+
+&route_edp {
+	status = "okay";
+	connect = <&vp0_out_edp>;
+};
+
+&sata2 {
+	status = "okay";
+};
+
+&sdmmc2 {
+	max-frequency = <150000000>;
+	supports-sdio;
+	bus-width = <4>;
+	disable-wp;
+	cap-sd-highspeed;
+	cap-sdio-irq;
+	keep-power-in-suspend;
+	mmc-pwrseq = <&sdio_pwrseq>;
+	non-removable;
+	pinctrl-names = "default";
+	pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk>;
+	sd-uhs-sdr104;
+	status = "okay";
+};
+
+&spdif_8ch {
+	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&spdifm1_tx>;
+};
+
+&uart8 {
+	status = "disabled";
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart8m0_xfer &uart8m0_ctsn>;
+};
+
+&vcc3v3_lcd0_n {
+	gpio = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
+	enable-active-high;
+};
+
+&vcc3v3_lcd1_n {
+	gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
+	enable-active-high;
+};
+
+&wireless_wlan {
+	pinctrl-names = "default";
+	pinctrl-0 = <&wifi_host_wake_irq>;
+	WIFI,host_wake_irq = <&gpio2 RK_PB2 GPIO_ACTIVE_HIGH>;
+};
+
+&wireless_bluetooth {
+	compatible = "bluetooth-platdata";
+	clocks = <&rk809 1>;
+	clock-names = "ext_clock";
+	//wifi-bt-power-toggle;
+	uart_rts_gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;
+	pinctrl-names = "default", "rts_gpio";
+	pinctrl-0 = <&uart8m0_rtsn>;
+	pinctrl-1 = <&uart8_gpios>;
+	BT,reset_gpio    = <&gpio3 RK_PA0 GPIO_ACTIVE_HIGH>;
+	BT,wake_gpio     = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>;
+	BT,wake_host_irq = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
+	status = "okay";
+};
diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi
index 86ac12f..ac300ae 100644
--- a/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi
@@ -161,8 +161,8 @@
 
 	leds: leds {
 		compatible = "gpio-leds";
-		work_led: work {
-			gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;
+		sys_led: sys_led {
+			gpios = <&gpio3 RK_PD0 GPIO_ACTIVE_HIGH>;
 			linux,default-trigger = "heartbeat";
 		};
 	};
@@ -289,7 +289,7 @@
 		regulator-min-microvolt = <3300000>;
 		regulator-max-microvolt = <3300000>;
 		enable-active-high;
-		gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
+		gpio = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
 		vin-supply = <&vcc3v3_sys>;
 
 		regulator-state-mem {
@@ -1539,9 +1539,9 @@
 	pmuio2-supply = <&vcc3v3_pmu>;
 	vccio1-supply = <&vccio_acodec>;
 	vccio3-supply = <&vccio_sd>;
-	vccio4-supply = <&vcc_3v3>;
+	vccio4-supply = <&vcc_1v8>;
 	vccio5-supply = <&vcc_3v3>;
-	vccio6-supply = <&vcc_3v3>;
+	vccio6-supply = <&vcc_1v8>;
 	vccio7-supply = <&vcc_3v3>;
 };
 
diff --git a/kernel/arch/arm64/configs/rockchip_linux_defconfig b/kernel/arch/arm64/configs/rockchip_linux_defconfig
index 85155be..17cfcce 100644
--- a/kernel/arch/arm64/configs/rockchip_linux_defconfig
+++ b/kernel/arch/arm64/configs/rockchip_linux_defconfig
@@ -127,6 +127,7 @@
 CONFIG_BLK_DEV_RAM_COUNT=1
 CONFIG_BLK_DEV_NVME=y
 CONFIG_SRAM=y
+CONFIG_EEPROM_AT24=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_DEV_SR=y
 CONFIG_SCSI_SCAN_ASYNC=y
@@ -250,6 +251,9 @@
 CONFIG_SPI_ROCKCHIP=y
 CONFIG_SPI_SPIDEV=y
 CONFIG_PINCTRL_RK805=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_OF_GPIO=y
 CONFIG_GPIO_SYSFS=y
 CONFIG_GPIO_GENERIC_PLATFORM=y
 CONFIG_POWER_AVS=y
@@ -455,7 +459,9 @@
 CONFIG_LEDS_CLASS=y
 CONFIG_LEDS_GPIO=y
 CONFIG_LEDS_IS31FL32XX=y
+CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_DRV_HYM8563=y
 CONFIG_RTC_DRV_RK808=y
diff --git a/kernel/drivers/misc/Makefile b/kernel/drivers/misc/Makefile
index 341233a..f516b9a 100644
--- a/kernel/drivers/misc/Makefile
+++ b/kernel/drivers/misc/Makefile
@@ -62,3 +62,5 @@
 obj-$(CONFIG_UID_SYS_STATS)	+= uid_sys_stats.o
 obj-$(CONFIG_PIR_ASCHIP)	+= pir-aschip.o
 obj-$(CONFIG_RK803)		+= rk803.o
+obj-y += nkio/
+obj-y += nkmcu/
diff --git a/kernel/drivers/misc/nkio/Kconfig b/kernel/drivers/misc/nkio/Kconfig
new file mode 100755
index 0000000..2b3219c
--- /dev/null
+++ b/kernel/drivers/misc/nkio/Kconfig
@@ -0,0 +1,15 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Headset device configuration
+#
+
+menu "jw io init support"
+
+config JW_IO
+	tristate "JW IO INIT"
+	---help---
+
+source "drivers/jwio/mcu/Kconfig"
+			    
+endmenu
+
diff --git a/kernel/drivers/misc/nkio/Makefile b/kernel/drivers/misc/nkio/Makefile
new file mode 100755
index 0000000..47f3554
--- /dev/null
+++ b/kernel/drivers/misc/nkio/Makefile
@@ -0,0 +1 @@
+obj-y += nk_io_core.o 
diff --git a/kernel/drivers/misc/nkio/mcu/Kconfig b/kernel/drivers/misc/nkio/mcu/Kconfig
new file mode 100755
index 0000000..61eea69
--- /dev/null
+++ b/kernel/drivers/misc/nkio/mcu/Kconfig
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Headset device configuration
+#
+
+menu "jw mcu init support"
+
+config JW_MCU	
+	tristate "JW_MCU init"
+			    
+endmenu
+
diff --git a/kernel/drivers/misc/nkio/mcu/Makefile b/kernel/drivers/misc/nkio/mcu/Makefile
new file mode 100755
index 0000000..d738779
--- /dev/null
+++ b/kernel/drivers/misc/nkio/mcu/Makefile
@@ -0,0 +1,5 @@
+
+
+obj-$(CONFIG_JW_MCU)	+= jw_mcu.o
+obj-$(CONFIG_JW_MCU)	+= jw_mcu_isp.o
+
diff --git a/kernel/drivers/misc/nkio/mcu/jw_mcu.c b/kernel/drivers/misc/nkio/mcu/jw_mcu.c
new file mode 100755
index 0000000..9465dbc
--- /dev/null
+++ b/kernel/drivers/misc/nkio/mcu/jw_mcu.c
@@ -0,0 +1,866 @@
+/* drivers/rtc/rtc-jwwdt.c - driver for jwwdt
+ *
+ * Copyright (C) 2010 ROCKCHIP, 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 <linux/module.h>
+#include <linux/moduleparam.h>
+#include <linux/init.h>
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/pm.h>
+#include <linux/i2c.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
+#include <linux/of_gpio.h>
+#include <sound/core.h>
+#include <sound/pcm.h>
+#include <sound/pcm_params.h>
+#include <sound/tlv.h>
+#include <sound/soc.h>
+#include <sound/soc-dapm.h>
+#include <sound/initval.h>
+#include <linux/proc_fs.h>
+#include <linux/gpio.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include "jw_mcu.h"
+#include <linux/reboot.h>
+
+
+struct i2c_client *gClient = NULL;
+struct device_node *node_MCU = NULL;
+struct device *dev_MCU= NULL;
+unsigned int mcu_watchdog_gpio;
+struct delayed_work 	    watchdog_delay_work;
+#define	WATCHDOG_FEED_COUNT		 2000
+
+
+
+//ison s
+#if 0
+static int Mcu_i2c_writes(const struct i2c_client *client,
+		const char reg, const char *buf, int count)
+{
+        struct i2c_adapter *adap=client->adapter;
+        struct i2c_msg msg;
+        int ret;
+        char *tx_buf = (char *)kmalloc(count + 1, GFP_KERNEL);
+        if(!tx_buf)
+                return -ENOMEM;
+        tx_buf[0] = reg;
+        memcpy(tx_buf+1, buf, count);
+
+        msg.addr = client->addr;
+        msg.flags = client->flags;
+        msg.len = count + 1;
+        msg.buf = (char *)tx_buf;
+        //msg.scl_rate = 100*1000;
+
+        ret = i2c_transfer(adap, &msg, 1);
+        kfree(tx_buf);
+        return (ret == 1) ? count : ret;
+
+}
+
+static int Mcu_i2c_reads(const struct i2c_client *client,
+		const char reg, char *buf, int count)
+{
+        struct i2c_adapter *adap=client->adapter;
+        struct i2c_msg msgs[2];
+        int ret;
+        char reg_buf = reg;
+
+        msgs[0].addr = client->addr;
+        msgs[0].flags = client->flags;
+        msgs[0].len = 1;
+        msgs[0].buf = &reg_buf;
+        //msgs[0].scl_rate = 100*1000;
+
+        msgs[1].addr = client->addr;
+        msgs[1].flags = client->flags | I2C_M_RD;
+        msgs[1].len = count;
+        msgs[1].buf = (char *)buf;
+        //msgs[1].scl_rate = 100*1000;
+
+        ret = i2c_transfer(adap, msgs, 2);
+
+        return (ret == 2)? count : ret;
+}
+#endif
+
+static int Mcu_i2c_writeregister(struct i2c_client *i2c, char reg, int count, const u8 src)
+{
+	int ret=-1;
+	
+	struct i2c_adapter *adap;
+	struct i2c_msg msg;
+	char tx_buf[2];
+
+	if(!i2c)
+		return -EINVAL;
+	if (count != 1)
+		return -EIO;
+    
+	adap = i2c->adapter;		
+	tx_buf[0] = reg;
+	tx_buf[1] = src;
+	
+	msg.addr = i2c->addr;
+	msg.buf = &tx_buf[0];
+	msg.len = 1 +1;
+	msg.flags = i2c->flags;   
+	//msg.scl_rate = 100*1000;	
+
+	ret = i2c_transfer(adap, &msg, 1);
+	return ret;	
+}
+
+
+
+static int Mcu_i2c_readregister(struct i2c_client *i2c, char reg, int count,	u8 *dest)
+{
+      int ret;
+    struct i2c_adapter *adap;
+    struct i2c_msg msgs[2];
+
+    if(!i2c)
+		return -EINVAL;
+
+	if (count != 1)
+		return -EIO;  
+  
+    adap = i2c->adapter;		
+    
+    msgs[0].addr = i2c->addr;
+    msgs[0].buf = &reg;
+    msgs[0].flags = i2c->flags;
+    msgs[0].len = 1;
+    //msgs[0].scl_rate = 100*1000;
+    
+    msgs[1].buf = (u8 *)dest;
+    msgs[1].addr = i2c->addr;
+    msgs[1].flags = i2c->flags | I2C_M_RD;
+    msgs[1].len = 1;
+    //msgs[1].scl_rate = 100*1000;
+    ret = i2c_transfer(adap, msgs, 2);
+
+	//printk("***run in %s %d msgs[1].buf = %d\n",__FUNCTION__,__LINE__,*(msgs[1].buf));
+
+	return ret;   
+}
+
+//ison e
+
+uint8_t get_value_func_cfg(uint8_t func, uint8_t value)
+{
+    uint8_t data = 0;
+    CORE_REG_FUNCTION *value_func;
+    CORE_REG_FUNCTION1 *value_func1;
+    value_func = (CORE_REG_FUNCTION *)&value;
+    value_func1 = (CORE_REG_FUNCTION1 *)&value;
+    if(func < 100 || func > CORE_FUNC_MAX)
+      return 0;
+    switch(func){
+      case CORE_FUNC_ALARM:
+        data = value_func->bit.alarmWakeup;
+        break;
+      case CORE_FUNC_WDT:
+        data = value_func->bit.watchdog;
+        break;
+      case CORE_FUNC_IRDA:
+        data = value_func->bit.irdaWakeup;
+        break;
+      case CORE_FUNC_NET_WK:
+        data = value_func->bit.net_wakeup;
+        break;
+      case CORE_FUNC_CEC:
+        data = value_func->bit.hdmi_cec;
+        break;
+      case CORE_FUNC_POWER_LOSS:
+        data = value_func->bit.powerloss;
+        break;
+      case CORE_FUNC_USB_CHARGER:
+        data = value_func->bit.usbCharger;
+        break;   
+      case CORE_FUNC_LAST_STATE:
+        data = value_func1->bit.last_state;
+        break;  
+      case CORE_FUNC_PWR_WK_EN:
+        data = value_func1->bit.pwr_wk_en;
+	  	 case CORE_FUNC_PWR_OFF_EN:
+        data = value_func1->bit.pwr_opwer_en;
+      default:
+        break;       
+    }
+    return data;
+}
+
+uint8_t set_value_func_cfg(uint8_t func, uint8_t value,uint8_t value_data)
+{
+    uint8_t data = 0;
+    CORE_REG_FUNCTION *value_func;
+    CORE_REG_FUNCTION1 *value_func1;
+    value_func = (CORE_REG_FUNCTION *)&value;
+    value_func1 = (CORE_REG_FUNCTION1 *)&value;
+    if(func < 100 || func > CORE_FUNC_MAX)
+      return 0;
+    switch(func){
+      case CORE_FUNC_POWER_LOSS:
+        value_func->bit.powerloss = value_data;
+        break;
+      case CORE_FUNC_WDT:
+        value_func->bit.watchdog = value_data;
+        break;	
+      case CORE_FUNC_ALARM:
+        value_func->bit.alarmWakeup = value_data;
+        break;	
+      case CORE_FUNC_PWR_WK_EN:
+        value_func1->bit.pwr_wk_en = value_data;
+        break;	
+	  case CORE_FUNC_PWR_OFF_EN:
+        value_func1->bit.pwr_opwer_en = value_data;
+        break;	
+      default:
+        break;       
+    }
+	data = *((uint8_t *)value_func);
+	return data;
+}
+
+
+//add spirit class s------------------------
+#if 1
+
+static ssize_t mcu_driver_version(struct class *cls,
+					struct class_attribute *attr,
+					char *buf)
+{
+	u8 newversion=0x04;   //if MCU firmware need to update ,set newversion to latest MCU firmware version
+
+	return snprintf(buf, 4, "%02x\n",newversion);
+}
+
+static ssize_t spirit_version(struct class *cls,
+					struct class_attribute *attr,
+					char *buf)
+{  
+	int ret = 0;
+	u8 read_mcu_id = 0; 
+	ret = Mcu_i2c_readregister(gClient, CORE_FW_VERSION, 1,&read_mcu_id);
+	if (ret < 0) {
+		printk("jw_mcu read fail\n");
+		return -EINVAL;
+	}
+	printk("spirit_version  = %d ------------ison\n",read_mcu_id);
+
+	return snprintf(buf, 4, "%02x\n",read_mcu_id);
+}
+
+static void MCU_UPDATE(void){
+	int ret = 0;
+	u8 tmp ;
+	
+	tmp=1;
+	ret = Mcu_i2c_writeregister(gClient, CORE_FW_UPDATE, 1, tmp);
+	if (ret < 0) {
+		printk("Mcu_i2c_writeregister fail\n");
+		return;
+	}
+	msleep(100);
+	kernel_restart(NULL);
+	printk("CORE_FW_UPDATE ret = %d ------------ison\n",ret);
+
+}
+
+static ssize_t set_mcu_update(struct class *cls, 
+						struct class_attribute *attr,
+			 			const char *buf, size_t size)
+{
+	u32 enable;
+	sscanf(buf, "%d", &enable);
+	printk("Spirit UPDATE enable =%d----ison\n",enable);
+	if (enable)
+	{
+		printk("Spirit UPDATE------ISON\n");
+		MCU_UPDATE();
+	}
+	return size;
+}
+#endif
+static ssize_t get_mcu_state_autopower(struct class *class,struct class_attribute *attr, char *buf)
+{
+	int ret = 0;
+	u8 autopower_state=0;
+	ret=Mcu_i2c_readregister(gClient, CORE_FUNC_CFG0, 1,	&autopower_state);
+		if (ret < 0) {
+			printk("Mcu_i2c_readregister fail\n");
+			return -1;
+		}
+		printk("get_autopower autopower_reg = %d ------------ison\n",autopower_state);
+	if(get_value_func_cfg(CORE_FUNC_POWER_LOSS,autopower_state)){	
+		autopower_state = 1;
+	}else{
+		autopower_state = 0;
+	}
+	printk("get_autopower autopower_state = %d ------------ison\n",autopower_state);
+	return snprintf(buf, 3, "%02x\n",autopower_state);
+}
+
+static void MCU_EnableAutopower(void){
+	int ret = 0;
+	u8 tmp ;
+	u8 autopower_state=0;
+	ret=Mcu_i2c_readregister(gClient, CORE_FUNC_CFG0, 1,	&autopower_state);
+		if (ret < 0) {
+			printk("Mcu_i2c_readregister fail\n");
+			return;
+		}
+	tmp = set_value_func_cfg(CORE_FUNC_POWER_LOSS,autopower_state,1);
+	ret = Mcu_i2c_writeregister(gClient, CORE_FUNC_CFG0, 1, tmp);
+	if (ret < 0) {
+		printk("Mcu_i2c_writeregister fail\n");
+		return;
+	}
+	msleep(10);
+	printk("EnableAutopower ret = %d ------------ison\n",ret);
+
+}
+
+static void MCU_disableAutopower(void){
+	int ret = 0;
+	u8 tmp ;
+	u8 autopower_state=0;
+	ret=Mcu_i2c_readregister(gClient, CORE_FUNC_CFG0, 1,	&autopower_state);
+		if (ret < 0) {
+			printk("Mcu_i2c_readregister fail\n");
+			return;
+		}	
+	tmp = set_value_func_cfg(CORE_FUNC_POWER_LOSS,autopower_state,0);
+	ret = Mcu_i2c_writeregister(gClient, CORE_FUNC_CFG0, 1, tmp);
+	if (ret < 0) {
+		printk("Mcu_i2c_writeregister fail\n");
+		return;
+	}
+	msleep(10);
+	printk("disableAutopower ret = %d ------------ison\n",ret);
+
+}
+
+static ssize_t set_mcu_enable_autopower(struct class *cls, 
+						struct class_attribute *attr,
+			 			const char *buf, size_t size)
+{
+	u32 enable;
+	sscanf(buf, "%d", &enable);
+	printk("set_autopower enable =%d----ison\n",enable);
+	if (enable)
+	{
+		//printk("set_mcu_enable_autopower ENABLE------ISON\n");
+		MCU_EnableAutopower();
+	}
+	else {
+		MCU_disableAutopower();
+		//printk("set_mcu_enable_autopower DISABLE------ISON\n");
+	}
+	return size;
+}
+
+static ssize_t get_mcu_state_watchdog(struct class *class,struct class_attribute *attr, char *buf)
+{
+	int ret = 0;
+	u8 watchdog_state=0;
+	ret=Mcu_i2c_readregister(gClient, CORE_FUNC_CFG0, 1,	&watchdog_state);
+		if (ret < 0) {
+			printk("Mcu_i2c_readregister fail\n");
+			return -1;
+		}
+		printk("get_watchdog watchdog_state = %d ------------ison\n",watchdog_state);
+	if(get_value_func_cfg(CORE_FUNC_WDT,watchdog_state)){	
+		watchdog_state = 1;
+	}else{
+		watchdog_state = 0;
+	}
+	printk("get_watchdog watchdog_state = %d ------------ison\n",watchdog_state);
+	return snprintf(buf, 3, "%02x\n",watchdog_state);
+}
+
+static void MCU_EnableWatchdog(void){
+	int ret = 0;
+	u8 tmp ;
+	u8 watchdog_state=0;
+	ret=Mcu_i2c_readregister(gClient, CORE_FUNC_CFG0, 1,	&watchdog_state);
+		if (ret < 0) {
+			printk("Mcu_i2c_readregister fail\n");
+			return;
+		}
+	tmp = set_value_func_cfg(CORE_FUNC_WDT,watchdog_state,1);
+	ret = Mcu_i2c_writeregister(gClient, CORE_FUNC_CFG0, 1, tmp);
+	if (ret < 0) {
+		printk("Mcu_i2c_writeregister fail\n");
+		return;
+	}
+	msleep(10);
+	printk("EnableWatchdog ret = %d ------------ison\n",ret);
+
+}
+
+static void MCU_disableWatchdog(void){
+	int ret = 0;
+	u8 tmp ;
+	u8 watchdog_state=0;
+	ret=Mcu_i2c_readregister(gClient, CORE_FUNC_CFG0, 1,	&watchdog_state);
+		if (ret < 0) {
+			printk("Mcu_i2c_readregister fail\n");
+			return;
+		}	
+	tmp = set_value_func_cfg(CORE_FUNC_WDT,watchdog_state,0);
+	ret = Mcu_i2c_writeregister(gClient, CORE_FUNC_CFG0, 1, tmp);
+	if (ret < 0) {
+		printk("Mcu_i2c_writeregister fail\n");
+		return;
+	}
+	msleep(10);
+	printk("disableWatchdog ret = %d ------------ison\n",ret);
+
+}
+
+static void watchdog_work(void){
+  int ret;
+
+  ret = gpio_direction_output(mcu_watchdog_gpio, 1); 
+  if(ret < 0){
+	  printk("%s() gpio_direction_input mcu_watchdog_gpio set ERROR\n", __FUNCTION__);
+  }
+  ret = gpio_direction_output(mcu_watchdog_gpio, 0); 
+  if(ret < 0){
+	  printk("%s() gpio_direction_input mcu_watchdog_gpio set ERROR\n", __FUNCTION__);
+  }
+  ret = gpio_direction_output(mcu_watchdog_gpio, 1); 
+  if(ret < 0){
+	  printk("%s() gpio_direction_input mcu_watchdog_gpio set ERROR\n", __FUNCTION__);
+  }
+
+}
+
+static void watchdog_timer_work(struct work_struct *work)
+{
+	watchdog_work();
+	schedule_delayed_work(&watchdog_delay_work, msecs_to_jiffies(WATCHDOG_FEED_COUNT));
+}
+
+
+void watchdog_init(void){
+	int ret = 0;
+	enum of_gpio_flags flags;
+	ret = of_get_named_gpio_flags(node_MCU, "mcu_watchdog_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property mcu_watchdog_gpio\n", __FUNCTION__);
+	} else {
+		mcu_watchdog_gpio = ret;
+		ret = devm_gpio_request(dev_MCU, mcu_watchdog_gpio, "mcu_watchdog_gpio");
+		if(ret < 0){
+			printk("%s() devm_gpio_request mcu_watchdog_gpio request ERROR\n", __FUNCTION__);
+		}
+		ret = gpio_direction_output(mcu_watchdog_gpio,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input mcu_watchdog_gpio set ERROR\n", __FUNCTION__);
+		}
+	}	
+
+	 INIT_DELAYED_WORK(&watchdog_delay_work, watchdog_timer_work);
+     schedule_delayed_work(&watchdog_delay_work, msecs_to_jiffies(WATCHDOG_FEED_COUNT));
+}
+
+static ssize_t set_mcu_enable_watchdog(struct class *cls, 
+						struct class_attribute *attr,
+			 			const char *buf, size_t size)
+{
+	u32 enable;
+	sscanf(buf, "%d", &enable);
+	printk("set_autopower enable =%d----\n",enable);
+	if (enable)
+	{
+		printk("set_mcu_enable_autopower ENABLE------\n");
+		MCU_EnableWatchdog();
+
+		
+	    schedule_delayed_work(&watchdog_delay_work, msecs_to_jiffies(WATCHDOG_FEED_COUNT));
+		
+	}
+	else {
+		MCU_disableWatchdog();
+		schedule_delayed_work(&watchdog_delay_work, msecs_to_jiffies(0));
+
+		
+		printk("set_mcu_enable_autopower DISABLE------\n");
+	}
+	return size;
+}
+
+static ssize_t set_watchdog_test(struct class *cls, 
+						struct class_attribute *attr,
+			 			const char *buf, size_t size)
+{
+	u32 enable;
+	sscanf(buf, "%d", &enable);
+	printk("set_watchdog_test enable =%d----ison\n",enable);
+	if (enable)
+	{
+		//printk("set_mcu_enable_autopower ENABLE------ISON\n");
+		schedule_delayed_work(&watchdog_delay_work, msecs_to_jiffies(WATCHDOG_FEED_COUNT));
+	}
+	else {
+		cancel_delayed_work(&watchdog_delay_work);
+		//printk("set_mcu_enable_autopower DISABLE------ISON\n");
+	}
+	return size;
+}
+
+static ssize_t get_mcu_state_rtcpower(struct class *class,struct class_attribute *attr, char *buf)
+{
+	int ret = 0;
+	u8 rtcpower_state=0;
+	ret=Mcu_i2c_readregister(gClient, CORE_FUNC_CFG0, 1,	&rtcpower_state);
+		if (ret < 0) {
+			printk("Mcu_i2c_readregister fail\n");
+			return -1;
+		}
+		printk("get_rtcpower rtcpower_state = %d ------------ison\n",rtcpower_state);
+	if(get_value_func_cfg(CORE_FUNC_ALARM,rtcpower_state)){	
+		rtcpower_state = 1;
+	}else{
+		rtcpower_state = 0;
+	}
+	printk("get_rtcpower rtcpower_state = %d ------------ison\n",rtcpower_state);
+	return snprintf(buf, 3, "%02x\n",rtcpower_state);
+}
+
+static void MCU_EnableRtcpower(void){
+	int ret = 0;
+	u8 tmp ;
+	u8 rtcpower_state=0;
+	ret=Mcu_i2c_readregister(gClient, CORE_FUNC_CFG0, 1,	&rtcpower_state);
+		if (ret < 0) {
+			printk("Mcu_i2c_readregister fail\n");
+			return;
+		}
+	tmp = set_value_func_cfg(CORE_FUNC_ALARM,rtcpower_state,1);
+	ret = Mcu_i2c_writeregister(gClient, CORE_FUNC_CFG0, 1, tmp);
+	if (ret < 0) {
+		printk("Mcu_i2c_writeregister fail\n");
+		return;
+	}
+	msleep(10);
+	printk("EnableRtcpower ret = %d ------------ison\n",ret);
+
+}
+
+static void MCU_disableRtcpower(void){
+	int ret = 0;
+	u8 tmp ;
+	u8 rtcpower_state=0;
+	ret=Mcu_i2c_readregister(gClient, CORE_FUNC_CFG0, 1,	&rtcpower_state);
+		if (ret < 0) {
+			printk("Mcu_i2c_readregister fail\n");
+			return;
+		}	
+	tmp = set_value_func_cfg(CORE_FUNC_ALARM,rtcpower_state,0);
+	ret = Mcu_i2c_writeregister(gClient, CORE_FUNC_CFG0, 1, tmp);
+	if (ret < 0) {
+		printk("Mcu_i2c_writeregister fail\n");
+		return;
+	}
+	msleep(10);
+	printk("disableRtcpower ret = %d ------------ison\n",ret);
+
+}
+
+static ssize_t set_mcu_enable_rtcpower(struct class *cls, 
+						struct class_attribute *attr,
+			 			const char *buf, size_t size)
+{
+	u32 enable;
+	sscanf(buf, "%d", &enable);
+	printk("set_rtcpower enable =%d----ison\n",enable);
+	if (enable)
+	{
+		//printk("set_mcu_enable_autopower ENABLE------ISON\n");
+		MCU_EnableRtcpower();
+	}
+	else {
+		MCU_disableRtcpower();
+		//printk("set_mcu_enable_autopower DISABLE------ISON\n");
+	}
+	return size;
+}
+
+static ssize_t get_mcu_state_ethwol(struct class *class,struct class_attribute *attr, char *buf)
+{
+	int ret = 0;
+	u8 ethwol_state=0;
+	ret=Mcu_i2c_readregister(gClient, CORE_FUNC_CFG1, 1,	&ethwol_state);
+		if (ret < 0) {
+			printk("Mcu_i2c_readregister fail\n");
+			return -1;
+		}
+		printk("get_ethwol ethwol_state = %d ------------ison\n",ethwol_state);
+	if(get_value_func_cfg(CORE_FUNC_PWR_WK_EN,ethwol_state)){	
+		ethwol_state = 1;
+	}else{
+		ethwol_state = 0;
+	}
+	printk("get_ethwol ethwol_state = %d ------------ison\n",ethwol_state);
+	return snprintf(buf, 3, "%02x\n",ethwol_state);
+}
+
+static void MCU_EnableEthwol(void){
+	int ret = 0;
+	u8 tmp ;
+	u8 ethwol_state=0;
+	ret=Mcu_i2c_readregister(gClient, CORE_FUNC_CFG1, 1,	&ethwol_state);
+		if (ret < 0) {
+			printk("Mcu_i2c_readregister fail\n");
+			return;
+		}
+	tmp = set_value_func_cfg(CORE_FUNC_PWR_WK_EN,ethwol_state,1);
+	ret = Mcu_i2c_writeregister(gClient, CORE_FUNC_CFG1, 1, tmp);
+	if (ret < 0) {
+		printk("Mcu_i2c_writeregister fail\n");
+		return;
+	}
+	msleep(10);
+	printk("EnableEthwol ret = %d ------------ison\n",ret);
+
+}
+
+static void MCU_disableEthwol(void){
+	int ret = 0;
+	u8 tmp ;
+	u8 ethwol_state=0;
+	ret=Mcu_i2c_readregister(gClient, CORE_FUNC_CFG1, 1,	&ethwol_state);
+		if (ret < 0) {
+			printk("Mcu_i2c_readregister fail\n");
+			return;
+		}	
+	tmp = set_value_func_cfg(CORE_FUNC_PWR_WK_EN,ethwol_state,0);
+	ret = Mcu_i2c_writeregister(gClient, CORE_FUNC_CFG1, 1, tmp);
+	if (ret < 0) {
+		printk("Mcu_i2c_writeregister fail\n");
+		return;
+	}
+	msleep(10);
+	printk("disableEthwol ret = %d ------------ison\n",ret);
+
+}
+
+static ssize_t set_mcu_enable_ethwol(struct class *cls, 
+						struct class_attribute *attr,
+			 			const char *buf, size_t size)
+{
+	u32 enable;
+	sscanf(buf, "%d", &enable);
+	printk("set_ethwol enable =%d----ison\n",enable);
+	if (enable)
+	{
+		//printk("set_mcu_enable_autopower ENABLE------ISON\n");
+		MCU_EnableEthwol();
+	}
+	else {
+		MCU_disableEthwol();
+		//printk("set_mcu_enable_autopower DISABLE------ISON\n");
+	}
+	return size;
+}
+
+
+static struct class *spirit_class;
+static CLASS_ATTR(Update, 0666, NULL, set_mcu_update);
+static CLASS_ATTR(SpiritEnableAutopower, 0666, get_mcu_state_autopower, set_mcu_enable_autopower);
+static CLASS_ATTR(Verison, 0666, mcu_driver_version, NULL); 
+static CLASS_ATTR(SpiritVerison, 0666, spirit_version, NULL); 
+static CLASS_ATTR(Watchdog, 0666, get_mcu_state_watchdog, set_mcu_enable_watchdog);
+static CLASS_ATTR(Watchdog_test, 0666, NULL, set_watchdog_test);
+static CLASS_ATTR(Rtcpower, 0666, get_mcu_state_rtcpower, set_mcu_enable_rtcpower);
+static CLASS_ATTR(EthWol, 0666, get_mcu_state_ethwol, set_mcu_enable_ethwol);
+
+
+//add spirit class e------------------------
+
+int jw_mcu_get_cc_status(u8 *role, u8 *direction){
+	u8 ret_role,ret_direction;
+	int ret;
+	ret = Mcu_i2c_readregister(gClient, CORE_ANX7411_CC_ROLE, 1,&ret_role);
+	if (ret < 0) {
+		printk("jw_mcu_get_cc_status read fail\n");
+		return -EINVAL;
+	}
+	ret = Mcu_i2c_readregister(gClient, CORE_ANX7411_CC_DIRECTION, 1,&ret_direction);
+	if (ret < 0) {
+		printk("jw_mcu_get_cc_status read fail\n");
+		return -EINVAL;
+	}
+	printk("jw_mcu_get_cc_status ret_role=%d,ret_direction=%d---ison\n",ret_role,ret_direction);
+	*role = ret_role;
+	*direction = ret_direction;
+	return ret;
+}
+
+
+void MCU_Set_EthPhyAddr(char *addr){
+	int ret = 0,i;
+	//u8 tmp =0;
+	char *addr_l = addr;
+	for(i = 0;i < 6;i++){
+		printk("MCU_Set_EthPhyAddr  %d------------ison\n",addr_l[i]);
+		ret = Mcu_i2c_writeregister(gClient, CORE_ETH_PHY_ADDR0 + i, 1, addr_l[i]);
+		if (ret < 0) {
+			printk("Mcu_i2c_writeregister fail\n");
+			return;
+		}
+	}
+}
+///////////////andy add 
+
+static int rtl8211_phy_power_off(struct notifier_block *this,
+                    unsigned long code, void *unused)
+{
+	u8 ethwol_power=0,tmp;
+	int ret = 0;
+
+    if (code == SYS_POWER_OFF){
+		ret=Mcu_i2c_readregister(gClient, CORE_FUNC_CFG1, 1,&ethwol_power);
+		if (ret < 0) {
+			printk("Mcu_i2c_readregister fail\n");
+			return -1;
+		}	
+		tmp = set_value_func_cfg(CORE_FUNC_PWR_OFF_EN,ethwol_power,0);
+		ret = Mcu_i2c_writeregister(gClient, CORE_FUNC_CFG1, 1, tmp);
+		if (ret < 0) {
+			printk("Mcu_i2c_writeregister fail\n");
+			return -1;
+		}		
+		printk("write power off message to mcu   ------------andy\n");		
+	}
+    return NOTIFY_OK;
+}
+////////////////andy end
+static struct notifier_block rtl8211_phy_notifier = {
+        .notifier_call = rtl8211_phy_power_off,
+};
+
+
+static int  jw_mcu_probe(struct i2c_client *client, const struct i2c_device_id *id)
+
+{
+    int ret = 0, err;
+	u8 read_mcu_id=0,ethwol_power=0,tmp;
+	//char tmp1[2];
+	//enum of_gpio_flags flags;
+	node_MCU = client->dev.of_node;
+	dev_MCU = &client->dev;
+	gClient = client;
+    printk("%s \n",__FUNCTION__);
+
+    if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
+        printk(KERN_ERR "jw_mcu_probe: need I2C_FUNC_I2C\n");
+        ret = -ENODEV;
+    }
+//ison s
+#if 1
+	ret=Mcu_i2c_readregister(client, CORE_FW_VERSION, 1,&read_mcu_id);
+	if (ret < 0) {
+		printk("jw_mcu read fail\n");
+		return -EINVAL;
+	}
+	printk("Mcu_i2c_readregister 1 read1 = %d ------------ison\n",read_mcu_id);
+#endif
+//ison e
+
+
+
+	spirit_class = class_create(THIS_MODULE, "spirit_class");
+	if (IS_ERR(spirit_class)) {
+		printk(KERN_ERR "Failed to create spirit_class\n");
+		spirit_class = NULL;
+		return -EINVAL;
+	}	
+	
+	ret =  class_create_file(spirit_class, &class_attr_Update);
+	ret =  class_create_file(spirit_class, &class_attr_SpiritEnableAutopower);
+	ret =  class_create_file(spirit_class, &class_attr_Verison);
+	ret =  class_create_file(spirit_class, &class_attr_SpiritVerison);
+	ret =  class_create_file(spirit_class, &class_attr_Watchdog);
+	ret =  class_create_file(spirit_class, &class_attr_Watchdog_test);
+	ret =  class_create_file(spirit_class, &class_attr_Rtcpower);
+	ret =  class_create_file(spirit_class, &class_attr_EthWol);
+	
+	watchdog_init();
+
+	err = register_reboot_notifier(&rtl8211_phy_notifier);
+	if (err) {
+    	printk("unable to register jw_mcu_probe reboot notifier\n");
+	}	
+
+///////////////andy add 
+	ret=Mcu_i2c_readregister(gClient, CORE_FUNC_CFG1, 1,&ethwol_power);
+	if (ret < 0) {
+		printk("Mcu_i2c_readregister fail\n");
+		return -1;
+	}	
+	tmp = set_value_func_cfg(CORE_FUNC_PWR_OFF_EN,ethwol_power,1);
+
+	ret = Mcu_i2c_writeregister(gClient, CORE_FUNC_CFG1, 1, tmp);
+	if (ret < 0) {
+		printk("Mcu_i2c_writeregister fail\n");
+		return -1;
+	}
+
+/////////////andy end		
+
+	printk("%s: probe ok!!\n", __FUNCTION__);
+
+
+	
+    return 0;
+	
+}
+
+
+static const struct i2c_device_id jw_mcu_id[] = {
+	{ "jw_mcu", 0 },
+	{ }
+};
+
+static const struct of_device_id jw_mcu_of_match[] = {
+	{ .compatible = "everest,jw_mcu", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, jw_mcu_of_match);
+
+
+static struct i2c_driver jw_mcu_driver = {
+	.driver		= {
+		.name	= "jw_mcu",
+		.of_match_table = of_match_ptr(jw_mcu_of_match),
+	},
+	.probe		= jw_mcu_probe,
+ 	.id_table	= jw_mcu_id,
+	//.remove		= __devexit_p(cec_input_control_remove),
+};
+
+module_i2c_driver(jw_mcu_driver);
+MODULE_AUTHOR("ison@jwele.com.cn");
+MODULE_DESCRIPTION("jw mcu driver");
+MODULE_LICENSE("GPL");
+
diff --git a/kernel/drivers/misc/nkio/mcu/jw_mcu.h b/kernel/drivers/misc/nkio/mcu/jw_mcu.h
new file mode 100755
index 0000000..446f2f5
--- /dev/null
+++ b/kernel/drivers/misc/nkio/mcu/jw_mcu.h
@@ -0,0 +1,85 @@
+
+/****************************RK3399 MINI58 Register Start***************************/
+#define REGISTER_MCU_VERSION	0x00
+
+
+typedef enum
+{
+    CORE_FW_VERSION = 0,                
+    CORE_VID_LSB, 
+    CORE_VID_MSB,
+    CORE_PID_LSB, 
+    CORE_PID_MSB, 
+    CORE_POWER_STATE,
+    CORE_FUNC_CFG0,
+    CORE_FUNC_CFG1,
+    CORE_FUNC_STATUS0,
+    CORE_FUNC_STATUS1,
+    CORE_RTC_TIME,	//0xa
+    CORE_RTC_ALARM_TIME,
+    CORE_WDT_COUNT,
+    CORE_FW_UPDATE,
+    CORE_CEC_PHY_LSB,
+    CORE_CEC_PHY_MSB,
+    CORE_CEC_OSD_NAME,	//0x10
+    CORE_NEW_FW_VERSION,
+    CORE_POWER_LEVEL,
+    CORE_ANX7411_CC_ROLE,	//0x13
+    CORE_ANX7411_CC_DIRECTION,	//0x14
+    CORE_ANX7411_HPD_STATUS,		//0x15
+    CORE_ANX7411_DP_LANES,		//0x16
+    CORE_ETH_PHY_ADDR0,
+    CORE_ETH_PHY_ADDR1,
+    CORE_ETH_PHY_ADDR2,
+    CORE_ETH_PHY_ADDR3,
+    CORE_ETH_PHY_ADDR4,
+    CORE_ETH_PHY_ADDR5,    
+    CORE_REG_MAX
+} REGIST_CMD;
+
+typedef union
+ {
+   struct
+   {
+	 uint8_t alarmWakeup:1; 	//bit 0			   
+	 uint8_t watchdog:1;					
+	 uint8_t irdaWakeup:1;					  
+	 uint8_t net_wakeup:1;					   
+	 uint8_t hdmi_cec:1;					   
+	 uint8_t powerloss:2;
+	 uint8_t usbCharger:1;
+   } bit;									
+   uint8_t reg_function;							
+ } CORE_REG_FUNCTION;  
+
+typedef union
+{
+  struct
+  {
+	uint8_t last_state:1; 
+	uint8_t pwr_wk_en:1;
+	uint8_t pwr_opwer_en:1;
+	uint8_t reserved:5;
+  } bit;								   
+  uint8_t reg_function; 						   
+} CORE_REG_FUNCTION1;	
+
+typedef enum
+{
+    CORE_FUNC_ALARM = 100,                
+    CORE_FUNC_WDT, 
+    CORE_FUNC_IRDA,
+    CORE_FUNC_NET_WK, 
+    CORE_FUNC_CEC,    
+    CORE_FUNC_POWER_LOSS, 
+    CORE_FUNC_USB_CHARGER,
+    CORE_FUNC_LAST_STATE,
+    CORE_FUNC_PWR_WK_EN,
+    CORE_FUNC_PWR_OFF_EN,
+    CORE_FUNC_MAX
+} REGIST_FUNC_FLAG;
+
+
+/****************************RK3399 MINI58 Regist end***************************/
+extern int jw_mcu_get_cc_status(u8 *role, u8 *direction);
+
diff --git a/kernel/drivers/misc/nkio/mcu/jw_mcu_isp.c b/kernel/drivers/misc/nkio/mcu/jw_mcu_isp.c
new file mode 100755
index 0000000..55e19a7
--- /dev/null
+++ b/kernel/drivers/misc/nkio/mcu/jw_mcu_isp.c
@@ -0,0 +1,238 @@
+/* drivers/rtc/rtc-jwwdt.c - driver for jwwdt
+ *
+ * Copyright (C) 2010 ROCKCHIP, 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 DEBUG
+//#define pr_fmt(fmt) "rtc: %s: " fmt, __func__
+//#include <mach/gpio.h>
+//#include <mach/iomux.h>
+//#include <mach/board.h>
+//#include <plat/board.h>
+
+
+#include <linux/module.h>
+#include <linux/i2c.h>
+#include <linux/delay.h>
+#include <linux/wakelock.h>
+#include <linux/slab.h>
+#include <linux/input.h>
+#include <linux/irq.h>
+#include <linux/interrupt.h>
+#include <linux/reboot.h>
+#include "jw_mcu_isp.h"
+#ifdef CONFIG_OF
+#include <linux/of.h>
+#include <linux/of_device.h>
+#include <linux/of_gpio.h>
+#endif
+
+//----------------read bin s
+#include <linux/fs.h>
+#include <linux/uaccess.h> 
+#include <linux/vmalloc.h>
+#define ISP_FIRMWARE_FILE_SIZE				(1024*12)
+//----------------read bin e
+
+static struct i2c_client *gClient_isp = NULL;
+struct device_node *node_MCU_isp = NULL;
+struct device *dev_MCU_isp= NULL;
+unsigned int pro_1=0;
+
+static unsigned char MCU_ISP_FIRMWARE[]={
+#include "jw_mcu_isp.dat"
+};
+
+
+static int Minix_Mcu_write_isp(struct i2c_client *i2c, char *buf,int count)
+{
+	int ret=-1;
+	
+	struct i2c_adapter *adap;
+	struct i2c_msg msg;
+
+	if(!i2c)
+		return ret;
+	adap = i2c->adapter;		
+	
+	msg.addr = i2c->addr;
+	msg.buf =(char *)buf;
+	msg.len =count;
+	msg.flags = i2c->flags;   
+
+	ret = i2c_transfer(adap, &msg, 1);
+	return ret;	
+}
+
+static ssize_t minixIspUpdateState(struct class *cls,
+					struct class_attribute *attr,
+					char *buf)
+{
+	u8 state=1;
+	return snprintf(buf, 4, "%02x\n",state);
+}
+static struct class *minix_isp_class;
+
+static CLASS_ATTR(MCUIspState, 0666, minixIspUpdateState, NULL);
+
+static int  isp_input_control_probe(struct i2c_client *client, const struct i2c_device_id *id)
+
+{
+
+    int ret = 0;
+	int i,lens;
+	int count_isp;
+	unsigned int pro=0;
+	unsigned char MCU_ISP_CMD[64];
+	node_MCU_isp = client->dev.of_node; 
+	dev_MCU_isp = &client->dev;
+
+    if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
+        printk(KERN_ERR "isp_probe: need I2C_FUNC_I2C-----------ison\n");
+        ret = -ENODEV;
+        return ret;
+    }
+
+	gClient_isp = client;
+//--------------------------------read bin s
+count_isp = sizeof(MCU_ISP_FIRMWARE)/sizeof(char);
+printk("isp ret = %d-------------ison\n",count_isp);
+//----------------------------------------------------------------------
+memset(MCU_ISP_CMD,0,64);
+MCU_ISP_CMD[0] = CMD_UPDATE_APROM;
+ret = Minix_Mcu_write_isp(client, MCU_ISP_CMD, 64);
+if (ret < 0) {
+	printk("Minix_Mcu_write_isp fail CMD_UPDATE_APROM\n");
+	return -ENODEV;
+}
+
+msleep(500);
+
+memset(MCU_ISP_CMD,0,64);
+MCU_ISP_CMD[0] = CMD_UPDATE_APROM_DATA;
+MCU_ISP_CMD[1] = 0;
+MCU_ISP_CMD[2] = 0;
+MCU_ISP_CMD[3] = 0;
+
+for(i=4;i<64;i++){
+	MCU_ISP_CMD[i] = MCU_ISP_FIRMWARE[pro++];
+}
+
+ret = Minix_Mcu_write_isp(client, MCU_ISP_CMD, 64);
+if (ret < 0) {
+	printk("Minix_Mcu_write_isp fail CMD_UPDATE_APROM_DATA\n");
+	return -ENODEV;
+}
+
+//-------------------------------------------------------------------
+
+msleep(500);
+
+while(pro<count_isp){
+	lens = count_isp -pro;
+	if( lens > 60){
+		memset(MCU_ISP_CMD,0,64);
+		MCU_ISP_CMD[0] = CMD_UPDATE_CONTINUOUS;
+		MCU_ISP_CMD[1] = 0;
+		MCU_ISP_CMD[2] = 0;
+		MCU_ISP_CMD[3] = 0;
+		for(i=4;i<64;i++){
+			MCU_ISP_CMD[i] = MCU_ISP_FIRMWARE[pro++];
+		}
+		
+		ret = Minix_Mcu_write_isp(client, MCU_ISP_CMD, 64);
+		if (ret < 0) {
+			printk("Minix_Mcu_write_isp fail  CMD_UPDATE_CONTINUOUS\n");
+			return -ENODEV;
+		}
+		
+		msleep(10);
+	}
+	else if(lens < 60){
+		
+			memset(MCU_ISP_CMD,0,64);
+		MCU_ISP_CMD[0] = CMD_UPDATE_CONTINUOUS_END;
+		MCU_ISP_CMD[1] = 0;
+		MCU_ISP_CMD[2] = 0;
+		MCU_ISP_CMD[3] = 0;
+		for(i=4;i<lens+4;i++){
+			MCU_ISP_CMD[i] = MCU_ISP_FIRMWARE[pro++];
+			printk(" %d,",MCU_ISP_CMD[i]);
+			
+		}
+		pro_1 = pro;
+		printk("pro = %d-----ison\n",pro_1);
+		for(i=lens+4;i<64;i++){
+			MCU_ISP_CMD[i] = 0xff;
+			pro++;
+			}
+		
+		ret = Minix_Mcu_write_isp(client, MCU_ISP_CMD, 64);
+		if (ret < 0) {
+			printk("Minix_Mcu_write_isp fail CMD_UPDATE_CONTINUOUS_END\n");
+			return -ENODEV;
+		}
+
+	}
+}
+
+memset(MCU_ISP_CMD,0,64);
+MCU_ISP_CMD[0] = CMD_INTER_APROM;
+
+ret = Minix_Mcu_write_isp(client, MCU_ISP_CMD, 64);
+if (ret < 0) {
+	printk("Minix_Mcu_write_isp fail\n");
+	return -ENODEV;
+}
+
+
+	msleep(500);
+	minix_isp_class = class_create(THIS_MODULE, "minix-isp");
+	if (IS_ERR(minix_isp_class)) {
+		printk(KERN_ERR "Failed to create minix isp class\n");
+		minix_isp_class = NULL;
+		return -EINVAL;
+	}
+	ret =  class_create_file(minix_isp_class, &class_attr_MCUIspState);
+
+	machine_restart(NULL);
+    return 0;
+	
+
+}
+
+static const struct i2c_device_id jw_mcu_isp_id[] = {
+	{ "jw_mcu_isp", 0 },
+	{ }
+};
+
+static const struct of_device_id jw_mcu_isp_of_match[] = {
+	{ .compatible = "everest,jw_mcu_isp", },
+	{ }
+};
+
+static struct i2c_driver jw_mcu_isp_driver = {
+	.driver		= {
+		.name	= "jw_mcu_isp",
+		.owner	= THIS_MODULE,
+		.of_match_table = of_match_ptr(jw_mcu_isp_of_match),
+	},
+	.probe		= isp_input_control_probe,
+ 	.id_table	= jw_mcu_isp_id,
+};
+
+module_i2c_driver(jw_mcu_isp_driver);
+MODULE_AUTHOR("ison@jwele.com.cn");
+MODULE_DESCRIPTION("jw mcu driver");
+MODULE_LICENSE("GPL");
+
+
diff --git a/kernel/drivers/misc/nkio/mcu/jw_mcu_isp.dat b/kernel/drivers/misc/nkio/mcu/jw_mcu_isp.dat
new file mode 100755
index 0000000..0f690c1
--- /dev/null
+++ b/kernel/drivers/misc/nkio/mcu/jw_mcu_isp.dat
@@ -0,0 +1,1606 @@
+0x00, 0x0A, 0x00, 0x20, 0xA9, 0x02, 0x00, 0x00, 0xAD, 0x02, 0x00, 0x00, 0x79, 0x01, 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, 0x00, 0xB1, 0x02, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB3, 0x02, 0x00, 0x00, 0xB5, 0x02, 0x00, 0x00, 
+0xB7, 0x02, 0x00, 0x00, 0x55, 0x3D, 0x00, 0x00, 0x05, 0x40, 0x00, 0x00, 0x71, 0x3E, 0x00, 0x00, 
+0xB9, 0x12, 0x00, 0x00, 0xFB, 0x12, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 
+0x51, 0x51, 0x00, 0x00, 0xE9, 0x51, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 
+0xB7, 0x02, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 
+0xFD, 0x12, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 0x4F, 0x15, 0x00, 0x00, 0x67, 0x15, 0x00, 0x00, 
+0xB7, 0x02, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 
+0xB7, 0x02, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 
+0xB7, 0x02, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 0xB7, 0x02, 0x00, 0x00, 
+0x00, 0xF0, 0x02, 0xF8, 0x00, 0xF0, 0x49, 0xF8, 0x0C, 0xA0, 0x30, 0xC8, 0x08, 0x38, 0x24, 0x18, 
+0x2D, 0x18, 0xA2, 0x46, 0x67, 0x1E, 0xAB, 0x46, 0x54, 0x46, 0x5D, 0x46, 0xAC, 0x42, 0x01, 0xD1, 
+0x00, 0xF0, 0x3B, 0xF8, 0x7E, 0x46, 0x0F, 0x3E, 0x0F, 0xCC, 0xB6, 0x46, 0x01, 0x26, 0x33, 0x42, 
+0x00, 0xD0, 0xFB, 0x1A, 0xA2, 0x46, 0xAB, 0x46, 0x33, 0x43, 0x18, 0x47, 0x84, 0x62, 0x00, 0x00, 
+0xA4, 0x62, 0x00, 0x00, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x10, 0x3A, 0x01, 0xD3, 
+0x78, 0xC1, 0xFB, 0xD8, 0x52, 0x07, 0x00, 0xD3, 0x30, 0xC1, 0x00, 0xD5, 0x0B, 0x60, 0x70, 0x47, 
+0x10, 0xB5, 0x64, 0x29, 0x02, 0xD1, 0x05, 0xF0, 0x83, 0xFD, 0x10, 0xBD, 0x78, 0x29, 0x02, 0xD1, 
+0x05, 0xF0, 0xB4, 0xFD, 0x10, 0xBD, 0x63, 0x29, 0x02, 0xD1, 0x06, 0xF0, 0x24, 0xF8, 0x10, 0xBD, 
+0x73, 0x29, 0x02, 0xD1, 0x06, 0xF0, 0x27, 0xF8, 0x10, 0xBD, 0x00, 0x20, 0x10, 0xBD, 0x1F, 0xB5, 
+0xC0, 0x46, 0xC0, 0x46, 0x1F, 0xBD, 0x10, 0xB5, 0x10, 0xBD, 0x06, 0xF0, 0x61, 0xF8, 0x11, 0x46, 
+0xFF, 0xF7, 0xF5, 0xFF, 0x01, 0xF0, 0x2E, 0xF8, 0x06, 0xF0, 0x79, 0xF8, 0x03, 0xB4, 0xFF, 0xF7, 
+0xF2, 0xFF, 0x03, 0xBC, 0x00, 0xF0, 0x75, 0xFC, 0x70, 0x46, 0x40, 0x07, 0x02, 0xD4, 0xEF, 0xF3, 
+0x08, 0x80, 0x01, 0xE0, 0xEF, 0xF3, 0x09, 0x80, 0x81, 0x69, 0x0B, 0x88, 0x09, 0x4A, 0x93, 0x42, 
+0x02, 0xD1, 0x04, 0x31, 0x81, 0x61, 0x70, 0x47, 0x04, 0x20, 0x71, 0x46, 0x08, 0x42, 0x02, 0xD0, 
+0xEF, 0xF3, 0x09, 0x80, 0x01, 0xE0, 0xEF, 0xF3, 0x08, 0x80, 0x71, 0x46, 0x02, 0x4A, 0x10, 0x47, 
+0xFE, 0xE7, 0x00, 0x00, 0xAB, 0xBE, 0x00, 0x00, 0x8F, 0x09, 0x00, 0x00, 0xAB, 0xBE, 0x01, 0xE0, 
+0x00, 0x20, 0x70, 0x47, 0x00, 0x2A, 0x00, 0xD0, 0x10, 0x60, 0x01, 0x20, 0x70, 0x47, 0x00, 0x00, 
+0x70, 0xB5, 0x05, 0x46, 0x0C, 0x46, 0x16, 0x46, 0x02, 0xE0, 0x0F, 0xCC, 0x0F, 0xC5, 0x10, 0x3E, 
+0x10, 0x2E, 0xFA, 0xD2, 0x08, 0x2E, 0x02, 0xD3, 0x03, 0xCC, 0x03, 0xC5, 0x08, 0x3E, 0x04, 0x2E, 
+0x07, 0xD3, 0x01, 0xCC, 0x01, 0xC5, 0x36, 0x1F, 0x03, 0xE0, 0x21, 0x78, 0x29, 0x70, 0x64, 0x1C, 
+0x6D, 0x1C, 0x76, 0x1E, 0xF9, 0xD2, 0x70, 0xBD, 0x70, 0x47, 0xF8, 0xB5, 0x1F, 0xA0, 0x00, 0x68, 
+0x1F, 0x4E, 0x00, 0x90, 0x31, 0x6A, 0x30, 0x13, 0x1E, 0x4C, 0x1F, 0x4F, 0x01, 0x42, 0x01, 0xD0, 
+0x00, 0x20, 0x16, 0xE0, 0x08, 0x03, 0x01, 0xD5, 0x20, 0x46, 0x00, 0xE0, 0x38, 0x46, 0x8A, 0x03, 
+0x0F, 0xD4, 0x0A, 0x04, 0x92, 0x0F, 0x6B, 0x46, 0x9B, 0x5C, 0xCA, 0x05, 0x89, 0x04, 0xD2, 0x0D, 
+0xC9, 0x0E, 0x92, 0x1C, 0x89, 0x1C, 0x80, 0x08, 0x59, 0x43, 0x50, 0x43, 0x05, 0xF0, 0x88, 0xFE, 
+0x80, 0x00, 0x12, 0x4D, 0x28, 0x60, 0x31, 0x69, 0x49, 0x07, 0x49, 0x0F, 0x12, 0xD0, 0x02, 0x29, 
+0x02, 0xD0, 0x03, 0x29, 0x10, 0xD0, 0x20, 0x46, 0xB1, 0x69, 0x09, 0x07, 0x09, 0x0F, 0x49, 0x1C, 
+0x05, 0xF0, 0x76, 0xFE, 0x0A, 0x49, 0x68, 0x60, 0x4A, 0x10, 0x80, 0x18, 0x05, 0xF0, 0x70, 0xFE, 
+0xA8, 0x60, 0xF8, 0xBD, 0x38, 0x46, 0xEF, 0xE7, 0x06, 0x48, 0xED, 0xE7, 0x01, 0x02, 0x02, 0x04, 
+0x00, 0x02, 0x00, 0x50, 0x00, 0x80, 0x51, 0x01, 0x00, 0x1B, 0xB7, 0x00, 0x04, 0x00, 0x00, 0x20, 
+0x40, 0x42, 0x0F, 0x00, 0x10, 0x27, 0x00, 0x00, 0x06, 0x48, 0x00, 0x47, 0xFE, 0xE7, 0xFE, 0xE7, 
+0xFE, 0xE7, 0xFE, 0xE7, 0xFE, 0xE7, 0xFE, 0xE7, 0x03, 0x48, 0x04, 0x49, 0x02, 0x4A, 0x04, 0x4B, 
+0x70, 0x47, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x0A, 0x00, 0x20, 
+0x00, 0x08, 0x00, 0x20, 0xF6, 0x48, 0x81, 0x68, 0x40, 0x22, 0x91, 0x43, 0x81, 0x60, 0x70, 0x47, 
+0x52, 0x01, 0x0A, 0x43, 0x10, 0x21, 0x0A, 0x43, 0xF1, 0x49, 0x4A, 0x62, 0x8A, 0x68, 0x40, 0x23, 
+0x1A, 0x43, 0x8A, 0x60, 0xCA, 0x69, 0x0C, 0x23, 0x9A, 0x43, 0x02, 0x43, 0xCA, 0x61, 0x70, 0x47, 
+0xEC, 0x49, 0x04, 0x20, 0x08, 0x61, 0xEA, 0x48, 0x01, 0x68, 0xC0, 0x22, 0x11, 0x43, 0x01, 0x60, 
+0x30, 0xBF, 0x70, 0x47, 0xE6, 0x48, 0x01, 0x68, 0xC0, 0x22, 0x11, 0x43, 0x01, 0x60, 0x30, 0xBF, 
+0x70, 0x47, 0xE3, 0x48, 0x00, 0x68, 0x80, 0x07, 0x80, 0x0F, 0x01, 0x28, 0x01, 0xD0, 0x00, 0x20, 
+0x70, 0x47, 0xE1, 0x48, 0x70, 0x47, 0xDE, 0x48, 0x00, 0x68, 0x80, 0x07, 0x80, 0x0F, 0x02, 0x28, 
+0x01, 0xD0, 0x00, 0x20, 0x70, 0x47, 0xDC, 0x48, 0x70, 0x47, 0x10, 0xB5, 0xFF, 0xF7, 0x5D, 0xFF, 
+0xDA, 0x48, 0x00, 0x68, 0x10, 0xBD, 0x10, 0xB5, 0xFF, 0xF7, 0x57, 0xFF, 0xD7, 0x48, 0x00, 0x68, 
+0x10, 0xBD, 0x10, 0xB5, 0xD2, 0x4A, 0x93, 0x69, 0x1B, 0x09, 0x1B, 0x01, 0x0B, 0x43, 0x93, 0x61, 
+0x11, 0x69, 0xC9, 0x08, 0xC9, 0x00, 0x01, 0x43, 0x11, 0x61, 0xFF, 0xF7, 0x46, 0xFF, 0x10, 0xBD, 
+0x10, 0xB5, 0xCF, 0x49, 0xCA, 0x4A, 0x05, 0xE0, 0x0B, 0x46, 0x49, 0x1E, 0x00, 0x2B, 0x01, 0xDC, 
+0x00, 0x20, 0x10, 0xBD, 0xD4, 0x68, 0x03, 0x46, 0xA3, 0x43, 0xF5, 0xD1, 0x01, 0x20, 0x10, 0xBD, 
+0xC3, 0x48, 0x01, 0x6A, 0xC2, 0x01, 0x11, 0x43, 0x01, 0x62, 0x70, 0x47, 0xF3, 0xB5, 0x8B, 0xB0, 
+0x0C, 0x46, 0xFF, 0xF7, 0xF5, 0xFF, 0x0B, 0x98, 0x00, 0x28, 0xBD, 0x48, 0x01, 0x68, 0x13, 0xD0, 
+0x04, 0x22, 0x11, 0x43, 0x01, 0x60, 0x10, 0x20, 0xFF, 0xF7, 0xDA, 0xFF, 0x01, 0x20, 0xC0, 0x04, 
+0x08, 0x90, 0xBC, 0x48, 0x00, 0x90, 0x04, 0x20, 0x09, 0x90, 0xBB, 0x48, 0xBB, 0x49, 0x20, 0x18, 
+0x88, 0x42, 0x0E, 0xD8, 0x00, 0x25, 0x1D, 0xE0, 0x89, 0x08, 0x89, 0x00, 0x49, 0x1C, 0x01, 0x60, 
+0x01, 0x20, 0xFF, 0xF7, 0xC5, 0xFF, 0x00, 0x20, 0x08, 0x90, 0xAF, 0x48, 0x00, 0x90, 0x02, 0x20, 
+0xEA, 0xE7, 0xB3, 0x48, 0xB2, 0x49, 0x20, 0x18, 0x49, 0x42, 0x88, 0x42, 0x02, 0xD8, 0x01, 0x25, 
+0x64, 0x00, 0x07, 0xE0, 0xAF, 0x48, 0xAF, 0x49, 0x20, 0x18, 0x49, 0x42, 0x88, 0x42, 0x7D, 0xD2, 
+0x03, 0x25, 0xA4, 0x00, 0x00, 0x26, 0xF6, 0x43, 0x09, 0x9F, 0x22, 0xE0, 0x39, 0x46, 0x00, 0x98, 
+0x05, 0xF0, 0x96, 0xFD, 0xA8, 0x49, 0x84, 0x46, 0x41, 0x18, 0xA8, 0x48, 0x81, 0x42, 0x17, 0xD2, 
+0xA2, 0x4B, 0x02, 0x22, 0x5B, 0x1C, 0xA0, 0x48, 0x61, 0x46, 0x51, 0x43, 0x40, 0x1C, 0x08, 0x18, 
+0x98, 0x42, 0x09, 0xD8, 0xA1, 0x42, 0x01, 0xD9, 0x08, 0x1B, 0x00, 0xE0, 0x60, 0x1A, 0xB0, 0x42, 
+0x02, 0xD2, 0x06, 0x00, 0x06, 0x92, 0x0C, 0xD0, 0x9D, 0x48, 0x52, 0x1C, 0x82, 0x42, 0xEA, 0xD9, 
+0x7F, 0x1C, 0x21, 0x2F, 0xDA, 0xD9, 0x00, 0x20, 0xC0, 0x43, 0x05, 0x96, 0x01, 0x90, 0x09, 0x9E, 
+0x54, 0xE0, 0x08, 0x98, 0xA9, 0x03, 0x01, 0x43, 0x01, 0x20, 0x7A, 0x02, 0x80, 0x02, 0x10, 0x1A, 
+0x01, 0x43, 0x06, 0x98, 0x80, 0x1E, 0x01, 0x43, 0x85, 0x48, 0x01, 0x62, 0x04, 0x20, 0xFF, 0xF7, 
+0x6F, 0xFF, 0x69, 0x1C, 0x79, 0x43, 0x00, 0x98, 0x05, 0xF0, 0x5A, 0xFD, 0x06, 0x99, 0x48, 0x43, 
+0x0D, 0xB0, 0xF0, 0xBD, 0x31, 0x46, 0x00, 0x98, 0x05, 0xF0, 0x52, 0xFD, 0x86, 0x49, 0x42, 0x18, 
+0x86, 0x49, 0x8A, 0x42, 0x31, 0xD2, 0x02, 0x21, 0x7F, 0x4B, 0x02, 0x46, 0x4A, 0x43, 0x5B, 0x1C, 
+0xD7, 0x18, 0x5B, 0x42, 0x9F, 0x42, 0x24, 0xD8, 0xA2, 0x42, 0x01, 0xD9, 0x12, 0x1B, 0x00, 0xE0, 
+0xA2, 0x1A, 0x01, 0x9B, 0x9A, 0x42, 0x1C, 0xD2, 0x05, 0x9B, 0x0F, 0x46, 0x01, 0x92, 0x9A, 0x42, 
+0x17, 0xD1, 0x08, 0x99, 0xA8, 0x03, 0x08, 0x43, 0x01, 0x21, 0x72, 0x02, 0x89, 0x02, 0x51, 0x1A, 
+0x08, 0x43, 0xB9, 0x1E, 0x08, 0x43, 0x6A, 0x49, 0x08, 0x62, 0x04, 0x20, 0xFF, 0xF7, 0x38, 0xFF, 
+0x69, 0x1C, 0x71, 0x43, 0x00, 0x98, 0x05, 0xF0, 0x23, 0xFD, 0x00, 0xE0, 0x08, 0xE0, 0x78, 0x43, 
+0xC6, 0xE7, 0x6F, 0x4A, 0x49, 0x1C, 0x91, 0x42, 0xCE, 0xD9, 0x76, 0x1C, 0x21, 0x2E, 0xC1, 0xD9, 
+0x0B, 0x98, 0x00, 0x28, 0x0F, 0xD0, 0x6B, 0x49, 0x5D, 0x48, 0x01, 0x62, 0x04, 0x20, 0xFF, 0xF7, 
+0x1F, 0xFF, 0x69, 0xA0, 0x00, 0x68, 0x04, 0x90, 0x59, 0x48, 0x01, 0x6A, 0x00, 0x13, 0x01, 0x42, 
+0x03, 0xD0, 0x00, 0x20, 0xAC, 0xE7, 0x65, 0x49, 0xEE, 0xE7, 0x08, 0x03, 0x01, 0xD5, 0x59, 0x48, 
+0x00, 0xE0, 0x55, 0x48, 0x8A, 0x03, 0xA3, 0xD4, 0x0A, 0x04, 0x92, 0x0F, 0x04, 0xAB, 0x9B, 0x5C, 
+0xCA, 0x05, 0x89, 0x04, 0xD2, 0x0D, 0xC9, 0x0E, 0x92, 0x1C, 0x89, 0x1C, 0x80, 0x08, 0x59, 0x43, 
+0x50, 0x43, 0x05, 0xF0, 0xED, 0xFC, 0x80, 0x00, 0x92, 0xE7, 0xF8, 0xB5, 0x48, 0x4C, 0x05, 0x46, 
+0xE6, 0x68, 0x4F, 0x49, 0x10, 0x20, 0x06, 0x40, 0x49, 0x42, 0x48, 0x10, 0x8D, 0x42, 0x01, 0xD9, 
+0x0D, 0x46, 0x02, 0xE0, 0x85, 0x42, 0x00, 0xD2, 0x05, 0x46, 0x20, 0x68, 0x04, 0x27, 0x38, 0x43, 
+0x20, 0x60, 0x10, 0x20, 0xFF, 0xF7, 0xE4, 0xFE, 0x20, 0x69, 0x07, 0x21, 0x08, 0x43, 0x20, 0x61, 
+0xA0, 0x69, 0x00, 0x09, 0x00, 0x01, 0xA0, 0x61, 0x20, 0x68, 0x80, 0x07, 0x80, 0x0F, 0x01, 0x28, 
+0x0E, 0xD0, 0x69, 0x00, 0x78, 0x04, 0xFF, 0xF7, 0xE9, 0xFE, 0xE6, 0x68, 0x05, 0x46, 0x10, 0x20, 
+0x06, 0x40, 0x01, 0x21, 0x02, 0x20, 0xFF, 0xF7, 0xBC, 0xFE, 0x00, 0x2E, 0x06, 0xD0, 0x08, 0xE0, 
+0x69, 0x00, 0x00, 0x20, 0xFF, 0xF7, 0xDA, 0xFE, 0x05, 0x46, 0xF2, 0xE7, 0x20, 0x68, 0xB8, 0x43, 
+0x20, 0x60, 0x68, 0x08, 0xF8, 0xBD, 0x70, 0xB5, 0x43, 0x0E, 0x1B, 0x07, 0x0E, 0xD0, 0x43, 0x00, 
+0x27, 0x4C, 0x9B, 0x0F, 0x9B, 0x00, 0x10, 0x34, 0x1C, 0x19, 0x23, 0x68, 0xC5, 0x00, 0x2D, 0x0F, 
+0xC6, 0x01, 0xF6, 0x0E, 0xB5, 0x40, 0xAB, 0x43, 0x0B, 0x43, 0x23, 0x60, 0x84, 0x0A, 0x21, 0x06, 
+0x09, 0x0E, 0x0D, 0xD0, 0x01, 0x03, 0x1E, 0x4B, 0x89, 0x0F, 0x89, 0x00, 0x18, 0x33, 0xCB, 0x18, 
+0x19, 0x68, 0x80, 0x05, 0xE4, 0xB2, 0xC0, 0x0E, 0x84, 0x40, 0xA1, 0x43, 0x11, 0x43, 0x19, 0x60, 
+0x70, 0xBD, 0x17, 0x49, 0x0A, 0x69, 0x38, 0x23, 0x9A, 0x43, 0x02, 0x43, 0x0A, 0x61, 0x70, 0x47, 
+0x70, 0xB5, 0x23, 0x4A, 0x00, 0x23, 0x13, 0x61, 0x04, 0x24, 0x08, 0x28, 0x0F, 0xD0, 0x15, 0x69, 
+0xA5, 0x43, 0x15, 0x61, 0x0E, 0x4D, 0x2C, 0x69, 0x38, 0x26, 0xB4, 0x43, 0x04, 0x43, 0x2C, 0x61, 
+0x51, 0x61, 0x93, 0x61, 0x10, 0x69, 0x01, 0x21, 0x08, 0x43, 0x10, 0x61, 0x70, 0xBD, 0x10, 0x69, 
+0x20, 0x43, 0x10, 0x61, 0xF4, 0xE7, 0x16, 0x49, 0x00, 0x20, 0x08, 0x61, 0x70, 0x47, 0x04, 0x49, 
+0x82, 0x07, 0x0A, 0x68, 0x01, 0xD0, 0x92, 0x08, 0x92, 0x00, 0x02, 0x43, 0x0A, 0x60, 0x70, 0x47, 
+0x00, 0x02, 0x00, 0x50, 0x00, 0xED, 0x00, 0xE0, 0x00, 0x1B, 0xB7, 0x00, 0x08, 0x00, 0x00, 0x20, 
+0x80, 0xF5, 0x20, 0x00, 0x00, 0x80, 0x51, 0x01, 0xFF, 0x1E, 0x0A, 0xFA, 0xFF, 0xE0, 0xF5, 0x05, 
+0x80, 0x0F, 0x05, 0xFD, 0xC0, 0x87, 0x82, 0xFE, 0xFF, 0x95, 0xE7, 0xFF, 0xBF, 0x77, 0xCC, 0x00, 
+0x01, 0x02, 0x00, 0x00, 0x18, 0x44, 0x08, 0x00, 0x01, 0x02, 0x02, 0x04, 0x16, 0x40, 0x00, 0x00, 
+0x00, 0xE0, 0x00, 0xE0, 0x15, 0x49, 0x0A, 0x68, 0x82, 0x43, 0x0A, 0x60, 0x70, 0x47, 0xC1, 0x0F, 
+0x8A, 0x00, 0x12, 0x49, 0x51, 0x18, 0x4A, 0x68, 0xC3, 0x06, 0xDB, 0x0E, 0x01, 0x20, 0x98, 0x40, 
+0x02, 0x43, 0x4A, 0x60, 0x70, 0x47, 0xC1, 0x0F, 0x8A, 0x00, 0x0C, 0x49, 0x51, 0x18, 0x4A, 0x68, 
+0xC3, 0x06, 0xDB, 0x0E, 0x01, 0x20, 0x98, 0x40, 0x82, 0x43, 0x4A, 0x60, 0x70, 0x47, 0x08, 0x49, 
+0x09, 0x68, 0x48, 0x43, 0x07, 0x49, 0x48, 0x61, 0x00, 0x20, 0x88, 0x61, 0x05, 0x22, 0x0A, 0x61, 
+0x0A, 0x69, 0xD2, 0x03, 0xFC, 0xD5, 0x08, 0x61, 0x70, 0x47, 0x00, 0x00, 0x00, 0x02, 0x00, 0x50, 
+0x0C, 0x00, 0x00, 0x20, 0x00, 0xE0, 0x00, 0xE0, 0xF0, 0xB5, 0x00, 0x23, 0x01, 0x25, 0x94, 0x46, 
+0x03, 0x27, 0x2A, 0x46, 0x9A, 0x40, 0x0A, 0x42, 0x09, 0xD0, 0x06, 0x68, 0x5C, 0x00, 0x3A, 0x46, 
+0xA2, 0x40, 0x96, 0x43, 0x22, 0x46, 0x64, 0x46, 0x94, 0x40, 0x26, 0x43, 0x06, 0x60, 0x5B, 0x1C, 
+0x08, 0x2B, 0xEE, 0xD3, 0xF0, 0xBD, 0x10, 0xB5, 0x83, 0x69, 0x14, 0x0E, 0x8C, 0x40, 0x23, 0x43, 
+0x83, 0x61, 0xC3, 0x69, 0x12, 0x02, 0x12, 0x0A, 0x8A, 0x40, 0x13, 0x43, 0xC3, 0x61, 0x10, 0xBD, 
+0x82, 0x69, 0x01, 0x23, 0x8B, 0x40, 0x9A, 0x43, 0x82, 0x61, 0xC2, 0x69, 0x02, 0x4B, 0x8B, 0x40, 
+0x9A, 0x43, 0xC2, 0x61, 0x70, 0x47, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x70, 0xB5, 0x60, 0x4D, 
+0x04, 0x46, 0x28, 0x68, 0x0A, 0x22, 0x89, 0x00, 0x50, 0x43, 0x05, 0xF0, 0xC9, 0xFB, 0x40, 0x1D, 
+0x0A, 0x21, 0x05, 0xF0, 0xC5, 0xFB, 0x40, 0x1E, 0x20, 0x61, 0x21, 0x68, 0x40, 0x22, 0x11, 0x43, 
+0x21, 0x60, 0x81, 0x00, 0x09, 0x1D, 0x28, 0x68, 0x05, 0xF0, 0xBA, 0xFB, 0x70, 0xBD, 0x05, 0x21, 
+0x54, 0x4A, 0x09, 0x07, 0xCB, 0x68, 0x90, 0x42, 0x01, 0xD1, 0x82, 0x15, 0x01, 0xE0, 0x01, 0x22, 
+0x52, 0x02, 0x13, 0x43, 0xCB, 0x60, 0xCB, 0x68, 0x93, 0x43, 0xCB, 0x60, 0x01, 0x68, 0x40, 0x22, 
+0x91, 0x43, 0x01, 0x60, 0x70, 0x47, 0x41, 0x69, 0x01, 0x22, 0x11, 0x43, 0x41, 0x61, 0x70, 0x47, 
+0x30, 0xB5, 0x00, 0x24, 0x03, 0x9D, 0x00, 0x29, 0x00, 0xD0, 0x20, 0x24, 0x00, 0x2A, 0x01, 0xD0, 
+0x10, 0x21, 0x0C, 0x43, 0x00, 0x2B, 0x01, 0xD0, 0x08, 0x21, 0x0C, 0x43, 0x00, 0x2D, 0x01, 0xD0, 
+0x04, 0x21, 0x0C, 0x43, 0x01, 0x68, 0x3C, 0x22, 0x91, 0x43, 0x21, 0x43, 0x01, 0x60, 0x30, 0xBD, 
+0x01, 0x68, 0x80, 0x22, 0x91, 0x43, 0x01, 0x60, 0x70, 0x47, 0x01, 0x68, 0x80, 0x22, 0x11, 0x43, 
+0x01, 0x60, 0x70, 0x47, 0x10, 0xB5, 0x00, 0x69, 0x81, 0x00, 0x35, 0x48, 0x09, 0x1D, 0x00, 0x68, 
+0x05, 0xF0, 0x76, 0xFB, 0x10, 0xBD, 0x70, 0xB5, 0x05, 0x46, 0x31, 0x48, 0x0A, 0x22, 0x00, 0x68, 
+0x89, 0x00, 0x04, 0x46, 0x50, 0x43, 0x05, 0xF0, 0x6B, 0xFB, 0x40, 0x1D, 0x0A, 0x21, 0x05, 0xF0, 
+0x67, 0xFB, 0x40, 0x1E, 0x28, 0x61, 0x81, 0x00, 0x09, 0x1D, 0x20, 0x46, 0x05, 0xF0, 0x60, 0xFB, 
+0x70, 0xBD, 0x00, 0x68, 0x00, 0x07, 0xC0, 0x0F, 0x70, 0x47, 0xC0, 0x68, 0x70, 0x47, 0x80, 0x68, 
+0x70, 0x47, 0x81, 0x60, 0x70, 0x47, 0x52, 0x00, 0x1A, 0x43, 0x00, 0x29, 0x05, 0xD0, 0x01, 0x29, 
+0x05, 0xD0, 0x02, 0x29, 0x05, 0xD0, 0x03, 0x29, 0x05, 0xD0, 0x42, 0x60, 0x70, 0x47, 0x82, 0x61, 
+0x70, 0x47, 0xC2, 0x61, 0x70, 0x47, 0x02, 0x62, 0x70, 0x47, 0x52, 0x00, 0x00, 0x29, 0x05, 0xD0, 
+0x01, 0x29, 0x05, 0xD0, 0x02, 0x29, 0x05, 0xD0, 0x03, 0x29, 0x05, 0xD0, 0x42, 0x62, 0x70, 0x47, 
+0x82, 0x62, 0x70, 0x47, 0xC2, 0x62, 0x70, 0x47, 0x02, 0x63, 0x70, 0x47, 0x02, 0x22, 0x00, 0x29, 
+0x41, 0x69, 0x01, 0xD0, 0x11, 0x43, 0x00, 0xE0, 0x91, 0x43, 0x41, 0x61, 0x41, 0x69, 0x04, 0x22, 
+0x11, 0x43, 0x41, 0x61, 0x70, 0x47, 0x41, 0x69, 0x04, 0x22, 0x91, 0x43, 0x41, 0x61, 0x70, 0x47, 
+0x08, 0x49, 0x88, 0x42, 0x03, 0xD1, 0xC1, 0x6B, 0x01, 0x22, 0x11, 0x43, 0xC1, 0x63, 0x70, 0x47, 
+0x04, 0x49, 0x88, 0x42, 0x03, 0xD1, 0xC1, 0x6B, 0x49, 0x08, 0x49, 0x00, 0xC1, 0x63, 0x70, 0x47, 
+0x08, 0x00, 0x00, 0x20, 0x00, 0x00, 0x02, 0x40, 0x10, 0xB5, 0x04, 0x46, 0x01, 0x68, 0x4A, 0xA0, 
+0x05, 0xF0, 0x10, 0xF9, 0x4B, 0xA0, 0x61, 0x68, 0x05, 0xF0, 0x0C, 0xF9, 0x4C, 0xA0, 0xA1, 0x68, 
+0x05, 0xF0, 0x08, 0xF9, 0x4D, 0xA0, 0xE1, 0x68, 0x05, 0xF0, 0x04, 0xF9, 0x4E, 0xA0, 0x21, 0x69, 
+0x05, 0xF0, 0x00, 0xF9, 0x4F, 0xA0, 0x61, 0x69, 0x05, 0xF0, 0xFC, 0xF8, 0x50, 0xA0, 0xA1, 0x69, 
+0x05, 0xF0, 0xF8, 0xF8, 0x51, 0xA0, 0xE1, 0x69, 0x05, 0xF0, 0xF4, 0xF8, 0x10, 0xBD, 0x04, 0x46, 
+0x51, 0xA0, 0x05, 0xF0, 0xEF, 0xF8, 0x20, 0x46, 0xFF, 0xF7, 0xD6, 0xFF, 0xFE, 0xE7, 0x54, 0x49, 
+0x8A, 0x69, 0x12, 0x02, 0xFC, 0xD4, 0x08, 0x60, 0x0A, 0x28, 0x04, 0xD1, 0x88, 0x69, 0x00, 0x02, 
+0xFC, 0xD4, 0x0D, 0x20, 0x08, 0x60, 0x70, 0x47, 0x70, 0xB5, 0x4F, 0x4C, 0x4D, 0x4D, 0x21, 0x78, 
+0x00, 0x26, 0x68, 0x54, 0x49, 0x1C, 0xC9, 0xB2, 0x21, 0x70, 0x6E, 0x54, 0x49, 0x1C, 0x10, 0x29, 
+0x03, 0xD2, 0x0A, 0x28, 0x01, 0xD0, 0x00, 0x28, 0x10, 0xD1, 0x00, 0x22, 0x45, 0x49, 0x04, 0x20, 
+0xFF, 0xF7, 0xEC, 0xFB, 0x00, 0x28, 0x08, 0xD1, 0x00, 0x23, 0x03, 0xE0, 0xE8, 0x5C, 0xFF, 0xF7, 
+0xD6, 0xFF, 0x5B, 0x1C, 0x20, 0x78, 0x83, 0x42, 0xF8, 0xDB, 0x26, 0x70, 0x70, 0xBD, 0x38, 0xB5, 
+0xFF, 0x25, 0x02, 0x35, 0x3A, 0x4C, 0x09, 0xE0, 0x00, 0x98, 0x00, 0x28, 0x06, 0xD0, 0x6A, 0x46, 
+0x00, 0x21, 0x07, 0x20, 0xFF, 0xF7, 0xD2, 0xFB, 0x00, 0x98, 0x0A, 0xE0, 0x6A, 0x46, 0x00, 0x21, 
+0x28, 0x46, 0xFF, 0xF7, 0xCB, 0xFB, 0x00, 0x28, 0xEE, 0xD1, 0xA0, 0x69, 0x40, 0x04, 0xFC, 0xD4, 
+0x20, 0x68, 0xC0, 0xB2, 0x38, 0xBD, 0x2E, 0x48, 0x80, 0x69, 0x40, 0x04, 0xC0, 0x17, 0x40, 0x1C, 
+0x70, 0x47, 0x2B, 0x48, 0x80, 0x69, 0xC0, 0x00, 0xC0, 0x0F, 0x70, 0x47, 0xB4, 0xE7, 0x10, 0xB5, 
+0x04, 0x46, 0xFF, 0xF7, 0xB1, 0xFF, 0x20, 0x46, 0x10, 0xBD, 0xD0, 0xE7, 0x00, 0x20, 0xC0, 0x43, 
+0x70, 0x47, 0x00, 0x22, 0x25, 0x49, 0x18, 0x20, 0xFF, 0xF7, 0xA8, 0xFB, 0x01, 0xE0, 0xFF, 0xF7, 
+0xE8, 0xFF, 0x00, 0x28, 0xFB, 0xD0, 0xFE, 0xE7, 0x72, 0x30, 0x20, 0x20, 0x3D, 0x20, 0x30, 0x78, 
+0x25, 0x78, 0x0A, 0x00, 0x72, 0x31, 0x20, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 
+0x72, 0x32, 0x20, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x72, 0x33, 0x20, 0x20, 
+0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x72, 0x31, 0x32, 0x20, 0x3D, 0x20, 0x30, 0x78, 
+0x25, 0x78, 0x0A, 0x00, 0x6C, 0x72, 0x20, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 
+0x70, 0x63, 0x20, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x70, 0x73, 0x72, 0x20, 
+0x3D, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x49, 0x6E, 0x20, 0x48, 0x61, 0x72, 0x64, 0x20, 
+0x46, 0x61, 0x75, 0x6C, 0x74, 0x20, 0x48, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, 0x0A, 0x00, 0x00, 
+0x00, 0x00, 0x05, 0x40, 0x0C, 0x02, 0x00, 0x20, 0x10, 0x00, 0x00, 0x20, 0x26, 0x00, 0x02, 0x00, 
+0x08, 0xB5, 0xA1, 0xA0, 0x00, 0x68, 0x00, 0x90, 0xA0, 0x48, 0x01, 0x6A, 0x00, 0x13, 0x01, 0x42, 
+0x01, 0xD0, 0x00, 0x20, 0x08, 0xBD, 0x08, 0x03, 0x01, 0xD5, 0x9D, 0x48, 0x00, 0xE0, 0x9D, 0x48, 
+0x8A, 0x03, 0xF7, 0xD4, 0x0A, 0x04, 0x92, 0x0F, 0x6B, 0x46, 0x9B, 0x5C, 0xCA, 0x05, 0x89, 0x04, 
+0xD2, 0x0D, 0xC9, 0x0E, 0x92, 0x1C, 0x89, 0x1C, 0x80, 0x08, 0x59, 0x43, 0x50, 0x43, 0x05, 0xF0, 
+0x0F, 0xFA, 0x80, 0x00, 0x08, 0xBD, 0x4A, 0x05, 0x03, 0xD5, 0x60, 0x22, 0x82, 0x61, 0x08, 0x22, 
+0x82, 0x61, 0x0A, 0x05, 0x01, 0xD5, 0x01, 0x22, 0x42, 0x61, 0x8A, 0x04, 0x01, 0xD5, 0x8E, 0x4A, 
+0x82, 0x61, 0xC9, 0x04, 0x01, 0xD5, 0x10, 0x21, 0xC1, 0x61, 0x70, 0x47, 0x00, 0x21, 0x41, 0x60, 
+0x70, 0x47, 0x41, 0x68, 0x03, 0x22, 0x12, 0x03, 0x91, 0x43, 0x41, 0x60, 0x70, 0x47, 0x42, 0x68, 
+0x8A, 0x43, 0x42, 0x60, 0x70, 0x47, 0x01, 0x69, 0x01, 0x22, 0x52, 0x02, 0x11, 0x43, 0x01, 0x61, 
+0x01, 0x69, 0x02, 0x22, 0x91, 0x43, 0x01, 0x61, 0x41, 0x69, 0xD2, 0x01, 0x11, 0x43, 0x41, 0x61, 
+0x41, 0x68, 0x03, 0x22, 0x12, 0x03, 0x11, 0x43, 0x41, 0x60, 0x70, 0x47, 0x42, 0x68, 0x0A, 0x43, 
+0x42, 0x60, 0x70, 0x47, 0x70, 0xB5, 0x75, 0x4E, 0x0D, 0x46, 0x04, 0x46, 0x71, 0x69, 0x00, 0x20, 
+0x89, 0x01, 0x89, 0x0F, 0x20, 0x63, 0x03, 0x23, 0xE3, 0x60, 0xA0, 0x60, 0x00, 0x29, 0x1F, 0xD0, 
+0x01, 0x29, 0x1F, 0xD0, 0x02, 0x29, 0x01, 0xD3, 0x70, 0x48, 0x00, 0x68, 0xB1, 0x69, 0x09, 0x05, 
+0x09, 0x0F, 0x49, 0x1C, 0x05, 0xF0, 0xBC, 0xF9, 0x06, 0x46, 0x00, 0x2D, 0x19, 0xD0, 0x68, 0x08, 
+0x80, 0x19, 0x29, 0x46, 0x05, 0xF0, 0xB4, 0xF9, 0x69, 0x49, 0x80, 0x1E, 0x88, 0x42, 0x0C, 0xD9, 
+0xE8, 0x00, 0x80, 0x19, 0x29, 0x46, 0x05, 0xF0, 0xAB, 0xF9, 0x00, 0x09, 0x80, 0x1E, 0x07, 0xE0, 
+0x60, 0x48, 0xE3, 0xE7, 0xFF, 0xF7, 0x74, 0xFF, 0xE0, 0xE7, 0x03, 0x21, 0x09, 0x07, 0x08, 0x43, 
+0x60, 0x62, 0x70, 0xBD, 0x70, 0xB5, 0x04, 0x46, 0x00, 0x20, 0x01, 0x25, 0xAD, 0x07, 0x0C, 0xE0, 
+0x00, 0x23, 0x04, 0xE0, 0x5B, 0x1C, 0xAB, 0x42, 0x01, 0xD3, 0x00, 0x20, 0x70, 0xBD, 0xA6, 0x69, 
+0x76, 0x04, 0xF7, 0xD4, 0x23, 0x68, 0x0B, 0x54, 0x40, 0x1C, 0x90, 0x42, 0xF0, 0xD3, 0x70, 0xBD, 
+0xFF, 0xB5, 0x4E, 0x4F, 0x0D, 0x46, 0x04, 0x46, 0x79, 0x69, 0x81, 0xB0, 0x16, 0x46, 0x00, 0x20, 
+0x89, 0x01, 0x89, 0x0F, 0x1F, 0xD0, 0x01, 0x29, 0x1F, 0xD0, 0x02, 0x29, 0x01, 0xD3, 0x4B, 0x48, 
+0x00, 0x68, 0xB9, 0x69, 0x09, 0x05, 0x09, 0x0F, 0x49, 0x1C, 0x05, 0xF0, 0x71, 0xF9, 0x07, 0x46, 
+0x00, 0x2D, 0x19, 0xD0, 0x68, 0x08, 0xC0, 0x19, 0x29, 0x46, 0x05, 0xF0, 0x69, 0xF9, 0x44, 0x49, 
+0x80, 0x1E, 0x88, 0x42, 0x0C, 0xD9, 0xE8, 0x00, 0xC0, 0x19, 0x29, 0x46, 0x05, 0xF0, 0x60, 0xF9, 
+0x00, 0x09, 0x80, 0x1E, 0x07, 0xE0, 0x3B, 0x48, 0xE3, 0xE7, 0xFF, 0xF7, 0x29, 0xFF, 0xE0, 0xE7, 
+0x03, 0x21, 0x09, 0x07, 0x08, 0x43, 0x60, 0x62, 0x04, 0x98, 0x06, 0x43, 0x0A, 0x98, 0x06, 0x43, 
+0xE6, 0x60, 0x05, 0xB0, 0xF0, 0xBD, 0x02, 0x6A, 0x12, 0x0A, 0x12, 0x02, 0x0A, 0x43, 0x02, 0x62, 
+0x41, 0x68, 0x01, 0x22, 0xD2, 0x02, 0x11, 0x43, 0x41, 0x60, 0x70, 0x47, 0xF8, 0xB5, 0x2B, 0x4D, 
+0x0E, 0x46, 0x04, 0x46, 0x69, 0x69, 0x17, 0x46, 0x00, 0x20, 0x89, 0x01, 0x89, 0x0F, 0x21, 0xD0, 
+0x01, 0x29, 0x21, 0xD0, 0x02, 0x29, 0x01, 0xD3, 0x28, 0x48, 0x00, 0x68, 0xA9, 0x69, 0x09, 0x05, 
+0x09, 0x0F, 0x49, 0x1C, 0x05, 0xF0, 0x2C, 0xF9, 0xF1, 0x00, 0x08, 0x18, 0x31, 0x46, 0x05, 0xF0, 
+0x27, 0xF9, 0x00, 0x09, 0x80, 0x1E, 0x60, 0x62, 0xA0, 0x6A, 0x20, 0x21, 0x88, 0x43, 0xA0, 0x62, 
+0xA0, 0x6A, 0x40, 0x21, 0x08, 0x43, 0xA0, 0x62, 0x02, 0x21, 0xA0, 0x6A, 0x00, 0x2F, 0x06, 0xD0, 
+0x08, 0x43, 0x05, 0xE0, 0x17, 0x48, 0xE1, 0xE7, 0xFF, 0xF7, 0xE2, 0xFE, 0xDE, 0xE7, 0x88, 0x43, 
+0xA0, 0x62, 0x21, 0x63, 0xF8, 0xBD, 0x03, 0x23, 0x03, 0x63, 0x00, 0x23, 0xC3, 0x62, 0xC3, 0x6A, 
+0x12, 0x06, 0x0A, 0x43, 0x13, 0x43, 0xC3, 0x62, 0x70, 0x47, 0x70, 0xB5, 0x04, 0x46, 0x00, 0x20, 
+0x01, 0x25, 0xAD, 0x07, 0x0C, 0xE0, 0x00, 0x23, 0x04, 0xE0, 0x5B, 0x1C, 0xAB, 0x42, 0x01, 0xD3, 
+0x00, 0x20, 0x70, 0xBD, 0xA6, 0x69, 0xF6, 0x00, 0xF7, 0xD5, 0x0B, 0x5C, 0x23, 0x60, 0x40, 0x1C, 
+0x90, 0x42, 0xF0, 0xD1, 0x70, 0xBD, 0x00, 0x00, 0x01, 0x02, 0x02, 0x04, 0x00, 0x02, 0x00, 0x50, 
+0x00, 0x80, 0x51, 0x01, 0x00, 0x1B, 0xB7, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 
+0xFF, 0xFF, 0x00, 0x00, 0x05, 0x21, 0x09, 0x07, 0x4A, 0x68, 0x02, 0x43, 0x4A, 0x60, 0x70, 0x47, 
+0x05, 0x20, 0x00, 0x07, 0x80, 0x69, 0x40, 0x06, 0xC0, 0x0F, 0x70, 0x47, 0x05, 0x20, 0x00, 0x07, 
+0x40, 0x68, 0x70, 0x47, 0x22, 0x48, 0x00, 0x68, 0x00, 0x06, 0x00, 0x0E, 0x01, 0xD0, 0x00, 0x20, 
+0x70, 0x47, 0x01, 0x20, 0x70, 0x47, 0x05, 0x20, 0x00, 0x07, 0x00, 0x68, 0x70, 0x47, 0x05, 0x20, 
+0x00, 0x07, 0x81, 0x68, 0x01, 0x22, 0x11, 0x43, 0x81, 0x60, 0x70, 0x47, 0x05, 0x20, 0x00, 0x07, 
+0x81, 0x68, 0x02, 0x22, 0x11, 0x43, 0x81, 0x60, 0x70, 0x47, 0x01, 0x0E, 0x8A, 0x00, 0x05, 0x21, 
+0x09, 0x07, 0x52, 0x18, 0x93, 0x68, 0x01, 0x21, 0x81, 0x40, 0x0B, 0x43, 0x93, 0x60, 0x90, 0x68, 
+0x88, 0x43, 0x90, 0x60, 0x70, 0x47, 0x10, 0xB5, 0x05, 0x22, 0x12, 0x07, 0x93, 0x69, 0x01, 0x24, 
+0x23, 0x43, 0x93, 0x61, 0x93, 0x69, 0x08, 0x24, 0xA3, 0x43, 0x03, 0x43, 0x93, 0x61, 0x90, 0x69, 
+0x06, 0x23, 0x98, 0x43, 0x08, 0x43, 0x90, 0x61, 0x10, 0xBD, 0x05, 0x20, 0x00, 0x07, 0x81, 0x69, 
+0x49, 0x08, 0x49, 0x00, 0x81, 0x61, 0x81, 0x69, 0x06, 0x22, 0x11, 0x43, 0x81, 0x61, 0x70, 0x47, 
+0x00, 0x01, 0x00, 0x50, 0x6A, 0x48, 0x01, 0x68, 0x49, 0x08, 0x49, 0x00, 0x01, 0x60, 0x70, 0x47, 
+0x67, 0x49, 0x22, 0x22, 0xCA, 0x60, 0x48, 0x60, 0x01, 0x20, 0x08, 0x61, 0x08, 0x69, 0xC0, 0x07, 
+0xFC, 0xD1, 0x08, 0x68, 0x40, 0x06, 0x06, 0xD5, 0x08, 0x68, 0x40, 0x22, 0x10, 0x43, 0x08, 0x60, 
+0x00, 0x20, 0xC0, 0x43, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47, 0x5D, 0x48, 0x00, 0x68, 0x80, 0x07, 
+0x01, 0xD5, 0x01, 0x20, 0x70, 0x47, 0x00, 0x20, 0x70, 0x47, 0x59, 0x48, 0x01, 0x68, 0x01, 0x22, 
+0x11, 0x43, 0x01, 0x60, 0x70, 0x47, 0x56, 0x49, 0x00, 0x22, 0xCA, 0x60, 0x48, 0x60, 0x01, 0x20, 
+0x08, 0x61, 0x08, 0x69, 0xC0, 0x07, 0xFC, 0xD1, 0x88, 0x68, 0x70, 0x47, 0x50, 0x48, 0x0B, 0x21, 
+0xC1, 0x60, 0x00, 0x21, 0x41, 0x60, 0x01, 0x21, 0x01, 0x61, 0x01, 0x69, 0xC9, 0x07, 0xFC, 0xD1, 
+0x80, 0x68, 0x70, 0x47, 0x4A, 0x48, 0x0C, 0x21, 0xC1, 0x60, 0x04, 0x21, 0x41, 0x60, 0x01, 0x21, 
+0x01, 0x61, 0x01, 0x69, 0xC9, 0x07, 0xFC, 0xD1, 0x80, 0x68, 0x70, 0x47, 0x44, 0x49, 0x04, 0x22, 
+0xCA, 0x60, 0x80, 0x00, 0x10, 0x30, 0x48, 0x60, 0x01, 0x20, 0x08, 0x61, 0x08, 0x69, 0xC0, 0x07, 
+0xFC, 0xD1, 0x88, 0x68, 0x70, 0x47, 0x3E, 0x49, 0x04, 0x22, 0xCA, 0x60, 0x80, 0x00, 0x48, 0x60, 
+0x01, 0x20, 0x08, 0x61, 0x08, 0x69, 0xC0, 0x07, 0xFC, 0xD1, 0x88, 0x68, 0x70, 0x47, 0x38, 0x48, 
+0x40, 0x69, 0x70, 0x47, 0x36, 0x49, 0x2E, 0x22, 0xCA, 0x60, 0x48, 0x60, 0x01, 0x20, 0x08, 0x61, 
+0x08, 0x69, 0xC0, 0x07, 0xFC, 0xD1, 0x70, 0x47, 0x31, 0x48, 0x40, 0x30, 0x00, 0x68, 0x31, 0x49, 
+0x08, 0x40, 0x70, 0x47, 0x2E, 0x4A, 0x21, 0x23, 0xD3, 0x60, 0x50, 0x60, 0x91, 0x60, 0x01, 0x20, 
+0x10, 0x61, 0x10, 0x69, 0xC0, 0x07, 0xFC, 0xD1, 0x70, 0x47, 0x10, 0xB5, 0x03, 0x46, 0x0C, 0x00, 
+0x0A, 0xD0, 0x03, 0x20, 0x00, 0x05, 0xFF, 0xF7, 0x9E, 0xFF, 0x18, 0x60, 0x02, 0x2C, 0x03, 0xD3, 
+0x25, 0x48, 0xFF, 0xF7, 0x98, 0xFF, 0x58, 0x60, 0x00, 0x20, 0x10, 0xBD, 0xF0, 0xB5, 0x05, 0x46, 
+0x0E, 0x00, 0x15, 0xD0, 0x1E, 0x4C, 0x20, 0x68, 0x10, 0x27, 0x38, 0x43, 0x20, 0x60, 0xA3, 0x01, 
+0x18, 0x46, 0xFF, 0xF7, 0x65, 0xFF, 0x18, 0x46, 0x29, 0x68, 0xFF, 0xF7, 0xD3, 0xFF, 0x02, 0x2E, 
+0x06, 0xD3, 0x19, 0x48, 0x69, 0x68, 0xFF, 0xF7, 0xCD, 0xFF, 0x20, 0x68, 0xB8, 0x43, 0x20, 0x60, 
+0x00, 0x20, 0xF0, 0xBD, 0x70, 0xB5, 0x12, 0x4B, 0x2D, 0x24, 0xDC, 0x60, 0x58, 0x60, 0x99, 0x60, 
+0x01, 0x24, 0x1C, 0x61, 0x19, 0x69, 0xC9, 0x07, 0xFC, 0xD1, 0x19, 0x68, 0x00, 0x25, 0x4E, 0x06, 
+0x40, 0x21, 0xED, 0x43, 0x00, 0x2E, 0x09, 0xDB, 0x0D, 0x26, 0xDE, 0x60, 0x58, 0x60, 0x1C, 0x61, 
+0x18, 0x69, 0xC0, 0x07, 0xFC, 0xD1, 0x18, 0x68, 0x40, 0x06, 0x04, 0xD5, 0x18, 0x68, 0x08, 0x43, 
+0x18, 0x60, 0x28, 0x46, 0x70, 0xBD, 0x98, 0x68, 0x10, 0x60, 0x00, 0x20, 0x70, 0xBD, 0x00, 0x00, 
+0x00, 0xC0, 0x00, 0x50, 0x00, 0xFF, 0xFF, 0x0F, 0x04, 0x00, 0x30, 0x00, 0x52, 0x00, 0x02, 0x43, 
+0x18, 0x01, 0x02, 0x43, 0x80, 0x20, 0x02, 0x43, 0x0A, 0x48, 0x02, 0x60, 0x41, 0x60, 0x70, 0x47, 
+0x08, 0x49, 0x00, 0x20, 0x08, 0x60, 0x70, 0x47, 0x06, 0x48, 0x01, 0x68, 0x2C, 0x22, 0x91, 0x43, 
+0x40, 0x22, 0x11, 0x43, 0x01, 0x60, 0x70, 0x47, 0x02, 0x48, 0x01, 0x68, 0x6C, 0x22, 0x91, 0x43, 
+0x01, 0x60, 0x70, 0x47, 0x00, 0x40, 0x00, 0x40, 0x10, 0xB5, 0x67, 0x48, 0x41, 0x68, 0x67, 0x4A, 
+0x11, 0x40, 0x41, 0x60, 0x41, 0x68, 0x03, 0x22, 0x11, 0x43, 0x41, 0x60, 0x64, 0x4C, 0x20, 0x68, 
+0x90, 0x43, 0x20, 0x60, 0x20, 0x68, 0x01, 0x21, 0x08, 0x43, 0x20, 0x60, 0x08, 0x46, 0xFF, 0xF7, 
+0x87, 0xF9, 0x20, 0x69, 0xC0, 0x08, 0xC0, 0x00, 0x20, 0x61, 0x20, 0x69, 0x20, 0x61, 0x10, 0xBD, 
+0x10, 0xB5, 0x5C, 0xA0, 0x04, 0xF0, 0x76, 0xFD, 0x00, 0xF0, 0xA1, 0xF8, 0xFF, 0xF7, 0xDC, 0xFF, 
+0xFF, 0xF7, 0xBB, 0xF8, 0x54, 0x49, 0x00, 0x20, 0xC0, 0x31, 0x08, 0x60, 0x10, 0xBD, 0x10, 0xB5, 
+0x59, 0xA0, 0x04, 0xF0, 0x67, 0xFD, 0x00, 0xF0, 0x92, 0xF8, 0x5B, 0x49, 0x08, 0x68, 0xFC, 0x22, 
+0x10, 0x40, 0x02, 0x22, 0x10, 0x43, 0x08, 0x60, 0x59, 0x49, 0x58, 0x48, 0xC8, 0x60, 0x4A, 0x49, 
+0x00, 0x20, 0xC0, 0x31, 0x08, 0x60, 0x10, 0xBD, 0x10, 0xB5, 0x56, 0xA0, 0x04, 0xF0, 0x52, 0xFD, 
+0x00, 0xF0, 0x7D, 0xF8, 0x50, 0x49, 0x08, 0x68, 0xFC, 0x22, 0x10, 0x40, 0x02, 0x22, 0x10, 0x43, 
+0x08, 0x60, 0xFF, 0xF7, 0x83, 0xFE, 0x40, 0x49, 0x00, 0x20, 0xC0, 0x31, 0x08, 0x60, 0x10, 0xBD, 
+0x70, 0x47, 0x10, 0xB5, 0x02, 0xF0, 0xFF, 0xFC, 0x00, 0xF0, 0x10, 0xFC, 0x04, 0xF0, 0xD5, 0xF9, 
+0x00, 0xF0, 0x33, 0xF9, 0x02, 0xF0, 0x4B, 0xFE, 0x04, 0xF0, 0x59, 0xF8, 0x10, 0xBD, 0x10, 0xB5, 
+0x04, 0xF0, 0x00, 0xFB, 0x04, 0xF0, 0x7E, 0xFC, 0x04, 0xF0, 0xFC, 0xFC, 0x10, 0xBD, 0x10, 0xB5, 
+0x02, 0xF0, 0x83, 0xFD, 0x02, 0xF0, 0x21, 0xFF, 0x03, 0xF0, 0x52, 0xFE, 0x03, 0xF0, 0xA4, 0xFF, 
+0x10, 0xBD, 0x10, 0xB5, 0x3F, 0x4C, 0xA0, 0x79, 0x40, 0x06, 0x80, 0x0F, 0x03, 0xD0, 0x00, 0x21, 
+0x3D, 0x48, 0x04, 0xF0, 0xC8, 0xF8, 0x04, 0xF0, 0xD8, 0xF8, 0xA0, 0x79, 0xC0, 0x07, 0x02, 0xD0, 
+0x02, 0xF0, 0xA2, 0xFE, 0x10, 0xBD, 0x02, 0xF0, 0x97, 0xFE, 0x10, 0xBD, 0x10, 0xB5, 0x37, 0x48, 
+0x00, 0x24, 0x01, 0x68, 0x01, 0x29, 0x02, 0xD1, 0x04, 0x60, 0x02, 0xF0, 0x85, 0xF9, 0x34, 0x48, 
+0x01, 0x68, 0x01, 0x29, 0x0B, 0xD1, 0x33, 0x49, 0x0A, 0x68, 0x01, 0x2A, 0x07, 0xD1, 0x04, 0x60, 
+0x2C, 0x48, 0x0C, 0x60, 0xC0, 0x79, 0x80, 0x07, 0x01, 0xD5, 0x03, 0xF0, 0xB8, 0xFA, 0x04, 0xF0, 
+0xB4, 0xF8, 0x10, 0xBD, 0x10, 0xB5, 0xFF, 0xF7, 0x73, 0xFF, 0xFF, 0xF7, 0xAA, 0xFF, 0xFF, 0xF7, 
+0xB6, 0xFF, 0xFF, 0xF7, 0xBC, 0xFF, 0x28, 0xA0, 0x04, 0xF0, 0xE4, 0xFC, 0x2E, 0x48, 0x01, 0x68, 
+0x2E, 0xA0, 0x04, 0xF0, 0xDF, 0xFC, 0xFF, 0xF7, 0xBC, 0xFF, 0x02, 0xF0, 0xD2, 0xFA, 0x00, 0xF0, 
+0xC8, 0xF8, 0x10, 0xBD, 0xFF, 0xF7, 0xE6, 0xFF, 0xFF, 0xF7, 0xC8, 0xFF, 0xFC, 0xE7, 0x06, 0x48, 
+0x10, 0xB5, 0x59, 0x21, 0xC0, 0x30, 0x16, 0x22, 0x88, 0x23, 0x01, 0x60, 0x02, 0x60, 0x03, 0x60, 
+0x04, 0x68, 0x00, 0x2C, 0xF9, 0xD0, 0x10, 0xBD, 0x40, 0x00, 0x00, 0x50, 0xFC, 0xFC, 0xFF, 0xFF, 
+0x00, 0x02, 0x00, 0x50, 0x43, 0x6C, 0x6F, 0x63, 0x6B, 0x5F, 0x49, 0x6E, 0x69, 0x74, 0x2D, 0x2D, 
+0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x0A, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x20, 0x4C, 
+0x44, 0x52, 0x4F, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x50, 0x04, 0x00, 0xFA, 0x05, 
+0x00, 0xED, 0x00, 0xE0, 0x0A, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x20, 0x4C, 0x44, 0x52, 0x4F, 0x4D, 
+0x0A, 0x00, 0x00, 0x00, 0x54, 0x07, 0x00, 0x20, 0x88, 0x06, 0x00, 0x20, 0x50, 0x00, 0x00, 0x20, 
+0xC8, 0x01, 0x00, 0x20, 0xC4, 0x01, 0x00, 0x20, 0x0A, 0x41, 0x50, 0x52, 0x4F, 0x4D, 0x2D, 0x2D, 
+0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 
+0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x08, 0x00, 0x00, 0x20, 0x0A, 0x43, 0x50, 0x55, 
+0x20, 0x40, 0x20, 0x25, 0x64, 0x48, 0x7A, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x83, 0x07, 0xFF, 0x22, 
+0xDB, 0x0E, 0x9A, 0x40, 0x89, 0x07, 0x09, 0x0E, 0x99, 0x40, 0x00, 0x28, 0x0B, 0xDA, 0x00, 0x07, 
+0x00, 0x0F, 0x08, 0x38, 0x83, 0x08, 0x70, 0x48, 0x9B, 0x00, 0x18, 0x18, 0xC3, 0x69, 0x93, 0x43, 
+0x0B, 0x43, 0xC3, 0x61, 0x70, 0x47, 0x83, 0x08, 0x6C, 0x48, 0x9B, 0x00, 0x1B, 0x18, 0x18, 0x68, 
+0x90, 0x43, 0x08, 0x43, 0x18, 0x60, 0x70, 0x47, 0x10, 0xB5, 0x69, 0x48, 0x01, 0x6A, 0xC9, 0x06, 
+0x05, 0xD5, 0x10, 0x21, 0x01, 0x62, 0x67, 0x49, 0x01, 0x20, 0x08, 0x60, 0x10, 0xBD, 0x64, 0x48, 
+0x40, 0x38, 0x01, 0x6A, 0x09, 0x06, 0x04, 0xD5, 0x80, 0x21, 0x01, 0x62, 0x02, 0xF0, 0x53, 0xFD, 
+0x10, 0xBD, 0x01, 0x6A, 0x89, 0x07, 0x04, 0xD5, 0x02, 0x21, 0x01, 0x62, 0x03, 0xF0, 0x1F, 0xFE, 
+0x10, 0xBD, 0x5D, 0xA0, 0x04, 0xF0, 0x3E, 0xFC, 0x10, 0xBD, 0x70, 0x47, 0x10, 0xB5, 0x61, 0x48, 
+0x01, 0x6A, 0xC9, 0x06, 0x01, 0xD5, 0x10, 0x21, 0x01, 0x62, 0x01, 0x6A, 0x09, 0x07, 0x03, 0xD5, 
+0x08, 0x21, 0x01, 0x62, 0x03, 0xF0, 0x97, 0xFB, 0x10, 0xBD, 0x00, 0x69, 0xC2, 0xB2, 0x01, 0x20, 
+0x88, 0x40, 0x10, 0x40, 0x00, 0xD0, 0x01, 0x20, 0x70, 0x47, 0x00, 0x69, 0xC2, 0xB2, 0x01, 0x20, 
+0x88, 0x40, 0x10, 0x40, 0x00, 0xD0, 0x01, 0x20, 0x70, 0x47, 0x49, 0x48, 0x10, 0xB5, 0x01, 0x22, 
+0x10, 0x21, 0x40, 0x38, 0xFF, 0xF7, 0x08, 0xFA, 0x4E, 0x49, 0x00, 0x20, 0xC0, 0x31, 0x08, 0x61, 
+0x10, 0xBD, 0x43, 0x48, 0x10, 0xB5, 0x01, 0x22, 0x10, 0x21, 0x40, 0x38, 0xFF, 0xF7, 0xFC, 0xF9, 
+0x48, 0x49, 0x01, 0x20, 0xC0, 0x31, 0x08, 0x61, 0x10, 0xBD, 0xF8, 0xB5, 0x46, 0xA0, 0x04, 0xF0, 
+0x01, 0xFC, 0x3B, 0x4C, 0x00, 0x22, 0x10, 0x21, 0x20, 0x46, 0xFF, 0xF7, 0xED, 0xF9, 0x01, 0x22, 
+0x04, 0x21, 0x20, 0x46, 0xFF, 0xF7, 0xFF, 0xF9, 0x35, 0x4F, 0x03, 0x22, 0x40, 0x3F, 0x80, 0x21, 
+0x38, 0x46, 0xFF, 0xF7, 0xE1, 0xF9, 0x01, 0x22, 0x07, 0x21, 0x38, 0x46, 0xFF, 0xF7, 0xF3, 0xF9, 
+0x2F, 0x4E, 0x00, 0x22, 0x80, 0x36, 0x04, 0x21, 0x30, 0x46, 0xFF, 0xF7, 0xD5, 0xF9, 0x01, 0x22, 
+0x12, 0x04, 0x02, 0x21, 0x30, 0x46, 0xFF, 0xF7, 0xE6, 0xF9, 0x01, 0x22, 0x40, 0x21, 0x38, 0x46, 
+0xFF, 0xF7, 0xCA, 0xF9, 0x2F, 0x4D, 0x01, 0x24, 0xC0, 0x35, 0xAC, 0x61, 0x22, 0x46, 0x40, 0x21, 
+0x30, 0x46, 0xFF, 0xF7, 0xC1, 0xF9, 0x33, 0x4E, 0xB4, 0x63, 0x01, 0x22, 0x20, 0x21, 0x38, 0x46, 
+0xFF, 0xF7, 0xBA, 0xF9, 0x00, 0x20, 0x68, 0x61, 0x1D, 0x4D, 0x01, 0x22, 0x40, 0x35, 0x40, 0x21, 
+0x28, 0x46, 0xFF, 0xF7, 0xB1, 0xF9, 0xB4, 0x61, 0x01, 0x22, 0x10, 0x21, 0x28, 0x46, 0xFF, 0xF7, 
+0xAB, 0xF9, 0x03, 0xF0, 0xA5, 0xFC, 0x00, 0x22, 0x02, 0x21, 0x38, 0x46, 0xFF, 0xF7, 0xA4, 0xF9, 
+0x01, 0x22, 0x11, 0x46, 0x38, 0x46, 0xFF, 0xF7, 0xB6, 0xF9, 0xFF, 0xF7, 0x8E, 0xFF, 0x00, 0x21, 
+0x04, 0x20, 0xFF, 0xF7, 0x2B, 0xFF, 0x01, 0x21, 0x05, 0x20, 0xFF, 0xF7, 0x27, 0xFF, 0x05, 0x20, 
+0x00, 0xF0, 0x0A, 0xF8, 0x04, 0x20, 0x00, 0xF0, 0x07, 0xF8, 0x10, 0x20, 0x00, 0xF0, 0x04, 0xF8, 
+0x02, 0x20, 0x00, 0xF0, 0x01, 0xF8, 0xF8, 0xBD, 0xC1, 0x06, 0xC9, 0x0E, 0x01, 0x20, 0x88, 0x40, 
+0x15, 0x49, 0x08, 0x60, 0x70, 0x47, 0x00, 0x00, 0x00, 0xED, 0x00, 0xE0, 0x00, 0xE4, 0x00, 0xE0, 
+0x40, 0x40, 0x00, 0x50, 0x50, 0x00, 0x00, 0x20, 0x55, 0x6E, 0x2D, 0x65, 0x78, 0x70, 0x65, 0x63, 
+0x74, 0x65, 0x64, 0x20, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x73, 0x2E, 0x20, 
+0x0A, 0x00, 0x00, 0x00, 0x40, 0x41, 0x00, 0x50, 0x47, 0x50, 0x49, 0x4F, 0x5F, 0x47, 0x45, 0x4E, 
+0x45, 0x52, 0x41, 0x4C, 0x5F, 0x49, 0x4E, 0x49, 0x54, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 
+0x0A, 0x00, 0x00, 0x00, 0x40, 0x42, 0x00, 0x50, 0x00, 0xE1, 0x00, 0xE0, 0x10, 0xB5, 0x04, 0xF0, 
+0xA0, 0xFA, 0x10, 0xBD, 0x10, 0xB5, 0xFF, 0x4A, 0x00, 0x21, 0x91, 0x86, 0x11, 0x46, 0x36, 0x31, 
+0x04, 0xF0, 0x7E, 0xFA, 0x10, 0xBD, 0xFB, 0x49, 0x02, 0x00, 0x88, 0x78, 0x07, 0xD0, 0x0A, 0x88, 
+0x02, 0x2A, 0x05, 0xD3, 0x0A, 0x88, 0xC9, 0x1C, 0x52, 0x1E, 0xD2, 0xB2, 0xE6, 0xE7, 0xE9, 0xE7, 
+0x70, 0x47, 0x70, 0xB5, 0xF4, 0x4C, 0xE0, 0x68, 0x3C, 0x26, 0x60, 0x28, 0x12, 0xD0, 0x68, 0x28, 
+0x10, 0xD0, 0xF0, 0x4D, 0x80, 0x28, 0x12, 0xD0, 0x88, 0x28, 0x0B, 0xD0, 0xA0, 0x28, 0x15, 0xD0, 
+0xA8, 0x28, 0x19, 0xD0, 0xB0, 0x28, 0x17, 0xD0, 0xB8, 0x28, 0x18, 0xD0, 0xC0, 0x28, 0x01, 0xD0, 
+0xC8, 0x28, 0x03, 0xD1, 0x20, 0x68, 0xB0, 0x43, 0x0C, 0x30, 0x20, 0x60, 0x70, 0xBD, 0xA1, 0x68, 
+0x28, 0x88, 0x2A, 0x18, 0x40, 0x1C, 0x28, 0x80, 0x91, 0x70, 0xF3, 0xE7, 0x01, 0x20, 0xFF, 0xF7, 
+0xCA, 0xFF, 0x00, 0x20, 0x28, 0x80, 0xED, 0xE7, 0x00, 0x20, 0xFF, 0xF7, 0xC4, 0xFF, 0xA8, 0x8E, 
+0x29, 0x18, 0x36, 0x31, 0x40, 0x1C, 0xA8, 0x86, 0x08, 0x78, 0xA0, 0x60, 0xE2, 0xE7, 0x10, 0xB5, 
+0xD9, 0x48, 0x41, 0x69, 0xC9, 0x43, 0xC9, 0x07, 0x02, 0xD0, 0xFF, 0xF7, 0xC2, 0xFF, 0x10, 0xBD, 
+0xFF, 0xF7, 0x59, 0xF9, 0x10, 0xBD, 0x10, 0xB5, 0xD4, 0x48, 0x41, 0x69, 0xC9, 0x43, 0xC9, 0x07, 
+0x06, 0xD0, 0xD3, 0x48, 0x41, 0x68, 0x00, 0x29, 0x01, 0xD0, 0x40, 0x68, 0x80, 0x47, 0x10, 0xBD, 
+0xFF, 0xF7, 0x49, 0xF9, 0x10, 0xBD, 0x70, 0xB5, 0xCC, 0x48, 0xC3, 0x68, 0xC9, 0x4A, 0x3C, 0x21, 
+0x68, 0x32, 0x94, 0x78, 0x66, 0x00, 0x08, 0x2B, 0x1B, 0xD0, 0x18, 0x2B, 0x1B, 0xD0, 0x01, 0x25, 
+0xC7, 0x4C, 0x20, 0x2B, 0x1C, 0xD0, 0x28, 0x2B, 0x20, 0xD0, 0x10, 0x2B, 0x22, 0xD0, 0x48, 0x2B, 
+0x16, 0xD0, 0x40, 0x2B, 0x20, 0xD0, 0x58, 0x2B, 0x28, 0xD0, 0x50, 0x2B, 0x0F, 0xD1, 0x15, 0x88, 
+0xE3, 0x78, 0x9D, 0x42, 0x2C, 0xD9, 0x85, 0x68, 0xD2, 0x18, 0x95, 0x70, 0x5B, 0x1C, 0xE3, 0x70, 
+0x18, 0xE0, 0x86, 0x60, 0x24, 0xE0, 0xD2, 0x78, 0x82, 0x60, 0x21, 0xE0, 0x02, 0x60, 0x70, 0xBD, 
+0x02, 0x68, 0x8A, 0x43, 0x18, 0x32, 0x02, 0x60, 0x65, 0x70, 0x70, 0xBD, 0x02, 0x68, 0x8A, 0x43, 
+0x28, 0x32, 0xF3, 0xE7, 0x76, 0x1C, 0xEC, 0xE7, 0x13, 0x88, 0x02, 0x2B, 0x10, 0xD0, 0x12, 0x88, 
+0x02, 0x2A, 0xF2, 0xD9, 0x02, 0x68, 0x8A, 0x43, 0x0C, 0x32, 0xE7, 0xE7, 0x13, 0x88, 0x02, 0x2B, 
+0x03, 0xD0, 0x12, 0x88, 0x02, 0x2A, 0xE3, 0xD8, 0x70, 0xBD, 0x83, 0x68, 0x13, 0x71, 0xDF, 0xE7, 
+0x02, 0x68, 0x8A, 0x43, 0x08, 0x32, 0xD9, 0xE7, 0xF0, 0xB5, 0x00, 0x26, 0xA4, 0x4C, 0x9C, 0x46, 
+0x33, 0x46, 0x66, 0x70, 0x02, 0x25, 0xE5, 0x70, 0x9E, 0x4D, 0x97, 0x1C, 0x68, 0x35, 0x2F, 0x80, 
+0xA8, 0x70, 0xE9, 0x70, 0x9F, 0x48, 0x60, 0x60, 0x9C, 0x48, 0x01, 0x68, 0x08, 0x27, 0xB9, 0x43, 
+0x20, 0x27, 0x39, 0x43, 0x01, 0x60, 0x9C, 0x49, 0x02, 0xE0, 0x8E, 0x42, 0x03, 0xD8, 0x76, 0x1C, 
+0x67, 0x78, 0x00, 0x2F, 0xF9, 0xD0, 0x01, 0x68, 0xC9, 0x06, 0xFC, 0xD4, 0x63, 0x70, 0x00, 0x20, 
+0x04, 0xE0, 0x29, 0x18, 0x0B, 0x79, 0x61, 0x46, 0x0B, 0x54, 0x40, 0x1C, 0x90, 0x42, 0xF8, 0xD3, 
+0xF0, 0xBD, 0xF0, 0xB5, 0x00, 0x25, 0x8E, 0x4E, 0x2C, 0x46, 0x75, 0x70, 0x89, 0x4A, 0x68, 0x32, 
+0x15, 0x80, 0x13, 0x88, 0xD7, 0x18, 0x5B, 0x1C, 0x13, 0x80, 0xB8, 0x70, 0x10, 0x88, 0x13, 0x18, 
+0x40, 0x1C, 0x10, 0x80, 0x99, 0x70, 0x87, 0x48, 0x70, 0x60, 0x84, 0x48, 0x01, 0x68, 0x08, 0x23, 
+0x99, 0x43, 0x20, 0x23, 0x19, 0x43, 0x01, 0x60, 0x83, 0x49, 0x05, 0xE0, 0x8D, 0x42, 0x02, 0xD9, 
+0x00, 0x20, 0xC0, 0x43, 0xF0, 0xBD, 0x6D, 0x1C, 0x73, 0x78, 0x00, 0x2B, 0xF6, 0xD0, 0x01, 0x68, 
+0xC9, 0x06, 0xFC, 0xD4, 0x74, 0x70, 0x04, 0x20, 0x10, 0x56, 0xF0, 0xBD, 0x70, 0xB5, 0x77, 0x48, 
+0xC3, 0x68, 0x74, 0x4C, 0x3C, 0x21, 0x88, 0x34, 0x08, 0x2B, 0x0A, 0xD0, 0x18, 0x2B, 0x0B, 0xD0, 
+0x01, 0x25, 0x73, 0x4A, 0x20, 0x2B, 0x0A, 0xD0, 0x28, 0x2B, 0x0E, 0xD0, 0x30, 0x2B, 0x06, 0xD0, 
+0x70, 0xBD, 0xA2, 0x7D, 0x52, 0x00, 0x00, 0xE0, 0xE2, 0x7D, 0x82, 0x60, 0x18, 0xE0, 0x03, 0x68, 
+0x8B, 0x43, 0x18, 0x33, 0x03, 0x60, 0x15, 0x70, 0x70, 0xBD, 0x66, 0x4B, 0x68, 0x33, 0x9E, 0x8E, 
+0x03, 0x2E, 0x12, 0xD0, 0x9C, 0x8E, 0x03, 0x2C, 0xF1, 0xD9, 0x94, 0x78, 0x1E, 0x19, 0x20, 0x36, 
+0xB6, 0x7D, 0x86, 0x60, 0x64, 0x1C, 0xE4, 0xB2, 0x94, 0x70, 0x9B, 0x8E, 0xA3, 0x42, 0xE6, 0xD3, 
+0x02, 0x68, 0x8A, 0x43, 0x08, 0x32, 0x02, 0x60, 0x70, 0xBD, 0x22, 0x7E, 0x82, 0x60, 0x00, 0x22, 
+0x9A, 0x86, 0xF5, 0xE7, 0xF0, 0xB5, 0x00, 0x25, 0x59, 0x4C, 0x9C, 0x46, 0x2B, 0x46, 0x25, 0x70, 
+0x02, 0x26, 0xA6, 0x70, 0x53, 0x4E, 0x97, 0x1C, 0x68, 0x36, 0xB7, 0x86, 0x37, 0x46, 0x20, 0x37, 
+0xB8, 0x75, 0xF9, 0x75, 0x28, 0x46, 0x05, 0xE0, 0x61, 0x46, 0x37, 0x18, 0x09, 0x5C, 0x20, 0x37, 
+0x39, 0x76, 0x40, 0x1C, 0x90, 0x42, 0xF7, 0xD3, 0x50, 0x48, 0x60, 0x60, 0x4B, 0x48, 0x01, 0x68, 
+0x08, 0x22, 0x91, 0x43, 0x20, 0x22, 0x11, 0x43, 0x01, 0x60, 0x4D, 0x49, 0x02, 0xE0, 0x8D, 0x42, 
+0x03, 0xD8, 0x6D, 0x1C, 0x22, 0x78, 0x00, 0x2A, 0xF9, 0xD0, 0x01, 0x68, 0xC9, 0x06, 0xFC, 0xD4, 
+0x23, 0x70, 0xF0, 0xBD, 0xF0, 0xB5, 0x00, 0x27, 0x41, 0x4C, 0x8C, 0x46, 0x3E, 0x46, 0x27, 0x70, 
+0x3C, 0x4B, 0x68, 0x33, 0x9F, 0x86, 0x9D, 0x8E, 0x59, 0x19, 0x36, 0x31, 0x6D, 0x1C, 0x9D, 0x86, 
+0x08, 0x70, 0x98, 0x8E, 0x61, 0x46, 0x1D, 0x18, 0x36, 0x35, 0x40, 0x1C, 0x98, 0x86, 0x29, 0x70, 
+0x98, 0x8E, 0x19, 0x18, 0x36, 0x31, 0x40, 0x1C, 0x98, 0x86, 0x0A, 0x70, 0x37, 0x48, 0x60, 0x60, 
+0x32, 0x48, 0x01, 0x68, 0x08, 0x22, 0x91, 0x43, 0x20, 0x22, 0x11, 0x43, 0x01, 0x60, 0x34, 0x49, 
+0x02, 0xE0, 0x8F, 0x42, 0x03, 0xD8, 0x7F, 0x1C, 0x22, 0x78, 0x00, 0x2A, 0xF9, 0xD0, 0x01, 0x68, 
+0xC9, 0x06, 0xFC, 0xD4, 0x26, 0x70, 0xF0, 0xBD, 0x10, 0xB5, 0x00, 0xF0, 0x88, 0xF8, 0x2D, 0x48, 
+0xFE, 0xF7, 0x6D, 0xFF, 0x2C, 0x49, 0x00, 0x20, 0x08, 0x60, 0x10, 0xBD, 0x10, 0xB5, 0x00, 0xF0, 
+0x7E, 0xF8, 0x28, 0x48, 0x40, 0x1C, 0xFE, 0xF7, 0x62, 0xFF, 0x27, 0x49, 0x00, 0x20, 0x08, 0x60, 
+0x10, 0xBD, 0x10, 0xB5, 0x00, 0xF0, 0x73, 0xF8, 0x05, 0x20, 0x00, 0x07, 0xC1, 0x6B, 0x23, 0x4A, 
+0x11, 0x40, 0xC1, 0x63, 0xC1, 0x6B, 0x03, 0x22, 0x12, 0x03, 0x11, 0x43, 0xC1, 0x63, 0x1E, 0x49, 
+0x00, 0x20, 0x08, 0x60, 0x10, 0xBD, 0x10, 0xB5, 0x00, 0xF0, 0x61, 0xF8, 0x05, 0x20, 0x00, 0x07, 
+0x81, 0x6B, 0x1B, 0x4A, 0x11, 0x40, 0x81, 0x63, 0x81, 0x6B, 0xD2, 0x43, 0x11, 0x43, 0x81, 0x63, 
+0x15, 0x49, 0x00, 0x20, 0x08, 0x60, 0x10, 0xBD, 0x10, 0xB5, 0xFF, 0xF7, 0xC5, 0xFF, 0xFF, 0xF7, 
+0xD8, 0xFF, 0x09, 0x4C, 0x13, 0x49, 0x20, 0x46, 0xFE, 0xF7, 0x90, 0xFF, 0x00, 0x23, 0x15, 0x22, 
+0x19, 0x46, 0x20, 0x46, 0xFF, 0xF7, 0x07, 0xF8, 0x20, 0x46, 0xFE, 0xF7, 0xD6, 0xFF, 0x01, 0x20, 
+0x80, 0x04, 0x19, 0xE0, 0x1C, 0x02, 0x00, 0x20, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x12, 0x40, 
+0x18, 0x00, 0x00, 0x20, 0x87, 0x15, 0x00, 0x00, 0xA0, 0x86, 0x01, 0x00, 0xDD, 0x16, 0x00, 0x00, 
+0x50, 0xC3, 0x00, 0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x01, 0x00, 0x50, 0xCF, 0xCF, 0xFF, 0xFF, 
+0xF3, 0xF3, 0xFF, 0xFF, 0x80, 0x1A, 0x06, 0x00, 0x17, 0x49, 0x08, 0x60, 0x20, 0x68, 0x3C, 0x21, 
+0x88, 0x43, 0x0C, 0x30, 0x20, 0x60, 0x10, 0xBD, 0x10, 0xB5, 0xFF, 0xF7, 0x97, 0xFF, 0xFF, 0xF7, 
+0xB2, 0xFF, 0x13, 0x4C, 0x11, 0x49, 0x20, 0x46, 0xFE, 0xF7, 0x58, 0xFF, 0x20, 0x46, 0xFE, 0xF7, 
+0xA4, 0xFF, 0x01, 0x20, 0x0C, 0x49, 0xC0, 0x04, 0x08, 0x60, 0x10, 0xBD, 0x10, 0xB5, 0x0D, 0xA0, 
+0x04, 0xF0, 0x28, 0xF9, 0xFF, 0xF7, 0xB0, 0xFF, 0xFF, 0xF7, 0xE6, 0xFF, 0x10, 0xBD, 0x10, 0xB5, 
+0x59, 0x21, 0x0D, 0x48, 0x16, 0x22, 0x88, 0x23, 0x01, 0x60, 0x02, 0x60, 0x03, 0x60, 0x04, 0x68, 
+0x00, 0x2C, 0xF9, 0xD0, 0x10, 0xBD, 0x00, 0x00, 0x00, 0xE1, 0x00, 0xE0, 0x80, 0x1A, 0x06, 0x00, 
+0x00, 0x00, 0x12, 0x40, 0x49, 0x32, 0x43, 0x5F, 0x49, 0x6E, 0x69, 0x74, 0x2D, 0x2D, 0x2D, 0x69, 
+0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x50, 0x00, 0x28, 0x07, 0xD0, 
+0x02, 0x28, 0x07, 0xD0, 0x03, 0x28, 0x07, 0xD0, 0x01, 0x28, 0x07, 0xD0, 0x89, 0xA0, 0x70, 0x47, 
+0x8A, 0xA0, 0x70, 0x47, 0x8B, 0xA0, 0x70, 0x47, 0x8C, 0xA0, 0x70, 0x47, 0x8D, 0xA0, 0x70, 0x47, 
+0x8E, 0x4A, 0x00, 0x21, 0x50, 0x43, 0x00, 0xE0, 0x49, 0x1C, 0x88, 0x42, 0xFC, 0xD2, 0x70, 0x47, 
+0x10, 0xB5, 0x8B, 0xA0, 0x04, 0xF0, 0xE6, 0xF8, 0x90, 0x4B, 0x01, 0x24, 0x9C, 0x63, 0x20, 0x46, 
+0xFF, 0xF7, 0xEE, 0xFF, 0x00, 0x20, 0x98, 0x63, 0x01, 0x20, 0xFF, 0xF7, 0xE9, 0xFF, 0x9C, 0x63, 
+0x10, 0xBD, 0x10, 0xB5, 0x8A, 0xA0, 0x04, 0xF0, 0xD5, 0xF8, 0x88, 0x4B, 0x01, 0x24, 0x40, 0x3B, 
+0x9C, 0x61, 0x20, 0x46, 0xFF, 0xF7, 0xDC, 0xFF, 0x00, 0x20, 0x98, 0x61, 0x01, 0x20, 0xFF, 0xF7, 
+0xD7, 0xFF, 0x9C, 0x61, 0x10, 0xBD, 0x00, 0x28, 0x6D, 0xD0, 0x01, 0x28, 0x6D, 0xD0, 0x16, 0x28, 
+0x6D, 0xD0, 0x02, 0x28, 0x6D, 0xD0, 0x03, 0x28, 0x6D, 0xD0, 0x10, 0x28, 0x6D, 0xD0, 0x11, 0x28, 
+0x6D, 0xD0, 0x12, 0x28, 0x6D, 0xD0, 0x19, 0x28, 0x6D, 0xD0, 0x1A, 0x28, 0x6D, 0xD0, 0x09, 0x28, 
+0x6D, 0xD0, 0x1B, 0x28, 0x6D, 0xD0, 0x13, 0x28, 0x6D, 0xD0, 0x04, 0x28, 0x6D, 0xD0, 0x15, 0x28, 
+0x6D, 0xD0, 0xF1, 0x28, 0x6D, 0xD0, 0xF2, 0x28, 0x6D, 0xD0, 0xF3, 0x28, 0x6D, 0xD0, 0x17, 0x28, 
+0x6D, 0xD0, 0x05, 0x28, 0x6D, 0xD0, 0x06, 0x28, 0x6D, 0xD0, 0x14, 0x28, 0x6D, 0xD0, 0xF0, 0x28, 
+0x6D, 0xD0, 0x30, 0x28, 0x6D, 0xD0, 0x31, 0x28, 0x6D, 0xD0, 0x32, 0x28, 0x6D, 0xD0, 0x33, 0x28, 
+0x6D, 0xD0, 0x34, 0x28, 0x6D, 0xD0, 0x35, 0x28, 0x6D, 0xD0, 0x36, 0x28, 0x6D, 0xD0, 0x3B, 0x28, 
+0x6D, 0xD0, 0x3C, 0x28, 0x6D, 0xD0, 0x24, 0x28, 0x6D, 0xD0, 0x25, 0x28, 0x6D, 0xD0, 0x1C, 0x28, 
+0x6D, 0xD0, 0x1D, 0x28, 0x6D, 0xD0, 0x1E, 0x28, 0x6D, 0xD0, 0x1F, 0x28, 0x6D, 0xD0, 0x21, 0x28, 
+0x6D, 0xD0, 0x20, 0x28, 0x6D, 0xD0, 0x26, 0x28, 0x6D, 0xD0, 0x22, 0x28, 0x6D, 0xD0, 0x2A, 0x28, 
+0x6D, 0xD0, 0x23, 0x28, 0x6D, 0xD0, 0x3A, 0x28, 0x6D, 0xD0, 0x37, 0x28, 0x6D, 0xD0, 0x38, 0x28, 
+0x6D, 0xD0, 0x39, 0x28, 0x6D, 0xD0, 0xFC, 0x28, 0x6D, 0xD0, 0xFD, 0x28, 0x6D, 0xD0, 0x08, 0x28, 
+0x6D, 0xD0, 0x27, 0x28, 0x6D, 0xD0, 0x2A, 0x28, 0x6D, 0xD0, 0x2B, 0x28, 0x6D, 0xD0, 0x3E, 0x28, 
+0x6D, 0xD0, 0x38, 0xA0, 0x70, 0x47, 0x54, 0xA0, 0x70, 0x47, 0x56, 0xA0, 0x70, 0x47, 0x58, 0xA0, 
+0x70, 0x47, 0x5A, 0xA0, 0x70, 0x47, 0x5E, 0xA0, 0x70, 0x47, 0x5F, 0xA0, 0x70, 0x47, 0x61, 0xA0, 
+0x70, 0x47, 0x63, 0xA0, 0x70, 0x47, 0x66, 0xA0, 0x70, 0x47, 0x68, 0xA0, 0x70, 0x47, 0x6A, 0xA0, 
+0x70, 0x47, 0x6C, 0xA0, 0x70, 0x47, 0x6E, 0xA0, 0x70, 0x47, 0x71, 0xA0, 0x70, 0x47, 0x74, 0xA0, 
+0x70, 0x47, 0x76, 0xA0, 0x70, 0x47, 0x79, 0xA0, 0x70, 0x47, 0x7C, 0xA0, 0x70, 0x47, 0x7D, 0xA0, 
+0x70, 0x47, 0x80, 0xA0, 0x70, 0x47, 0x81, 0xA0, 0x70, 0x47, 0x82, 0xA0, 0x70, 0x47, 0x82, 0xA0, 
+0x70, 0x47, 0x85, 0xA0, 0x70, 0x47, 0x87, 0xA0, 0x70, 0x47, 0x88, 0xA0, 0x70, 0x47, 0x8C, 0xA0, 
+0x70, 0x47, 0x90, 0xA0, 0x70, 0x47, 0x93, 0xA0, 0x70, 0x47, 0x97, 0xA0, 0x70, 0x47, 0x9A, 0xA0, 
+0x70, 0x47, 0x9E, 0xA0, 0x70, 0x47, 0xA2, 0xA0, 0x70, 0x47, 0xA5, 0xA0, 0x70, 0x47, 0xA7, 0xA0, 
+0x70, 0x47, 0xAB, 0xA0, 0x70, 0x47, 0xAE, 0xA0, 0x70, 0x47, 0xB1, 0xA0, 0x70, 0x47, 0xB3, 0xA0, 
+0x70, 0x47, 0xB6, 0xA0, 0x70, 0x47, 0xBA, 0xA0, 0x70, 0x47, 0xBF, 0xA0, 0x70, 0x47, 0xC4, 0xA0, 
+0x70, 0x47, 0xC7, 0xA0, 0x70, 0x47, 0xCC, 0xA0, 0x70, 0x47, 0xD1, 0xA0, 0x70, 0x47, 0xD5, 0xA0, 
+0x70, 0x47, 0xDA, 0xA0, 0x70, 0x47, 0xDF, 0xA0, 0x70, 0x47, 0xE2, 0xA0, 0x70, 0x47, 0xE5, 0xA0, 
+0x70, 0x47, 0xE9, 0xA0, 0x70, 0x47, 0xEF, 0xA0, 0x70, 0x47, 0xF3, 0xA0, 0x70, 0x47, 0xF7, 0xA0, 
+0x70, 0x47, 0x00, 0x00, 0x55, 0x6E, 0x6B, 0x6E, 0x6F, 0x77, 0x6E, 0x00, 0x41, 0x63, 0x63, 0x65, 
+0x70, 0x74, 0x00, 0x00, 0x46, 0x61, 0x69, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x42, 0x75, 0x73, 0x79, 
+0x00, 0x00, 0x00, 0x00, 0x52, 0x65, 0x6A, 0x65, 0x63, 0x74, 0x00, 0x00, 0x10, 0x27, 0x00, 0x00, 
+0x74, 0x79, 0x70, 0x65, 0x63, 0x5F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x5F, 0x74, 0x6F, 0x5F, 0x73, 
+0x6F, 0x63, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x40, 0x42, 0x00, 0x50, 
+0x74, 0x79, 0x70, 0x65, 0x63, 0x5F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x5F, 0x74, 0x6F, 0x5F, 0x73, 
+0x6F, 0x63, 0x5F, 0x77, 0x68, 0x65, 0x6E, 0x5F, 0x70, 0x75, 0x6C, 0x6C, 0x6F, 0x75, 0x74, 0x2D, 
+0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x50, 0x57, 0x52, 0x5F, 0x53, 0x52, 0x43, 0x5F, 
+0x43, 0x41, 0x50, 0x00, 0x50, 0x57, 0x52, 0x5F, 0x53, 0x4E, 0x4B, 0x5F, 0x43, 0x41, 0x50, 0x00, 
+0x50, 0x57, 0x52, 0x5F, 0x4F, 0x42, 0x4A, 0x5F, 0x52, 0x45, 0x51, 0x00, 0x44, 0x50, 0x5F, 0x53, 
+0x4E, 0x4B, 0x5F, 0x49, 0x44, 0x45, 0x4E, 0x44, 0x54, 0x49, 0x54, 0x59, 0x00, 0x00, 0x00, 0x00, 
+0x53, 0x56, 0x49, 0x44, 0x00, 0x00, 0x00, 0x00, 0x50, 0x53, 0x57, 0x41, 0x50, 0x5F, 0x52, 0x45, 
+0x51, 0x00, 0x00, 0x00, 0x44, 0x53, 0x57, 0x41, 0x50, 0x5F, 0x52, 0x45, 0x51, 0x00, 0x00, 0x00, 
+0x47, 0x4F, 0x54, 0x4F, 0x5F, 0x4D, 0x49, 0x4E, 0x5F, 0x52, 0x45, 0x51, 0x00, 0x00, 0x00, 0x00, 
+0x44, 0x50, 0x41, 0x4C, 0x54, 0x5F, 0x45, 0x4E, 0x54, 0x45, 0x52, 0x00, 0x44, 0x50, 0x41, 0x4C, 
+0x54, 0x5F, 0x45, 0x58, 0x49, 0x54, 0x00, 0x00, 0x47, 0x45, 0x54, 0x5F, 0x53, 0x52, 0x43, 0x5F, 
+0x43, 0x41, 0x50, 0x00, 0x47, 0x45, 0x54, 0x5F, 0x53, 0x4E, 0x4B, 0x5F, 0x43, 0x41, 0x50, 0x00, 
+0x56, 0x43, 0x4F, 0x4E, 0x4E, 0x5F, 0x53, 0x57, 0x41, 0x50, 0x5F, 0x52, 0x45, 0x51, 0x00, 0x00, 
+0x47, 0x45, 0x54, 0x5F, 0x44, 0x50, 0x5F, 0x53, 0x49, 0x4E, 0x4B, 0x5F, 0x43, 0x41, 0x50, 0x00, 
+0x44, 0x50, 0x5F, 0x53, 0x4E, 0x4B, 0x5F, 0x43, 0x46, 0x47, 0x00, 0x00, 0x53, 0x6F, 0x66, 0x74, 
+0x77, 0x61, 0x72, 0x65, 0x20, 0x52, 0x65, 0x73, 0x65, 0x74, 0x00, 0x00, 0x48, 0x61, 0x72, 0x64, 
+0x77, 0x61, 0x72, 0x65, 0x20, 0x52, 0x65, 0x73, 0x65, 0x74, 0x00, 0x00, 0x52, 0x65, 0x73, 0x74, 
+0x61, 0x72, 0x74, 0x00, 0x50, 0x44, 0x5F, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5F, 0x52, 0x45, 
+0x51, 0x00, 0x00, 0x00, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x00, 0x00, 0x52, 0x45, 0x4A, 0x45, 
+0x43, 0x54, 0x00, 0x00, 0x56, 0x44, 0x4D, 0x00, 0x52, 0x45, 0x53, 0x50, 0x4F, 0x4E, 0x53, 0x45, 
+0x5F, 0x54, 0x4F, 0x5F, 0x52, 0x45, 0x51, 0x00, 0x50, 0x44, 0x33, 0x5F, 0x53, 0x52, 0x43, 0x5F, 
+0x43, 0x41, 0x50, 0x00, 0x50, 0x44, 0x33, 0x5F, 0x53, 0x54, 0x53, 0x00, 0x50, 0x44, 0x33, 0x5F, 
+0x47, 0x45, 0x54, 0x5F, 0x42, 0x41, 0x54, 0x54, 0x5F, 0x43, 0x41, 0x50, 0x00, 0x00, 0x00, 0x00, 
+0x50, 0x44, 0x33, 0x5F, 0x47, 0x45, 0x54, 0x5F, 0x42, 0x41, 0x54, 0x54, 0x5F, 0x53, 0x54, 0x53, 
+0x00, 0x00, 0x00, 0x00, 0x50, 0x44, 0x33, 0x5F, 0x42, 0x41, 0x54, 0x54, 0x5F, 0x43, 0x41, 0x50, 
+0x00, 0x00, 0x00, 0x00, 0x50, 0x44, 0x33, 0x5F, 0x47, 0x45, 0x54, 0x5F, 0x4D, 0x46, 0x52, 0x5F, 
+0x49, 0x4E, 0x46, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x50, 0x44, 0x33, 0x5F, 0x4D, 0x46, 0x52, 0x5F, 
+0x49, 0x4E, 0x46, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x50, 0x44, 0x33, 0x5F, 0x50, 0x44, 0x46, 0x55, 
+0x5F, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x50, 0x44, 0x33, 0x5F, 
+0x50, 0x44, 0x46, 0x55, 0x5F, 0x52, 0x45, 0x53, 0x50, 0x4F, 0x4E, 0x53, 0x45, 0x00, 0x00, 0x00, 
+0x50, 0x44, 0x33, 0x5F, 0x42, 0x41, 0x54, 0x54, 0x5F, 0x53, 0x54, 0x53, 0x00, 0x00, 0x00, 0x00, 
+0x50, 0x44, 0x33, 0x5F, 0x41, 0x4C, 0x45, 0x52, 0x54, 0x00, 0x00, 0x00, 0x50, 0x44, 0x33, 0x5F, 
+0x4E, 0x4F, 0x54, 0x5F, 0x53, 0x55, 0x50, 0x50, 0x4F, 0x52, 0x54, 0x45, 0x44, 0x00, 0x00, 0x00, 
+0x50, 0x44, 0x33, 0x5F, 0x47, 0x45, 0x54, 0x5F, 0x53, 0x52, 0x43, 0x5F, 0x43, 0x41, 0x50, 0x00, 
+0x50, 0x44, 0x33, 0x5F, 0x47, 0x45, 0x54, 0x5F, 0x53, 0x52, 0x43, 0x5F, 0x53, 0x54, 0x53, 0x00, 
+0x50, 0x44, 0x33, 0x5F, 0x46, 0x52, 0x5F, 0x53, 0x57, 0x41, 0x50, 0x00, 0x50, 0x44, 0x33, 0x5F, 
+0x47, 0x45, 0x54, 0x5F, 0x50, 0x50, 0x53, 0x5F, 0x53, 0x54, 0x53, 0x00, 0x50, 0x44, 0x33, 0x5F, 
+0x46, 0x52, 0x5F, 0x53, 0x57, 0x41, 0x50, 0x5F, 0x53, 0x49, 0x47, 0x4E, 0x41, 0x4C, 0x00, 0x00, 
+0x50, 0x44, 0x33, 0x5F, 0x47, 0x45, 0x54, 0x5F, 0x43, 0x4F, 0x55, 0x4E, 0x54, 0x52, 0x59, 0x5F, 
+0x49, 0x4E, 0x46, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x50, 0x44, 0x33, 0x5F, 0x47, 0x45, 0x54, 0x5F, 
+0x43, 0x4F, 0x55, 0x4E, 0x54, 0x52, 0x59, 0x5F, 0x43, 0x4F, 0x44, 0x45, 0x00, 0x00, 0x00, 0x00, 
+0x44, 0x50, 0x5F, 0x43, 0x4F, 0x4E, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x00, 0x00, 0x00, 0x00, 
+0x50, 0x44, 0x33, 0x5F, 0x47, 0x45, 0x54, 0x5F, 0x53, 0x49, 0x4E, 0x4B, 0x5F, 0x43, 0x41, 0x50, 
+0x5F, 0x45, 0x58, 0x54, 0x00, 0x00, 0x00, 0x00, 0x50, 0x44, 0x33, 0x5F, 0x45, 0x58, 0x54, 0x5F, 
+0x53, 0x49, 0x4E, 0x4B, 0x5F, 0x43, 0x41, 0x50, 0x5F, 0x45, 0x58, 0x54, 0x00, 0x00, 0x00, 0x00, 
+0x50, 0x44, 0x33, 0x5F, 0x45, 0x58, 0x54, 0x5F, 0x50, 0x50, 0x53, 0x5F, 0x43, 0x41, 0x50, 0x5F, 
+0x53, 0x54, 0x53, 0x00, 0x50, 0x44, 0x33, 0x5F, 0x45, 0x58, 0x54, 0x5F, 0x43, 0x4F, 0x55, 0x4E, 
+0x54, 0x52, 0x59, 0x5F, 0x49, 0x4E, 0x46, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x50, 0x44, 0x33, 0x5F, 
+0x45, 0x58, 0x54, 0x5F, 0x43, 0x4F, 0x55, 0x4E, 0x54, 0x52, 0x59, 0x5F, 0x43, 0x4F, 0x44, 0x45, 
+0x00, 0x00, 0x00, 0x00, 0x54, 0x59, 0x50, 0x45, 0x5F, 0x47, 0x45, 0x54, 0x5F, 0x56, 0x41, 0x52, 
+0x00, 0x00, 0x00, 0x00, 0x54, 0x59, 0x50, 0x45, 0x5F, 0x53, 0x45, 0x54, 0x5F, 0x56, 0x41, 0x52, 
+0x00, 0x00, 0x00, 0x00, 0x54, 0x59, 0x50, 0x45, 0x5F, 0x53, 0x45, 0x54, 0x5F, 0x53, 0x4E, 0x4B, 
+0x5F, 0x44, 0x50, 0x5F, 0x43, 0x41, 0x50, 0x00, 0x54, 0x59, 0x50, 0x45, 0x5F, 0x44, 0x50, 0x5F, 
+0x44, 0x49, 0x53, 0x43, 0x4F, 0x56, 0x45, 0x52, 0x5F, 0x4D, 0x4F, 0x44, 0x45, 0x53, 0x5F, 0x49, 
+0x4E, 0x46, 0x4F, 0x00, 0x54, 0x59, 0x50, 0x45, 0x5F, 0x44, 0x50, 0x5F, 0x43, 0x4F, 0x4E, 0x46, 
+0x49, 0x47, 0x55, 0x52, 0x45, 0x00, 0x00, 0x00, 0x54, 0x59, 0x50, 0x45, 0x5F, 0x41, 0x4D, 0x53, 
+0x5F, 0x50, 0x52, 0x4F, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4E, 0x47, 0x00, 0x54, 0x59, 0x50, 0x45, 
+0x5F, 0x49, 0x32, 0x43, 0x5F, 0x4D, 0x41, 0x53, 0x54, 0x45, 0x52, 0x5F, 0x57, 0x52, 0x49, 0x54, 
+0x45, 0x00, 0x00, 0x00, 0x38, 0xB5, 0xFF, 0x48, 0x01, 0x21, 0x01, 0x70, 0x41, 0x78, 0x03, 0x25, 
+0x49, 0x1C, 0x49, 0x42, 0x81, 0x70, 0xC0, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0x6A, 0xFB, 0xFA, 0x49, 
+0xC0, 0xB2, 0xCC, 0x7B, 0x00, 0x2C, 0x11, 0xD0, 0x00, 0x28, 0x0C, 0xD1, 0x15, 0xE0, 0x01, 0x20, 
+0xFF, 0xF7, 0xE6, 0xFC, 0xC0, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0x5B, 0xFB, 0x00, 0x06, 0x00, 0x0E, 
+0x0B, 0xD0, 0x64, 0x1E, 0xE4, 0xB2, 0x00, 0x2C, 0xF1, 0xD1, 0x01, 0xE0, 0x00, 0x28, 0x04, 0xD0, 
+0xEE, 0xA0, 0x03, 0xF0, 0xC7, 0xFD, 0x02, 0x20, 0x38, 0xBD, 0x2A, 0x46, 0xE9, 0x49, 0x68, 0x46, 
+0xFE, 0xF7, 0xEE, 0xF8, 0x68, 0x46, 0x42, 0x78, 0xC1, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0xDA, 0xFB, 
+0x68, 0x46, 0x82, 0x78, 0xC2, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0xD4, 0xFB, 0x68, 0x46, 0x02, 0x78, 
+0xC0, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0xCE, 0xFB, 0x00, 0x20, 0x38, 0xBD, 0xDD, 0x49, 0x48, 0x70, 
+0xB8, 0xE7, 0x10, 0xB5, 0x00, 0x23, 0x1A, 0x46, 0x04, 0xE0, 0x84, 0x5C, 0xE3, 0x18, 0x52, 0x1C, 
+0xDB, 0xB2, 0xD2, 0xB2, 0x8A, 0x42, 0xF8, 0xD3, 0x58, 0x42, 0xC0, 0xB2, 0x10, 0xBD, 0x70, 0xB5, 
+0xD4, 0x4C, 0x88, 0xB0, 0x20, 0x78, 0xC1, 0x06, 0xC9, 0x0E, 0x49, 0x1C, 0x20, 0x46, 0xFF, 0xF7, 
+0xE8, 0xFF, 0x21, 0x78, 0xC9, 0x06, 0xC9, 0x0E, 0x09, 0x19, 0x48, 0x70, 0x20, 0x78, 0xC0, 0x21, 
+0xC5, 0x06, 0xED, 0x0E, 0xAD, 0x1C, 0x3F, 0x20, 0xFF, 0xF7, 0x0B, 0xFB, 0xCA, 0x49, 0xC0, 0xB2, 
+0xCC, 0x7B, 0x00, 0x2C, 0x11, 0xD0, 0x00, 0x28, 0x0C, 0xD1, 0x16, 0xE0, 0x02, 0x20, 0xFF, 0xF7, 
+0x87, 0xFC, 0xC0, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0xFC, 0xFA, 0x00, 0x06, 0x00, 0x0E, 0x0C, 0xD0, 
+0x64, 0x1E, 0xE4, 0xB2, 0x00, 0x2C, 0xF1, 0xD1, 0x01, 0xE0, 0x00, 0x28, 0x05, 0xD0, 0xBF, 0xA0, 
+0x03, 0xF0, 0x68, 0xFD, 0x02, 0x20, 0x08, 0xB0, 0x70, 0xBD, 0x2A, 0x46, 0xB9, 0x49, 0x68, 0x46, 
+0xFE, 0xF7, 0x8E, 0xF8, 0x01, 0x24, 0x6E, 0x46, 0x6D, 0x1E, 0x08, 0xE0, 0x20, 0x46, 0xC0, 0x30, 
+0xC1, 0xB2, 0x32, 0x5D, 0x3F, 0x20, 0xFF, 0xF7, 0x75, 0xFB, 0x64, 0x1C, 0xE4, 0xB2, 0xAC, 0x42, 
+0xF4, 0xDD, 0x68, 0x46, 0x02, 0x78, 0xC0, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0x6B, 0xFB, 0x00, 0x20, 
+0xE1, 0xE7, 0xF8, 0xB5, 0x06, 0x46, 0x00, 0x20, 0x14, 0x46, 0x00, 0x90, 0x00, 0x29, 0x03, 0xD0, 
+0xA0, 0x07, 0x01, 0xD1, 0x1F, 0x2C, 0x01, 0xD9, 0x02, 0x20, 0xF8, 0xBD, 0xA5, 0x4D, 0x15, 0x2E, 
+0x08, 0xD0, 0xA8, 0x1C, 0x03, 0xF0, 0xBA, 0xFE, 0x64, 0x1C, 0x2C, 0x70, 0x6E, 0x70, 0xFF, 0xF7, 
+0x96, 0xFF, 0xF8, 0xBD, 0x04, 0x22, 0xA8, 0x1C, 0x03, 0xF0, 0xB0, 0xFE, 0x9D, 0x48, 0x69, 0x46, 
+0x0A, 0x38, 0x09, 0x88, 0x01, 0x82, 0x69, 0x46, 0x49, 0x88, 0x41, 0x82, 0x09, 0x20, 0x28, 0x70, 
+0xEC, 0xE7, 0x10, 0xB5, 0x03, 0x00, 0x04, 0xD0, 0x08, 0x1F, 0x19, 0x28, 0x01, 0xD2, 0x88, 0x07, 
+0x01, 0xD0, 0x02, 0x20, 0x10, 0xBD, 0x92, 0x01, 0x48, 0x1C, 0x02, 0x43, 0x91, 0x48, 0x02, 0x70, 
+0x14, 0x22, 0x42, 0x70, 0x0A, 0x46, 0x19, 0x46, 0x80, 0x1C, 0x03, 0xF0, 0x8F, 0xFE, 0xFF, 0xF7, 
+0x6E, 0xFF, 0x10, 0xBD, 0xFF, 0xB5, 0x05, 0x46, 0xD1, 0x1C, 0x98, 0x01, 0x01, 0x43, 0x81, 0xB0, 
+0x14, 0x46, 0xC9, 0xB2, 0x3B, 0x2D, 0x03, 0xD0, 0x38, 0x2D, 0x01, 0xD0, 0x39, 0x2D, 0x1C, 0xD1, 
+0x1A, 0x2C, 0x1A, 0xD9, 0x83, 0x4B, 0x1D, 0x30, 0x18, 0x70, 0x1A, 0x22, 0x18, 0x1D, 0x02, 0x99, 
+0x03, 0xF0, 0x74, 0xFE, 0x38, 0x2D, 0x01, 0xD0, 0x39, 0x2D, 0x15, 0xD1, 0x00, 0x26, 0x27, 0x46, 
+0x1A, 0x3F, 0x07, 0xE0, 0x02, 0x98, 0xF1, 0xB2, 0x80, 0x19, 0x82, 0x7E, 0x3D, 0x20, 0xFF, 0xF7, 
+0x01, 0xFB, 0x76, 0x1C, 0xBE, 0x42, 0xF5, 0xD3, 0x06, 0xE0, 0x76, 0x48, 0x22, 0x46, 0x01, 0x70, 
+0x00, 0x1D, 0x02, 0x99, 0x03, 0xF0, 0x5A, 0xFE, 0x72, 0x4E, 0xE1, 0x05, 0x75, 0x70, 0x70, 0x88, 
+0xC9, 0x0D, 0x40, 0x0A, 0x40, 0x02, 0x08, 0x43, 0x3F, 0x21, 0x49, 0x02, 0x88, 0x43, 0x70, 0x80, 
+0xB8, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0x4D, 0xFA, 0x40, 0x06, 0x71, 0x88, 0xC0, 0x17, 0x40, 0x1C, 
+0x49, 0x04, 0xC0, 0x03, 0x49, 0x0C, 0x01, 0x43, 0x71, 0x80, 0xFF, 0xF7, 0x20, 0xFF, 0x05, 0xB0, 
+0xF0, 0xBD, 0x70, 0xB5, 0x63, 0x4C, 0x06, 0x46, 0x15, 0x46, 0xA0, 0x1C, 0x03, 0xF0, 0x36, 0xFE, 
+0x6D, 0x1C, 0x25, 0x70, 0x66, 0x70, 0xFF, 0xF7, 0x12, 0xFF, 0x70, 0xBD, 0xFF, 0xB5, 0x04, 0x46, 
+0x81, 0xB0, 0x02, 0x20, 0x00, 0x90, 0x15, 0x46, 0x20, 0x46, 0xFF, 0xF7, 0xDC, 0xFB, 0x01, 0x46, 
+0x5E, 0xA0, 0x03, 0xF0, 0x9F, 0xFC, 0x22, 0x2C, 0x4A, 0xD0, 0x17, 0xDC, 0x20, 0x46, 0x00, 0x26, 
+0x55, 0x4F, 0x23, 0x00, 0x04, 0xF0, 0x41, 0xF8, 0x22, 0x6F, 0x6F, 0x6F, 0x6F, 0x44, 0x44, 0x44, 
+0x3E, 0x6F, 0x44, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x48, 0x48, 0x48, 0x48, 0x81, 0x6F, 0x75, 
+0x44, 0x3E, 0x6F, 0x6F, 0x44, 0x44, 0x44, 0x44, 0x3E, 0x44, 0x44, 0x3E, 0x35, 0x2C, 0x16, 0xD0, 
+0x0E, 0xDC, 0x20, 0x46, 0x23, 0x38, 0x03, 0x00, 0x04, 0xF0, 0x27, 0xF8, 0x12, 0x2A, 0x55, 0x55, 
+0x55, 0x24, 0x2A, 0x2A, 0x24, 0x6D, 0x24, 0x24, 0x24, 0x24, 0x11, 0x11, 0x11, 0x11, 0x11, 0x24, 
+0x3B, 0x2C, 0x04, 0xD0, 0x0A, 0xDC, 0x20, 0x46, 0x36, 0x38, 0x04, 0x28, 0x12, 0xD8, 0x2A, 0x46, 
+0x20, 0x46, 0x04, 0x9B, 0x02, 0x99, 0xFF, 0xF7, 0x5D, 0xFF, 0x3A, 0xE0, 0xF2, 0x2C, 0x0F, 0xD0, 
+0x04, 0xDC, 0x3E, 0x2C, 0x4F, 0xD0, 0xF1, 0x2C, 0x04, 0xD1, 0x09, 0xE0, 0xFC, 0x2C, 0x4A, 0xD0, 
+0xFD, 0x2C, 0x48, 0xD0, 0x21, 0x46, 0x3D, 0xA0, 0x03, 0xF0, 0x54, 0xFC, 0x00, 0x98, 0x96, 0xE7, 
+0x20, 0x46, 0xFF, 0xF7, 0xA3, 0xFE, 0xF9, 0xE7, 0xFF, 0xF7, 0xA0, 0xFE, 0x00, 0x28, 0xF5, 0xD1, 
+0x10, 0x2C, 0x06, 0xD0, 0x11, 0x2C, 0x0A, 0xD0, 0x12, 0x2C, 0x0E, 0xD0, 0x13, 0x2C, 0x12, 0xD0, 
+0x16, 0xE0, 0x3E, 0x70, 0x01, 0x20, 0xF8, 0x71, 0xFA, 0x20, 0x38, 0x73, 0x10, 0xE0, 0x7E, 0x70, 
+0x01, 0x20, 0x38, 0x72, 0x32, 0x20, 0x78, 0x73, 0x0A, 0xE0, 0xFE, 0x70, 0x01, 0x20, 0x78, 0x72, 
+0x57, 0x20, 0xB8, 0x73, 0x04, 0xE0, 0xBE, 0x70, 0x01, 0x20, 0xB8, 0x72, 0x32, 0x20, 0x78, 0x71, 
+0x00, 0x20, 0x00, 0x90, 0xD2, 0xE7, 0xEA, 0xB2, 0x20, 0x46, 0x02, 0x99, 0xFF, 0xF7, 0xD9, 0xFE, 
+0xF7, 0xE7, 0xEA, 0xB2, 0x02, 0x99, 0xFF, 0xF7, 0xD4, 0xFE, 0x00, 0x28, 0xC6, 0xD1, 0x3E, 0x71, 
+0x01, 0x20, 0xF8, 0x72, 0x32, 0x20, 0xB8, 0x71, 0xEA, 0xE7, 0xE9, 0xB2, 0x04, 0x9A, 0x02, 0x98, 
+0xFF, 0xF7, 0xEF, 0xFE, 0xE5, 0xE7, 0xEA, 0xB2, 0x20, 0x46, 0x02, 0x99, 0xFF, 0xF7, 0x51, 0xFF, 
+0xDF, 0xE7, 0x1C, 0xB5, 0x1A, 0xA1, 0x03, 0xC9, 0x01, 0x91, 0x00, 0x90, 0x00, 0x23, 0x05, 0x22, 
+0x69, 0x46, 0xFD, 0x20, 0xFF, 0xF7, 0x52, 0xFF, 0x17, 0x4C, 0x00, 0x23, 0xA0, 0x6A, 0x21, 0x46, 
+0x82, 0x00, 0x08, 0x31, 0x18, 0x46, 0xFF, 0xF7, 0x49, 0xFF, 0x20, 0x46, 0x80, 0x30, 0x80, 0x6B, 
+0x82, 0x00, 0x23, 0xE0, 0xD8, 0x04, 0x00, 0x20, 0x20, 0x00, 0x00, 0x20, 0x54, 0x78, 0x20, 0x42, 
+0x75, 0x66, 0x20, 0x46, 0x75, 0x6C, 0x6C, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x53, 0x65, 0x6E, 0x64, 
+0x4D, 0x53, 0x47, 0x20, 0x2D, 0x3E, 0x25, 0x73, 0x3A, 0x20, 0x0A, 0x00, 0x75, 0x6E, 0x6B, 0x6E, 
+0x6F, 0x77, 0x6E, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x25, 0x32, 0x58, 0x0A, 0x00, 0x00, 0x00, 
+0x10, 0x00, 0x02, 0x01, 0x0D, 0x00, 0x00, 0x00, 0xEC, 0x02, 0x00, 0x20, 0x21, 0x46, 0x00, 0x23, 
+0x98, 0x31, 0x02, 0x20, 0xFF, 0xF7, 0x1A, 0xFF, 0xE0, 0x6C, 0x21, 0x46, 0x82, 0x00, 0x00, 0x23, 
+0x2C, 0x31, 0x01, 0x20, 0xFF, 0xF7, 0x12, 0xFF, 0x20, 0x6F, 0x21, 0x46, 0x82, 0x00, 0x00, 0x23, 
+0x50, 0x31, 0x03, 0x20, 0xFF, 0xF7, 0x0A, 0xFF, 0xF3, 0x48, 0xF3, 0x49, 0x40, 0x6A, 0x00, 0x23, 
+0x82, 0x00, 0x09, 0x1D, 0x08, 0x20, 0xFF, 0xF7, 0x01, 0xFF, 0x1C, 0xBD, 0x38, 0xB5, 0x8D, 0x21, 
+0x3F, 0x20, 0xFF, 0xF7, 0x2E, 0xF9, 0xC4, 0xB2, 0x69, 0x46, 0x0C, 0x70, 0x8E, 0x21, 0x3F, 0x20, 
+0xFF, 0xF7, 0x27, 0xF9, 0xC5, 0xB2, 0x69, 0x46, 0x4D, 0x70, 0x8F, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 
+0x20, 0xF9, 0xC0, 0xB2, 0x69, 0x46, 0x88, 0x70, 0x00, 0x2C, 0x05, 0xD0, 0x00, 0x2D, 0x03, 0xD0, 
+0x00, 0x28, 0x01, 0xD0, 0x01, 0x20, 0x38, 0xBD, 0x00, 0x20, 0x38, 0xBD, 0x70, 0xB5, 0xFF, 0xF7, 
+0xDD, 0xFF, 0x00, 0x28, 0x0E, 0xD1, 0xB7, 0x22, 0xD9, 0x21, 0x2C, 0x20, 0xFF, 0xF7, 0xA2, 0xF9, 
+0x26, 0x22, 0xC0, 0x21, 0x2C, 0x20, 0xFF, 0xF7, 0x9D, 0xF9, 0x11, 0x22, 0xA6, 0x21, 0x2C, 0x20, 
+0xFF, 0xF7, 0x98, 0xF9, 0xD5, 0x4C, 0x60, 0x79, 0x00, 0x28, 0x01, 0xD0, 0x00, 0x22, 0x00, 0xE0, 
+0x01, 0x22, 0xBA, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0x8D, 0xF9, 0x62, 0x78, 0x00, 0x2A, 0x0E, 0xD0, 
+0xE0, 0x78, 0x00, 0x28, 0x0B, 0xD0, 0xAC, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0x83, 0xF9, 0xE2, 0x78, 
+0xAD, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0x7E, 0xF9, 0xE2, 0x78, 0x61, 0x78, 0x0B, 0xE0, 0x32, 0x22, 
+0xAC, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0x76, 0xF9, 0x0F, 0x22, 0xAD, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 
+0x71, 0xF9, 0x0F, 0x22, 0x32, 0x21, 0xC2, 0xA0, 0x03, 0xF0, 0x4C, 0xFB, 0x22, 0x79, 0x00, 0x2A, 
+0x31, 0xD0, 0xAE, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0x65, 0xF9, 0x61, 0x78, 0x02, 0x26, 0x00, 0x29, 
+0x2B, 0xD0, 0xE0, 0x78, 0x00, 0x28, 0x28, 0xD0, 0xC7, 0x4A, 0x50, 0x43, 0x03, 0xF0, 0x30, 0xFD, 
+0x40, 0x00, 0x19, 0x21, 0x03, 0xF0, 0x2C, 0xFD, 0x21, 0x21, 0x09, 0x01, 0x40, 0x18, 0xC2, 0xB2, 
+0xDD, 0x21, 0x2C, 0x20, 0xFF, 0xF7, 0x4E, 0xF9, 0xDE, 0x21, 0x2C, 0x20, 0xFF, 0xF7, 0xB1, 0xF8, 
+0xC5, 0xB2, 0xE0, 0x78, 0xBC, 0x4A, 0x61, 0x78, 0x50, 0x43, 0x03, 0xF0, 0x19, 0xFD, 0x40, 0x00, 
+0x19, 0x21, 0x03, 0xF0, 0x15, 0xFD, 0x21, 0x21, 0x80, 0x05, 0x89, 0x06, 0x40, 0x18, 0x80, 0x0F, 
+0x05, 0x43, 0x2A, 0x46, 0x0C, 0xE0, 0x02, 0x22, 0xCB, 0xE7, 0xD0, 0x22, 0xDD, 0x21, 0x2C, 0x20, 
+0xFF, 0xF7, 0x30, 0xF9, 0xDE, 0x21, 0x2C, 0x20, 0xFF, 0xF7, 0x93, 0xF8, 0xC2, 0xB2, 0x32, 0x43, 
+0xDE, 0x21, 0x2C, 0x20, 0xFF, 0xF7, 0x26, 0xF9, 0xB2, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0x89, 0xF8, 
+0xC5, 0xB2, 0x20, 0x78, 0x80, 0x07, 0x04, 0xD5, 0xA8, 0xA0, 0x03, 0xF0, 0xFB, 0xFA, 0x35, 0x43, 
+0x04, 0xE0, 0xAD, 0xA0, 0x03, 0xF0, 0xF6, 0xFA, 0xFD, 0x20, 0x05, 0x40, 0x2C, 0x46, 0xF3, 0x20, 
+0xB0, 0x4D, 0x04, 0x40, 0x05, 0x21, 0x28, 0x46, 0xFE, 0xF7, 0xC7, 0xFE, 0x01, 0x28, 0x06, 0xD0, 
+0x05, 0x21, 0x28, 0x46, 0xFE, 0xF7, 0xC1, 0xFE, 0x00, 0x28, 0x04, 0xD0, 0x08, 0xE0, 0x08, 0x20, 
+0x04, 0x43, 0xA9, 0xA0, 0x02, 0xE0, 0x04, 0x20, 0x04, 0x43, 0xAD, 0xA0, 0x03, 0xF0, 0xDA, 0xFA, 
+0x22, 0x46, 0xB2, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0xF5, 0xF8, 0xEF, 0x22, 0xB6, 0x21, 0x3F, 0x20, 
+0xFF, 0xF7, 0xF0, 0xF8, 0xFF, 0x22, 0xBB, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0xEB, 0xF8, 0x70, 0xBD, 
+0x10, 0xB5, 0x95, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0x4C, 0xF8, 0xC4, 0xB2, 0x21, 0x46, 0xA6, 0xA0, 
+0x03, 0xF0, 0xC0, 0xFA, 0xAC, 0x2C, 0x0E, 0xD3, 0xFF, 0x2C, 0x0C, 0xD0, 0x80, 0x22, 0xAA, 0x21, 
+0x2C, 0x20, 0xFF, 0xF7, 0xD7, 0xF8, 0x4A, 0x22, 0x1A, 0x21, 0x2C, 0x20, 0xFF, 0xF7, 0xD2, 0xF8, 
+0x99, 0x22, 0x23, 0x21, 0x1C, 0xE0, 0x80, 0x22, 0xAA, 0x21, 0x2C, 0x20, 0xFF, 0xF7, 0xCA, 0xF8, 
+0x4A, 0x22, 0x1A, 0x21, 0x2C, 0x20, 0xFF, 0xF7, 0xC5, 0xF8, 0xA1, 0x21, 0x2C, 0x20, 0xFF, 0xF7, 
+0x28, 0xF8, 0xC2, 0xB2, 0xA0, 0x20, 0x02, 0x43, 0xA1, 0x21, 0x2C, 0x20, 0xFF, 0xF7, 0xBA, 0xF8, 
+0xA1, 0x21, 0x2C, 0x20, 0xFF, 0xF7, 0x1D, 0xF8, 0xC2, 0xB2, 0x40, 0x20, 0x02, 0x43, 0xA1, 0x21, 
+0x2C, 0x20, 0xFF, 0xF7, 0xAF, 0xF8, 0x10, 0xBD, 0x10, 0xB5, 0x6E, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 
+0x10, 0xF8, 0xC2, 0xB2, 0x40, 0x20, 0x02, 0x43, 0x6E, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 0xA2, 0xF8, 
+0xD8, 0x21, 0x2C, 0x20, 0xFF, 0xF7, 0x05, 0xF8, 0x00, 0x06, 0x80, 0x0F, 0x03, 0x28, 0x01, 0xD1, 
+0xFF, 0xF7, 0xAE, 0xFF, 0xFF, 0x22, 0x23, 0x21, 0x2C, 0x20, 0xFF, 0xF7, 0x93, 0xF8, 0x10, 0xBD, 
+0x10, 0xB5, 0x88, 0xB0, 0x6B, 0x46, 0x20, 0x22, 0xE0, 0x21, 0x3F, 0x20, 0xFE, 0xF7, 0xC4, 0xFF, 
+0x68, 0x46, 0x00, 0x78, 0x00, 0x28, 0x21, 0xD0, 0xC2, 0x06, 0x4B, 0x48, 0xD2, 0x0E, 0x92, 0x1C, 
+0x69, 0x46, 0x4C, 0x30, 0xFD, 0xF7, 0x8C, 0xFD, 0x00, 0x22, 0xE0, 0x21, 0x3F, 0x20, 0xFF, 0xF7, 
+0x79, 0xF8, 0x45, 0x49, 0x00, 0x22, 0x4C, 0x31, 0x0B, 0x78, 0x10, 0x46, 0xDB, 0x06, 0xDB, 0x0E, 
+0x9B, 0x1C, 0x04, 0xE0, 0x0C, 0x5C, 0xA2, 0x18, 0x40, 0x1C, 0xD2, 0xB2, 0xC0, 0xB2, 0x83, 0x42, 
+0xF8, 0xD8, 0x00, 0x2A, 0x05, 0xD0, 0x73, 0xA0, 0x03, 0xF0, 0x44, 0xFA, 0x02, 0x20, 0x08, 0xB0, 
+0x10, 0xBD, 0x00, 0x20, 0xFB, 0xE7, 0x10, 0xB5, 0xBA, 0x21, 0x3F, 0x20, 0xFE, 0xF7, 0xC1, 0xFF, 
+0x80, 0x06, 0x80, 0x0F, 0x01, 0x28, 0x05, 0xD0, 0x00, 0x23, 0x1A, 0x46, 0x19, 0x46, 0x1C, 0x20, 
+0xFF, 0xF7, 0x84, 0xFD, 0x01, 0x20, 0x10, 0xBD, 0x10, 0xB5, 0x2F, 0x4C, 0x4C, 0x34, 0xE0, 0x78, 
+0xFF, 0xF7, 0x24, 0xF9, 0x02, 0x46, 0xA0, 0x78, 0xFF, 0xF7, 0x5D, 0xF9, 0x01, 0x46, 0x66, 0xA0, 
+0x03, 0xF0, 0x20, 0xFA, 0xA2, 0x78, 0x01, 0x20, 0x10, 0x3A, 0x69, 0x49, 0x13, 0x00, 0x03, 0xF0, 
+0xC4, 0xFD, 0x07, 0x07, 0x05, 0x0B, 0x09, 0x0E, 0x0E, 0x0D, 0x0E, 0x00, 0x48, 0x70, 0x06, 0xE0, 
+0x08, 0x70, 0x04, 0xE0, 0x88, 0x70, 0x02, 0xE0, 0xC8, 0x70, 0x00, 0xE0, 0x08, 0x71, 0x01, 0x20, 
+0x10, 0xBD, 0x10, 0xB5, 0x0A, 0x78, 0x0B, 0x46, 0xFC, 0x28, 0x1E, 0xD1, 0x98, 0x78, 0x59, 0x78, 
+0x08, 0x30, 0x81, 0x40, 0x00, 0x2A, 0x1A, 0xD0, 0x01, 0x2A, 0x1A, 0xD0, 0x10, 0x2A, 0x1A, 0xD0, 
+0x11, 0x2A, 0x1A, 0xD0, 0x12, 0x2A, 0x1A, 0xD0, 0x13, 0x2A, 0x1A, 0xD0, 0x14, 0x2A, 0x1A, 0xD0, 
+0x15, 0x2A, 0x1A, 0xD0, 0x16, 0x2A, 0x1A, 0xD0, 0x17, 0x2A, 0x19, 0xD0, 0x18, 0x2A, 0x18, 0xD0, 
+0x19, 0x2A, 0x17, 0xD0, 0x4F, 0xA0, 0x03, 0xF0, 0xE5, 0xF9, 0x01, 0x20, 0x10, 0xBD, 0x52, 0xA0, 
+0xF9, 0xE7, 0x56, 0xA0, 0xF7, 0xE7, 0x5A, 0xA0, 0xF5, 0xE7, 0x60, 0xA0, 0xF3, 0xE7, 0x66, 0xA0, 
+0xF1, 0xE7, 0x6C, 0xA0, 0xEF, 0xE7, 0x72, 0xA0, 0xED, 0xE7, 0x77, 0xA0, 0xEB, 0xE7, 0xF7, 0xE0, 
+0xF8, 0xE0, 0xF9, 0xE0, 0xFA, 0xE0, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x20, 0xEC, 0x02, 0x00, 0x20, 
+0x41, 0x4E, 0x58, 0x37, 0x34, 0x31, 0x31, 0x20, 0x73, 0x65, 0x74, 0x20, 0x4D, 0x41, 0x58, 0x5F, 
+0x56, 0x4F, 0x4C, 0x54, 0x41, 0x47, 0x45, 0x3A, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2C, 0x20, 0x4D, 
+0x41, 0x58, 0x5F, 0x50, 0x4F, 0x57, 0x45, 0x52, 0x3A, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x2D, 
+0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x88, 0x13, 0x00, 0x00, 0x65, 0x6E, 0x61, 0x62, 
+0x6C, 0x65, 0x20, 0x61, 0x75, 0x74, 0x6F, 0x20, 0x70, 0x64, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 
+0x69, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6C, 0x65, 0x20, 
+0x61, 0x75, 0x74, 0x6F, 0x20, 0x70, 0x64, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 
+0x0A, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x50, 0x41, 0x4E, 0x58, 0x37, 0x34, 0x31, 0x31, 0x20, 
+0x54, 0x72, 0x79, 0x2E, 0x53, 0x6E, 0x6B, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 
+0x41, 0x4E, 0x58, 0x37, 0x34, 0x31, 0x31, 0x20, 0x54, 0x72, 0x79, 0x2E, 0x53, 0x72, 0x63, 0x2D, 
+0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x64, 0x72, 0x70, 0x5F, 0x74, 0x6F, 0x67, 0x67, 
+0x6C, 0x65, 0x5F, 0x65, 0x6E, 0x61, 0x62, 0x6C, 0x65, 0x3A, 0x63, 0x68, 0x69, 0x70, 0x5F, 0x76, 
+0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x20, 0x30, 0x78, 0x25, 0x78, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 
+0x6F, 0x6E, 0x0A, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x73, 0x75, 0x6D, 0x20, 0x65, 0x72, 0x72, 
+0x6F, 0x72, 0x3A, 0x20, 0x0A, 0x00, 0x00, 0x00, 0x52, 0x45, 0x53, 0x50, 0x4F, 0x4E, 0x53, 0x45, 
+0x20, 0x66, 0x6F, 0x72, 0x20, 0x25, 0x73, 0x20, 0x69, 0x73, 0x20, 0x25, 0x73, 0x0A, 0x00, 0x00, 
+0x20, 0x00, 0x00, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x3F, 0x64, 
+0x61, 0x74, 0x61, 0x20, 0x3D, 0x20, 0x00, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x30, 0x78, 0x25, 
+0x78, 0x20, 0x69, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3D, 0x20, 0x00, 0x00, 0x72, 0x65, 0x61, 0x64, 
+0x20, 0x30, 0x78, 0x25, 0x78, 0x20, 0x78, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3D, 0x20, 0x00, 0x00, 
+0x72, 0x65, 0x61, 0x64, 0x20, 0x52, 0x45, 0x47, 0x5F, 0x46, 0x57, 0x5F, 0x56, 0x41, 0x52, 0x5B, 
+0x30, 0x78, 0x25, 0x78, 0x5D, 0x20, 0x3D, 0x20, 0x00, 0x00, 0x00, 0x00, 0x72, 0x65, 0x61, 0x64, 
+0x20, 0x70, 0x64, 0x5F, 0x73, 0x72, 0x63, 0x5F, 0x70, 0x64, 0x6F, 0x5B, 0x30, 0x78, 0x25, 0x78, 
+0x5D, 0x20, 0x3D, 0x20, 0x00, 0x00, 0x00, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x70, 0x64, 0x5F, 
+0x73, 0x6E, 0x6B, 0x5F, 0x70, 0x64, 0x6F, 0x5B, 0x30, 0x78, 0x25, 0x78, 0x5D, 0x20, 0x3D, 0x20, 
+0x00, 0x00, 0x00, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x70, 0x64, 0x5F, 0x72, 0x64, 0x6F, 0x5F, 
+0x62, 0x61, 0x6B, 0x5B, 0x30, 0x78, 0x25, 0x78, 0x5D, 0x20, 0x3D, 0x20, 0x00, 0x00, 0x00, 0x00, 
+0x72, 0x65, 0x61, 0x64, 0x20, 0x70, 0x64, 0x5F, 0x72, 0x64, 0x6F, 0x5B, 0x30, 0x78, 0x25, 0x78, 
+0x5D, 0x20, 0x3D, 0x20, 0x00, 0x00, 0x00, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x44, 0x50, 0x5F, 
+0x63, 0x61, 0x70, 0x5B, 0x30, 0x78, 0x25, 0x78, 0x5D, 0x20, 0x3D, 0x20, 0x00, 0x00, 0x00, 0x00, 
+0xE5, 0xA0, 0xF0, 0xE6, 0xEC, 0xA0, 0xEE, 0xE6, 0xF2, 0xA0, 0xEC, 0xE6, 0xF8, 0xA0, 0xEA, 0xE6, 
+0xF8, 0xB5, 0xFE, 0x4C, 0x07, 0x46, 0x0E, 0x46, 0x20, 0x7C, 0x61, 0x7C, 0x08, 0x43, 0xA1, 0x7C, 
+0x08, 0x43, 0xE1, 0x69, 0x08, 0x43, 0x21, 0x6A, 0x08, 0x43, 0x61, 0x6A, 0x08, 0x43, 0x03, 0xD0, 
+0xF7, 0xA0, 0x03, 0xF0, 0xBF, 0xF8, 0xF8, 0xBD, 0xE0, 0x7D, 0xF4, 0x4D, 0x41, 0x1C, 0x1C, 0x35, 
+0xB9, 0x42, 0x28, 0xD9, 0x00, 0x20, 0x15, 0xE0, 0x83, 0x00, 0x99, 0x19, 0xCA, 0x78, 0x2A, 0x70, 
+0x8A, 0x78, 0x6A, 0x70, 0x49, 0x78, 0xA9, 0x70, 0xF1, 0x5C, 0xE9, 0x70, 0xE1, 0x69, 0x8A, 0x0F, 
+0x0D, 0xD0, 0x01, 0x2A, 0x0D, 0xD0, 0x02, 0x2A, 0x0B, 0xD0, 0xF4, 0xA0, 0x03, 0xF0, 0xA2, 0xF8, 
+0x20, 0x7C, 0x40, 0x1C, 0x20, 0x74, 0xC0, 0xB2, 0xB8, 0x42, 0xE5, 0xD3, 0x21, 0xE0, 0x09, 0x03, 
+0x00, 0xE0, 0x89, 0x00, 0x89, 0x0D, 0x32, 0x22, 0x51, 0x43, 0x22, 0x6A, 0x91, 0x42, 0xEF, 0xD9, 
+0x21, 0x62, 0x60, 0x74, 0xEC, 0xE7, 0x81, 0x00, 0x88, 0x19, 0xC2, 0x78, 0x2A, 0x70, 0x82, 0x78, 
+0x6A, 0x70, 0x40, 0x78, 0xA8, 0x70, 0x70, 0x5C, 0xE8, 0x70, 0xE0, 0x69, 0x81, 0x0F, 0x1C, 0xD0, 
+0x01, 0x29, 0x20, 0xD0, 0x02, 0x29, 0x1E, 0xD0, 0xE0, 0xA0, 0x03, 0xF0, 0x7B, 0xF8, 0xE0, 0x7D, 
+0x60, 0x74, 0x67, 0x7C, 0xB9, 0x00, 0x88, 0x19, 0xC2, 0x78, 0x2A, 0x70, 0x82, 0x78, 0x6A, 0x70, 
+0x40, 0x78, 0xA8, 0x70, 0x70, 0x5C, 0xE8, 0x70, 0xE0, 0x69, 0xDD, 0x4D, 0x81, 0x0F, 0x0C, 0xD0, 
+0x01, 0x29, 0x19, 0xD0, 0x02, 0x29, 0x34, 0xD1, 0x07, 0xE0, 0x00, 0x03, 0x80, 0x0D, 0x32, 0x21, 
+0x48, 0x43, 0x20, 0x62, 0xE3, 0xE7, 0x80, 0x00, 0xF8, 0xE7, 0x80, 0x05, 0x80, 0x0D, 0x0A, 0x21, 
+0x48, 0x43, 0xD4, 0x49, 0x60, 0x62, 0x88, 0x42, 0x04, 0xD3, 0x7F, 0x1C, 0x78, 0x07, 0x40, 0x08, 
+0xD1, 0x49, 0x0E, 0xE0, 0x0A, 0x21, 0x10, 0xE0, 0x80, 0x05, 0x80, 0x0D, 0xFA, 0x21, 0x48, 0x43, 
+0x80, 0x08, 0xCE, 0x49, 0x60, 0x62, 0x88, 0x42, 0x05, 0xD3, 0x7F, 0x1C, 0x78, 0x07, 0xCC, 0x49, 
+0x40, 0x08, 0x40, 0x18, 0x0C, 0xE0, 0x80, 0x00, 0xFA, 0x21, 0x03, 0xF0, 0x31, 0xFA, 0x81, 0x05, 
+0x89, 0x0D, 0x7F, 0x1C, 0x88, 0x02, 0x7A, 0x07, 0x52, 0x08, 0x10, 0x43, 0x08, 0x43, 0x28, 0x43, 
+0xE0, 0x61, 0x00, 0x20, 0x20, 0x74, 0x60, 0x74, 0xA0, 0x74, 0xE0, 0x61, 0x20, 0x62, 0x60, 0x62, 
+0xF8, 0xBD, 0x10, 0xB5, 0x04, 0x46, 0x40, 0x1C, 0x03, 0xF0, 0x09, 0xFA, 0x21, 0x78, 0x00, 0x02, 
+0x08, 0x43, 0x10, 0xBD, 0x08, 0xB5, 0x20, 0x23, 0x6A, 0x46, 0x13, 0x70, 0x00, 0x23, 0x53, 0x70, 
+0x00, 0x29, 0x06, 0xD0, 0x03, 0x28, 0x11, 0xD0, 0x02, 0x28, 0x11, 0xD0, 0x01, 0x28, 0x11, 0xD0, 
+0x12, 0xE0, 0x03, 0x28, 0x04, 0xD0, 0x02, 0x28, 0x04, 0xD0, 0x01, 0x28, 0x04, 0xD0, 0x0B, 0xE0, 
+0xF8, 0x20, 0x08, 0xE0, 0xE8, 0x20, 0x06, 0xE0, 0xB8, 0x20, 0x04, 0xE0, 0xFC, 0x20, 0x02, 0xE0, 
+0xEC, 0x20, 0x00, 0xE0, 0xBC, 0x20, 0x90, 0x70, 0x00, 0x23, 0x03, 0x22, 0x69, 0x46, 0x3E, 0x20, 
+0xFF, 0xF7, 0x4C, 0xFB, 0x08, 0xBD, 0x70, 0xB5, 0xA6, 0x4D, 0x04, 0x28, 0x0F, 0xD0, 0x03, 0x24, 
+0xA5, 0xA0, 0x02, 0xF0, 0xEF, 0xFF, 0x00, 0x20, 0xE8, 0x73, 0xA8, 0x4D, 0xA8, 0x7A, 0xA0, 0x42, 
+0x04, 0xD0, 0x69, 0x7A, 0x20, 0x46, 0xFF, 0xF7, 0xC5, 0xFF, 0xAC, 0x72, 0x70, 0xBD, 0x02, 0x24, 
+0xA3, 0xA0, 0x02, 0xF0, 0xDF, 0xFF, 0x01, 0x20, 0xEE, 0xE7, 0xF0, 0xB5, 0x01, 0x27, 0x85, 0xB0, 
+0x05, 0x46, 0x0C, 0x46, 0x16, 0x46, 0x00, 0x28, 0x04, 0xD0, 0x01, 0x2D, 0x05, 0xD0, 0x16, 0x2D, 
+0x0A, 0xD0, 0x11, 0xE0, 0xB0, 0x07, 0x04, 0xD1, 0x0E, 0xE0, 0xB0, 0x07, 0x01, 0xD1, 0x1C, 0x2E, 
+0x0A, 0xD9, 0x00, 0x20, 0x05, 0xB0, 0xF0, 0xBD, 0x04, 0x2E, 0x49, 0xD1, 0xB2, 0x21, 0x3F, 0x20, 
+0xFE, 0xF7, 0x47, 0xFD, 0x80, 0x07, 0x43, 0xD4, 0x90, 0x4B, 0x28, 0x46, 0xA8, 0x33, 0x00, 0x93, 
+0x93, 0x49, 0x94, 0x4A, 0x71, 0x4D, 0x03, 0x00, 0x03, 0xF0, 0x5F, 0xFB, 0x3B, 0x1F, 0x37, 0x3A, 
+0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 
+0x3A, 0x3A, 0x3A, 0x3B, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0xA3, 0xA2, 0x3A, 0x3A, 0x5C, 0xA1, 
+0xA0, 0x62, 0x9F, 0x9E, 0x3A, 0x3A, 0x3A, 0x9D, 0x9C, 0x3A, 0x3A, 0x3A, 0x3A, 0x9B, 0x9A, 0x99, 
+0x98, 0x97, 0x96, 0x95, 0x94, 0x93, 0x92, 0x91, 0x3A, 0x00, 0xB2, 0x21, 0x3F, 0x20, 0xFE, 0xF7, 
+0x18, 0xFD, 0x80, 0x07, 0xCF, 0xD4, 0xB0, 0x08, 0x21, 0x46, 0xFF, 0xF7, 0xB9, 0xFE, 0xE8, 0x69, 
+0x69, 0x46, 0x02, 0x0E, 0xCA, 0x73, 0x02, 0x0C, 0x8A, 0x73, 0x02, 0x0A, 0x4A, 0x73, 0x08, 0x73, 
+0x00, 0x23, 0x04, 0x22, 0x03, 0xA9, 0x16, 0x20, 0xF2, 0xE1, 0x1C, 0x2E, 0x00, 0xD9, 0x00, 0x27, 
+0x85, 0xE2, 0x04, 0x2E, 0xFC, 0xD1, 0xB2, 0x21, 0x3F, 0x20, 0xFE, 0xF7, 0xFA, 0xFC, 0x80, 0x07, 
+0xF6, 0xD4, 0x20, 0x46, 0x03, 0xF0, 0x53, 0xF9, 0xE1, 0x78, 0x00, 0x02, 0x00, 0x0A, 0x09, 0x06, 
+0x08, 0x43, 0x00, 0xF0, 0x6D, 0xFD, 0x00, 0x28, 0x04, 0xD0, 0x00, 0x23, 0x1A, 0x46, 0x19, 0x46, 
+0x05, 0x20, 0x03, 0xE0, 0x00, 0x23, 0x1A, 0x46, 0x19, 0x46, 0x06, 0x20, 0xFF, 0xF7, 0xAE, 0xFA, 
+0x07, 0x46, 0x64, 0xE2, 0x41, 0x49, 0x00, 0x23, 0x04, 0x22, 0x28, 0x31, 0x37, 0x20, 0xC7, 0xE1, 
+0x05, 0x2E, 0x03, 0xD1, 0x21, 0x79, 0x60, 0xA0, 0x02, 0xF0, 0x4C, 0xFF, 0x3B, 0x48, 0x04, 0x22, 
+0x21, 0x46, 0x34, 0x30, 0x03, 0xF0, 0xCA, 0xF8, 0x38, 0x4C, 0x60, 0xA0, 0x34, 0x34, 0x61, 0x78, 
+0x02, 0xF0, 0x40, 0xFF, 0x61, 0x88, 0x62, 0xA0, 0x02, 0xF0, 0x3C, 0xFF, 0xEA, 0x7C, 0x00, 0x2A, 
+0xBE, 0xD0, 0x28, 0x7D, 0x00, 0x28, 0xBB, 0xD0, 0x00, 0x20, 0x01, 0x21, 0x0B, 0x46, 0x83, 0x40, 
+0x13, 0x42, 0x1F, 0xD0, 0x81, 0x40, 0x8A, 0x43, 0x68, 0x75, 0x2C, 0x49, 0xEA, 0x74, 0x00, 0x23, 
+0x01, 0x22, 0x15, 0x31, 0x33, 0x20, 0xFF, 0xF7, 0x79, 0xFA, 0x69, 0x7D, 0xB2, 0xE0, 0x43, 0xE2, 
+0xF9, 0xE1, 0xBC, 0xE1, 0x2D, 0xE2, 0x9B, 0xE1, 0x86, 0xE1, 0x6A, 0xE1, 0x58, 0xE1, 0x47, 0xE1, 
+0x09, 0xE1, 0x01, 0xE1, 0xDA, 0xE0, 0xF8, 0xE0, 0xAB, 0xE1, 0xAF, 0xE0, 0xEA, 0xE0, 0xA2, 0xE1, 
+0xE2, 0xE0, 0xD6, 0xE0, 0xA2, 0xE0, 0x00, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x63, 0x6F, 0x6E, 
+0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x5F, 0x44, 0x50, 0x5F, 0x63, 0x61, 0x70, 0x73, 0x5B, 0x30, 
+0x78, 0x25, 0x78, 0x5D, 0x20, 0x3D, 0x20, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x72, 0x63, 
+0x5F, 0x64, 0x70, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5B, 0x30, 0x78, 0x25, 0x78, 0x5D, 
+0x20, 0x3D, 0x20, 0x00, 0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x69, 0x6E, 0x6B, 0x5F, 0x73, 0x76, 
+0x69, 0x64, 0x5F, 0x76, 0x64, 0x6F, 0x5B, 0x30, 0x78, 0x25, 0x78, 0x5D, 0x20, 0x3D, 0x20, 0x00, 
+0x72, 0x65, 0x61, 0x64, 0x20, 0x73, 0x69, 0x6E, 0x6B, 0x5F, 0x69, 0x64, 0x65, 0x6E, 0x74, 0x69, 
+0x74, 0x79, 0x5B, 0x30, 0x78, 0x25, 0x78, 0x5D, 0x20, 0x3D, 0x20, 0x00, 0x20, 0x00, 0x00, 0x20, 
+0x62, 0x75, 0x69, 0x6C, 0x64, 0x20, 0x72, 0x64, 0x6F, 0x3A, 0x20, 0x47, 0x6C, 0x6F, 0x62, 0x61, 
+0x6C, 0x20, 0x58, 0x44, 0x54, 0x41, 0x20, 0x69, 0x73, 0x20, 0x4E, 0x4F, 0x54, 0x20, 0x41, 0x76, 
+0x6C, 0x69, 0x61, 0x62, 0x6C, 0x65, 0x2E, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x52, 0x65, 0x73, 0x65, 
+0x72, 0x76, 0x65, 0x64, 0x20, 0x50, 0x44, 0x4F, 0x20, 0x54, 0x79, 0x70, 0x65, 0x0A, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x04, 0xB8, 0x0B, 0x00, 0x00, 0x2C, 0xB1, 0x04, 0x00, 0x98, 0x3A, 0x00, 0x00, 
+0xF0, 0xC0, 0x03, 0x00, 0x74, 0x07, 0x00, 0x20, 0x55, 0x53, 0x42, 0x33, 0x5F, 0x31, 0x5F, 0x44, 
+0x50, 0x5F, 0x32, 0x4C, 0x41, 0x4E, 0x45, 0x53, 0x0A, 0x00, 0x00, 0x00, 0xCC, 0x04, 0x00, 0x20, 
+0x44, 0x50, 0x5F, 0x41, 0x4C, 0x54, 0x5F, 0x34, 0x4C, 0x41, 0x4E, 0x45, 0x53, 0x0A, 0x00, 0x00, 
+0x34, 0x12, 0x00, 0x00, 0x78, 0x56, 0x00, 0x00, 0x20, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 
+0x20, 0x25, 0x64, 0x20, 0x61, 0x6C, 0x65, 0x72, 0x74, 0x2E, 0x0A, 0x00, 0x20, 0x62, 0x61, 0x74, 
+0x74, 0x65, 0x72, 0x79, 0x5F, 0x69, 0x6E, 0x66, 0x6F, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00, 
+0x20, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x5F, 0x70, 0x63, 0x20, 0x3D, 0x20, 0x25, 0x78, 
+0x0A, 0x00, 0x00, 0x00, 0xED, 0xA0, 0x02, 0xF0, 0x6D, 0xFE, 0x04, 0xE0, 0x40, 0x1C, 0xC0, 0xB2, 
+0x08, 0x28, 0x00, 0xD2, 0x32, 0xE7, 0x00, 0x20, 0x28, 0x75, 0x70, 0xE1, 0x04, 0x22, 0x21, 0x46, 
+0xEF, 0x48, 0x02, 0xF0, 0xE3, 0xFF, 0xEE, 0x4E, 0xB0, 0x78, 0x01, 0x07, 0x09, 0x0F, 0xED, 0xA0, 
+0x02, 0xF0, 0x58, 0xFE, 0xB0, 0x78, 0x01, 0x09, 0xF2, 0xA0, 0x02, 0xF0, 0x53, 0xFE, 0xF1, 0x78, 
+0xF6, 0xA0, 0x02, 0xF0, 0x4F, 0xFE, 0x00, 0x23, 0x1A, 0x46, 0x19, 0x46, 0x1E, 0x20, 0xFF, 0xF7, 
+0x9D, 0xF9, 0xE0, 0x78, 0x80, 0x07, 0xE0, 0xD5, 0xA0, 0x78, 0x01, 0x07, 0x09, 0x0E, 0x00, 0x09, 
+0x01, 0x43, 0xE9, 0x74, 0x01, 0x20, 0x28, 0x75, 0xF1, 0xA0, 0x61, 0xE0, 0x21, 0x78, 0xFB, 0xA0, 
+0x5E, 0xE0, 0xDB, 0x48, 0x24, 0x30, 0x01, 0x80, 0x42, 0x80, 0x00, 0x21, 0x0B, 0x46, 0x41, 0x60, 
+0x18, 0x22, 0x01, 0x46, 0x30, 0x20, 0xA3, 0xE0, 0xD5, 0x49, 0x00, 0x23, 0x05, 0x22, 0x08, 0x31, 
+0x31, 0x20, 0x9D, 0xE0, 0xD2, 0x48, 0x00, 0x23, 0x3C, 0x30, 0x01, 0x80, 0x42, 0x80, 0x01, 0x21, 
+0x41, 0x60, 0x18, 0x22, 0x01, 0x46, 0x3A, 0x20, 0x92, 0xE0, 0xF3, 0xA0, 0x02, 0xF0, 0x1A, 0xFE, 
+0x60, 0x78, 0xFF, 0xF7, 0x20, 0xFE, 0x22, 0xE1, 0x18, 0x22, 0xA1, 0x1C, 0xF6, 0x48, 0x02, 0xF0, 
+0x95, 0xFF, 0xF5, 0x4C, 0x36, 0xE1, 0xC6, 0x48, 0x05, 0x22, 0xA1, 0x1C, 0x0D, 0x30, 0x02, 0xF0, 
+0x8D, 0xFF, 0xC3, 0x4C, 0xF1, 0xA0, 0x0D, 0x34, 0x21, 0x78, 0x02, 0xF0, 0x03, 0xFE, 0x61, 0x78, 
+0xF1, 0xA0, 0x02, 0xF0, 0xFF, 0xFD, 0xA1, 0x78, 0xF3, 0xA0, 0x02, 0xF0, 0xFB, 0xFD, 0xE1, 0x78, 
+0xF5, 0xA0, 0x02, 0xF0, 0xF7, 0xFD, 0x21, 0x79, 0xF8, 0xA0, 0x02, 0xF0, 0xF3, 0xFD, 0xEA, 0x7C, 
+0x00, 0x2A, 0x8A, 0xD0, 0x28, 0x7D, 0x00, 0x28, 0x87, 0xD0, 0x00, 0x20, 0x01, 0x21, 0x0B, 0x46, 
+0x83, 0x40, 0x13, 0x42, 0x0F, 0xD0, 0x81, 0x40, 0x8A, 0x43, 0x68, 0x75, 0xB0, 0x49, 0xEA, 0x74, 
+0x00, 0x23, 0x01, 0x22, 0x23, 0x39, 0x33, 0x20, 0xFF, 0xF7, 0x30, 0xF9, 0x69, 0x7D, 0xA3, 0xA0, 
+0x02, 0xF0, 0xD8, 0xFD, 0xE3, 0xE0, 0x40, 0x1C, 0xC0, 0xB2, 0x08, 0x28, 0xE7, 0xD3, 0xDE, 0xE0, 
+0xA7, 0x49, 0xA0, 0x78, 0x38, 0x39, 0x88, 0x75, 0x07, 0x28, 0x03, 0xD9, 0x00, 0x23, 0x09, 0x22, 
+0x8C, 0x31, 0x03, 0xE0, 0xA2, 0x49, 0x00, 0x23, 0x09, 0x22, 0x64, 0x31, 0x34, 0x20, 0x37, 0xE0, 
+0xA0, 0x78, 0x68, 0x75, 0x07, 0x28, 0x04, 0xD9, 0x9D, 0x49, 0x00, 0x23, 0x04, 0x22, 0x0C, 0x39, 
+0x05, 0xE0, 0x9B, 0x49, 0x80, 0x00, 0xE4, 0x31, 0x41, 0x18, 0x00, 0x23, 0x04, 0x22, 0x24, 0x20, 
+0x26, 0xE0, 0xC5, 0x48, 0x09, 0x22, 0xA1, 0x1C, 0x18, 0x30, 0x02, 0xF0, 0x2F, 0xFF, 0xC2, 0x4C, 
+0xD9, 0xA0, 0x18, 0x34, 0x21, 0x68, 0x02, 0xF0, 0xA5, 0xFD, 0xDA, 0xA0, 0x61, 0x68, 0x02, 0xF0, 
+0xA1, 0xFD, 0x21, 0x89, 0xDA, 0xA0, 0x02, 0xF0, 0x9D, 0xFD, 0x61, 0x89, 0xDC, 0xA0, 0x02, 0xF0, 
+0x99, 0xFD, 0x21, 0x7B, 0xE0, 0xA0, 0xBB, 0xE7, 0x89, 0x49, 0xA0, 0x78, 0x20, 0x39, 0x08, 0x70, 
+0xE2, 0x78, 0x4A, 0x70, 0x00, 0x28, 0x06, 0xD0, 0x00, 0x23, 0x1A, 0x46, 0x19, 0x46, 0x1C, 0x20, 
+0xFF, 0xF7, 0xDC, 0xF8, 0x93, 0xE0, 0x00, 0x23, 0x1A, 0x22, 0xDA, 0x49, 0x36, 0x20, 0xF7, 0xE7, 
+0xAD, 0x48, 0xB2, 0x1E, 0xA1, 0x1C, 0x28, 0x30, 0x02, 0xF0, 0x00, 0xFF, 0xAA, 0x4C, 0xC2, 0xA0, 
+0x28, 0x34, 0x21, 0x88, 0x02, 0xF0, 0x76, 0xFD, 0x61, 0x88, 0xC2, 0xA0, 0x02, 0xF0, 0x72, 0xFD, 
+0x21, 0x1D, 0xD1, 0xA0, 0x94, 0xE7, 0x76, 0x49, 0x00, 0x23, 0x08, 0x22, 0x12, 0x31, 0x39, 0x20, 
+0xDE, 0xE7, 0x73, 0x49, 0x00, 0x23, 0x08, 0x22, 0x1A, 0x31, 0x38, 0x20, 0xD8, 0xE7, 0x20, 0x88, 
+0xB2, 0x1E, 0xC5, 0x05, 0x9C, 0x48, 0xED, 0x0D, 0xA1, 0x1C, 0x42, 0x30, 0x02, 0xF0, 0xDE, 0xFE, 
+0xB8, 0x21, 0x3F, 0x20, 0xFE, 0xF7, 0xDD, 0xFA, 0x40, 0x06, 0x08, 0xD5, 0x1A, 0x2D, 0x10, 0xD9, 
+0x28, 0x46, 0x1A, 0x38, 0xC2, 0xB2, 0x00, 0x21, 0x42, 0x20, 0x00, 0x9B, 0x07, 0xE0, 0x1A, 0x2D, 
+0x07, 0xD9, 0x28, 0x46, 0x1A, 0x38, 0xC2, 0xB2, 0x00, 0x21, 0x3D, 0x20, 0x00, 0x9B, 0xFE, 0xF7, 
+0x9B, 0xFA, 0x8D, 0x4E, 0xBC, 0xA0, 0x42, 0x36, 0x72, 0x78, 0x31, 0x78, 0x02, 0xF0, 0x3A, 0xFD, 
+0xBD, 0xA0, 0x02, 0xF0, 0x37, 0xFD, 0x00, 0x24, 0x2D, 0x1F, 0x06, 0xE0, 0x30, 0x19, 0x01, 0x79, 
+0xBC, 0xA0, 0x02, 0xF0, 0x2F, 0xFD, 0x64, 0x1C, 0xA4, 0xB2, 0xAC, 0x42, 0xF6, 0xDB, 0x67, 0xA0, 
+0x02, 0xF0, 0x28, 0xFD, 0x33, 0xE0, 0x20, 0x88, 0xB2, 0x1E, 0xC5, 0x05, 0x7E, 0x48, 0xED, 0x0D, 
+0xA1, 0x1C, 0x42, 0x30, 0x02, 0xF0, 0xA2, 0xFE, 0xB8, 0x21, 0x3F, 0x20, 0xFE, 0xF7, 0xA1, 0xFA, 
+0x40, 0x06, 0x07, 0xD5, 0x1A, 0x2D, 0x0E, 0xD9, 0x1A, 0x3D, 0x00, 0x21, 0xEA, 0xB2, 0x42, 0x20, 
+0x00, 0x9B, 0x06, 0xE0, 0x1A, 0x2D, 0x06, 0xD9, 0x1A, 0x3D, 0xEA, 0xB2, 0x00, 0x21, 0x3D, 0x20, 
+0x00, 0x9B, 0xFE, 0xF7, 0x61, 0xFA, 0x70, 0x4D, 0xA7, 0xA0, 0x42, 0x35, 0x2E, 0x88, 0x31, 0x46, 
+0x02, 0xF0, 0x00, 0xFD, 0x00, 0x24, 0x08, 0xE0, 0x60, 0x00, 0x40, 0x19, 0xC2, 0x78, 0x81, 0x78, 
+0x99, 0xA0, 0x02, 0xF0, 0xF7, 0xFC, 0x64, 0x1C, 0xA4, 0xB2, 0xB4, 0x42, 0xF4, 0xD3, 0x38, 0x46, 
+0x28, 0xE5, 0x37, 0x48, 0x04, 0x22, 0xA1, 0x1C, 0x00, 0x1D, 0x02, 0xF0, 0x6F, 0xFE, 0x34, 0x4C, 
+0x9C, 0xA0, 0x24, 0x1D, 0x21, 0x88, 0x02, 0xF0, 0xE5, 0xFC, 0xA1, 0x78, 0x9F, 0xA0, 0x02, 0xF0, 
+0xE1, 0xFC, 0xE1, 0x78, 0xA3, 0xA0, 0x03, 0xE7, 0x18, 0x22, 0xA1, 0x1C, 0xA7, 0x48, 0x02, 0xF0, 
+0x5D, 0xFE, 0xA6, 0x4C, 0x70, 0xA0, 0x21, 0x88, 0x02, 0xF0, 0xD4, 0xFC, 0x61, 0x88, 0x71, 0xA0, 
+0x02, 0xF0, 0xD0, 0xFC, 0xA2, 0xA0, 0x61, 0x68, 0xF2, 0xE6, 0x70, 0xB5, 0x04, 0x46, 0x02, 0x20, 
+0x0D, 0x46, 0x14, 0x2C, 0x0A, 0xD0, 0x3C, 0x2C, 0x07, 0xD0, 0xF0, 0x2C, 0x0C, 0xD0, 0xFC, 0x2C, 
+0x0F, 0xD0, 0xD2, 0xB2, 0x20, 0x46, 0xFF, 0xF7, 0xE0, 0xFC, 0x70, 0xBD, 0xD1, 0xB2, 0x1A, 0x46, 
+0x28, 0x46, 0xFF, 0xF7, 0x78, 0xFA, 0x70, 0xBD, 0xD1, 0xB2, 0x28, 0x46, 0xFF, 0xF7, 0x84, 0xFA, 
+0x70, 0xBD, 0xD2, 0xB2, 0x20, 0x46, 0xFF, 0xF7, 0xA4, 0xFA, 0x70, 0xBD, 0x10, 0xB5, 0xFF, 0xF7, 
+0x37, 0xFA, 0x00, 0x28, 0x11, 0xD1, 0x40, 0x4C, 0x20, 0x3C, 0x60, 0x78, 0xFE, 0xF7, 0xDB, 0xFB, 
+0x01, 0x46, 0x8E, 0xA0, 0x02, 0xF0, 0x9E, 0xFC, 0x20, 0x78, 0xA1, 0x1C, 0xC2, 0x06, 0x83, 0x09, 
+0xD2, 0x0E, 0x52, 0x1E, 0x60, 0x78, 0xFF, 0xF7, 0xC8, 0xFF, 0x10, 0xBD, 0x73, 0x65, 0x6E, 0x64, 
+0x20, 0x67, 0x65, 0x74, 0x20, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x28, 0x4D, 0x43, 0x55, 
+0x29, 0x28, 0x25, 0x78, 0x29, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2E, 0x0A, 0x00, 0x00, 
+0x58, 0x00, 0x00, 0x20, 0x20, 0x48, 0x6F, 0x74, 0x20, 0x73, 0x77, 0x61, 0x70, 0x70, 0x61, 0x62, 
+0x6C, 0x65, 0x20, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x0A, 
+0x00, 0x00, 0x00, 0x00, 0x20, 0x46, 0x69, 0x78, 0x65, 0x64, 0x20, 0x62, 0x61, 0x74, 0x74, 0x65, 
+0x72, 0x79, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x20, 0x41, 0x6C, 0x65, 
+0x72, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x00, 0x00, 
+0x73, 0x65, 0x6E, 0x64, 0x20, 0x67, 0x65, 0x74, 0x20, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 
+0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x6C, 0x61, 0x74, 0x65, 0x72, 0x28, 0x4D, 0x43, 
+0x55, 0x29, 0x28, 0x25, 0x78, 0x29, 0x2E, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x50, 0x72, 0x6F, 0x63, 
+0x65, 0x73, 0x73, 0x69, 0x6E, 0x67, 0x20, 0x41, 0x4D, 0x53, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 
+0x73, 0x20, 0x3D, 0x20, 0x25, 0x64, 0x0A, 0x00, 0x72, 0x65, 0x63, 0x76, 0x3A, 0x20, 0x54, 0x59, 
+0x50, 0x45, 0x5F, 0x47, 0x45, 0x54, 0x5F, 0x44, 0x50, 0x5F, 0x43, 0x4F, 0x4E, 0x46, 0x49, 0x47, 
+0x55, 0x52, 0x45, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x18, 0x05, 0x00, 0x20, 0x20, 0x74, 0x65, 0x6D, 
+0x70, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x20, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x20, 0x3D, 
+0x20, 0x25, 0x78, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x20, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 
+0x20, 0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x00, 0x20, 0x65, 0x76, 0x65, 0x6E, 0x74, 0x20, 0x66, 
+0x6C, 0x61, 0x67, 0x73, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x00, 0x20, 0x74, 0x65, 0x6D, 
+0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 
+0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x00, 0x00, 0x20, 0x56, 0x49, 0x44, 0x20, 0x3D, 0x20, 0x25, 
+0x78, 0x0A, 0x00, 0x00, 0x20, 0x50, 0x49, 0x44, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x00, 
+0x20, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6E, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x00, 0x00, 
+0x20, 0x6C, 0x61, 0x73, 0x74, 0x20, 0x66, 0x75, 0x6C, 0x6C, 0x20, 0x63, 0x68, 0x61, 0x72, 0x67, 
+0x65, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x3D, 0x20, 
+0x25, 0x78, 0x0A, 0x00, 0x5C, 0x01, 0x00, 0x20, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x20, 
+0x3D, 0x20, 0x25, 0x73, 0x0A, 0x00, 0x00, 0x00, 0x20, 0x43, 0x6F, 0x64, 0x65, 0x20, 0x3D, 0x20, 
+0x25, 0x63, 0x25, 0x63, 0x0A, 0x00, 0x00, 0x00, 0x20, 0x49, 0x6E, 0x66, 0x6F, 0x20, 0x3A, 0x0A, 
+0x00, 0x00, 0x00, 0x00, 0x25, 0x63, 0x00, 0x00, 0x20, 0x4E, 0x6F, 0x2E, 0x20, 0x3D, 0x20, 0x25, 
+0x64, 0x0A, 0x00, 0x00, 0x20, 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5F, 0x76, 0x6F, 0x6C, 0x74, 
+0x61, 0x67, 0x65, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x00, 0x00, 0x20, 0x6F, 0x75, 0x74, 
+0x70, 0x75, 0x74, 0x5F, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6E, 0x74, 0x20, 0x3D, 0x20, 0x25, 0x78, 
+0x0A, 0x00, 0x00, 0x00, 0x20, 0x72, 0x65, 0x61, 0x6C, 0x5F, 0x74, 0x69, 0x6D, 0x65, 0x5F, 0x66, 
+0x6C, 0x61, 0x67, 0x73, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x0A, 0x00, 0x00, 0x60, 0x06, 0x00, 0x20, 
+0x20, 0x58, 0x49, 0x44, 0x20, 0x3D, 0x20, 0x25, 0x6C, 0x78, 0x0A, 0x00, 0x20, 0x72, 0x65, 0x76, 
+0x20, 0x3C, 0x2D, 0x20, 0x25, 0x73, 0x0A, 0x00, 0xFE, 0xB5, 0xD3, 0x4E, 0x30, 0x7A, 0x00, 0x28, 
+0x05, 0xD1, 0xB4, 0x21, 0x3F, 0x20, 0xFE, 0xF7, 0xFC, 0xF8, 0xFF, 0x28, 0x7B, 0xD0, 0xB7, 0x21, 
+0x3F, 0x20, 0xFE, 0xF7, 0xF6, 0xF8, 0xC7, 0xB2, 0xB8, 0x21, 0x3F, 0x20, 0xFE, 0xF7, 0xF1, 0xF8, 
+0xC0, 0xB2, 0x01, 0x90, 0xCB, 0x21, 0x2C, 0x20, 0xFE, 0xF7, 0xEB, 0xF8, 0xC0, 0xB2, 0x00, 0x90, 
+0xCC, 0x21, 0x2C, 0x20, 0xFE, 0xF7, 0xE5, 0xF8, 0xC4, 0xB2, 0x00, 0x22, 0xB7, 0x21, 0x3F, 0x20, 
+0xFE, 0xF7, 0x78, 0xF9, 0xCB, 0x21, 0x2C, 0x20, 0x00, 0x9A, 0xFE, 0xF7, 0x73, 0xF9, 0x22, 0x46, 
+0xCC, 0x21, 0x2C, 0x20, 0xFE, 0xF7, 0x6E, 0xF9, 0x20, 0x06, 0x01, 0x25, 0x00, 0x28, 0x15, 0xDA, 
+0x03, 0x22, 0xF0, 0x21, 0x2C, 0x20, 0xFE, 0xF7, 0x65, 0xF9, 0xB8, 0xA0, 0x02, 0xF0, 0x42, 0xFB, 
+0x35, 0x72, 0xB4, 0x21, 0x3F, 0x20, 0xFE, 0xF7, 0xC4, 0xF8, 0x12, 0x28, 0x06, 0xDA, 0xBA, 0xA0, 
+0x02, 0xF0, 0x38, 0xFB, 0xFE, 0xF7, 0xAA, 0xFF, 0xFE, 0xF7, 0x2B, 0xFF, 0x60, 0x06, 0xC5, 0x4C, 
+0x0D, 0xD5, 0xC5, 0x48, 0x05, 0x21, 0x05, 0x60, 0xC4, 0x48, 0xFD, 0xF7, 0x06, 0xFF, 0x00, 0x28, 
+0x18, 0xD0, 0x05, 0x21, 0xC1, 0x48, 0xFD, 0xF7, 0x00, 0xFF, 0x01, 0x28, 0x20, 0xD0, 0x00, 0x98, 
+0x40, 0x06, 0x6A, 0xD5, 0xF8, 0x07, 0x06, 0xD0, 0xBD, 0xA0, 0x02, 0xF0, 0x1B, 0xFB, 0xFE, 0xF7, 
+0x8D, 0xFF, 0xFE, 0xF7, 0x0E, 0xFF, 0x38, 0x07, 0x21, 0xD5, 0x01, 0x98, 0x00, 0x07, 0x1B, 0xD5, 
+0xC1, 0xA0, 0x1A, 0xE0, 0xC6, 0xA0, 0x02, 0xF0, 0x0D, 0xFB, 0xFF, 0xF7, 0x7D, 0xF8, 0x00, 0x20, 
+0x30, 0x72, 0x09, 0xE0, 0xA0, 0x73, 0xCC, 0xA0, 0x02, 0xF0, 0x04, 0xFB, 0x09, 0xE0, 0x0A, 0xE0, 
+0xD6, 0xA0, 0x02, 0xF0, 0xFF, 0xFA, 0x00, 0x20, 0xDE, 0x49, 0x08, 0x63, 0xA1, 0x7B, 0x01, 0x29, 
+0xF0, 0xD0, 0xFE, 0xF7, 0x1E, 0xFA, 0xFE, 0xBD, 0xDB, 0xA0, 0x02, 0xF0, 0xF3, 0xFA, 0x38, 0x06, 
+0x0E, 0xD5, 0x01, 0x98, 0x00, 0x06, 0x06, 0xD5, 0xDE, 0xA0, 0x02, 0xF0, 0xEB, 0xFA, 0xA2, 0x48, 
+0x05, 0x60, 0xA5, 0x73, 0x04, 0xE0, 0xE2, 0xA0, 0x02, 0xF0, 0xE4, 0xFA, 0x00, 0x20, 0xA0, 0x73, 
+0xF8, 0x06, 0x2A, 0xD5, 0xA0, 0x21, 0x2C, 0x20, 0xFE, 0xF7, 0x63, 0xF8, 0x40, 0x06, 0x02, 0xD5, 
+0x25, 0x73, 0xE1, 0xA0, 0x02, 0xE0, 0x00, 0x20, 0x20, 0x73, 0xE6, 0xA0, 0x02, 0xF0, 0xD2, 0xFA, 
+0xB9, 0x21, 0x3F, 0x20, 0xFE, 0xF7, 0x55, 0xF8, 0x0D, 0x21, 0x08, 0x42, 0x06, 0xD0, 0x00, 0x27, 
+0x67, 0x73, 0xE7, 0xA0, 0x02, 0xF0, 0xC6, 0xFA, 0x77, 0x72, 0x04, 0xE0, 0x65, 0x73, 0xEC, 0xA0, 
+0x02, 0xF0, 0xC0, 0xFA, 0x75, 0x72, 0xB0, 0x7A, 0x00, 0x28, 0x04, 0xD1, 0x71, 0x7A, 0x01, 0x20, 
+0xFF, 0xF7, 0x98, 0xFA, 0xB5, 0x72, 0xFE, 0xF7, 0xCB, 0xF9, 0x00, 0x98, 0x00, 0x06, 0xBA, 0xD5, 
+0xFF, 0xF7, 0x04, 0xFE, 0xFE, 0xBD, 0x10, 0xB5, 0xE9, 0xA0, 0x02, 0xF0, 0xAB, 0xFA, 0x00, 0x21, 
+0x2C, 0x20, 0xFE, 0xF7, 0x2E, 0xF8, 0x01, 0x21, 0x2C, 0x20, 0xFE, 0xF7, 0x2A, 0xF8, 0xB4, 0x21, 
+0x3F, 0x20, 0xFE, 0xF7, 0x26, 0xF8, 0xB5, 0x21, 0x3F, 0x20, 0xFE, 0xF7, 0x22, 0xF8, 0x04, 0xE6, 
+0xAC, 0x48, 0x00, 0x21, 0x01, 0x72, 0xC1, 0x71, 0x81, 0x72, 0x41, 0x72, 0xC1, 0x72, 0x81, 0x70, 
+0x01, 0x70, 0xC1, 0x70, 0x41, 0x70, 0x01, 0x71, 0x32, 0x21, 0xC1, 0x73, 0x70, 0x47, 0x70, 0xB5, 
+0xDE, 0x4C, 0x02, 0x25, 0x20, 0x78, 0x04, 0x21, 0x40, 0x08, 0x40, 0x00, 0x28, 0x43, 0x08, 0x43, 
+0xC7, 0x21, 0x08, 0x40, 0x40, 0x06, 0x40, 0x0E, 0x20, 0x70, 0x96, 0x20, 0x60, 0x70, 0x48, 0x20, 
+0xE0, 0x70, 0x25, 0x71, 0x01, 0x26, 0x66, 0x71, 0xD8, 0x21, 0x00, 0x20, 0xA6, 0x62, 0xFD, 0xF7, 
+0xF8, 0xFF, 0x00, 0x06, 0x81, 0x0F, 0x20, 0x46, 0x08, 0x30, 0x03, 0x29, 0xA1, 0x6A, 0x35, 0xD0, 
+0x8A, 0x00, 0xCF, 0x49, 0x02, 0xF0, 0xEA, 0xFB, 0xCD, 0x49, 0xCC, 0x48, 0x08, 0x22, 0x10, 0x31, 
+0x2C, 0x30, 0xE5, 0x64, 0x02, 0xF0, 0xE2, 0xFB, 0xC9, 0x49, 0xC8, 0x48, 0x04, 0x22, 0x09, 0x1D, 
+0x50, 0x30, 0x26, 0x67, 0x02, 0xF0, 0xDA, 0xFB, 0xC4, 0x4C, 0xC5, 0x49, 0x80, 0x34, 0x20, 0x46, 
+0x04, 0x22, 0x08, 0x31, 0x0C, 0x38, 0x66, 0x61, 0x02, 0xF0, 0xD0, 0xFB, 0x03, 0x20, 0xC0, 0x49, 
+0xA0, 0x63, 0x20, 0x46, 0x0C, 0x22, 0x18, 0x31, 0x18, 0x30, 0x02, 0xF0, 0xC7, 0xFB, 0x36, 0x48, 
+0x00, 0x24, 0x20, 0x38, 0xBA, 0x49, 0x46, 0x62, 0x04, 0x60, 0x04, 0x22, 0x0C, 0x31, 0x00, 0x1D, 
+0x02, 0xF0, 0xBC, 0xFB, 0x30, 0x48, 0x04, 0x72, 0x84, 0x72, 0x70, 0xBD, 0x8A, 0x00, 0xB4, 0x49, 
+0x09, 0x1F, 0xC7, 0xE7, 0x18, 0x21, 0x48, 0x43, 0x00, 0xE0, 0x40, 0x1E, 0x00, 0x28, 0xFC, 0xD1, 
+0x70, 0x47, 0x10, 0xB5, 0x41, 0x4C, 0x00, 0x22, 0x20, 0x21, 0x20, 0x46, 0xFD, 0xF7, 0x14, 0xF8, 
+0x05, 0x21, 0x20, 0x46, 0xFD, 0xF7, 0xF9, 0xFD, 0xAA, 0x4B, 0x00, 0x21, 0x01, 0x22, 0x00, 0x28, 
+0x0B, 0xD0, 0x1A, 0x61, 0x37, 0x48, 0x20, 0x38, 0xC0, 0x79, 0x83, 0x07, 0xA6, 0x48, 0x06, 0xD5, 
+0x01, 0x63, 0xA6, 0x48, 0xFF, 0xF7, 0xDE, 0xFF, 0x77, 0xE5, 0x19, 0x61, 0xF2, 0xE7, 0x02, 0x63, 
+0x73, 0xE5, 0x10, 0xB5, 0xFF, 0xF7, 0xDD, 0xFF, 0xFF, 0xF7, 0x55, 0xFF, 0xFF, 0xF7, 0x77, 0xFF, 
+0xFF, 0xF7, 0x66, 0xFF, 0x5F, 0x49, 0x00, 0x20, 0x08, 0x63, 0xFF, 0xF7, 0x7D, 0xFE, 0x64, 0xE5, 
+0x70, 0xB5, 0x84, 0x05, 0x01, 0x03, 0xA4, 0x0D, 0x8D, 0x0D, 0x02, 0x0F, 0x01, 0xD0, 0x04, 0x2A, 
+0x05, 0xD9, 0x01, 0x46, 0x04, 0x23, 0x96, 0xA0, 0x02, 0xF0, 0xEC, 0xF9, 0x10, 0xE0, 0x90, 0x49, 
+0x90, 0x00, 0x09, 0x1F, 0x40, 0x18, 0x00, 0x1F, 0xFF, 0xF7, 0xBB, 0xF9, 0x86, 0x05, 0xB6, 0x0D, 
+0x31, 0x46, 0x9C, 0xA0, 0x02, 0xF0, 0xDE, 0xF9, 0xB5, 0x42, 0x01, 0xD8, 0xB4, 0x42, 0x01, 0xD9, 
+0x00, 0x20, 0x70, 0xBD, 0x01, 0x20, 0x70, 0xBD, 0xCC, 0x04, 0x00, 0x20, 0x41, 0x4E, 0x58, 0x37, 
+0x34, 0x31, 0x31, 0x20, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x20, 0x6F, 0x6E, 0x2D, 0x2D, 0x2D, 0x69, 
+0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x41, 0x4E, 0x58, 0x37, 0x34, 0x31, 0x31, 0x20, 
+0x70, 0x6F, 0x77, 0x65, 0x72, 0x20, 0x6F, 0x6E, 0x20, 0x72, 0x65, 0x67, 0x20, 0x69, 0x6E, 0x69, 
+0x74, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x4F, 0x43, 0x4D, 0x20, 0x6C, 0x65, 0x73, 0x73, 0x20, 0x74, 
+0x68, 0x61, 0x6E, 0x20, 0x30, 0x78, 0x31, 0x32, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 
+0x00, 0x00, 0x00, 0x00, 0x74, 0x07, 0x00, 0x20, 0xC4, 0x01, 0x00, 0x20, 0x40, 0x40, 0x00, 0x50, 
+0x41, 0x4E, 0x58, 0x37, 0x34, 0x31, 0x31, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x20, 0x69, 
+0x6E, 0x69, 0x74, 0x69, 0x61, 0x6C, 0x7A, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2D, 0x2D, 0x2D, 0x69, 
+0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x41, 0x4E, 0x58, 0x37, 0x34, 0x31, 0x31, 0x20, 
+0x56, 0x42, 0x55, 0x53, 0x20, 0x6F, 0x6E, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 
+0x41, 0x4E, 0x58, 0x37, 0x34, 0x31, 0x31, 0x20, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x20, 0x6F, 0x66, 
+0x66, 0x20, 0x77, 0x68, 0x65, 0x6E, 0x20, 0x44, 0x43, 0x20, 0x6F, 0x6E, 0x2D, 0x2D, 0x2D, 0x69, 
+0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x63, 0x6C, 0x65, 0x61, 0x72, 0x20, 0x63, 0x6F, 
+0x72, 0x65, 0x5F, 0x72, 0x65, 0x67, 0x5F, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x2E, 0x61, 0x6E, 
+0x78, 0x37, 0x34, 0x31, 0x31, 0x5F, 0x68, 0x70, 0x64, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 
+0x20, 0x30, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x41, 0x4E, 0x58, 0x37, 
+0x34, 0x31, 0x31, 0x20, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x20, 0x6F, 0x66, 0x66, 0x20, 0x77, 0x68, 
+0x65, 0x6E, 0x20, 0x44, 0x43, 0x20, 0x6F, 0x66, 0x66, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 
+0x0A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x41, 0x4E, 0x58, 0x37, 0x34, 0x31, 0x31, 0x20, 
+0x56, 0x42, 0x55, 0x53, 0x20, 0x6F, 0x66, 0x66, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 
+0x00, 0x00, 0x00, 0x00, 0x41, 0x4E, 0x58, 0x37, 0x34, 0x31, 0x31, 0x20, 0x48, 0x50, 0x44, 0x20, 
+0x68, 0x69, 0x67, 0x68, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x00, 0x00, 
+0x41, 0x4E, 0x58, 0x37, 0x34, 0x31, 0x31, 0x20, 0x48, 0x50, 0x44, 0x20, 0x6C, 0x6F, 0x77, 0x2D, 
+0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x41, 0x4E, 0x58, 0x37, 0x34, 0x31, 0x31, 0x20, 
+0x55, 0x46, 0x50, 0x20, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x20, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 
+0x6E, 0x0A, 0x00, 0x00, 0x41, 0x4E, 0x58, 0x37, 0x34, 0x31, 0x31, 0x20, 0x44, 0x46, 0x50, 0x20, 
+0x69, 0x6E, 0x74, 0x65, 0x72, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x00, 
+0x41, 0x4E, 0x58, 0x37, 0x34, 0x31, 0x31, 0x20, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 
+0x69, 0x6E, 0x74, 0x65, 0x72, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x00, 
+0x41, 0x4E, 0x58, 0x37, 0x34, 0x31, 0x31, 0x20, 0x46, 0x6F, 0x72, 0x77, 0x61, 0x72, 0x64, 0x20, 
+0x69, 0x6E, 0x74, 0x65, 0x72, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x00, 
+0x41, 0x4E, 0x58, 0x37, 0x34, 0x31, 0x31, 0x5F, 0x52, 0x65, 0x61, 0x64, 0x56, 0x65, 0x72, 0x73, 
+0x69, 0x6F, 0x6E, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0xEC, 0x02, 0x00, 0x20, 
+0xF6, 0x62, 0x00, 0x00, 0x40, 0x42, 0x00, 0x50, 0x80, 0x42, 0x00, 0x50, 0x40, 0x0D, 0x03, 0x00, 
+0x72, 0x64, 0x6F, 0x20, 0x3D, 0x20, 0x25, 0x78, 0x2C, 0x20, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 
+0x74, 0x65, 0x64, 0x20, 0x52, 0x44, 0x4F, 0x20, 0x69, 0x73, 0x20, 0x25, 0x64, 0x2C, 0x20, 0x52, 
+0x44, 0x4F, 0x20, 0x6E, 0x75, 0x6D, 0x62, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x25, 0x64, 0x0A, 
+0x00, 0x00, 0x00, 0x00, 0x70, 0x64, 0x6F, 0x5F, 0x6D, 0x61, 0x78, 0x20, 0x3D, 0x20, 0x25, 0x78, 
+0x0A, 0x00, 0x00, 0x00, 0x3F, 0x48, 0x41, 0x69, 0x03, 0x22, 0x12, 0x06, 0x91, 0x43, 0x41, 0x61, 
+0x41, 0x69, 0x41, 0x61, 0x81, 0x68, 0xC2, 0x01, 0x11, 0x43, 0x81, 0x60, 0x81, 0x68, 0x02, 0x02, 
+0x11, 0x43, 0x81, 0x60, 0x70, 0x47, 0x05, 0x20, 0x00, 0x07, 0x01, 0x6B, 0x36, 0x4A, 0x11, 0x40, 
+0x01, 0x63, 0x01, 0x6B, 0xD2, 0x43, 0x11, 0x43, 0x01, 0x63, 0x70, 0x47, 0x05, 0x20, 0x00, 0x07, 
+0x41, 0x6B, 0x32, 0x4A, 0x11, 0x40, 0x41, 0x63, 0x41, 0x6B, 0x03, 0x22, 0x92, 0x02, 0x11, 0x43, 
+0x41, 0x63, 0x70, 0x47, 0x05, 0x20, 0x00, 0x07, 0x41, 0x6B, 0x2D, 0x4A, 0x11, 0x40, 0x41, 0x63, 
+0x41, 0x6B, 0x03, 0x22, 0x12, 0x03, 0x11, 0x43, 0x41, 0x63, 0x70, 0x47, 0x10, 0xB5, 0x29, 0xA0, 
+0x02, 0xF0, 0x68, 0xF8, 0x10, 0xBD, 0x2E, 0x48, 0x41, 0x68, 0x01, 0x22, 0x11, 0x43, 0x41, 0x60, 
+0x2C, 0x49, 0x10, 0x03, 0x08, 0x60, 0x70, 0x47, 0x29, 0x48, 0x41, 0x68, 0x49, 0x08, 0x49, 0x00, 
+0x41, 0x60, 0x01, 0x20, 0x27, 0x49, 0x00, 0x03, 0x80, 0x31, 0x08, 0x60, 0x70, 0x47, 0x26, 0x48, 
+0x41, 0x68, 0x01, 0x22, 0x11, 0x43, 0x41, 0x60, 0x22, 0x49, 0x50, 0x03, 0x08, 0x60, 0x70, 0x47, 
+0x21, 0x48, 0x41, 0x68, 0x49, 0x08, 0x49, 0x00, 0x41, 0x60, 0x01, 0x20, 0x1D, 0x49, 0x40, 0x03, 
+0x80, 0x31, 0x08, 0x60, 0x70, 0x47, 0x10, 0xB5, 0x59, 0x20, 0x1C, 0x4C, 0x16, 0x21, 0x88, 0x22, 
+0x20, 0x60, 0x21, 0x60, 0x22, 0x60, 0x23, 0x68, 0x00, 0x2B, 0xF9, 0xD0, 0xFF, 0xF7, 0x92, 0xFF, 
+0xFC, 0xF7, 0x7B, 0xFB, 0xFF, 0xF7, 0xAA, 0xFF, 0x00, 0x20, 0x20, 0x60, 0x14, 0x48, 0xFD, 0xF7, 
+0x6C, 0xF9, 0xE1, 0x21, 0x49, 0x02, 0x0E, 0x48, 0xFD, 0xF7, 0x44, 0xF8, 0xFF, 0xF7, 0xBB, 0xFF, 
+0x10, 0xBD, 0x00, 0x00, 0x00, 0x02, 0x00, 0x50, 0xFC, 0xFC, 0xFF, 0xFF, 0xF3, 0xF3, 0xFF, 0xF3, 
+0xCF, 0xCF, 0xFF, 0xEF, 0x55, 0x41, 0x52, 0x54, 0x5F, 0x48, 0x41, 0x4E, 0x44, 0x4C, 0x45, 0x2D, 
+0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 
+0x00, 0x00, 0x05, 0x40, 0x00, 0xE1, 0x00, 0xE0, 0x00, 0x00, 0x15, 0x40, 0x00, 0x01, 0x00, 0x50, 
+0x10, 0x00, 0x00, 0x04, 0x10, 0xB5, 0x00, 0x29, 0x04, 0xD0, 0x00, 0x2A, 0x02, 0xD0, 0x06, 0x28, 
+0x03, 0xD0, 0x14, 0xE0, 0x00, 0x20, 0xC0, 0x43, 0x10, 0xBD, 0x09, 0x78, 0x69, 0x20, 0x01, 0xF0, 
+0x6A, 0xFE, 0x04, 0x46, 0x69, 0x20, 0x01, 0xF0, 0x8F, 0xFE, 0xA0, 0x42, 0x07, 0xD0, 0x21, 0x46, 
+0x69, 0x20, 0x01, 0xF0, 0xB3, 0xFE, 0x21, 0x46, 0x69, 0x20, 0x01, 0xF0, 0x8D, 0xFB, 0x00, 0x20, 
+0x10, 0xBD, 0x22, 0x48, 0x01, 0x22, 0x42, 0x61, 0x21, 0x4B, 0x00, 0x21, 0x49, 0x1C, 0x99, 0x42, 
+0xFC, 0xDB, 0x00, 0x21, 0x41, 0x61, 0x1F, 0x4B, 0x49, 0x1C, 0x99, 0x42, 0xFC, 0xDB, 0x42, 0x61, 
+0x70, 0x47, 0x10, 0xB5, 0x1D, 0x48, 0x1C, 0x49, 0x81, 0x60, 0x00, 0x21, 0xC1, 0x60, 0x01, 0xF0, 
+0x10, 0xFF, 0x10, 0xBD, 0x19, 0x48, 0x10, 0xB5, 0x10, 0x30, 0x01, 0xF0, 0x7C, 0xFB, 0xFF, 0xF7, 
+0xE0, 0xFF, 0x00, 0x20, 0x10, 0xBD, 0x10, 0xB5, 0x15, 0xA0, 0x01, 0xF0, 0xBB, 0xFF, 0x13, 0x49, 
+0x1A, 0x48, 0x10, 0x31, 0x88, 0x60, 0x08, 0x46, 0x01, 0xF0, 0x8B, 0xFB, 0x0F, 0x48, 0x10, 0x30, 
+0x01, 0xF0, 0x69, 0xFB, 0x10, 0xBD, 0x10, 0xB5, 0x01, 0x22, 0x20, 0x21, 0x14, 0x48, 0xFC, 0xF7, 
+0x9B, 0xFD, 0x06, 0x49, 0x01, 0x20, 0x48, 0x61, 0x10, 0xBD, 0x10, 0xB5, 0xFF, 0xF7, 0xF3, 0xFF, 
+0xFF, 0xF7, 0xCF, 0xFF, 0xFF, 0xF7, 0xDF, 0xFF, 0x10, 0xBD, 0x00, 0x00, 0x40, 0x42, 0x00, 0x50, 
+0x80, 0x1A, 0x06, 0x00, 0x40, 0x77, 0x1B, 0x00, 0x75, 0x3B, 0x00, 0x00, 0x78, 0x06, 0x00, 0x20, 
+0x6A, 0x77, 0x5F, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x5F, 0x77, 0x6F, 0x72, 0x6B, 0x5F, 0x69, 0x6E, 
+0x69, 0x74, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x78, 0x01, 0x00, 0x20, 
+0x80, 0x40, 0x00, 0x50, 0x10, 0xB5, 0x00, 0xF0, 0xAF, 0xF8, 0x5D, 0x48, 0x01, 0x68, 0x80, 0x22, 
+0x91, 0x43, 0x01, 0x60, 0x5B, 0x49, 0x00, 0x20, 0x08, 0x60, 0x10, 0xBD, 0x10, 0xB5, 0x00, 0xF0, 
+0xA3, 0xF8, 0x57, 0x48, 0x01, 0x68, 0x80, 0x22, 0x11, 0x43, 0x01, 0x60, 0x55, 0x49, 0x00, 0x20, 
+0x08, 0x60, 0x10, 0xBD, 0x10, 0xB5, 0x00, 0x29, 0x04, 0xD0, 0x00, 0x2A, 0x02, 0xD0, 0x06, 0x28, 
+0x03, 0xD0, 0x17, 0xE0, 0x00, 0x20, 0xC0, 0x43, 0x10, 0xBD, 0x09, 0x78, 0x65, 0x20, 0x01, 0xF0, 
+0xD2, 0xFD, 0x04, 0x46, 0x65, 0x20, 0x01, 0xF0, 0xF7, 0xFD, 0xA0, 0x42, 0x03, 0xD0, 0x21, 0x46, 
+0x65, 0x20, 0x01, 0xF0, 0x1B, 0xFE, 0x00, 0x2C, 0x02, 0xD0, 0xFF, 0xF7, 0xD7, 0xFF, 0x01, 0xE0, 
+0xFF, 0xF7, 0xC8, 0xFF, 0x00, 0x20, 0x10, 0xBD, 0x10, 0xB5, 0x44, 0x48, 0x42, 0x49, 0x81, 0x60, 
+0x00, 0x21, 0xC1, 0x60, 0x01, 0xF0, 0x85, 0xFE, 0x10, 0xBD, 0x10, 0xB5, 0x40, 0xA0, 0x01, 0xF0, 
+0x39, 0xFF, 0x45, 0x48, 0x01, 0x22, 0x82, 0x61, 0x44, 0x4B, 0x00, 0x21, 0x49, 0x1C, 0x99, 0x42, 
+0xFC, 0xDB, 0x00, 0x21, 0x81, 0x61, 0x42, 0x4B, 0x49, 0x1C, 0x99, 0x42, 0xFC, 0xDB, 0x82, 0x61, 
+0x10, 0xBD, 0x36, 0x48, 0x10, 0xB5, 0x10, 0x30, 0x01, 0xF0, 0xDD, 0xFA, 0xFF, 0xF7, 0xE5, 0xFF, 
+0x00, 0x20, 0x10, 0xBD, 0x10, 0xB5, 0x3B, 0xA0, 0x01, 0xF0, 0x1C, 0xFF, 0x2F, 0x49, 0x40, 0x48, 
+0x10, 0x31, 0x88, 0x60, 0x08, 0x46, 0x01, 0xF0, 0xEC, 0xFA, 0x2C, 0x48, 0x10, 0x30, 0x01, 0xF0, 
+0xCA, 0xFA, 0x10, 0xBD, 0x10, 0xB5, 0x3B, 0xA0, 0x01, 0xF0, 0x0C, 0xFF, 0xFF, 0xF7, 0x8A, 0xFF, 
+0x23, 0x48, 0x01, 0x68, 0x24, 0x22, 0x91, 0x43, 0x08, 0x22, 0x11, 0x43, 0x01, 0x60, 0x3A, 0x48, 
+0x02, 0x24, 0x04, 0x60, 0x21, 0x48, 0x00, 0x21, 0x10, 0x30, 0x01, 0xF0, 0xAC, 0xFA, 0x36, 0x48, 
+0x80, 0x38, 0x04, 0x60, 0x10, 0xBD, 0x10, 0xB5, 0x00, 0xF0, 0x26, 0xF8, 0x18, 0x48, 0x01, 0x68, 
+0x01, 0x22, 0x11, 0x43, 0x01, 0x60, 0x17, 0x49, 0x00, 0x20, 0x08, 0x60, 0x10, 0xBD, 0x10, 0xB5, 
+0x2E, 0xA0, 0x01, 0xF0, 0xE7, 0xFE, 0xFF, 0xF7, 0x9F, 0xFF, 0xFF, 0xF7, 0xC3, 0xFF, 0x00, 0xF0, 
+0x13, 0xF8, 0x00, 0x23, 0x03, 0x20, 0x1A, 0x46, 0x19, 0x46, 0x40, 0x02, 0xFD, 0xF7, 0x26, 0xF9, 
+0xFD, 0xF7, 0x32, 0xF9, 0x24, 0x49, 0x02, 0x20, 0x80, 0x39, 0x08, 0x60, 0xFF, 0xF7, 0x52, 0xFF, 
+0x08, 0x49, 0x00, 0x20, 0x08, 0x60, 0x10, 0xBD, 0x10, 0xB5, 0x59, 0x21, 0x05, 0x48, 0x16, 0x22, 
+0x88, 0x23, 0x01, 0x60, 0x02, 0x60, 0x03, 0x60, 0x04, 0x68, 0x00, 0x2C, 0xF9, 0xD0, 0x10, 0xBD, 
+0x00, 0x40, 0x00, 0x40, 0x00, 0x01, 0x00, 0x50, 0xA5, 0x3C, 0x00, 0x00, 0x94, 0x06, 0x00, 0x20, 
+0x0A, 0x20, 0x41, 0x52, 0x4D, 0x5F, 0x52, 0x65, 0x73, 0x65, 0x74, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 
+0x6F, 0x6E, 0x20, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x40, 0x42, 0x00, 0x50, 0x40, 0x0D, 0x03, 0x00, 
+0x80, 0x4F, 0x12, 0x00, 0x6A, 0x77, 0x5F, 0x77, 0x64, 0x74, 0x5F, 0x77, 0x6F, 0x72, 0x6B, 0x5F, 
+0x69, 0x6E, 0x69, 0x74, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x00, 0x00, 
+0x88, 0x01, 0x00, 0x20, 0x0A, 0x20, 0x57, 0x44, 0x54, 0x5F, 0x49, 0x52, 0x51, 0x48, 0x61, 0x6E, 
+0x64, 0x6C, 0x65, 0x72, 0x20, 0x0A, 0x00, 0x00, 0x80, 0xE1, 0x00, 0xE0, 0x57, 0x44, 0x54, 0x5F, 
+0x49, 0x4E, 0x49, 0x54, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x00, 0x00, 
+0x10, 0xB5, 0x42, 0x49, 0x04, 0x20, 0x08, 0x62, 0x41, 0xA0, 0x01, 0xF0, 0x7B, 0xFE, 0x00, 0x21, 
+0x45, 0x48, 0x01, 0xF0, 0x28, 0xFA, 0x10, 0xBD, 0x10, 0xB5, 0x44, 0xA0, 0x01, 0xF0, 0x72, 0xFE, 
+0x47, 0x49, 0x08, 0x20, 0x08, 0x60, 0x10, 0xBD, 0x10, 0xB5, 0x46, 0xA0, 0x01, 0xF0, 0x6A, 0xFE, 
+0x43, 0x49, 0x08, 0x20, 0x80, 0x39, 0x08, 0x60, 0x10, 0xBD, 0x10, 0xB5, 0x00, 0x29, 0x04, 0xD0, 
+0x00, 0x2A, 0x02, 0xD0, 0x06, 0x28, 0x03, 0xD0, 0x1B, 0xE0, 0x00, 0x20, 0xC0, 0x43, 0x10, 0xBD, 
+0x09, 0x78, 0x64, 0x20, 0x01, 0xF0, 0xCF, 0xFC, 0x04, 0x46, 0x64, 0x20, 0x01, 0xF0, 0xF4, 0xFC, 
+0xA0, 0x42, 0x0E, 0xD0, 0x21, 0x46, 0x64, 0x20, 0x01, 0xF0, 0x18, 0xFD, 0x21, 0x46, 0x64, 0x20, 
+0x01, 0xF0, 0xF2, 0xF9, 0x00, 0x2C, 0x02, 0xD0, 0xFF, 0xF7, 0xD6, 0xFF, 0x01, 0xE0, 0xFF, 0xF7, 
+0xCB, 0xFF, 0x00, 0x20, 0x10, 0xBD, 0x28, 0x48, 0x10, 0xB5, 0x33, 0x49, 0x0C, 0x30, 0x81, 0x60, 
+0x00, 0x21, 0xC1, 0x60, 0x01, 0xF0, 0x7D, 0xFD, 0x10, 0xBD, 0x10, 0xB5, 0x22, 0x48, 0x01, 0xF0, 
+0xEA, 0xF9, 0x1A, 0x48, 0x02, 0x21, 0x80, 0x38, 0xFD, 0xF7, 0x07, 0xFA, 0x01, 0x28, 0x04, 0xD1, 
+0xFF, 0xF7, 0x47, 0xFE, 0x29, 0xA0, 0x01, 0xF0, 0x25, 0xFE, 0x00, 0x20, 0x10, 0xBD, 0x10, 0xB5, 
+0x2B, 0xA0, 0x01, 0xF0, 0x1F, 0xFE, 0x18, 0x49, 0x31, 0x48, 0x88, 0x60, 0x08, 0x46, 0x01, 0xF0, 
+0xF0, 0xF9, 0x15, 0x48, 0x01, 0xF0, 0xCF, 0xF9, 0x10, 0xBD, 0x10, 0xB5, 0x0B, 0x4C, 0x00, 0x22, 
+0x04, 0x21, 0x20, 0x46, 0xFC, 0xF7, 0x00, 0xFC, 0x01, 0x22, 0x02, 0x21, 0x20, 0x46, 0xFC, 0xF7, 
+0x12, 0xFC, 0x13, 0x49, 0x08, 0x20, 0x08, 0x60, 0x10, 0xBD, 0x10, 0xB5, 0xFF, 0xF7, 0xED, 0xFF, 
+0xFF, 0xF7, 0xC1, 0xFF, 0xFF, 0xF7, 0xDB, 0xFF, 0x10, 0xBD, 0x00, 0x00, 0x40, 0x41, 0x00, 0x50, 
+0x0A, 0x50, 0x35, 0x2E, 0x32, 0x20, 0x45, 0x49, 0x4E, 0x54, 0x31, 0x20, 0x6F, 0x63, 0x63, 0x75, 
+0x72, 0x72, 0x65, 0x64, 0x2E, 0x20, 0x0A, 0x00, 0xB0, 0x06, 0x00, 0x20, 0x52, 0x54, 0x43, 0x5F, 
+0x44, 0x69, 0x73, 0x61, 0x62, 0x6C, 0x65, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 
+0x80, 0xE1, 0x00, 0xE0, 0x52, 0x54, 0x43, 0x5F, 0x45, 0x6E, 0x61, 0x62, 0x6C, 0x65, 0x2D, 0x2D, 
+0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0xAB, 0x3E, 0x00, 0x00, 0x0A, 0x72, 0x74, 0x63, 
+0x20, 0x61, 0x6C, 0x61, 0x72, 0x6D, 0x20, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x6F, 0x6E, 0x0A, 0x00, 
+0x6A, 0x77, 0x5F, 0x72, 0x74, 0x63, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x5F, 0x77, 0x6F, 0x72, 0x6B, 
+0x5F, 0x69, 0x6E, 0x69, 0x74, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x00, 
+0x98, 0x01, 0x00, 0x20, 0x10, 0xB5, 0xFF, 0x49, 0x04, 0x20, 0x08, 0x62, 0x00, 0x21, 0xFE, 0x48, 
+0x01, 0xF0, 0x61, 0xF9, 0x10, 0xBD, 0x18, 0x21, 0x48, 0x43, 0x00, 0xE0, 0x40, 0x1E, 0x00, 0x28, 
+0xFC, 0xD1, 0x70, 0x47, 0x10, 0xB5, 0x00, 0xF0, 0xDB, 0xFE, 0xF8, 0x48, 0x01, 0x68, 0xF8, 0x4A, 
+0x11, 0x40, 0x01, 0x60, 0x01, 0x68, 0xC0, 0x22, 0x11, 0x43, 0x01, 0x60, 0xF3, 0x49, 0x00, 0x20, 
+0xC0, 0x31, 0x08, 0x60, 0x10, 0xBD, 0xF8, 0xB5, 0x05, 0x46, 0x0E, 0x46, 0x17, 0x46, 0x00, 0x24, 
+0x00, 0xF0, 0x1C, 0xFF, 0x01, 0x20, 0x00, 0xF0, 0xD7, 0xFE, 0x64, 0x1C, 0x20, 0x2C, 0xF9, 0xDB, 
+0x00, 0x20, 0x00, 0xF0, 0xD1, 0xFE, 0x01, 0x20, 0x00, 0xF0, 0xCE, 0xFE, 0xA8, 0x07, 0xC0, 0x0F, 
+0x00, 0xF0, 0xCA, 0xFE, 0xE8, 0x07, 0xC0, 0x0F, 0x00, 0xF0, 0xC6, 0xFE, 0x05, 0x21, 0x30, 0x46, 
+0x00, 0xF0, 0x0E, 0xFF, 0x05, 0x21, 0x38, 0x46, 0x00, 0xF0, 0x0A, 0xFF, 0xF8, 0xBD, 0x70, 0xB5, 
+0x15, 0x46, 0x0E, 0x46, 0x04, 0x46, 0x02, 0x46, 0x0D, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x0F, 0xFF, 
+0x32, 0x46, 0x0E, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x0A, 0xFF, 0x01, 0x20, 0x22, 0x46, 0x80, 0x03, 
+0x02, 0x43, 0x0D, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x02, 0xFF, 0x2A, 0x46, 0x0E, 0x21, 0x00, 0x20, 
+0x00, 0xF0, 0xFD, 0xFE, 0x70, 0xBD, 0x70, 0xB5, 0x0A, 0x46, 0x01, 0x46, 0x02, 0x20, 0xFF, 0xF7, 
+0xBA, 0xFF, 0x14, 0x20, 0xFF, 0xF7, 0x9F, 0xFF, 0x00, 0xF0, 0x8E, 0xFE, 0x00, 0xF0, 0x04, 0xFF, 
+0x00, 0x28, 0x07, 0xD0, 0x00, 0x24, 0x00, 0xF0, 0xFF, 0xFE, 0x64, 0x1C, 0x20, 0x2C, 0xFA, 0xD3, 
+0xC8, 0x48, 0x70, 0xBD, 0x00, 0x20, 0x0F, 0x24, 0x45, 0x00, 0x00, 0xF0, 0xF5, 0xFE, 0x28, 0x43, 
+0x64, 0x1E, 0xF9, 0xD5, 0x04, 0x46, 0x00, 0xF0, 0xEF, 0xFE, 0x20, 0x46, 0x70, 0xBD, 0x70, 0xB5, 
+0x15, 0x46, 0x0E, 0x46, 0x04, 0x46, 0x02, 0x46, 0x0D, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xCF, 0xFE, 
+0x32, 0x46, 0x0E, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xCA, 0xFE, 0x01, 0x20, 0x22, 0x46, 0x80, 0x03, 
+0x02, 0x43, 0x0D, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xC2, 0xFE, 0x0E, 0x21, 0x00, 0x20, 0xFF, 0xF7, 
+0xC2, 0xFF, 0x28, 0x60, 0x70, 0xBD, 0x70, 0x47, 0x38, 0xB5, 0xB3, 0x4C, 0x6A, 0x46, 0x21, 0x46, 
+0x03, 0x20, 0xFF, 0xF7, 0xDC, 0xFF, 0xB1, 0x48, 0x00, 0x9A, 0x21, 0x46, 0x02, 0x43, 0x03, 0x20, 
+0x00, 0x92, 0xFF, 0xF7, 0x94, 0xFF, 0x38, 0xBD, 0x38, 0xB5, 0xAB, 0x4C, 0x6A, 0x46, 0x64, 0x1C, 
+0x21, 0x46, 0x03, 0x20, 0xFF, 0xF7, 0xCB, 0xFF, 0x01, 0x20, 0x00, 0x9A, 0x80, 0x03, 0x02, 0x43, 
+0x40, 0x00, 0x82, 0x43, 0x21, 0x46, 0x03, 0x20, 0x00, 0x92, 0xFF, 0xF7, 0x80, 0xFF, 0x64, 0x1E, 
+0x6A, 0x46, 0x21, 0x46, 0x03, 0x20, 0xFF, 0xF7, 0xBA, 0xFF, 0x00, 0x9A, 0xE0, 0x11, 0x82, 0x43, 
+0xF0, 0x20, 0x02, 0x43, 0x21, 0x46, 0x03, 0x20, 0x00, 0x92, 0xFF, 0xF7, 0x70, 0xFF, 0x00, 0x20, 
+0x38, 0xBD, 0x10, 0xB5, 0x9A, 0xA0, 0x01, 0xF0, 0xDD, 0xFC, 0xFF, 0xF7, 0xD5, 0xFF, 0xFF, 0xF7, 
+0xC3, 0xFF, 0x9E, 0x49, 0x01, 0x20, 0x08, 0x70, 0x10, 0xBD, 0x70, 0x47, 0x10, 0xB5, 0x9C, 0xA0, 
+0x01, 0xF0, 0xD0, 0xFC, 0x11, 0x22, 0x1F, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x70, 0xFE, 0x01, 0x22, 
+0x12, 0x03, 0x10, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x6A, 0xFE, 0x00, 0x22, 0x1F, 0x21, 0x10, 0x46, 
+0x00, 0xF0, 0x65, 0xFE, 0x00, 0x21, 0x08, 0x46, 0xFF, 0xF7, 0x65, 0xFF, 0x40, 0x21, 0x88, 0x43, 
+0x02, 0x46, 0x00, 0x21, 0x08, 0x46, 0x00, 0xF0, 0x5A, 0xFE, 0x07, 0x22, 0x1F, 0x21, 0x00, 0x20, 
+0x00, 0xF0, 0x55, 0xFE, 0x14, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0x55, 0xFF, 0x01, 0x24, 0xE4, 0x03, 
+0x20, 0x43, 0x02, 0x46, 0x14, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x49, 0xFE, 0x11, 0x22, 0x1F, 0x21, 
+0x00, 0x20, 0x00, 0xF0, 0x44, 0xFE, 0x13, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0x44, 0xFF, 0x20, 0x43, 
+0x04, 0x46, 0x01, 0x46, 0x8A, 0xA0, 0x01, 0xF0, 0x95, 0xFC, 0x22, 0x46, 0x13, 0x21, 0x00, 0x20, 
+0x00, 0xF0, 0x35, 0xFE, 0x11, 0x22, 0x1F, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x30, 0xFE, 0x13, 0x21, 
+0x00, 0x20, 0xFF, 0xF7, 0x30, 0xFF, 0xFF, 0x21, 0x12, 0x31, 0x08, 0x43, 0x04, 0x46, 0x01, 0x46, 
+0x7F, 0xA0, 0x01, 0xF0, 0x7F, 0xFC, 0x22, 0x46, 0x13, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x1F, 0xFE, 
+0x00, 0x22, 0x1F, 0x21, 0x10, 0x46, 0x00, 0xF0, 0x1A, 0xFE, 0x10, 0xBD, 0x10, 0xB5, 0x83, 0xA0, 
+0x01, 0xF0, 0x70, 0xFC, 0x00, 0x22, 0x1F, 0x21, 0x10, 0x46, 0x00, 0xF0, 0x10, 0xFE, 0x00, 0x21, 
+0x08, 0x46, 0xFF, 0xF7, 0x10, 0xFF, 0x40, 0x21, 0x08, 0x43, 0x02, 0x46, 0x00, 0x21, 0x08, 0x46, 
+0x00, 0xF0, 0x05, 0xFE, 0x07, 0x22, 0x1F, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x00, 0xFE, 0x14, 0x21, 
+0x00, 0x20, 0xFF, 0xF7, 0x00, 0xFF, 0x01, 0x24, 0xE4, 0x03, 0xA0, 0x43, 0x02, 0x46, 0x14, 0x21, 
+0x00, 0x20, 0x00, 0xF0, 0xF4, 0xFD, 0x11, 0x22, 0x1F, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xEF, 0xFD, 
+0x13, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0xEF, 0xFE, 0xA0, 0x43, 0x02, 0x46, 0x13, 0x21, 0x00, 0x20, 
+0x00, 0xF0, 0xE5, 0xFD, 0x11, 0x22, 0x1F, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xE0, 0xFD, 0x00, 0x22, 
+0x10, 0x21, 0x10, 0x46, 0x00, 0xF0, 0xDB, 0xFD, 0x11, 0x22, 0x1F, 0x21, 0x00, 0x20, 0x00, 0xF0, 
+0xD6, 0xFD, 0x11, 0x21, 0x01, 0x20, 0xFF, 0xF7, 0xD6, 0xFE, 0x20, 0x43, 0x02, 0x46, 0x11, 0x21, 
+0x00, 0x20, 0x00, 0xF0, 0xCC, 0xFD, 0x00, 0x22, 0x1F, 0x21, 0x10, 0x46, 0x00, 0xF0, 0xC7, 0xFD, 
+0x10, 0xBD, 0x10, 0xB5, 0x61, 0xA0, 0x01, 0xF0, 0x1D, 0xFC, 0xFF, 0xF7, 0xA7, 0xFF, 0xFF, 0xF7, 
+0x45, 0xFF, 0x3E, 0x49, 0x01, 0x20, 0x08, 0x70, 0x10, 0xBD, 0x10, 0xB5, 0x00, 0x22, 0x1F, 0x21, 
+0x10, 0x46, 0x00, 0xF0, 0xB4, 0xFD, 0x7D, 0x24, 0xE4, 0x00, 0x20, 0x46, 0xFF, 0xF7, 0x5B, 0xFE, 
+0x45, 0x22, 0x00, 0x21, 0x92, 0x01, 0x08, 0x46, 0x00, 0xF0, 0xA9, 0xFD, 0x20, 0x46, 0xFF, 0xF7, 
+0x52, 0xFE, 0xFF, 0x22, 0xE2, 0x32, 0x04, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xA0, 0xFD, 0x20, 0x46, 
+0xFF, 0xF7, 0x49, 0xFE, 0x55, 0x4A, 0x05, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x98, 0xFD, 0x20, 0x46, 
+0xFF, 0xF7, 0x41, 0xFE, 0x0F, 0x22, 0x06, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x90, 0xFD, 0x20, 0x46, 
+0xFF, 0xF7, 0x39, 0xFE, 0x4E, 0x4A, 0x07, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x88, 0xFD, 0x20, 0x46, 
+0xFF, 0xF7, 0x31, 0xFE, 0x4B, 0x4A, 0x08, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x80, 0xFD, 0x20, 0x46, 
+0xFF, 0xF7, 0x29, 0xFE, 0x03, 0x22, 0x12, 0x02, 0x09, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x77, 0xFD, 
+0x20, 0x46, 0xFF, 0xF7, 0x20, 0xFE, 0x00, 0x22, 0x0E, 0x21, 0x10, 0x46, 0x00, 0xF0, 0x6F, 0xFD, 
+0x20, 0x46, 0xFF, 0xF7, 0x18, 0xFE, 0xFF, 0x22, 0x6F, 0x32, 0x10, 0x21, 0x00, 0x20, 0x00, 0xF0, 
+0x66, 0xFD, 0x20, 0x46, 0xFF, 0xF7, 0x0F, 0xFE, 0x3B, 0x4A, 0x11, 0x21, 0x00, 0x20, 0x00, 0xF0, 
+0x5E, 0xFD, 0x73, 0xE0, 0xC0, 0x40, 0x00, 0x50, 0xCC, 0x06, 0x00, 0x20, 0x40, 0x00, 0x00, 0x50, 
+0x3F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x02, 0x11, 0x00, 0x00, 
+0x2D, 0x2D, 0x70, 0x68, 0x79, 0x5F, 0x77, 0x6F, 0x6C, 0x5F, 0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 
+0x20, 0x53, 0x54, 0x41, 0x52, 0x54, 0x2D, 0x2D, 0x0A, 0x00, 0x00, 0x00, 0xA8, 0x01, 0x00, 0x20, 
+0x2D, 0x2D, 0x4C, 0x61, 0x6E, 0x38, 0x30, 0x32, 0x31, 0x66, 0x6E, 0x5F, 0x4D, 0x61, 0x67, 0x69, 
+0x63, 0x5F, 0x50, 0x61, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x57, 0x61, 0x6B, 0x65, 0x5F, 0x45, 0x6E, 
+0x61, 0x62, 0x6C, 0x65, 0x20, 0x53, 0x54, 0x41, 0x52, 0x54, 0x2D, 0x2D, 0x0A, 0x00, 0x00, 0x00, 
+0x4C, 0x61, 0x6E, 0x38, 0x30, 0x32, 0x31, 0x66, 0x6E, 0x5F, 0x4D, 0x61, 0x67, 0x69, 0x63, 0x5F, 
+0x50, 0x61, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x57, 0x61, 0x6B, 0x65, 0x5F, 0x45, 0x6E, 0x61, 0x62, 
+0x6C, 0x65, 0x3A, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0A, 0x00, 0x2D, 0x2D, 0x4C, 0x61, 
+0x6E, 0x38, 0x37, 0x34, 0x78, 0x5F, 0x43, 0x6C, 0x65, 0x61, 0x72, 0x5F, 0x57, 0x61, 0x6B, 0x65, 
+0x73, 0x20, 0x53, 0x54, 0x41, 0x52, 0x54, 0x2D, 0x2D, 0x0A, 0x00, 0x00, 0x2D, 0x2D, 0x70, 0x68, 
+0x79, 0x38, 0x30, 0x32, 0x31, 0x66, 0x6E, 0x5F, 0x77, 0x6F, 0x6C, 0x5F, 0x63, 0x6F, 0x6E, 0x66, 
+0x69, 0x67, 0x20, 0x53, 0x54, 0x41, 0x52, 0x54, 0x2D, 0x2D, 0x0A, 0x00, 0xE1, 0xCD, 0x00, 0x00, 
+0x01, 0x20, 0x00, 0x00, 0x08, 0xE0, 0x00, 0x00, 0x40, 0x70, 0x00, 0x00, 0xFA, 0x4A, 0x12, 0x21, 
+0x00, 0x20, 0x00, 0xF0, 0xE4, 0xFC, 0xC1, 0x22, 0x92, 0x01, 0x13, 0x21, 0x00, 0x20, 0x00, 0xF0, 
+0xDE, 0xFC, 0xF6, 0x4A, 0x14, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xD9, 0xFC, 0xF4, 0x4A, 0x15, 0x21, 
+0x00, 0x20, 0x00, 0xF0, 0xD4, 0xFC, 0x41, 0x22, 0x12, 0x02, 0x16, 0x21, 0x00, 0x20, 0x00, 0xF0, 
+0xCE, 0xFC, 0x21, 0x22, 0x12, 0x02, 0x17, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xC8, 0xFC, 0x23, 0x22, 
+0x92, 0x02, 0x19, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xC2, 0xFC, 0x40, 0x22, 0x1A, 0x21, 0x00, 0x20, 
+0x00, 0xF0, 0xBD, 0xFC, 0xE5, 0x4A, 0x1D, 0x21, 0x08, 0x3A, 0x00, 0x20, 0x00, 0xF0, 0xB7, 0xFC, 
+0xFF, 0x22, 0x24, 0x32, 0x1E, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xB1, 0xFC, 0x00, 0x22, 0x1F, 0x21, 
+0x10, 0x46, 0x00, 0xF0, 0xAC, 0xFC, 0x10, 0xBD, 0x10, 0xB5, 0xFF, 0xF7, 0xEE, 0xFE, 0x00, 0x22, 
+0x1F, 0x21, 0x10, 0x46, 0x00, 0xF0, 0xA3, 0xFC, 0x00, 0x24, 0x21, 0x46, 0x00, 0x20, 0xFF, 0xF7, 
+0xA2, 0xFD, 0x05, 0x2C, 0x03, 0xD0, 0x64, 0x1C, 0x20, 0x2C, 0xF6, 0xD3, 0x18, 0xE0, 0x00, 0x28, 
+0x01, 0xD0, 0x06, 0x24, 0xF1, 0xE7, 0xD3, 0x4A, 0x01, 0x20, 0x10, 0x63, 0xD2, 0x48, 0xFF, 0xF7, 
+0x3A, 0xFD, 0x00, 0x20, 0x10, 0x63, 0xD1, 0x48, 0xFF, 0xF7, 0x35, 0xFD, 0xFF, 0xF7, 0xCD, 0xFE, 
+0x00, 0x24, 0x21, 0x46, 0x00, 0x20, 0xFF, 0xF7, 0x86, 0xFD, 0x64, 0x1C, 0x20, 0x2C, 0xF8, 0xD3, 
+0x07, 0x22, 0x1F, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x7A, 0xFC, 0x6D, 0x22, 0x1E, 0x21, 0x00, 0x20, 
+0x00, 0xF0, 0x75, 0xFC, 0xC6, 0x4A, 0x16, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x70, 0xFC, 0x01, 0x22, 
+0x12, 0x03, 0x15, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x6A, 0xFC, 0x16, 0x21, 0x00, 0x20, 0xFF, 0xF7, 
+0x6A, 0xFD, 0x15, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0x66, 0xFD, 0x07, 0x22, 0x1F, 0x21, 0x00, 0x20, 
+0x00, 0xF0, 0x5D, 0xFC, 0x6E, 0x22, 0x1E, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x58, 0xFC, 0xB9, 0x4C, 
+0x15, 0x21, 0x62, 0x88, 0x00, 0x20, 0x00, 0xF0, 0x52, 0xFC, 0xA2, 0x88, 0x16, 0x21, 0x00, 0x20, 
+0x00, 0xF0, 0x4D, 0xFC, 0xE2, 0x88, 0x17, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x48, 0xFC, 0x15, 0x21, 
+0x00, 0x20, 0xFF, 0xF7, 0x48, 0xFD, 0x16, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0x44, 0xFD, 0x17, 0x21, 
+0x00, 0x20, 0xFF, 0xF7, 0x40, 0xFD, 0x07, 0x22, 0x1F, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x37, 0xFC, 
+0x6D, 0x22, 0x1E, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x32, 0xFC, 0x01, 0x22, 0x19, 0x21, 0x00, 0x20, 
+0x00, 0xF0, 0x2D, 0xFC, 0x07, 0x22, 0x18, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x28, 0xFC, 0x19, 0x21, 
+0x00, 0x20, 0xFF, 0xF7, 0x28, 0xFD, 0x18, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0x24, 0xFD, 0x00, 0x22, 
+0x1F, 0x21, 0x10, 0x46, 0x00, 0xF0, 0x1B, 0xFC, 0x10, 0xBD, 0x10, 0xB5, 0xFF, 0xF7, 0x6C, 0xFF, 
+0x98, 0x49, 0x01, 0x20, 0x08, 0x70, 0x10, 0xBD, 0x10, 0xB5, 0x00, 0xF0, 0xA1, 0xFB, 0x96, 0x48, 
+0x01, 0x68, 0x96, 0x4A, 0x11, 0x40, 0x01, 0x60, 0x01, 0x68, 0x01, 0x60, 0x00, 0xF0, 0xA4, 0xFB, 
+0x01, 0x22, 0x40, 0x21, 0x92, 0x48, 0xFC, 0xF7, 0x4F, 0xF8, 0x8A, 0x49, 0x00, 0x20, 0x88, 0x61, 
+0x8D, 0x49, 0xC0, 0x31, 0x08, 0x60, 0x10, 0xBD, 0x10, 0xB5, 0xFF, 0xF7, 0xE5, 0xFF, 0x89, 0x48, 
+0x8C, 0x49, 0x80, 0x68, 0x88, 0x42, 0x02, 0xD1, 0xFF, 0xF7, 0xD7, 0xFF, 0x0B, 0xE0, 0x89, 0x49, 
+0xFF, 0x39, 0x88, 0x42, 0x02, 0xD1, 0xFF, 0xF7, 0x24, 0xFE, 0x04, 0xE0, 0x86, 0x49, 0x88, 0x42, 
+0x01, 0xD1, 0xFF, 0xF7, 0x5E, 0xFD, 0xFF, 0xF7, 0x95, 0xFC, 0x10, 0xBD, 0x70, 0x47, 0x10, 0xB5, 
+0xFF, 0xF7, 0xCA, 0xFF, 0x81, 0x48, 0xFF, 0xF7, 0x86, 0xFC, 0x02, 0x21, 0x00, 0x20, 0xFF, 0xF7, 
+0xDA, 0xFC, 0x78, 0x4C, 0x01, 0x04, 0xA0, 0x68, 0x01, 0x43, 0x7D, 0xA0, 0xA1, 0x60, 0x01, 0xF0, 
+0x29, 0xFA, 0x03, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0xCE, 0xFC, 0x81, 0xB2, 0xA0, 0x68, 0x01, 0x43, 
+0x7C, 0xA0, 0xA1, 0x60, 0x01, 0xF0, 0x1E, 0xFA, 0xFF, 0xF7, 0x74, 0xFC, 0xFF, 0xF7, 0xC4, 0xFF, 
+0x10, 0xBD, 0x70, 0xB5, 0x7C, 0xA0, 0x01, 0xF0, 0x15, 0xFA, 0x81, 0x48, 0x00, 0xF0, 0xCB, 0xFD, 
+0x80, 0x48, 0x01, 0x25, 0xC0, 0x79, 0x63, 0x4C, 0x80, 0x07, 0x00, 0x28, 0x0E, 0xDA, 0x25, 0x63, 
+0x61, 0x48, 0xFF, 0xF7, 0x58, 0xFC, 0x00, 0x20, 0x20, 0x63, 0x60, 0x48, 0xFF, 0xF7, 0x53, 0xFC, 
+0x79, 0xA0, 0x01, 0xF0, 0xFF, 0xF9, 0xFF, 0xF7, 0xC2, 0xFF, 0x03, 0xE0, 0x83, 0xA0, 0x01, 0xF0, 
+0xF9, 0xF9, 0x25, 0x63, 0x00, 0x20, 0x70, 0xBD, 0x10, 0xB5, 0x8D, 0xA0, 0x01, 0xF0, 0xF2, 0xF9, 
+0x58, 0x48, 0x6F, 0x49, 0x0C, 0x30, 0x88, 0x60, 0x08, 0x46, 0x00, 0xF0, 0xC2, 0xFD, 0x6C, 0x48, 
+0x00, 0xF0, 0xA1, 0xFD, 0x10, 0xBD, 0xF8, 0xB5, 0x05, 0x46, 0x0C, 0x00, 0x06, 0xD0, 0x00, 0x2A, 
+0x04, 0xD0, 0x07, 0x2D, 0x05, 0xD0, 0x17, 0x2D, 0x4E, 0xD0, 0x40, 0xE0, 0x00, 0x20, 0xC0, 0x43, 
+0xF8, 0xBD, 0x21, 0x78, 0x6C, 0x20, 0x01, 0xF0, 0x4E, 0xF8, 0x06, 0x46, 0x21, 0x78, 0x6D, 0x20, 
+0x01, 0xF0, 0x49, 0xF8, 0x07, 0x46, 0x6C, 0x20, 0x01, 0xF0, 0x6E, 0xF8, 0xB0, 0x42, 0x0E, 0xD0, 
+0x31, 0x46, 0x6C, 0x20, 0x01, 0xF0, 0x92, 0xF8, 0x31, 0x46, 0x6C, 0x20, 0x00, 0xF0, 0x6C, 0xFD, 
+0x3C, 0x48, 0x00, 0x2E, 0x01, 0xD0, 0x00, 0x21, 0x00, 0xE0, 0x01, 0x21, 0x01, 0x63, 0x6D, 0x20, 
+0x01, 0xF0, 0x5A, 0xF8, 0xB8, 0x42, 0x24, 0xD0, 0x39, 0x46, 0x6D, 0x20, 0x01, 0xF0, 0x7E, 0xF8, 
+0x39, 0x46, 0x6D, 0x20, 0x00, 0xF0, 0x58, 0xFD, 0x00, 0x2F, 0x1A, 0xD1, 0x6F, 0xA0, 0x01, 0xF0, 
+0xA9, 0xF9, 0x30, 0x4E, 0x40, 0x3E, 0x36, 0x48, 0x02, 0x21, 0x40, 0x38, 0xFC, 0xF7, 0x7D, 0xFD, 
+0x00, 0x28, 0x0F, 0xD0, 0x70, 0xA0, 0x01, 0xF0, 0x9D, 0xF9, 0x01, 0x20, 0x70, 0x61, 0x18, 0x2D, 
+0x16, 0xD0, 0x19, 0x2D, 0x20, 0xD0, 0x1A, 0x2D, 0x2A, 0xD0, 0x1B, 0x2D, 0x34, 0xD0, 0x1C, 0x2D, 
+0x40, 0xD0, 0xED, 0xE0, 0x77, 0x61, 0xE6, 0xE7, 0x17, 0x20, 0x00, 0xF0, 0x8F, 0xFF, 0x21, 0x78, 
+0x88, 0x42, 0x36, 0xD0, 0x17, 0x20, 0x00, 0xF0, 0xCC, 0xFF, 0x21, 0x78, 0x17, 0x20, 0x2E, 0xE0, 
+0x18, 0x20, 0x00, 0xF0, 0x83, 0xFF, 0x21, 0x78, 0x88, 0x42, 0x2A, 0xD0, 0x18, 0x20, 0x00, 0xF0, 
+0xC0, 0xFF, 0x21, 0x78, 0x18, 0x20, 0x22, 0xE0, 0x19, 0x20, 0x00, 0xF0, 0x77, 0xFF, 0x21, 0x78, 
+0x88, 0x42, 0x1E, 0xD0, 0x19, 0x20, 0x00, 0xF0, 0xB4, 0xFF, 0x21, 0x78, 0x19, 0x20, 0x16, 0xE0, 
+0x1A, 0x20, 0x00, 0xF0, 0x6B, 0xFF, 0x21, 0x78, 0x88, 0x42, 0x12, 0xD0, 0x1A, 0x20, 0x00, 0xF0, 
+0xA8, 0xFF, 0x21, 0x78, 0x1A, 0x20, 0x0A, 0xE0, 0x1B, 0x20, 0x00, 0xF0, 0x5F, 0xFF, 0x21, 0x78, 
+0x88, 0x42, 0x06, 0xD0, 0x1B, 0x20, 0x00, 0xF0, 0x9C, 0xFF, 0x21, 0x78, 0x1B, 0x20, 0x00, 0xF0, 
+0xFB, 0xFC, 0xAD, 0xE0, 0xA0, 0xE0, 0x00, 0x00, 0x01, 0x9F, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 
+0x06, 0x10, 0x00, 0x00, 0x80, 0x42, 0x00, 0x50, 0x10, 0x27, 0x00, 0x00, 0x40, 0x0D, 0x03, 0x00, 
+0xFF, 0x1F, 0x00, 0x00, 0xA8, 0x01, 0x00, 0x20, 0x40, 0x00, 0x00, 0x50, 0x3F, 0x3F, 0xFF, 0xFF, 
+0x00, 0x41, 0x00, 0x50, 0x15, 0xC9, 0x1C, 0x00, 0x30, 0xC1, 0x07, 0x00, 0xA0, 0x86, 0x01, 0x00, 
+0x2D, 0x2D, 0x70, 0x68, 0x79, 0x20, 0x69, 0x64, 0x31, 0x2D, 0x2D, 0x3A, 0x30, 0x78, 0x25, 0x30, 
+0x38, 0x78, 0x0A, 0x00, 0x2D, 0x2D, 0x70, 0x68, 0x79, 0x20, 0x69, 0x64, 0x2D, 0x2D, 0x3A, 0x30, 
+0x78, 0x25, 0x30, 0x38, 0x78, 0x0A, 0x00, 0x00, 0x65, 0x74, 0x68, 0x77, 0x6F, 0x6C, 0x5F, 0x77, 
+0x6F, 0x72, 0x6B, 0x2D, 0x2D, 0x2D, 0x61, 0x6E, 0x64, 0x79, 0x2D, 0x2D, 0x2D, 0x0A, 0x00, 0x00, 
+0xCC, 0x06, 0x00, 0x20, 0x54, 0x07, 0x00, 0x20, 0x53, 0x4F, 0x43, 0x20, 0x70, 0x6F, 0x77, 0x65, 
+0x72, 0x20, 0x6F, 0x66, 0x66, 0x20, 0x65, 0x6E, 0x74, 0x65, 0x72, 0x20, 0x65, 0x74, 0x68, 0x77, 
+0x6F, 0x6C, 0x5F, 0x77, 0x6F, 0x72, 0x6B, 0x20, 0x2D, 0x2D, 0x2D, 0x70, 0x77, 0x72, 0x5F, 0x77, 
+0x6B, 0x5F, 0x6F, 0x6E, 0x2D, 0x2D, 0x2D, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x53, 0x4F, 0x43, 0x20, 
+0x70, 0x6F, 0x77, 0x65, 0x72, 0x20, 0x6F, 0x66, 0x66, 0x20, 0x65, 0x6E, 0x74, 0x65, 0x72, 0x20, 
+0x65, 0x74, 0x68, 0x77, 0x6F, 0x6C, 0x5F, 0x77, 0x6F, 0x72, 0x6B, 0x20, 0x2D, 0x2D, 0x2D, 0x70, 
+0x77, 0x72, 0x5F, 0x77, 0x6B, 0x5F, 0x6F, 0x66, 0x66, 0x2D, 0x2D, 0x2D, 0x0A, 0x00, 0x00, 0x00, 
+0x6A, 0x77, 0x5F, 0x65, 0x74, 0x68, 0x77, 0x6F, 0x6C, 0x5F, 0x77, 0x6F, 0x72, 0x6B, 0x5F, 0x69, 
+0x6E, 0x69, 0x74, 0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x20, 0x70, 0x6F, 0x77, 
+0x65, 0x72, 0x20, 0x68, 0x6F, 0x6C, 0x64, 0x20, 0x6C, 0x6F, 0x77, 0x20, 0x2D, 0x2D, 0x2D, 0x2D, 
+0x61, 0x6E, 0x64, 0x79, 0x0A, 0x00, 0x00, 0x00, 0x20, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x20, 0x68, 
+0x6F, 0x6C, 0x64, 0x20, 0x6C, 0x6F, 0x77, 0x20, 0x65, 0x6E, 0x64, 0x20, 0x2D, 0x2D, 0x2D, 0x2D, 
+0x61, 0x6E, 0x64, 0x79, 0x0A, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0xF0, 0xAF, 0xFE, 0x21, 0x78, 
+0x88, 0x42, 0x05, 0xD0, 0x1C, 0x20, 0x00, 0xF0, 0xEC, 0xFE, 0x21, 0x78, 0x1C, 0x20, 0x4E, 0xE7, 
+0x00, 0x20, 0xF8, 0xBD, 0x10, 0xB5, 0xFD, 0x48, 0xFB, 0x49, 0x81, 0x60, 0x00, 0x21, 0xC1, 0x60, 
+0x00, 0xF0, 0xDF, 0xFF, 0x10, 0xBD, 0x10, 0xB5, 0xF9, 0x48, 0xC0, 0x79, 0x80, 0x07, 0x01, 0xD5, 
+0xFF, 0xF7, 0xAF, 0xF8, 0x10, 0xBD, 0x10, 0xB5, 0x00, 0xF0, 0xCE, 0xF9, 0x14, 0x20, 0xFF, 0xF7, 
+0xDA, 0xFA, 0xF4, 0x4A, 0x00, 0x20, 0x90, 0x61, 0x14, 0x20, 0xFF, 0xF7, 0xD4, 0xFA, 0x01, 0x20, 
+0x90, 0x61, 0x10, 0xBD, 0x10, 0xB5, 0x07, 0x22, 0x1F, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x1F, 0xFA, 
+0x6D, 0x22, 0x1E, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x1A, 0xFA, 0x00, 0x22, 0x15, 0x21, 0x10, 0x46, 
+0x00, 0xF0, 0x15, 0xFA, 0x07, 0x22, 0x1F, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x10, 0xFA, 0x6D, 0x22, 
+0x1E, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x0B, 0xFA, 0x16, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0x0B, 0xFB, 
+0x01, 0x21, 0xC9, 0x03, 0x08, 0x43, 0x02, 0x46, 0x16, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xFF, 0xF9, 
+0x07, 0x22, 0x1F, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xFA, 0xF9, 0x6D, 0x22, 0x1E, 0x21, 0x00, 0x20, 
+0x00, 0xF0, 0xF5, 0xF9, 0x00, 0x22, 0x19, 0x21, 0x10, 0x46, 0x00, 0xF0, 0xF0, 0xF9, 0x00, 0x22, 
+0x1F, 0x21, 0x10, 0x46, 0x00, 0xF0, 0xEB, 0xF9, 0x10, 0xBD, 0x10, 0xB5, 0x07, 0x22, 0x1F, 0x21, 
+0x00, 0x20, 0x00, 0xF0, 0xE4, 0xF9, 0x6E, 0x22, 0x1E, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xDF, 0xF9, 
+0xCD, 0x4C, 0x15, 0x21, 0x22, 0x46, 0x00, 0x20, 0x00, 0xF0, 0xD9, 0xF9, 0x22, 0x46, 0x16, 0x21, 
+0x00, 0x20, 0x00, 0xF0, 0xD4, 0xF9, 0x22, 0x46, 0x17, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xCF, 0xF9, 
+0x15, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0xCF, 0xFA, 0x16, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0xCB, 0xFA, 
+0x17, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0xC7, 0xFA, 0x07, 0x22, 0x1F, 0x21, 0x00, 0x20, 0x00, 0xF0, 
+0xBE, 0xF9, 0x6D, 0x22, 0x1E, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xB9, 0xF9, 0xBB, 0x4A, 0x16, 0x21, 
+0x00, 0x20, 0x00, 0xF0, 0xB4, 0xF9, 0xBA, 0x4A, 0x15, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xAF, 0xF9, 
+0x16, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0xAF, 0xFA, 0x15, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0xAB, 0xFA, 
+0x07, 0x22, 0x1F, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xA2, 0xF9, 0x64, 0x22, 0x1E, 0x21, 0x00, 0x20, 
+0x00, 0xF0, 0x9D, 0xF9, 0x03, 0x22, 0x12, 0x03, 0x15, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x97, 0xF9, 
+0x20, 0x22, 0x16, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x92, 0xF9, 0x0F, 0x22, 0x92, 0x01, 0x17, 0x21, 
+0x00, 0x20, 0x00, 0xF0, 0x8C, 0xF9, 0x00, 0x22, 0x18, 0x21, 0x10, 0x46, 0x00, 0xF0, 0x87, 0xF9, 
+0x00, 0x22, 0x19, 0x21, 0x10, 0x46, 0x00, 0xF0, 0x82, 0xF9, 0x00, 0x22, 0x1A, 0x21, 0x10, 0x46, 
+0x00, 0xF0, 0x7D, 0xF9, 0x00, 0x22, 0x1B, 0x21, 0x10, 0x46, 0x00, 0xF0, 0x78, 0xF9, 0x00, 0x22, 
+0x1C, 0x21, 0x10, 0x46, 0x00, 0xF0, 0x73, 0xF9, 0x00, 0x24, 0x21, 0x46, 0x15, 0x31, 0x00, 0x20, 
+0xFF, 0xF7, 0x71, 0xFA, 0x64, 0x1C, 0x08, 0x2C, 0xF7, 0xD3, 0x07, 0x22, 0x1F, 0x21, 0x00, 0x20, 
+0x00, 0xF0, 0x65, 0xF9, 0x6C, 0x22, 0x1E, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x60, 0xF9, 0x91, 0x4A, 
+0x15, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x5B, 0xF9, 0x15, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0x5B, 0xFA, 
+0x07, 0x22, 0x1F, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x52, 0xF9, 0x6D, 0x22, 0x1E, 0x21, 0x00, 0x20, 
+0x00, 0xF0, 0x4D, 0xF9, 0x01, 0x22, 0x19, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x48, 0xF9, 0x07, 0x22, 
+0x18, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x43, 0xF9, 0x15, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0x43, 0xFA, 
+0x00, 0x22, 0x1F, 0x21, 0x10, 0x46, 0x00, 0xF0, 0x3A, 0xF9, 0x10, 0xBD, 0x10, 0xB5, 0x07, 0x22, 
+0x1F, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x33, 0xF9, 0x6D, 0x22, 0x1E, 0x21, 0x00, 0x20, 0x00, 0xF0, 
+0x2E, 0xF9, 0x79, 0x4A, 0x16, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x29, 0xF9, 0x74, 0x4A, 0x15, 0x21, 
+0x00, 0x20, 0x00, 0xF0, 0x24, 0xF9, 0x6E, 0x22, 0x1E, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x1F, 0xF9, 
+0x72, 0x4A, 0x15, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x1A, 0xF9, 0x71, 0x4A, 0x16, 0x21, 0x00, 0x20, 
+0x00, 0xF0, 0x15, 0xF9, 0x6F, 0x4A, 0x17, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x10, 0xF9, 0x64, 0x22, 
+0x1E, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x0B, 0xF9, 0x03, 0x22, 0x12, 0x03, 0x15, 0x21, 0x00, 0x20, 
+0x00, 0xF0, 0x05, 0xF9, 0x20, 0x22, 0x16, 0x21, 0x00, 0x20, 0x00, 0xF0, 0x00, 0xF9, 0x0F, 0x22, 
+0x92, 0x01, 0x17, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xFA, 0xF8, 0x00, 0x22, 0x18, 0x21, 0x10, 0x46, 
+0x00, 0xF0, 0xF5, 0xF8, 0x00, 0x22, 0x19, 0x21, 0x10, 0x46, 0x00, 0xF0, 0xF0, 0xF8, 0x00, 0x22, 
+0x1A, 0x21, 0x10, 0x46, 0x00, 0xF0, 0xEB, 0xF8, 0x00, 0x22, 0x1B, 0x21, 0x10, 0x46, 0x00, 0xF0, 
+0xE6, 0xF8, 0x00, 0x22, 0x1C, 0x21, 0x10, 0x46, 0x00, 0xF0, 0xE1, 0xF8, 0x6C, 0x22, 0x1E, 0x21, 
+0x00, 0x20, 0x00, 0xF0, 0xDC, 0xF8, 0x4F, 0x4A, 0x15, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xD7, 0xF8, 
+0x6D, 0x22, 0x1E, 0x21, 0x00, 0x20, 0x00, 0xF0, 0xD2, 0xF8, 0x01, 0x22, 0x19, 0x21, 0x00, 0x20, 
+0x00, 0xF0, 0xCD, 0xF8, 0x00, 0x22, 0x1F, 0x21, 0x10, 0x46, 0x00, 0xF0, 0xC8, 0xF8, 0x02, 0x21, 
+0x00, 0x20, 0xFF, 0xF7, 0xC8, 0xF9, 0x03, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0xC4, 0xF9, 0x11, 0x21, 
+0x00, 0x20, 0xFF, 0xF7, 0xC0, 0xF9, 0x13, 0x21, 0x00, 0x20, 0xFF, 0xF7, 0xBC, 0xF9, 0x10, 0xBD, 
+0x10, 0xB5, 0x41, 0x4C, 0x01, 0x22, 0x10, 0x21, 0x20, 0x46, 0xFB, 0xF7, 0xFD, 0xFC, 0x35, 0x49, 
+0x01, 0x20, 0x08, 0x63, 0x00, 0x22, 0x08, 0x21, 0x20, 0x46, 0xFB, 0xF7, 0xF5, 0xFC, 0x01, 0x22, 
+0x03, 0x21, 0x20, 0x46, 0xFB, 0xF7, 0x07, 0xFD, 0x10, 0xBD, 0x70, 0xB5, 0x2C, 0x4D, 0x00, 0x24, 
+0x28, 0x19, 0x20, 0x30, 0x02, 0x7C, 0x21, 0x46, 0x34, 0xA0, 0x00, 0xF0, 0xF3, 0xFE, 0x64, 0x1C, 
+0x06, 0x2C, 0xF5, 0xDB, 0x26, 0x48, 0x37, 0x4C, 0x30, 0x30, 0x41, 0x78, 0x02, 0x78, 0x09, 0x02, 
+0x11, 0x43, 0x61, 0x80, 0xC2, 0x78, 0x83, 0x78, 0x12, 0x02, 0x1A, 0x43, 0xA2, 0x80, 0x42, 0x79, 
+0x03, 0x79, 0x10, 0x02, 0x18, 0x43, 0xE0, 0x80, 0x2F, 0xA0, 0x00, 0xF0, 0xDB, 0xFE, 0xA1, 0x88, 
+0x2D, 0xA0, 0x00, 0xF0, 0xD7, 0xFE, 0xE1, 0x88, 0x2B, 0xA0, 0x00, 0xF0, 0xD3, 0xFE, 0x70, 0xBD, 
+0x10, 0xB5, 0xFF, 0xF7, 0xD9, 0xFC, 0xFF, 0xF7, 0x2D, 0xFE, 0xFF, 0xF7, 0xCE, 0xFF, 0x10, 0xBD, 
+0x10, 0xB5, 0x59, 0x21, 0x28, 0x48, 0x16, 0x22, 0x88, 0x23, 0x01, 0x60, 0x02, 0x60, 0x03, 0x60, 
+0x04, 0x68, 0x00, 0x2C, 0xF9, 0xD0, 0x10, 0xBD, 0x17, 0x48, 0x10, 0xB5, 0x00, 0x22, 0x80, 0x21, 
+0x40, 0x38, 0xFB, 0xF7, 0xA9, 0xFC, 0x10, 0xBD, 0x00, 0xB5, 0x02, 0x46, 0x14, 0x20, 0xFF, 0xF7, 
+0x02, 0xF9, 0x08, 0x4B, 0x00, 0x20, 0x98, 0x61, 0xDA, 0x61, 0x14, 0x20, 0xFF, 0xF7, 0xFB, 0xF8, 
+0x01, 0x20, 0x98, 0x61, 0x00, 0xBD, 0x00, 0x00, 0xA7, 0x47, 0x00, 0x00, 0xD8, 0x06, 0x00, 0x20, 
+0x54, 0x07, 0x00, 0x20, 0x80, 0x42, 0x00, 0x50, 0x22, 0x22, 0x00, 0x00, 0xFF, 0x1F, 0x00, 0x00, 
+0xFF, 0xFF, 0x00, 0x00, 0x6B, 0xDF, 0x00, 0x00, 0xFF, 0x9F, 0x00, 0x00, 0x22, 0x04, 0x00, 0x00, 
+0x5A, 0x56, 0x00, 0x00, 0x0E, 0xA3, 0x00, 0x00, 0x40, 0x41, 0x00, 0x50, 0x65, 0x74, 0x68, 0x5F, 
+0x70, 0x68, 0x79, 0x5F, 0x61, 0x64, 0x64, 0x72, 0x20, 0x25, 0x64, 0x3A, 0x30, 0x78, 0x25, 0x78, 
+0x0A, 0x00, 0x00, 0x00, 0xA8, 0x01, 0x00, 0x20, 0x70, 0x68, 0x79, 0x5F, 0x61, 0x64, 0x64, 0x72, 
+0x31, 0x20, 0x30, 0x78, 0x25, 0x78, 0x0A, 0x00, 0x00, 0x01, 0x00, 0x50, 0x10, 0xB5, 0x01, 0x22, 
+0x80, 0x21, 0x1E, 0x48, 0xFB, 0xF7, 0x60, 0xFC, 0x1D, 0x49, 0x00, 0x20, 0xC8, 0x61, 0x10, 0xBD, 
+0x70, 0xB5, 0x05, 0x46, 0x0C, 0x46, 0xFF, 0xF7, 0xF1, 0xFF, 0x05, 0xE0, 0x28, 0x46, 0xE0, 0x40, 
+0xC0, 0x07, 0xC0, 0x0F, 0xFF, 0xF7, 0xA8, 0xFF, 0x64, 0x1E, 0xF7, 0xD5, 0x70, 0xBD, 0x10, 0xB5, 
+0x14, 0x46, 0x0A, 0x46, 0x01, 0x46, 0x01, 0x20, 0xFF, 0xF7, 0xBD, 0xF8, 0x01, 0x20, 0xFF, 0xF7, 
+0x9B, 0xFF, 0x00, 0x20, 0xFF, 0xF7, 0x98, 0xFF, 0x10, 0x21, 0x20, 0x46, 0xFF, 0xF7, 0xE0, 0xFF, 
+0xFF, 0xF7, 0x8A, 0xFF, 0x00, 0x20, 0x10, 0xBD, 0x00, 0xB5, 0x14, 0x20, 0xFF, 0xF7, 0x93, 0xF8, 
+0x07, 0x4A, 0x00, 0x20, 0x90, 0x61, 0x14, 0x20, 0xFF, 0xF7, 0x8D, 0xF8, 0x01, 0x20, 0x90, 0x61, 
+0x19, 0x20, 0xFF, 0xF7, 0x88, 0xF8, 0xD0, 0x69, 0x8C, 0xE7, 0x00, 0x00, 0x00, 0x41, 0x00, 0x50, 
+0x80, 0x42, 0x00, 0x50, 0x10, 0xB5, 0x02, 0x21, 0x5E, 0x48, 0xFC, 0xF7, 0x06, 0xFA, 0x01, 0x28, 
+0x04, 0xD1, 0xFE, 0xF7, 0x46, 0xFE, 0x5C, 0xA0, 0x00, 0xF0, 0x24, 0xFE, 0x10, 0xBD, 0xF8, 0xB5, 
+0x5D, 0x4C, 0xE0, 0x68, 0xA0, 0x60, 0x00, 0xF0, 0x54, 0xF9, 0xE0, 0x60, 0xA1, 0x68, 0x88, 0x42, 
+0x01, 0xD9, 0x41, 0x1A, 0x02, 0xE0, 0x59, 0x4A, 0x41, 0x1A, 0x89, 0x18, 0x0A, 0x22, 0x51, 0x43, 
+0x21, 0x61, 0xA0, 0x60, 0x27, 0x78, 0x56, 0x4A, 0x00, 0x26, 0x56, 0x49, 0x56, 0x48, 0x01, 0x25, 
+0x3B, 0x00, 0x01, 0xF0, 0xB2, 0xF9, 0x05, 0x12, 0x04, 0x13, 0x35, 0x69, 0x12, 0x00, 0x53, 0x49, 
+0x20, 0x69, 0x40, 0x18, 0x90, 0x42, 0x06, 0xD2, 0x66, 0x61, 0x26, 0x76, 0x02, 0x20, 0x20, 0x70, 
+0x4F, 0xA0, 0x00, 0xF0, 0xF7, 0xFD, 0xE0, 0x68, 0xA0, 0x60, 0xF8, 0xBD, 0x62, 0x69, 0x53, 0x00, 
+0x63, 0x61, 0x22, 0x7E, 0x52, 0x1C, 0xD2, 0xB2, 0x22, 0x76, 0x27, 0x69, 0x79, 0x18, 0xC7, 0x29, 
+0x01, 0xD2, 0x2B, 0x43, 0x63, 0x61, 0x10, 0x2A, 0xEF, 0xD1, 0x00, 0x21, 0x9A, 0xB2, 0x8B, 0x00, 
+0xC3, 0x5A, 0x93, 0x42, 0x05, 0xD1, 0x61, 0x76, 0x03, 0x20, 0x20, 0x70, 0x66, 0x61, 0x26, 0x76, 
+0xF8, 0xBD, 0x49, 0x1C, 0x07, 0x29, 0xF2, 0xD3, 0x42, 0xA0, 0x00, 0xF0, 0xD3, 0xFD, 0x31, 0xE0, 
+0x22, 0x7E, 0x52, 0x1C, 0xD2, 0xB2, 0x22, 0x76, 0x63, 0x69, 0x5B, 0x00, 0x63, 0x61, 0x26, 0x69, 
+0x71, 0x18, 0xC7, 0x29, 0x01, 0xD2, 0x2B, 0x43, 0x63, 0x61, 0x10, 0x2A, 0xE8, 0xD1, 0x62, 0x7E, 
+0x04, 0x2A, 0x05, 0xD0, 0x05, 0x2A, 0x03, 0xD0, 0x06, 0x2A, 0x01, 0xD0, 0x19, 0x46, 0x06, 0xE0, 
+0x19, 0x06, 0x09, 0x0C, 0xCB, 0x43, 0x1B, 0x04, 0x1B, 0x0E, 0x19, 0x43, 0x61, 0x61, 0xCE, 0x43, 
+0x36, 0x04, 0xCB, 0xB2, 0x36, 0x0E, 0xB3, 0x42, 0x0C, 0xD1, 0x92, 0x00, 0x10, 0x18, 0x09, 0x04, 
+0x80, 0x78, 0x09, 0x0E, 0x88, 0x42, 0x05, 0xD1, 0xA5, 0x76, 0xFF, 0xF7, 0x73, 0xFF, 0x04, 0x20, 
+0x20, 0x70, 0xF8, 0xBD, 0x25, 0x70, 0xF8, 0xBD, 0x2B, 0x49, 0x20, 0x69, 0x2B, 0x4B, 0x41, 0x18, 
+0x99, 0x42, 0x02, 0xD2, 0x00, 0xF0, 0xAD, 0xF8, 0xF8, 0xBD, 0x29, 0x49, 0x41, 0x18, 0x91, 0x42, 
+0x02, 0xD2, 0x28, 0xA0, 0x61, 0x69, 0x06, 0xE0, 0x2D, 0x49, 0x40, 0x18, 0x2D, 0x49, 0x88, 0x42, 
+0x61, 0x69, 0x03, 0xD2, 0x2C, 0xA0, 0x00, 0xF0, 0x85, 0xFD, 0xEB, 0xE7, 0x31, 0xA0, 0x00, 0xF0, 
+0x81, 0xFD, 0x25, 0x70, 0xA6, 0x76, 0xF8, 0xBD, 0x0B, 0x48, 0x01, 0x21, 0x01, 0x70, 0x00, 0x21, 
+0x41, 0x60, 0x81, 0x60, 0xC1, 0x60, 0x01, 0x61, 0x41, 0x61, 0x01, 0x76, 0x41, 0x76, 0x81, 0x76, 
+0xC1, 0x76, 0x70, 0x47, 0xC0, 0x40, 0x00, 0x50, 0x0A, 0x69, 0x72, 0x64, 0x61, 0x20, 0x70, 0x6F, 
+0x77, 0x65, 0x72, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0xE8, 0x06, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0x00, 
+0xE7, 0x03, 0x00, 0x00, 0x2F, 0xF8, 0xFF, 0xFF, 0xCC, 0x01, 0x00, 0x20, 0xC7, 0xCE, 0xFF, 0xFF, 
+0x0A, 0x41, 0x52, 0x4D, 0x5F, 0x52, 0x4D, 0x43, 0x5F, 0x50, 0x52, 0x45, 0x4C, 0x4F, 0x41, 0x44, 
+0x0A, 0x00, 0x00, 0x00, 0x49, 0x52, 0x20, 0x75, 0x73, 0x65, 0x72, 0x63, 0x6F, 0x64, 0x65, 0x20, 
+0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x0A, 0x00, 0x73, 0x46, 0xFF, 0xFF, 0xDB, 0x05, 0x00, 0x00, 
+0x77, 0xEC, 0xFF, 0xFF, 0x0A, 0x49, 0x52, 0x20, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x20, 0x32, 
+0x20, 0x69, 0x73, 0x20, 0x3A, 0x20, 0x30, 0x78, 0x25, 0x34, 0x78, 0x0A, 0x00, 0x00, 0x00, 0x00, 
+0xDF, 0xB1, 0xFF, 0xFF, 0xAB, 0x0D, 0x00, 0x00, 0x0A, 0x49, 0x52, 0x20, 0x72, 0x65, 0x70, 0x65, 
+0x61, 0x74, 0x20, 0x33, 0x20, 0x69, 0x73, 0x20, 0x3A, 0x20, 0x30, 0x78, 0x25, 0x34, 0x78, 0x0A, 
+0x00, 0x00, 0x00, 0x00, 0x0A, 0x49, 0x52, 0x20, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x20, 0x34, 
+0x20, 0x69, 0x73, 0x20, 0x3A, 0x20, 0x30, 0x78, 0x25, 0x34, 0x78, 0x0A, 0x00, 0x00, 0x00, 0x00, 
+0x10, 0xB5, 0x40, 0x48, 0x01, 0x68, 0x4A, 0x1C, 0x02, 0x60, 0x3F, 0xA0, 0x00, 0xF0, 0x0A, 0xFD, 
+0x40, 0x49, 0x3F, 0x48, 0x48, 0x60, 0x10, 0xBD, 0x3F, 0x48, 0x41, 0x69, 0x07, 0x22, 0x12, 0x02, 
+0x91, 0x43, 0x41, 0x61, 0x81, 0x68, 0x04, 0x22, 0x11, 0x43, 0x81, 0x60, 0x70, 0x47, 0x39, 0x48, 
+0x01, 0x68, 0x82, 0x03, 0x11, 0x43, 0x01, 0x60, 0x70, 0x47, 0x36, 0x48, 0x01, 0x68, 0x82, 0x03, 
+0x91, 0x43, 0x01, 0x60, 0x70, 0x47, 0x33, 0x48, 0x01, 0x68, 0x82, 0x02, 0x11, 0x43, 0x01, 0x60, 
+0x70, 0x47, 0x00, 0xB5, 0xFF, 0xF7, 0xF1, 0xFF, 0xFF, 0xF7, 0xF5, 0xFF, 0xFF, 0xF7, 0xE7, 0xFF, 
+0x00, 0xBD, 0x2C, 0x48, 0x2A, 0x49, 0x41, 0x60, 0x2C, 0x49, 0x01, 0x60, 0xDF, 0xE7, 0x10, 0xB5, 
+0x59, 0x20, 0x2B, 0x4B, 0x16, 0x21, 0x88, 0x22, 0x18, 0x60, 0x19, 0x60, 0x1A, 0x60, 0x1C, 0x68, 
+0x00, 0x2C, 0xF9, 0xD0, 0xFF, 0xF7, 0xC8, 0xFF, 0xFF, 0xF7, 0xEB, 0xFF, 0x00, 0x20, 0x18, 0x60, 
+0x10, 0xBD, 0x20, 0x48, 0xC0, 0x68, 0x70, 0x47, 0x1E, 0x49, 0x01, 0x20, 0x88, 0x62, 0x70, 0x47, 
+0x1D, 0x48, 0x41, 0x69, 0x07, 0x22, 0x12, 0x03, 0x91, 0x43, 0x41, 0x61, 0x81, 0x68, 0x08, 0x22, 
+0x11, 0x43, 0x81, 0x60, 0x70, 0x47, 0x17, 0x48, 0x01, 0x6A, 0x82, 0x03, 0x11, 0x43, 0x01, 0x62, 
+0x70, 0x47, 0x14, 0x48, 0x01, 0x6A, 0x82, 0x03, 0x91, 0x43, 0x01, 0x62, 0x70, 0x47, 0x0C, 0x21, 
+0x48, 0x43, 0x10, 0x49, 0x48, 0x62, 0xEE, 0xE7, 0x10, 0xB5, 0x12, 0xA0, 0x00, 0xF0, 0xA2, 0xFC, 
+0x09, 0x21, 0x0C, 0x48, 0x89, 0x06, 0x01, 0x62, 0x09, 0x49, 0x41, 0x62, 0xFF, 0xF7, 0xE9, 0xFF, 
+0x01, 0x20, 0x16, 0x49, 0x40, 0x02, 0x08, 0x60, 0x10, 0xBD, 0x06, 0x48, 0x20, 0x30, 0xC0, 0x68, 
+0x70, 0x47, 0x00, 0x00, 0xE8, 0x01, 0x00, 0x20, 0x25, 0x64, 0x20, 0x73, 0x65, 0x63, 0x0A, 0x00, 
+0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x02, 0x00, 0x50, 0x7F, 0x00, 0x00, 0x38, 
+0x00, 0x01, 0x00, 0x50, 0x54, 0x69, 0x6D, 0x65, 0x72, 0x31, 0x5F, 0x70, 0x65, 0x72, 0x69, 0x6F, 
+0x64, 0x69, 0x63, 0x5F, 0x69, 0x6E, 0x69, 0x74, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 
+0x2D, 0x2D, 0x2D, 0x69, 0x73, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE1, 0x00, 0xE0, 
+0x00, 0x28, 0x01, 0xD0, 0x24, 0x49, 0x08, 0x60, 0x70, 0x47, 0x23, 0x48, 0x00, 0x68, 0x00, 0x28, 
+0x01, 0xD0, 0x00, 0x68, 0x00, 0x47, 0x70, 0x47, 0x1F, 0x49, 0x09, 0x68, 0x00, 0x29, 0x01, 0xD0, 
+0x49, 0x68, 0x08, 0x47, 0x00, 0x20, 0x70, 0x47, 0x1B, 0x4A, 0x12, 0x68, 0x00, 0x2A, 0x01, 0xD0, 
+0x92, 0x68, 0x10, 0x47, 0x70, 0x47, 0x00, 0x28, 0x04, 0xD0, 0x82, 0x68, 0x51, 0x60, 0x80, 0x68, 
+0x01, 0x21, 0x01, 0x72, 0x70, 0x47, 0x00, 0x28, 0x06, 0xD0, 0x00, 0x21, 0x82, 0x68, 0xC9, 0x43, 
+0x51, 0x60, 0x80, 0x68, 0x00, 0x21, 0x01, 0x72, 0x70, 0x47, 0x70, 0xB5, 0x0E, 0x4D, 0x2D, 0x1D, 
+0x2C, 0x68, 0x0B, 0xE0, 0x00, 0x2C, 0x08, 0xD0, 0xA0, 0x68, 0x01, 0x7A, 0x00, 0x29, 0x04, 0xD0, 
+0x41, 0x68, 0x00, 0x29, 0x01, 0xD1, 0xC0, 0x68, 0x80, 0x47, 0x24, 0x68, 0xAC, 0x42, 0xF1, 0xD1, 
+0x70, 0xBD, 0x00, 0x28, 0x06, 0xD0, 0x04, 0x49, 0x09, 0x1D, 0x0A, 0x68, 0x50, 0x60, 0x02, 0x60, 
+0x41, 0x60, 0x08, 0x60, 0x70, 0x47, 0x00, 0x00, 0xEC, 0x01, 0x00, 0x20, 0x7C, 0xB5, 0x04, 0x46, 
+0x00, 0xF0, 0xBC, 0xF8, 0x02, 0x21, 0x68, 0x46, 0xFB, 0xF7, 0x07, 0xFE, 0x00, 0x25, 0xED, 0x43, 
+0x00, 0x28, 0x03, 0xDA, 0x5F, 0xA0, 0x00, 0xF0, 0x0D, 0xFC, 0x1C, 0xE0, 0x64, 0xA0, 0x01, 0x9A, 
+0x00, 0x99, 0x00, 0xF0, 0x07, 0xFC, 0x00, 0x98, 0xC0, 0x07, 0x04, 0xD1, 0x01, 0x98, 0xA0, 0x42, 
+0x01, 0xD1, 0x00, 0x20, 0x7C, 0xBD, 0x6B, 0x48, 0x01, 0x68, 0x10, 0x22, 0x11, 0x43, 0x01, 0x60, 
+0x00, 0x98, 0x02, 0x21, 0x40, 0x08, 0x40, 0x00, 0x00, 0x90, 0x01, 0x94, 0x68, 0x46, 0xFB, 0xF7, 
+0xF5, 0xFD, 0x00, 0x28, 0x01, 0xDA, 0x28, 0x46, 0x7C, 0xBD, 0x21, 0x46, 0x62, 0xA0, 0x00, 0xF0, 
+0xE9, 0xFB, 0x01, 0x20, 0x05, 0x21, 0x09, 0x07, 0x88, 0x60, 0x67, 0x49, 0x00, 0x20, 0x08, 0x60, 
+0xDF, 0xE7, 0xF8, 0xB5, 0x06, 0x46, 0x0D, 0x46, 0x17, 0x46, 0x00, 0xF0, 0x7F, 0xF8, 0x00, 0x24, 
+0x6D, 0x02, 0x09, 0xE0, 0xA0, 0x08, 0x80, 0x00, 0x80, 0x19, 0xFB, 0xF7, 0x6C, 0xFD, 0xA1, 0x07, 
+0xC9, 0x0E, 0xC8, 0x40, 0x38, 0x55, 0x64, 0x1C, 0xA5, 0x42, 0xF3, 0xD8, 0x5A, 0x49, 0x00, 0x20, 
+0x08, 0x60, 0xF8, 0xBD, 0xF8, 0xB5, 0x05, 0x46, 0x0F, 0x46, 0x16, 0x46, 0x00, 0xF0, 0x66, 0xF8, 
+0x00, 0x24, 0x04, 0xE0, 0x60, 0x02, 0x40, 0x19, 0xFB, 0xF7, 0x32, 0xFD, 0x64, 0x1C, 0xBC, 0x42, 
+0xF8, 0xD3, 0x00, 0x24, 0x78, 0x02, 0x87, 0x08, 0x0F, 0xE0, 0xA0, 0x00, 0x83, 0x19, 0x59, 0x78, 
+0x32, 0x5C, 0x09, 0x02, 0x11, 0x43, 0x9A, 0x78, 0x40, 0x19, 0x12, 0x04, 0x0A, 0x43, 0xD9, 0x78, 
+0x09, 0x06, 0x11, 0x43, 0xFB, 0xF7, 0x8E, 0xFD, 0x64, 0x1C, 0xA7, 0x42, 0xED, 0xD8, 0x46, 0x49, 
+0x00, 0x20, 0x08, 0x60, 0xF8, 0xBD, 0xF8, 0xB5, 0x06, 0x46, 0x0D, 0x46, 0x17, 0x46, 0x00, 0xF0, 
+0x3D, 0xF8, 0x00, 0x24, 0x09, 0xE0, 0xA0, 0x08, 0x80, 0x00, 0x80, 0x19, 0xFB, 0xF7, 0x2B, 0xFD, 
+0xA1, 0x07, 0xC9, 0x0E, 0xC8, 0x40, 0x38, 0x55, 0x64, 0x1C, 0xAC, 0x42, 0xF3, 0xD3, 0x3A, 0x49, 
+0x00, 0x20, 0x08, 0x60, 0xF8, 0xBD, 0xF8, 0xB5, 0x05, 0x46, 0x0F, 0x46, 0x16, 0x46, 0x00, 0xF0, 
+0x25, 0xF8, 0x28, 0x46, 0xFB, 0xF7, 0xF4, 0xFC, 0x00, 0x24, 0xBF, 0x08, 0x0F, 0xE0, 0xA0, 0x00, 
+0x83, 0x19, 0x59, 0x78, 0x32, 0x5C, 0x09, 0x02, 0x11, 0x43, 0x9A, 0x78, 0x40, 0x19, 0x12, 0x04, 
+0x0A, 0x43, 0xD9, 0x78, 0x09, 0x06, 0x11, 0x43, 0xFB, 0xF7, 0x54, 0xFD, 0x64, 0x1C, 0xA7, 0x42, 
+0xED, 0xD8, 0x29, 0x49, 0x00, 0x20, 0x08, 0x60, 0xF8, 0xBD, 0x10, 0xB5, 0x00, 0xF0, 0x06, 0xF8, 
+0xFB, 0xF7, 0xF3, 0xFC, 0x24, 0x49, 0x00, 0x20, 0x08, 0x60, 0x10, 0xBD, 0x10, 0xB5, 0x59, 0x21, 
+0x21, 0x48, 0x16, 0x22, 0x88, 0x23, 0x01, 0x60, 0x02, 0x60, 0x03, 0x60, 0x04, 0x68, 0x00, 0x2C, 
+0xF9, 0xD0, 0x10, 0xBD, 0x0A, 0x52, 0x65, 0x61, 0x64, 0x20, 0x55, 0x73, 0x65, 0x72, 0x20, 0x43, 
+0x6F, 0x6E, 0x66, 0x69, 0x67, 0x20, 0x66, 0x61, 0x69, 0x6C, 0x65, 0x64, 0x21, 0x0A, 0x00, 0x00, 
+0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 
+0x69, 0x6F, 0x6E, 0x20, 0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x30, 0x3A, 0x30, 0x78, 0x25, 0x34, 
+0x78, 0x20, 0x20, 0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x31, 0x3A, 0x20, 0x30, 0x78, 0x25, 0x34, 
+0x78, 0x0A, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x50, 0x0A, 0x53, 0x65, 0x74, 0x20, 0x44, 0x61, 0x74, 
+0x61, 0x20, 0x46, 0x6C, 0x61, 0x73, 0x68, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x61, 0x73, 0x20, 
+0x30, 0x78, 0x25, 0x78, 0x2E, 0x0A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x50, 0x70, 0xB5, 0x1F, 0x20, 
+0x77, 0x4A, 0x28, 0x21, 0x80, 0x02, 0xFF, 0xF7, 0x6E, 0xFF, 0x75, 0x4A, 0x75, 0x4E, 0x28, 0x32, 
+0x28, 0x21, 0x30, 0x46, 0xFF, 0xF7, 0x67, 0xFF, 0x71, 0x4D, 0x73, 0xA0, 0x2C, 0x46, 0x28, 0x34, 
+0x21, 0x68, 0x00, 0xF0, 0xFF, 0xFA, 0x28, 0x68, 0x74, 0x4D, 0xA8, 0x42, 0x20, 0x68, 0x08, 0xD1, 
+0xA8, 0x42, 0x05, 0xD0, 0x6A, 0x4A, 0x28, 0x21, 0x28, 0x32, 0x30, 0x46, 0xFF, 0xF7, 0x6B, 0xFF, 
+0x70, 0xBD, 0xA8, 0x42, 0xFC, 0xD0, 0x28, 0x21, 0x20, 0x46, 0x00, 0xF0, 0xCE, 0xFC, 0x25, 0x60, 
+0xF0, 0xE7, 0x10, 0xB5, 0x62, 0x4A, 0x04, 0x46, 0x28, 0x32, 0x11, 0x46, 0x00, 0x20, 0x09, 0x8B, 
+0x64, 0x2C, 0x25, 0xD0, 0x16, 0xDC, 0x19, 0x2C, 0x39, 0xD0, 0x09, 0xDC, 0x03, 0x2C, 0x1B, 0xD0, 
+0x04, 0x2C, 0x1B, 0xD0, 0x17, 0x2C, 0x30, 0xD0, 0x18, 0x2C, 0x00, 0xD1, 0x50, 0x7F, 0x10, 0xBD, 
+0x1A, 0x2C, 0x2E, 0xD0, 0x56, 0x49, 0x48, 0x31, 0x1B, 0x2C, 0x2C, 0xD0, 0x1C, 0x2C, 0xF6, 0xD1, 
+0x48, 0x78, 0x10, 0xBD, 0x65, 0x3C, 0x23, 0x00, 0x00, 0xF0, 0x6F, 0xFE, 0x08, 0x0D, 0x0F, 0x11, 
+0x13, 0x15, 0x18, 0x1A, 0x1C, 0x05, 0xF4, 0xE7, 0x10, 0x79, 0x10, 0xBD, 0x50, 0x79, 0x10, 0xBD, 
+0xC8, 0x07, 0xC0, 0x0F, 0x10, 0xBD, 0x88, 0x07, 0x0D, 0xE0, 0x48, 0x07, 0x0B, 0xE0, 0x08, 0x07, 
+0x09, 0xE0, 0xC8, 0x06, 0x07, 0xE0, 0x48, 0x06, 0x80, 0x0F, 0x10, 0xBD, 0x08, 0x06, 0x02, 0xE0, 
+0xC8, 0x05, 0x00, 0xE0, 0x88, 0x05, 0xC0, 0x0F, 0x10, 0xBD, 0x10, 0x7F, 0x10, 0xBD, 0x90, 0x7F, 
+0x10, 0xBD, 0xD0, 0x7F, 0x10, 0xBD, 0x08, 0x78, 0x10, 0xBD, 0x3D, 0x49, 0x10, 0xB5, 0x28, 0x31, 
+0x8A, 0x79, 0x00, 0x2A, 0x02, 0xD0, 0xC9, 0x1D, 0x00, 0xF0, 0x18, 0xFC, 0x00, 0x20, 0x10, 0xBD, 
+0x70, 0xB5, 0x37, 0x4C, 0xCD, 0x07, 0x28, 0x34, 0x22, 0x46, 0xED, 0x0F, 0x12, 0x8B, 0x65, 0x28, 
+0x21, 0xD0, 0x12, 0xDC, 0x1A, 0x28, 0x49, 0xD0, 0x06, 0xDC, 0x17, 0x28, 0x40, 0xD0, 0x18, 0x28, 
+0x40, 0xD0, 0x19, 0x28, 0x47, 0xD1, 0x3F, 0xE0, 0x2D, 0x4B, 0x48, 0x33, 0x1B, 0x28, 0x3F, 0xD0, 
+0x1C, 0x28, 0x3F, 0xD0, 0x64, 0x28, 0x3E, 0xD1, 0x08, 0xE0, 0x66, 0x38, 0x03, 0x00, 0x00, 0xF0, 
+0x1C, 0xFE, 0x07, 0x0E, 0x14, 0x18, 0x1C, 0x21, 0x25, 0x2A, 0x3A, 0x00, 0x50, 0x08, 0x40, 0x00, 
+0x28, 0x43, 0x20, 0x83, 0x2F, 0xE0, 0x02, 0x20, 0x82, 0x43, 0x68, 0x00, 0x02, 0xE0, 0x04, 0x20, 
+0x82, 0x43, 0xA8, 0x00, 0x02, 0x43, 0x22, 0x83, 0x25, 0xE0, 0x08, 0x20, 0x82, 0x43, 0xE8, 0x00, 
+0xF8, 0xE7, 0x10, 0x20, 0x82, 0x43, 0x28, 0x01, 0xF4, 0xE7, 0x60, 0x20, 0x82, 0x43, 0x88, 0x07, 
+0x40, 0x0E, 0xEF, 0xE7, 0x80, 0x20, 0x82, 0x43, 0xE8, 0x01, 0xEB, 0xE7, 0xFF, 0x20, 0x01, 0x30, 
+0x82, 0x43, 0x28, 0x02, 0xE6, 0xE7, 0x01, 0x20, 0x40, 0x02, 0x82, 0x43, 0x68, 0x02, 0xE1, 0xE7, 
+0x21, 0x77, 0x08, 0xE0, 0x61, 0x77, 0x06, 0xE0, 0xA1, 0x77, 0x04, 0xE0, 0xE1, 0x77, 0x02, 0xE0, 
+0x19, 0x70, 0x00, 0xE0, 0x59, 0x70, 0x0A, 0x4A, 0x28, 0x21, 0x28, 0x32, 0x09, 0x48, 0xFF, 0xF7, 
+0xAA, 0xFE, 0x70, 0xBD, 0x10, 0xB5, 0x1F, 0x20, 0x80, 0x02, 0xFF, 0xF7, 0x0F, 0xFE, 0x00, 0x28, 
+0x02, 0xDA, 0x0B, 0xA0, 0x00, 0xF0, 0x26, 0xFA, 0x13, 0x48, 0xFF, 0xF7, 0xB9, 0xFD, 0x10, 0xBD, 
+0x04, 0x07, 0x00, 0x20, 0x28, 0x7C, 0x00, 0x00, 0x73, 0x69, 0x67, 0x6E, 0x61, 0x74, 0x75, 0x72, 
+0x65, 0x20, 0x3D, 0x20, 0x25, 0x64, 0x2D, 0x2D, 0x2D, 0x0A, 0x00, 0x00, 0x5F, 0x43, 0x46, 0x5F, 
+0x46, 0x61, 0x69, 0x6C, 0x65, 0x64, 0x20, 0x74, 0x6F, 0x20, 0x73, 0x65, 0x74, 0x20, 0x44, 0x61, 
+0x74, 0x61, 0x20, 0x46, 0x6C, 0x61, 0x73, 0x68, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, 0x61, 0x64, 
+0x64, 0x72, 0x65, 0x73, 0x73, 0x21, 0x0A, 0x00, 0xF8, 0x01, 0x00, 0x20, 0x10, 0xB5, 0xCD, 0x49, 
+0x04, 0x46, 0x0A, 0x46, 0x00, 0x20, 0x20, 0x32, 0x23, 0x00, 0x00, 0xF0, 0x9E, 0xFD, 0x1D, 0x10, 
+0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E, 0x11, 0x11, 0x11, 0x11, 0x20, 0x11, 0x22, 0x24, 0x11, 
+0x11, 0x11, 0x26, 0x28, 0x2A, 0x2C, 0x2E, 0x30, 0x32, 0x34, 0x36, 0x38, 0x11, 0x00, 0x08, 0x78, 
+0x10, 0xBD, 0x48, 0x78, 0x10, 0xBD, 0x88, 0x78, 0x10, 0xBD, 0xC8, 0x78, 0x10, 0xBD, 0x08, 0x79, 
+0x10, 0xBD, 0x48, 0x79, 0x10, 0xBD, 0x88, 0x79, 0x10, 0xBD, 0xC8, 0x79, 0x10, 0xBD, 0x08, 0x7A, 
+0x10, 0xBD, 0x88, 0x7A, 0x10, 0xBD, 0xC8, 0x7A, 0x10, 0xBD, 0x10, 0x7B, 0x10, 0xBD, 0x50, 0x7B, 
+0x10, 0xBD, 0x90, 0x7B, 0x10, 0xBD, 0xD0, 0x7B, 0x10, 0xBD, 0x10, 0x7C, 0x10, 0xBD, 0x50, 0x7C, 
+0x10, 0xBD, 0x90, 0x7C, 0x10, 0xBD, 0xD0, 0x7C, 0x10, 0xBD, 0x10, 0x7D, 0x10, 0xBD, 0x50, 0x7D, 
+0x10, 0xBD, 0xAC, 0x4A, 0x00, 0xB5, 0x20, 0x32, 0x17, 0x28, 0x20, 0xD0, 0x0B, 0xDC, 0x40, 0x1F, 
+0xA8, 0x4A, 0x03, 0x00, 0x00, 0xF0, 0x59, 0xFD, 0x0B, 0x0F, 0x11, 0x13, 0x10, 0x10, 0x10, 0x10, 
+0x15, 0x10, 0x17, 0x19, 0x10, 0x00, 0x18, 0x38, 0x03, 0x00, 0x00, 0xF0, 0x4E, 0xFD, 0x05, 0x12, 
+0x14, 0x16, 0x18, 0x1A, 0x05, 0x00, 0x51, 0x71, 0x00, 0xBD, 0x91, 0x71, 0x00, 0xBD, 0xD1, 0x71, 
+0x00, 0xBD, 0x11, 0x72, 0x00, 0xBD, 0x91, 0x72, 0x00, 0xBD, 0xD1, 0x72, 0x00, 0xBD, 0x11, 0x74, 
+0x00, 0xBD, 0x51, 0x74, 0x00, 0xBD, 0x91, 0x74, 0x00, 0xBD, 0xD1, 0x74, 0x00, 0xBD, 0x11, 0x75, 
+0x00, 0xBD, 0x51, 0x75, 0x00, 0xBD, 0x73, 0xB5, 0x06, 0x46, 0x00, 0x20, 0x64, 0x3E, 0x0B, 0x2E, 
+0x00, 0xD3, 0x7C, 0xBD, 0x69, 0x46, 0x09, 0x79, 0x8B, 0x07, 0xDC, 0x0F, 0x4B, 0x07, 0xCA, 0x07, 
+0xDD, 0x0F, 0xD2, 0x0F, 0x33, 0x00, 0x00, 0xF0, 0x20, 0xFD, 0x0A, 0x11, 0x13, 0x15, 0x07, 0x09, 
+0x0C, 0x0F, 0x11, 0x13, 0x15, 0x06, 0xEC, 0xE7, 0x08, 0x07, 0x00, 0xE0, 0xC8, 0x06, 0xC0, 0x0F, 
+0x7C, 0xBD, 0x48, 0x06, 0x80, 0x0F, 0x7C, 0xBD, 0xC8, 0x09, 0x7C, 0xBD, 0x10, 0x46, 0x7C, 0xBD, 
+0x20, 0x46, 0x7C, 0xBD, 0x28, 0x46, 0x7C, 0xBD, 0x10, 0xB5, 0x04, 0x46, 0x00, 0x20, 0x64, 0x3C, 
+0x0B, 0x2C, 0x0D, 0xD2, 0x7B, 0x4A, 0x23, 0x00, 0x91, 0x79, 0xD2, 0x79, 0x00, 0xF0, 0xFD, 0xFC, 
+0x0A, 0x06, 0x09, 0x0B, 0x0D, 0x0F, 0x11, 0x14, 0x16, 0x19, 0x1B, 0x08, 0xC8, 0x07, 0xC0, 0x0F, 
+0x10, 0xBD, 0x88, 0x07, 0x10, 0xE0, 0x48, 0x07, 0x0E, 0xE0, 0x08, 0x07, 0x0C, 0xE0, 0xC8, 0x06, 
+0x0A, 0xE0, 0x48, 0x06, 0x80, 0x0F, 0x10, 0xBD, 0xC8, 0x09, 0x10, 0xBD, 0xD0, 0x07, 0xC0, 0x0F, 
+0x10, 0xBD, 0x90, 0x07, 0x00, 0xE0, 0x50, 0x07, 0xC0, 0x0F, 0x10, 0xBD, 0xF3, 0xB5, 0x64, 0x38, 
+0x0B, 0x28, 0x2B, 0xD2, 0x01, 0x9A, 0x67, 0x49, 0xD4, 0x07, 0xE4, 0x0F, 0x67, 0x00, 0xA6, 0x00, 
+0x8A, 0x79, 0xCD, 0x79, 0x03, 0x00, 0x00, 0xF0, 0xD0, 0xFC, 0x0A, 0x06, 0x0A, 0x0E, 0x12, 0x16, 
+0x1A, 0x22, 0x28, 0x2D, 0x31, 0x21, 0x50, 0x08, 0x40, 0x00, 0x20, 0x43, 0x1B, 0xE0, 0xFD, 0x20, 
+0x02, 0x40, 0x3A, 0x43, 0x11, 0xE0, 0xFB, 0x20, 0x02, 0x40, 0x32, 0x43, 0x0D, 0xE0, 0xF7, 0x20, 
+0x02, 0x40, 0xE0, 0x00, 0x08, 0xE0, 0xEF, 0x20, 0x02, 0x40, 0x20, 0x01, 0x04, 0xE0, 0x9F, 0x20, 
+0x02, 0x40, 0x01, 0x98, 0x80, 0x07, 0x40, 0x0E, 0x02, 0x43, 0x8A, 0x71, 0xFC, 0xBD, 0x50, 0x06, 
+0x40, 0x0E, 0xE2, 0x01, 0x10, 0x43, 0x88, 0x71, 0xFC, 0xBD, 0x68, 0x08, 0x40, 0x00, 0x20, 0x43, 
+0xC8, 0x71, 0xFC, 0xBD, 0xFD, 0x20, 0x05, 0x40, 0x3D, 0x43, 0x02, 0xE0, 0xFB, 0x20, 0x05, 0x40, 
+0x35, 0x43, 0xCD, 0x71, 0xFC, 0xBD, 0xF8, 0xB5, 0x0E, 0x46, 0x07, 0x46, 0xFF, 0xF7, 0xEE, 0xFE, 
+0x45, 0x4D, 0x30, 0x70, 0x2C, 0x68, 0x08, 0xE0, 0x00, 0x2C, 0x05, 0xD0, 0xE2, 0x68, 0x00, 0x2A, 
+0x02, 0xD0, 0x31, 0x46, 0x38, 0x46, 0x90, 0x47, 0x24, 0x68, 0xAC, 0x42, 0xF4, 0xD1, 0xF8, 0xBD, 
+0x1E, 0x28, 0x02, 0xD2, 0x00, 0x29, 0x00, 0xD0, 0xE5, 0xE7, 0x70, 0x47, 0xF7, 0xB5, 0x3A, 0x4D, 
+0x06, 0x46, 0x0F, 0x46, 0x2C, 0x68, 0x09, 0xE0, 0x00, 0x2C, 0x06, 0xD0, 0xA3, 0x68, 0x00, 0x2B, 
+0x03, 0xD0, 0x39, 0x46, 0x30, 0x46, 0x02, 0x9A, 0x98, 0x47, 0x24, 0x68, 0xAC, 0x42, 0xF3, 0xD1, 
+0xFE, 0xBD, 0x1E, 0x28, 0x04, 0xD2, 0x00, 0x29, 0x02, 0xD0, 0x00, 0x2A, 0x00, 0xD0, 0xE5, 0xE7, 
+0x70, 0x47, 0x00, 0x28, 0x05, 0xD0, 0x2C, 0x49, 0x0A, 0x68, 0x50, 0x60, 0x02, 0x60, 0x41, 0x60, 
+0x08, 0x60, 0x70, 0x47, 0x70, 0xB5, 0xFF, 0xF7, 0x48, 0xFC, 0x26, 0x4C, 0x04, 0x20, 0x20, 0x70, 
+0x64, 0x20, 0xFF, 0xF7, 0x49, 0xFC, 0xC1, 0x07, 0xA0, 0x79, 0xC9, 0x0F, 0x40, 0x08, 0x40, 0x00, 
+0x08, 0x43, 0xFD, 0x25, 0x28, 0x40, 0xA0, 0x71, 0x67, 0x20, 0xFF, 0xF7, 0x3D, 0xFC, 0xC0, 0x07, 
+0x01, 0x0F, 0xA0, 0x79, 0xF7, 0x22, 0x10, 0x40, 0x08, 0x43, 0xA0, 0x71, 0x69, 0x20, 0xFF, 0xF7, 
+0x33, 0xFC, 0x80, 0x07, 0x41, 0x0E, 0xA0, 0x79, 0x9F, 0x22, 0x10, 0x40, 0x08, 0x43, 0xA0, 0x71, 
+0x6C, 0x20, 0xFF, 0xF7, 0x29, 0xFC, 0xE1, 0x79, 0xC0, 0x07, 0x80, 0x0F, 0x29, 0x40, 0x01, 0x43, 
+0xE1, 0x71, 0x00, 0x20, 0x20, 0x34, 0x20, 0x73, 0x01, 0x21, 0x61, 0x73, 0xA0, 0x73, 0xE1, 0x73, 
+0x17, 0x20, 0xFF, 0xF7, 0x19, 0xFC, 0x20, 0x74, 0x18, 0x20, 0xFF, 0xF7, 0x15, 0xFC, 0x60, 0x74, 
+0x19, 0x20, 0xFF, 0xF7, 0x11, 0xFC, 0xA0, 0x74, 0x1A, 0x20, 0xFF, 0xF7, 0x0D, 0xFC, 0xE0, 0x74, 
+0x1B, 0x20, 0xFF, 0xF7, 0x09, 0xFC, 0x20, 0x75, 0x1C, 0x20, 0xFF, 0xF7, 0x05, 0xFC, 0x60, 0x75, 
+0x70, 0xBD, 0x00, 0x00, 0x54, 0x07, 0x00, 0x20, 0x04, 0x02, 0x00, 0x20, 0x10, 0xB5, 0x0C, 0x00, 
+0x04, 0xD0, 0x00, 0x2A, 0x02, 0xD0, 0x0D, 0x28, 0x22, 0xD1, 0x02, 0xE0, 0x00, 0x20, 0xC0, 0x43, 
+0x10, 0xBD, 0x21, 0x78, 0x13, 0xA0, 0x00, 0xF0, 0x4D, 0xF8, 0x20, 0x78, 0x01, 0x28, 0x17, 0xD1, 
+0x1C, 0xA0, 0x00, 0xF0, 0x47, 0xF8, 0x59, 0x20, 0x1E, 0x4C, 0x16, 0x21, 0x88, 0x22, 0x20, 0x60, 
+0x21, 0x60, 0x22, 0x60, 0x23, 0x68, 0x00, 0x2B, 0xF9, 0xD0, 0x1B, 0x49, 0x08, 0x68, 0xFC, 0x22, 
+0x10, 0x40, 0x02, 0x22, 0x10, 0x43, 0x08, 0x60, 0xFB, 0xF7, 0x70, 0xF9, 0x00, 0x20, 0x20, 0x60, 
+0x00, 0x20, 0x10, 0xBD, 0x10, 0xB5, 0x16, 0x49, 0x14, 0x48, 0x88, 0x60, 0x08, 0x46, 0xFF, 0xF7, 
+0x70, 0xFF, 0x10, 0xBD, 0x6D, 0x63, 0x75, 0x5F, 0x62, 0x6F, 0x6F, 0x74, 0x5F, 0x6D, 0x6F, 0x64, 
+0x65, 0x5F, 0x43, 0x61, 0x6C, 0x6C, 0x62, 0x61, 0x63, 0x6B, 0x5F, 0x46, 0x75, 0x6E, 0x63, 0x74, 
+0x69, 0x6F, 0x6E, 0x20, 0x20, 0x62, 0x75, 0x66, 0x5B, 0x30, 0x5D, 0x20, 0x3D, 0x20, 0x25, 0x64, 
+0x0A, 0x00, 0x00, 0x00, 0x0A, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x20, 0x4C, 0x44, 0x52, 0x4F, 0x4D, 
+0x0A, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x50, 0x00, 0xC0, 0x00, 0x50, 0xBD, 0x5A, 0x00, 0x00, 
+0x8C, 0x07, 0x00, 0x20, 0x0F, 0xB4, 0x05, 0x49, 0x10, 0xB5, 0x03, 0xAA, 0x02, 0x98, 0x00, 0xF0, 
+0x0F, 0xFB, 0x10, 0xBC, 0x08, 0xBC, 0x04, 0xB0, 0x18, 0x47, 0x00, 0x00, 0x14, 0x00, 0x00, 0x20, 
+0x70, 0xB5, 0x04, 0x46, 0x85, 0x69, 0x00, 0x68, 0xC1, 0x06, 0x01, 0xD5, 0x30, 0x26, 0x00, 0xE0, 
+0x20, 0x26, 0xC0, 0x07, 0x07, 0xD0, 0x70, 0xBD, 0x62, 0x68, 0x30, 0x46, 0xA1, 0x68, 0x90, 0x47, 
+0x20, 0x6A, 0x40, 0x1C, 0x20, 0x62, 0x6D, 0x1E, 0xF6, 0xD5, 0x70, 0xBD, 0x70, 0xB5, 0x04, 0x46, 
+0x85, 0x69, 0x00, 0x68, 0xC0, 0x07, 0x07, 0xD1, 0x70, 0xBD, 0x62, 0x68, 0xA1, 0x68, 0x20, 0x20, 
+0x90, 0x47, 0x20, 0x6A, 0x40, 0x1C, 0x20, 0x62, 0x6D, 0x1E, 0xF6, 0xD5, 0x70, 0xBD, 0x70, 0xB5, 
+0x05, 0x46, 0x0C, 0x46, 0x01, 0x2A, 0x05, 0xD0, 0x28, 0x68, 0x80, 0x06, 0x00, 0xD5, 0xEA, 0x69, 
+0x00, 0x23, 0x02, 0xE0, 0x01, 0x23, 0x05, 0xE0, 0x5B, 0x1C, 0x93, 0x42, 0x02, 0xD2, 0xE0, 0x5C, 
+0x00, 0x28, 0xF9, 0xD1, 0xA8, 0x69, 0xE6, 0x18, 0xC0, 0x1A, 0xA8, 0x61, 0x28, 0x6A, 0xC0, 0x18, 
+0x28, 0x62, 0x28, 0x46, 0xFF, 0xF7, 0xBC, 0xFF, 0x04, 0xE0, 0x6A, 0x68, 0x20, 0x78, 0xA9, 0x68, 
+0x64, 0x1C, 0x90, 0x47, 0xB4, 0x42, 0xF8, 0xD3, 0x28, 0x46, 0xFF, 0xF7, 0xC7, 0xFF, 0x70, 0xBD, 
+0xF7, 0xB5, 0x00, 0x26, 0x75, 0x29, 0x10, 0x68, 0x00, 0x99, 0x14, 0xA5, 0x11, 0xD0, 0xC0, 0x46, 
+0xC0, 0x46, 0x00, 0x28, 0x02, 0xDA, 0x40, 0x42, 0x11, 0xA5, 0x08, 0xE0, 0x00, 0x99, 0x09, 0x68, 
+0x8A, 0x07, 0x01, 0xD5, 0x0F, 0xA5, 0x02, 0xE0, 0x49, 0x07, 0x04, 0xD5, 0x0E, 0xA5, 0x01, 0x26, 
+0x01, 0xE0, 0xC0, 0x46, 0xC0, 0x46, 0x00, 0x9F, 0x00, 0x24, 0x24, 0x37, 0x04, 0xE0, 0x00, 0xF0, 
+0xAB, 0xFA, 0x30, 0x31, 0x39, 0x55, 0x64, 0x1C, 0x00, 0x28, 0xF8, 0xD1, 0x33, 0x46, 0x2A, 0x46, 
+0x21, 0x46, 0x00, 0x98, 0x00, 0xF0, 0x1C, 0xFA, 0xFE, 0xBD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x2D, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0xB5, 0x04, 0x46, 
+0x0D, 0x46, 0x21, 0x46, 0x10, 0x68, 0xC0, 0x46, 0xC0, 0x46, 0x21, 0x68, 0x09, 0x05, 0x02, 0xD5, 
+0x0F, 0x4A, 0x7A, 0x44, 0x02, 0xE0, 0x0E, 0x4A, 0x7A, 0x44, 0x0E, 0x32, 0x23, 0x46, 0x00, 0x21, 
+0x24, 0x33, 0x05, 0xE0, 0x06, 0x07, 0x36, 0x0F, 0x96, 0x5D, 0x5E, 0x54, 0x49, 0x1C, 0x00, 0x09, 
+0x00, 0x28, 0xF7, 0xD1, 0x20, 0x68, 0x00, 0x23, 0x00, 0x07, 0x05, 0xD5, 0x70, 0x2D, 0x03, 0xD0, 
+0x00, 0x29, 0x01, 0xD0, 0x11, 0x32, 0x02, 0x23, 0x20, 0x46, 0x00, 0xF0, 0xE9, 0xF9, 0x70, 0xBD, 
+0x64, 0x06, 0x00, 0x00, 0xF3, 0xB5, 0x04, 0x46, 0x00, 0x20, 0x81, 0xB0, 0xB8, 0xE0, 0xE1, 0x68, 
+0x20, 0x46, 0x88, 0x47, 0x00, 0x28, 0x72, 0xD0, 0x25, 0x28, 0x02, 0xD0, 0x62, 0x68, 0xA1, 0x68, 
+0xAB, 0xE0, 0x59, 0x4F, 0x00, 0x26, 0x7F, 0x44, 0x20, 0x46, 0xE1, 0x68, 0x88, 0x47, 0x20, 0x28, 
+0x05, 0x46, 0x08, 0xDB, 0x31, 0x2D, 0x06, 0xD2, 0x78, 0x19, 0x20, 0x38, 0x00, 0x78, 0x00, 0x28, 
+0x01, 0xD0, 0x06, 0x43, 0xF0, 0xE7, 0xB0, 0x07, 0x01, 0xD5, 0x04, 0x20, 0x86, 0x43, 0x00, 0x20, 
+0xE0, 0x61, 0x07, 0x46, 0xA0, 0x61, 0x2A, 0x2D, 0x0A, 0xD0, 0x28, 0x46, 0x00, 0xF0, 0xCA, 0xFA, 
+0x00, 0x28, 0x27, 0xD0, 0x30, 0x3D, 0xB8, 0x00, 0x00, 0x19, 0x00, 0x90, 0x85, 0x61, 0x19, 0xE0, 
+0x02, 0x98, 0xBA, 0x00, 0x12, 0x19, 0x02, 0xC8, 0x91, 0x61, 0x02, 0x90, 0x20, 0x46, 0xE1, 0x68, 
+0x88, 0x47, 0x01, 0x2F, 0x05, 0x46, 0x17, 0xD1, 0xE0, 0x69, 0x00, 0x28, 0x1F, 0xDA, 0x20, 0x20, 
+0x86, 0x43, 0x1C, 0xE0, 0x00, 0x98, 0x0A, 0x21, 0x80, 0x69, 0x48, 0x43, 0x00, 0x99, 0x40, 0x19, 
+0x30, 0x38, 0x88, 0x61, 0x20, 0x46, 0xE1, 0x68, 0x88, 0x47, 0x05, 0x46, 0x00, 0xF0, 0xA2, 0xFA, 
+0x00, 0x28, 0xEF, 0xD1, 0x01, 0x2F, 0x0A, 0xD0, 0x2E, 0x2D, 0x08, 0xD1, 0x20, 0x46, 0xE1, 0x68, 
+0x88, 0x47, 0x05, 0x46, 0x20, 0x20, 0x06, 0x43, 0x7F, 0x1C, 0x02, 0x2F, 0xC3, 0xDB, 0xA0, 0x69, 
+0x00, 0x28, 0x03, 0xDA, 0x40, 0x42, 0xA0, 0x61, 0x01, 0x20, 0x06, 0x43, 0xF0, 0x07, 0x01, 0xD0, 
+0x10, 0x20, 0x86, 0x43, 0x6C, 0x2D, 0x0B, 0xD0, 0x68, 0x2D, 0x09, 0xD0, 0x4C, 0x2D, 0x3C, 0xD0, 
+0x6A, 0x2D, 0x38, 0xD0, 0x74, 0x2D, 0x38, 0xD0, 0x7A, 0x2D, 0x36, 0xD0, 0x16, 0xE0, 0x41, 0xE0, 
+0xE1, 0x68, 0x2F, 0x46, 0x20, 0x46, 0x88, 0x47, 0xB8, 0x42, 0x05, 0x46, 0x09, 0xD1, 0x6C, 0x2F, 
+0x29, 0xD0, 0x01, 0x20, 0x80, 0x02, 0xE1, 0x68, 0x06, 0x43, 0x20, 0x46, 0x88, 0x47, 0x05, 0x46, 
+0x04, 0xE0, 0x6C, 0x2F, 0x1D, 0xD0, 0xFF, 0x20, 0x01, 0x30, 0x06, 0x43, 0x00, 0x2D, 0x29, 0xD0, 
+0x28, 0x46, 0x41, 0x38, 0x19, 0x28, 0x03, 0xD8, 0x01, 0x20, 0xC0, 0x02, 0x06, 0x43, 0x20, 0x35, 
+0x20, 0x46, 0x26, 0x60, 0x29, 0x46, 0x02, 0x9A, 0x16, 0x46, 0xFA, 0xF7, 0x71, 0xF9, 0x00, 0x28, 
+0x10, 0xD0, 0x01, 0x28, 0x0B, 0xD0, 0xF6, 0x1D, 0xF0, 0x08, 0xC0, 0x00, 0x08, 0x30, 0x02, 0x90, 
+0x55, 0xE7, 0x40, 0x20, 0xE1, 0xE7, 0x80, 0x20, 0xD5, 0xE7, 0x00, 0x20, 0xD3, 0xE7, 0x36, 0x1D, 
+0x02, 0x96, 0x4C, 0xE7, 0x62, 0x68, 0x28, 0x46, 0xA1, 0x68, 0x90, 0x47, 0x20, 0x6A, 0x40, 0x1C, 
+0x20, 0x62, 0x44, 0xE7, 0x20, 0x6A, 0xFE, 0xBD, 0x28, 0x06, 0x00, 0x00, 0xF8, 0xB5, 0x04, 0x2A, 
+0x2C, 0xD3, 0x83, 0x07, 0x12, 0xD0, 0x0B, 0x78, 0x49, 0x1C, 0x03, 0x70, 0x40, 0x1C, 0x52, 0x1E, 
+0x83, 0x07, 0x0B, 0xD0, 0x0B, 0x78, 0x49, 0x1C, 0x03, 0x70, 0x40, 0x1C, 0x52, 0x1E, 0x83, 0x07, 
+0x04, 0xD0, 0x0B, 0x78, 0x49, 0x1C, 0x03, 0x70, 0x40, 0x1C, 0x52, 0x1E, 0x8B, 0x07, 0x9B, 0x0F, 
+0x05, 0xD0, 0xC9, 0x1A, 0xDF, 0x00, 0x20, 0x23, 0xDE, 0x1B, 0x08, 0xC9, 0x0A, 0xE0, 0xFA, 0xF7, 
+0x87, 0xF9, 0xF8, 0xBD, 0x1D, 0x46, 0x08, 0xC9, 0xFD, 0x40, 0x1C, 0x46, 0xB4, 0x40, 0x2C, 0x43, 
+0x10, 0xC0, 0x12, 0x1F, 0x04, 0x2A, 0xF5, 0xD2, 0xF3, 0x08, 0xC9, 0x1A, 0x52, 0x1E, 0xF0, 0xD4, 
+0x0B, 0x78, 0x49, 0x1C, 0x03, 0x70, 0x40, 0x1C, 0x52, 0x1E, 0xEA, 0xD4, 0x0B, 0x78, 0x49, 0x1C, 
+0x03, 0x70, 0x40, 0x1C, 0x52, 0x1E, 0xE4, 0xD4, 0x09, 0x78, 0x01, 0x70, 0xF8, 0xBD, 0x01, 0xE0, 
+0x04, 0xC0, 0x09, 0x1F, 0x04, 0x29, 0xFB, 0xD2, 0x8B, 0x07, 0x01, 0xD5, 0x02, 0x80, 0x80, 0x1C, 
+0xC9, 0x07, 0x00, 0xD0, 0x02, 0x70, 0x70, 0x47, 0x00, 0x29, 0x0B, 0xD0, 0xC3, 0x07, 0x02, 0xD0, 
+0x02, 0x70, 0x40, 0x1C, 0x49, 0x1E, 0x02, 0x29, 0x04, 0xD3, 0x83, 0x07, 0x02, 0xD5, 0x02, 0x80, 
+0x80, 0x1C, 0x89, 0x1E, 0xE3, 0xE7, 0x00, 0x22, 0xEE, 0xE7, 0x00, 0x22, 0xDF, 0xE7, 0x03, 0x78, 
+0xC2, 0x78, 0x19, 0x46, 0x43, 0x78, 0x12, 0x06, 0x1B, 0x02, 0x19, 0x43, 0x83, 0x78, 0xC0, 0x78, 
+0x1B, 0x04, 0x19, 0x43, 0x11, 0x43, 0x09, 0x02, 0x09, 0x0A, 0x00, 0x06, 0x08, 0x43, 0x70, 0x47, 
+0x00, 0x22, 0x03, 0x09, 0x8B, 0x42, 0x2C, 0xD3, 0x03, 0x0A, 0x8B, 0x42, 0x11, 0xD3, 0x00, 0x23, 
+0x9C, 0x46, 0x4E, 0xE0, 0x03, 0x46, 0x0B, 0x43, 0x3C, 0xD4, 0x00, 0x22, 0x43, 0x08, 0x8B, 0x42, 
+0x31, 0xD3, 0x03, 0x09, 0x8B, 0x42, 0x1C, 0xD3, 0x03, 0x0A, 0x8B, 0x42, 0x01, 0xD3, 0x94, 0x46, 
+0x3F, 0xE0, 0xC3, 0x09, 0x8B, 0x42, 0x01, 0xD3, 0xCB, 0x01, 0xC0, 0x1A, 0x52, 0x41, 0x83, 0x09, 
+0x8B, 0x42, 0x01, 0xD3, 0x8B, 0x01, 0xC0, 0x1A, 0x52, 0x41, 0x43, 0x09, 0x8B, 0x42, 0x01, 0xD3, 
+0x4B, 0x01, 0xC0, 0x1A, 0x52, 0x41, 0x03, 0x09, 0x8B, 0x42, 0x01, 0xD3, 0x0B, 0x01, 0xC0, 0x1A, 
+0x52, 0x41, 0xC3, 0x08, 0x8B, 0x42, 0x01, 0xD3, 0xCB, 0x00, 0xC0, 0x1A, 0x52, 0x41, 0x83, 0x08, 
+0x8B, 0x42, 0x01, 0xD3, 0x8B, 0x00, 0xC0, 0x1A, 0x52, 0x41, 0x43, 0x08, 0x8B, 0x42, 0x01, 0xD3, 
+0x4B, 0x00, 0xC0, 0x1A, 0x52, 0x41, 0x41, 0x1A, 0x00, 0xD2, 0x01, 0x46, 0x52, 0x41, 0x10, 0x46, 
+0x70, 0x47, 0x5D, 0xE0, 0xCA, 0x0F, 0x00, 0xD0, 0x49, 0x42, 0x03, 0x10, 0x00, 0xD3, 0x40, 0x42, 
+0x53, 0x40, 0x00, 0x22, 0x9C, 0x46, 0x03, 0x09, 0x8B, 0x42, 0x2D, 0xD3, 0x03, 0x0A, 0x8B, 0x42, 
+0x12, 0xD3, 0xFC, 0x22, 0x89, 0x01, 0x12, 0xBA, 0x03, 0x0A, 0x8B, 0x42, 0x0C, 0xD3, 0x89, 0x01, 
+0x92, 0x11, 0x8B, 0x42, 0x08, 0xD3, 0x89, 0x01, 0x92, 0x11, 0x8B, 0x42, 0x04, 0xD3, 0x89, 0x01, 
+0x3A, 0xD0, 0x92, 0x11, 0x00, 0xE0, 0x89, 0x09, 0xC3, 0x09, 0x8B, 0x42, 0x01, 0xD3, 0xCB, 0x01, 
+0xC0, 0x1A, 0x52, 0x41, 0x83, 0x09, 0x8B, 0x42, 0x01, 0xD3, 0x8B, 0x01, 0xC0, 0x1A, 0x52, 0x41, 
+0x43, 0x09, 0x8B, 0x42, 0x01, 0xD3, 0x4B, 0x01, 0xC0, 0x1A, 0x52, 0x41, 0x03, 0x09, 0x8B, 0x42, 
+0x01, 0xD3, 0x0B, 0x01, 0xC0, 0x1A, 0x52, 0x41, 0xC3, 0x08, 0x8B, 0x42, 0x01, 0xD3, 0xCB, 0x00, 
+0xC0, 0x1A, 0x52, 0x41, 0x83, 0x08, 0x8B, 0x42, 0x01, 0xD3, 0x8B, 0x00, 0xC0, 0x1A, 0x52, 0x41, 
+0xD9, 0xD2, 0x43, 0x08, 0x8B, 0x42, 0x01, 0xD3, 0x4B, 0x00, 0xC0, 0x1A, 0x52, 0x41, 0x41, 0x1A, 
+0x00, 0xD2, 0x01, 0x46, 0x63, 0x46, 0x52, 0x41, 0x5B, 0x10, 0x10, 0x46, 0x01, 0xD3, 0x40, 0x42, 
+0x00, 0x2B, 0x00, 0xD5, 0x49, 0x42, 0x70, 0x47, 0x63, 0x46, 0x5B, 0x10, 0x00, 0xD3, 0x40, 0x42, 
+0x01, 0xB5, 0x00, 0x20, 0xC0, 0x46, 0xC0, 0x46, 0x02, 0xBD, 0x70, 0x47, 0x70, 0x47, 0x70, 0x47, 
+0xFF, 0xB5, 0x04, 0x46, 0x0D, 0x46, 0x81, 0xB0, 0x24, 0x30, 0x00, 0x90, 0x21, 0x68, 0x88, 0x06, 
+0x04, 0xD5, 0x10, 0x22, 0xE0, 0x69, 0x91, 0x43, 0x21, 0x60, 0x00, 0xE0, 0x01, 0x20, 0xA8, 0x42, 
+0x01, 0xDD, 0x47, 0x1B, 0x00, 0xE0, 0x00, 0x27, 0x04, 0x98, 0xA1, 0x69, 0x7A, 0x19, 0x10, 0x18, 
+0x08, 0x1A, 0xA0, 0x61, 0x20, 0x68, 0xC0, 0x06, 0x02, 0xD4, 0x20, 0x46, 0xFF, 0xF7, 0x48, 0xFD, 
+0x00, 0x26, 0x08, 0xE0, 0x03, 0x98, 0x62, 0x68, 0xA1, 0x68, 0x80, 0x5D, 0x90, 0x47, 0x20, 0x6A, 
+0x40, 0x1C, 0x76, 0x1C, 0x20, 0x62, 0x04, 0x98, 0x86, 0x42, 0xF3, 0xDB, 0x20, 0x68, 0xC0, 0x06, 
+0x0A, 0xD5, 0x20, 0x46, 0xFF, 0xF7, 0x34, 0xFD, 0x06, 0xE0, 0x62, 0x68, 0xA1, 0x68, 0x30, 0x20, 
+0x90, 0x47, 0x20, 0x6A, 0x40, 0x1C, 0x20, 0x62, 0x38, 0x46, 0x7F, 0x1E, 0x00, 0x28, 0xF4, 0xDC, 
+0x07, 0xE0, 0x00, 0x98, 0x62, 0x68, 0xA1, 0x68, 0x40, 0x5D, 0x90, 0x47, 0x20, 0x6A, 0x40, 0x1C, 
+0x20, 0x62, 0x28, 0x46, 0x6D, 0x1E, 0x00, 0x28, 0xF3, 0xDC, 0x20, 0x46, 0xFF, 0xF7, 0x2E, 0xFD, 
+0x20, 0x68, 0x00, 0x06, 0x02, 0xD5, 0x02, 0x20, 0x05, 0xB0, 0xF0, 0xBD, 0x01, 0x20, 0xFB, 0xE7, 
+0x10, 0xB5, 0x43, 0x69, 0x00, 0x2B, 0x02, 0xD0, 0xC0, 0x46, 0xC0, 0x46, 0x01, 0xE0, 0xFF, 0xF7, 
+0x2E, 0xFD, 0x01, 0x20, 0x10, 0xBD, 0x12, 0x68, 0x01, 0x46, 0x24, 0x31, 0x0A, 0x70, 0x00, 0x22, 
+0x4A, 0x70, 0x01, 0x22, 0xEC, 0xE7, 0x11, 0x68, 0x00, 0x22, 0xD2, 0x43, 0xE8, 0xE7, 0x00, 0x00, 
+0x08, 0x4B, 0x70, 0xB5, 0x0C, 0x46, 0x7B, 0x44, 0x00, 0xF0, 0x27, 0xF8, 0x05, 0x46, 0x20, 0x46, 
+0xFA, 0xF7, 0x54, 0xFC, 0x00, 0x28, 0x02, 0xD0, 0x00, 0x20, 0xC0, 0x43, 0x70, 0xBD, 0x28, 0x46, 
+0x70, 0xBD, 0x00, 0x00, 0xA5, 0xA8, 0xFF, 0xFF, 0x01, 0x46, 0x80, 0x08, 0x08, 0x1A, 0x02, 0x09, 
+0x10, 0x18, 0x02, 0x0A, 0x10, 0x18, 0x02, 0x0C, 0x10, 0x18, 0xC0, 0x08, 0x82, 0x00, 0x12, 0x18, 
+0x52, 0x00, 0x89, 0x1A, 0x01, 0xE0, 0x0A, 0x39, 0x40, 0x1C, 0x0A, 0x29, 0xFB, 0xD2, 0x70, 0x47, 
+0x01, 0x69, 0x4A, 0x1C, 0x02, 0x61, 0x08, 0x78, 0x70, 0x47, 0x00, 0xB5, 0x8F, 0xB0, 0x02, 0x91, 
+0x00, 0x21, 0x05, 0x91, 0x05, 0x49, 0x01, 0x93, 0x79, 0x44, 0x03, 0x91, 0x11, 0x46, 0x04, 0x90, 
+0x68, 0x46, 0xFF, 0xF7, 0x6F, 0xFD, 0x0F, 0xB0, 0x00, 0xBD, 0x00, 0x00, 0xE5, 0xFF, 0xFF, 0xFF, 
+0x75, 0x46, 0x00, 0xF0, 0x23, 0xF8, 0xAE, 0x46, 0x05, 0x00, 0x69, 0x46, 0x53, 0x46, 0xC0, 0x08, 
+0xC0, 0x00, 0x85, 0x46, 0x18, 0xB0, 0x20, 0xB5, 0xFA, 0xF7, 0x3E, 0xF8, 0x60, 0xBC, 0x00, 0x27, 
+0x49, 0x08, 0xB6, 0x46, 0x00, 0x26, 0xC0, 0xC5, 0xC0, 0xC5, 0xC0, 0xC5, 0xC0, 0xC5, 0xC0, 0xC5, 
+0xC0, 0xC5, 0xC0, 0xC5, 0xC0, 0xC5, 0x40, 0x3D, 0x49, 0x00, 0x8D, 0x46, 0x70, 0x47, 0x04, 0x46, 
+0xC0, 0x46, 0xC0, 0x46, 0x20, 0x46, 0xF9, 0xF7, 0x81, 0xFF, 0x00, 0x00, 0x00, 0x48, 0x70, 0x47, 
+0x9C, 0x07, 0x00, 0x20, 0x70, 0xB5, 0x8C, 0x18, 0x05, 0x78, 0x40, 0x1C, 0x6B, 0x07, 0x5B, 0x0F, 
+0x01, 0xD1, 0x03, 0x78, 0x40, 0x1C, 0x2A, 0x11, 0x06, 0xD1, 0x02, 0x78, 0x40, 0x1C, 0x03, 0xE0, 
+0x06, 0x78, 0x40, 0x1C, 0x0E, 0x70, 0x49, 0x1C, 0x5B, 0x1E, 0xF9, 0xD1, 0x2B, 0x07, 0x05, 0xD4, 
+0x00, 0x23, 0x52, 0x1E, 0x0D, 0xD4, 0x0B, 0x70, 0x49, 0x1C, 0xFA, 0xE7, 0x03, 0x78, 0x40, 0x1C, 
+0xCB, 0x1A, 0x92, 0x1C, 0x03, 0xE0, 0x1D, 0x78, 0x5B, 0x1C, 0x0D, 0x70, 0x49, 0x1C, 0x52, 0x1E, 
+0xF9, 0xD5, 0xA1, 0x42, 0xD8, 0xD3, 0x00, 0x20, 0x70, 0xBD, 0x30, 0xB4, 0x74, 0x46, 0x64, 0x1E, 
+0x25, 0x78, 0x64, 0x1C, 0xAB, 0x42, 0x00, 0xD2, 0x1D, 0x46, 0x63, 0x5D, 0x5B, 0x00, 0xE3, 0x18, 
+0x30, 0xBC, 0x18, 0x47, 0x30, 0x38, 0x0A, 0x28, 0x01, 0xD2, 0x01, 0x20, 0x70, 0x47, 0x00, 0x20, 
+0x70, 0x47, 0x2C, 0x91, 0x01, 0x22, 0x2C, 0x91, 0x01, 0x02, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x00, 
+0x00, 0x00, 0xC6, 0x00, 0x00, 0x00, 0x5A, 0x90, 0x01, 0x2A, 0x78, 0x90, 0x41, 0x5A, 0x29, 0x1F, 
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 
+0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x40, 0x30, 0x58, 0x00, 0x30, 0x31, 
+0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x40, 0x30, 
+0x78, 0x00, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 
+0x00, 0x00, 0x10, 0x73, 0x6F, 0x63, 0x5F, 0x70, 0x6F, 0x77, 0x65, 0x72, 0x00, 0x73, 0x6F, 0x63, 
+0x5F, 0x77, 0x64, 0x74, 0x00, 0x73, 0x6F, 0x63, 0x5F, 0x72, 0x74, 0x63, 0x70, 0x6F, 0x77, 0x65, 
+0x72, 0x00, 0x73, 0x6F, 0x63, 0x5F, 0x65, 0x74, 0x68, 0x77, 0x6F, 0x6C, 0x00, 0x00, 0x00, 0x00, 
+0xA0, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0C, 0x02, 0x00, 0x00, 0x74, 0x62, 0x00, 0x00, 
+0x60, 0x64, 0x00, 0x00, 0x0C, 0x02, 0x00, 0x20, 0xF4, 0x07, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 
+0x11, 0x3C, 0x80, 0x51, 0x01, 0x04, 0x01, 0x2C, 0x03, 0x11, 0x04, 0x04, 0x24, 0xFF, 0xFF, 0xFF, 
+0x2A, 0x01, 0x05, 0xF1, 0x82, 0x02, 0x12, 0x03, 0x30, 0x09, 0x41, 0x55, 0x42, 0x52, 0x43, 0x41, 
+0x41, 0x55, 0x1B, 0x01, 0x02, 0x18, 0x3D, 0x29, 0x1F, 0x47, 0x74, 0x23, 0xB9, 0x7E, 0x0B, 0x14, 
+0x44, 0x04, 0x18, 0x21, 0x14, 0x1F, 0x29, 0x1F, 0x1A, 0x74, 0x1B, 0x19, 0x6C, 0x2A, 0xFF, 0x1B, 
+0x19, 0x0F, 0x11, 0x29, 0x2A, 0x29, 0x10, 0x41, 0xA9, 0x10, 0xE9, 0x20, 0x29, 0x87, 0x09, 0x1A, 
+0x30, 0x09, 0x32, 0x10, 0x11, 0x1A, 0x02, 0x08, 0x1A, 0x06, 0x04, 0x1A, 0x0A, 0x04, 0x29, 0x0C, 
+0xD9, 0x04, 0x29, 0xC8, 0xB0, 0x0E, 0x41, 0x6E, 0x61, 0x6C, 0x6F, 0x67, 0x69, 0x78, 0x28, 0x4D, 
+0x43, 0x55, 0x29, 0xA3, 0x53, 0x63, 0x23, 0xE5, 0x3B, 0x9A, 0x5D, 0x10, 0x23, 0x23, 0x3D, 0x9A, 
+0x65, 0x10, 0xE3, 0x0B, 0x3F, 0x9A, 0x72, 0x1C, 0x63, 0x43, 0x47, 0x29, 0xF0, 0x12, 0xFF, 0x12, 
+0xA2, 0x14, 0x02, 0x02, 0xB2, 0x12, 0xDF, 0x12, 0x50, 0x14, 0xBD, 0x40, 0xA2, 0x14, 0xF7, 0x08, 
+0xAF, 0x14, 0x7F, 0x80, 0xE7, 0x3C, 0xEE, 0x12, 0xAF, 0x20, 0x41, 0x13, 0xF0, 0x01, 0x2A, 0x20, 
+0x04, 0x23, 0x4D, 0x55, 0x1A, 0xA3, 0x04, 0x23, 0x51, 0x56, 0x13, 0x04, 0x02, 0x2A, 0x20, 0x04, 
diff --git a/kernel/drivers/misc/nkio/mcu/jw_mcu_isp.h b/kernel/drivers/misc/nkio/mcu/jw_mcu_isp.h
new file mode 100755
index 0000000..a8b342f
--- /dev/null
+++ b/kernel/drivers/misc/nkio/mcu/jw_mcu_isp.h
@@ -0,0 +1,12 @@
+
+
+
+#define CMD_UPDATE_APROM		0x000000A0
+#define CMD_UPDATE_APROM_DATA	0x000000A1
+#define CMD_UPDATE_CONTINUOUS   0x00000000
+#define CMD_INTER_APROM         0x000000A2
+#define CMD_UPDATE_CONTINUOUS_END 0x000000A3
+
+
+
+
diff --git a/kernel/drivers/misc/nkio/nk_io_core.c b/kernel/drivers/misc/nkio/nk_io_core.c
new file mode 100755
index 0000000..4f770bb
--- /dev/null
+++ b/kernel/drivers/misc/nkio/nk_io_core.c
@@ -0,0 +1,622 @@
+/* 
+ * Copyright (C) 2014 Rockchip Corporation.
+ *
+ * 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 <linux/module.h>
+#include <linux/moduleparam.h>
+#include <linux/init.h>
+#include <linux/delay.h>
+#include <linux/pm.h>
+#include <linux/i2c.h>
+#include <linux/spi/spi.h>
+#include <linux/platform_device.h>
+#include <linux/errno.h>
+#include <linux/err.h>
+#include <linux/debugfs.h>
+#include <linux/of_gpio.h>
+#include <linux/gpio.h>
+#include <linux/iio/consumer.h>
+#include <linux/of.h>
+#include "nkio.h"
+
+/* Debug */
+#if 1
+#define DBG(x...) printk(x)
+#else
+#define DBG(x...) do { } while (0)
+#endif
+
+struct nk_io_pdata *NKpdata_info;
+u32 op0_enable,op1_enable,op2_enable,op3_enable,op4_enable,op5_enable,mic_enable;
+u32 ip0_enable,ip1_enable,ip2_enable,ip3_enable,ip4_enable,ip5_enable;
+u32 module_enable;
+//static struct class *nk_class;
+
+
+void MODULE_SET(int i)
+{
+	if(i==11){
+		gpio_direction_output(NKpdata_info->en_4g_gpio, 1);
+	}else{
+		gpio_direction_output(NKpdata_info->en_4g_gpio, 0);
+	}
+}
+
+EXPORT_SYMBOL_GPL(MODULE_SET);
+
+
+void LED_SET(int i)
+{
+	if(i==11){
+		gpio_direction_output(NKpdata_info->led_gpio, 1);
+	}else{
+		gpio_direction_output(NKpdata_info->led_gpio, 0);
+	}
+}
+
+EXPORT_SYMBOL_GPL(LED_SET);
+
+
+void Audio_SET(int i);
+
+  void Audio_SET(int i)
+ {
+	 if(i==11){
+		 gpio_direction_output(NKpdata_info->audio_switch_gpio, 1);
+		 printk("Audio_SET ENABLE------andy\n");
+	 }else{
+		 gpio_direction_output(NKpdata_info->audio_switch_gpio, 0);
+		 printk("Audio_SET DISABLE------andy\n");
+	 }
+ }
+  EXPORT_SYMBOL_GPL(Audio_SET);
+
+static int nk_io_control_probe(struct platform_device *pdev)
+{
+	struct device_node *node = pdev->dev.of_node;
+	struct nk_io_pdata *pdata;	
+	int gpio0, gpio1, gpio2, gpio3, reset_pin, ch342_reset;
+	int ret;
+        int lvds_index;
+        int i=0;
+        static int lvds_gpio[4] ;
+
+	enum of_gpio_flags flags;
+	
+	printk(" #######nk_io_control_probe####### \n");
+
+	pdata = kzalloc(sizeof(struct nk_io_pdata), GFP_KERNEL);
+	if (pdata == NULL) {
+		printk("%s failed to allocate driver data\n",__FUNCTION__);
+		return -ENOMEM;
+	}
+	memset(pdata,0,sizeof(struct nk_io_pdata));
+	
+	//vcc_5v_io
+	ret = of_get_named_gpio_flags(node, "vcc_5v_io", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property vcc_5v_io\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->vcc_5v_io = ret;
+		ret = devm_gpio_request(&pdev->dev, pdata->vcc_5v_io, "vcc_5v_io");
+		if(ret < 0){
+			printk("%s() devm_gpio_request vcc_5v_io request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->vcc_5v_io,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input vcc_5v_io set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+	
+	//vcc3_io_en_gpio
+	ret = of_get_named_gpio_flags(node, "vcc3_io_en_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property tp_enable\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->vcc3_io_en_gpio = ret;
+		ret = devm_gpio_request(&pdev->dev, pdata->vcc3_io_en_gpio, "vcc3_io_en_gpio");
+		if(ret < 0){
+			printk("%s() devm_gpio_request vcc3_io_en_gpio request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->vcc3_io_en_gpio,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_output vcc3_io_en_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+
+        //vcc_12v_io
+        ret = of_get_named_gpio_flags(node, "vcc_12v_io", 0, &flags);
+        if (ret < 0) {
+                printk("%s() Can not read property vcc_12v_io\n", __FUNCTION__);
+                goto err;
+        } else {
+                pdata->vcc_12v_io = ret;
+                ret = devm_gpio_request(&pdev->dev, pdata->vcc_12v_io, "vcc_12v_io");
+                if(ret < 0){
+                        printk("%s() devm_gpio_request vcc_12v_io request ERROR\n", __FUNCTION__);
+                        goto err;
+                }
+
+                ret = gpio_direction_output(pdata->vcc_12v_io,1);
+                if(ret < 0){
+                        printk("%s() gpio_direction_input vcc_12v_io set ERROR\n", __FUNCTION__);
+                        goto err;
+                }
+        }
+
+
+	
+	//hub_host2_5v_gpio
+	ret = of_get_named_gpio_flags(node, "hub_host2_5v_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property hub_host2_5v_gpio\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->hub_host2_5v_gpio = ret;
+		gpio_free(ret);
+		ret = devm_gpio_request(&pdev->dev, pdata->hub_host2_5v_gpio, "hub_host2_5v_gpio");
+		if (ret < 0){
+			printk("%s() devm_gpio_request hub_host2_5v_gpio request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->hub_host2_5v_gpio,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input hub_host2_5v_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+	
+	//usb_en_oc_gpio
+	ret = of_get_named_gpio_flags(node, "usb_en_oc_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property usb_en_oc_gpio\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->usb_en_oc_gpio = ret;
+		gpio_free(ret);
+		ret = devm_gpio_request(&pdev->dev, pdata->usb_en_oc_gpio, "usb_en_oc_gpio");
+		if (ret < 0){
+			printk("%s() devm_gpio_request usb_en_oc_gpio request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->usb_en_oc_gpio,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input usb_en_oc_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+
+	//hub_host2_5V_rest_gpio
+	ret = of_get_named_gpio_flags(node, "hub_host2_5V_rest_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property hub_host2_5V_rest_gpio\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->hub_host2_5V_rest_gpio = ret;
+		ret = devm_gpio_request(&pdev->dev, pdata->hub_host2_5V_rest_gpio, "hub_host2_5V_rest_gpio");
+		if(ret < 0){
+			printk("%s() devm_gpio_request hub_host2_5V_rest_gpio request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->hub_host2_5V_rest_gpio,0); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input hub_host2_5V_rest_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+		msleep(800);
+		ret = gpio_direction_output(pdata->hub_host2_5V_rest_gpio,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input hub_host2_5V_rest_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+
+	//hub_host3_5v_gpio
+	ret = of_get_named_gpio_flags(node, "hub_host3_5v_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property hub_host3_5v_gpio\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->hub_host3_5v_gpio = ret;
+		gpio_free(ret);
+		ret = devm_gpio_request(&pdev->dev, pdata->hub_host3_5v_gpio, "hub_host3_5v_gpio");
+		if(ret < 0){
+			printk("%s() devm_gpio_request hub_host3_5v_gpio request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->hub_host3_5v_gpio,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input hub_host3_5v_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+#if 0
+	//hub_host3_5V_rest_gpio
+	ret = of_get_named_gpio_flags(node, "hub_host3_5V_rest_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property hub_host3_5V_rest_gpio\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->hub_host3_5V_rest_gpio = ret;
+		ret = devm_gpio_request(&pdev->dev, pdata->hub_host3_5V_rest_gpio, "hub_host3_5V_rest_gpio");
+		if(ret < 0){
+			printk("%s() devm_gpio_request hub_host3_5V_rest_gpio request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->hub_host3_5V_rest_gpio,0); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input hub_host3_5V_rest_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+		msleep(800);
+		ret = gpio_direction_output(pdata->hub_host3_5V_rest_gpio,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input hub_host3_5V_rest_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+#endif
+	//wake_4g_gpio
+	   ret = of_get_named_gpio_flags(node, "wake_4g_gpio", 0, &flags);
+	   if (ret < 0) {
+	           printk("%s() Can not read property wake_4g_gpio\n", __FUNCTION__);
+	   } else {
+	           pdata->wake_4g_gpio = ret;
+
+	           ret = devm_gpio_request(&pdev->dev, pdata->wake_4g_gpio, "wake_4g_gpio");
+	           if(ret < 0){
+	                   printk("%s() devm_gpio_request wake_4g_gpio request ERROR\n", __FUNCTION__);
+	           }
+	           ret = gpio_direction_output(pdata->wake_4g_gpio,0);
+	           if(ret < 0){
+	                   printk("%s() gpio_direction_input wake_4g_gpio set ERROR\n", __FUNCTION__);
+	           }
+	   }
+
+
+	   //reset_4g_gpio
+	   ret = of_get_named_gpio_flags(node, "reset_4g_gpio", 0, &flags);
+	   if (ret < 0) {
+	           printk("%s() Can not read property reset_4g_gpio\n", __FUNCTION__);
+	   } else {
+	           pdata->reset_4g_gpio = ret;
+
+	           ret = devm_gpio_request(&pdev->dev, pdata->reset_4g_gpio, "reset_4g_gpio");
+	           if(ret < 0){
+	                   printk("%s() devm_gpio_request reset_4g_gpio request ERROR\n", __FUNCTION__);
+	           }
+	           ret = gpio_direction_output(pdata->reset_4g_gpio,0);
+	           if(ret < 0){
+	                   printk("%s() gpio_direction_input reset_4g_gpio set ERROR\n", __FUNCTION__);
+	           }
+	   }
+
+	   //en_4g_gpio
+	   ret = of_get_named_gpio_flags(node, "en_4g_gpio", 0, &flags);
+	   if (ret < 0) {
+	           printk("%s() Can not read property en_4g_gpio\n", __FUNCTION__);
+	   } else {
+	           pdata->en_4g_gpio = ret;
+
+	           ret = devm_gpio_request(&pdev->dev, pdata->en_4g_gpio, "en_4g_gpio");
+	           if(ret < 0){
+	                   printk("%s() devm_gpio_request en_4g_gpio request ERROR\n", __FUNCTION__);
+	           }
+	           ret = gpio_direction_output(pdata->en_4g_gpio,1);
+	           if(ret < 0){
+	                   printk("%s() gpio_direction_input en_4g_gpio set ERROR\n", __FUNCTION__);
+	           }
+	   }
+
+
+	   //air_mode_4g_gpio
+	   ret = of_get_named_gpio_flags(node, "air_mode_4g_gpio", 0, &flags);
+	   if (ret < 0) {
+	           printk("%s() Can not read property air_mode_4g_gpio\n", __FUNCTION__);
+	   } else {
+	           pdata->air_mode_4g_gpio = ret;
+
+	           ret = devm_gpio_request(&pdev->dev, pdata->air_mode_4g_gpio, "air_mode_4g_gpio");
+	           if(ret < 0){
+	                   printk("%s() devm_gpio_request air_mode_4g_gpio request ERROR\n", __FUNCTION__);
+	           }
+	           ret = gpio_direction_output(pdata->air_mode_4g_gpio,0);
+	           if(ret < 0){
+	                   printk("%s() gpio_direction_input air_mode_4g_gpio set ERROR\n", __FUNCTION__);
+	           }
+	   }
+
+	  
+/*
+	//edp_power_supply_gpio;
+	ret = of_get_named_gpio_flags(node, "edp_power_supply_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property edp_power_supply_gpio\n", __FUNCTION__);
+	} else {
+		pdata->edp_power_supply_gpio = ret;
+
+		ret = devm_gpio_request(&pdev->dev, pdata->edp_power_supply_gpio, "edp_power_supply_gpio");
+		if(ret < 0){
+			printk("%s() devm_gpio_request edp_power_supply_gpio request ERROR\n", __FUNCTION__);
+		}
+		
+		ret = gpio_direction_output(pdata->edp_power_supply_gpio,1);
+		if(ret < 0){
+			printk("%s() gpio_direction_input edp_power_supply_gpio set ERROR\n", __FUNCTION__);
+		}
+	}
+	
+   //edp_enable-gpio;
+	ret = of_get_named_gpio_flags(node, "edp_enable_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property edp_enable_gpio\n", __FUNCTION__);
+	} else {
+		pdata->edp_enable_gpio = ret;
+
+		ret = devm_gpio_request(&pdev->dev, pdata->edp_enable_gpio, "edp_enable_gpio");
+		if(ret < 0){
+			printk("%s() devm_gpio_request edp_enable_gpio request ERROR\n", __FUNCTION__);
+		}
+		
+		ret = gpio_direction_output(pdata->edp_enable_gpio,1);
+		if(ret < 0){
+			printk("%s() gpio_direction_input edp_enable_gpio set ERROR\n", __FUNCTION__);
+		}
+	} 
+  
+   //ch342_enable-gpio;
+	ret = of_get_named_gpio_flags(node, "ch342_power", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property ch342_gpio\n", __FUNCTION__);
+	} else {
+		pdata->ch342_power = ret;
+
+		ret = devm_gpio_request(&pdev->dev, pdata->ch342_power, "ch342_power");
+		if(ret < 0){
+			printk("%s() devm_gpio_request ch342_power request ERROR\n", __FUNCTION__);
+		}
+		
+		ret = gpio_direction_output(pdata->ch342_power,1);
+		if(ret < 0){
+			printk("%s() gpio_direction_input ch342_power set ERROR\n", __FUNCTION__);
+		}
+	}   
+*/
+
+        //edp_set_pixel-s
+         ret = of_get_named_gpio_flags(node, "edp_reset", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_reset\n", __FUNCTION__);
+        goto err;
+    }
+
+    reset_pin = ret;
+
+// enable lvds
+     ret = of_get_named_gpio_flags(node, "edp_gpio0", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_gpio0\n", __FUNCTION__);
+        goto err;
+    }
+	 gpio0 = ret;
+
+
+
+    ret = of_get_named_gpio_flags(node, "edp_gpio1", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_gpio1\n", __FUNCTION__);
+        goto err;
+    }
+
+        gpio1 = ret;
+
+    ret = of_get_named_gpio_flags(node, "edp_gpio2", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_gpio2\n", __FUNCTION__);
+        goto err;
+    }
+
+    gpio2 = ret;
+
+    ret = of_get_named_gpio_flags(node, "edp_gpio3", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_gpio3\n", __FUNCTION__);
+        goto err;
+    }
+
+    gpio3 = ret;
+
+
+	 ret = devm_gpio_request(&pdev->dev, reset_pin, "edp_reset");
+    if(ret < 0){
+        printk("%s() devm_gpio_request edp_reset request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+
+    ret = devm_gpio_request(&pdev->dev, gpio0, "edp_gpio0");
+    if(ret < 0){
+        printk("%s() devm_gpio_request edp_gpio0 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+    ret = devm_gpio_request(&pdev->dev, gpio1, "edp_gpio1");
+    if(ret < 0){
+        printk("%s() devm_gpio_request edp_gpio1 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+    ret = devm_gpio_request(&pdev->dev, gpio2, "edp_gpio2");
+    if(ret < 0){
+        printk("%s() devm_gpio_request edp_gpio2 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+    ret = devm_gpio_request(&pdev->dev, gpio3, "edp_gpio3");
+    if(ret < 0){
+        printk("%s() devm_gpio_request edp_gpio3 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+	
+	   ret = of_property_read_u32(node, "nodka_lvds", &lvds_index);
+        if (ret < 0){
+                printk("%s() Can not read property nodka_lvds\n", __FUNCTION__);
+        }
+
+        printk("nodka_lvds_index = %d\n",lvds_index);
+
+        while ( i < 4 ){
+                if ( lvds_index > 0)
+                        lvds_gpio[i] = lvds_index%2;
+                else
+                        lvds_gpio[i] = 0;
+                printk("lvds_gpio[%d]=%d\n",i,lvds_gpio[i]);
+                lvds_index = lvds_index/2;
+                i++;
+        }
+
+    gpio_direction_output(reset_pin, 0);
+    usleep_range(80000, 100000);
+    gpio_direction_output(reset_pin, 1);
+    usleep_range(80000, 100000);
+
+	gpio_direction_output(gpio0, lvds_gpio[0]);
+	gpio_direction_output(gpio1, lvds_gpio[1]);
+	gpio_direction_output(gpio2, lvds_gpio[2]);
+	gpio_direction_output(gpio3, lvds_gpio[3]);
+	
+	printk(" #######nk_io_control_probe end####### \n");
+	return 0;
+	
+err:
+	kfree(pdata);
+	return ret;	
+}	
+
+
+static int nk_io_control_remove(struct platform_device *pdev)
+{
+	if(NKpdata_info)
+		kfree(NKpdata_info);
+	return 0;
+}
+
+static int nk_io_control_suspend(struct platform_device *pdev, pm_message_t state)
+{
+	int ret;
+	struct nk_io_pdata *pdata;
+	printk("nk_suspend  !!!!\n");
+#if 0
+	ret = gpio_get_value(8);
+	printk("vcc12v gpio value : %d\n",ret);
+        usleep_range(80000, 100000);
+        gpio_set_value(8,0);
+	ret = gpio_get_value(8);
+	printk("vcc12v gpio value : %d\n",ret);
+#endif
+#if 0
+	ret = gpio_get_value(21);
+	printk("hub_host3_5v_gpio value : %d\n",ret);
+        usleep_range(80000, 100000);
+        gpio_set_value(21,0);
+	ret = gpio_get_value(21);
+	printk("hub_host3_5v_gpio value : %d\n",ret);
+	//enable = 0;
+	//LED_SET(0);
+#endif
+	return 0;
+}
+
+static int nk_io_control_resume(struct platform_device *pdev)
+{
+       int ret,reset_pin;
+        printk("nk_io resume !!!!\n");
+        ret = gpio_get_value(120);
+
+#if 0
+        gpio_set_value(8,1);
+	ret = gpio_get_value(8);
+	printk("vcc12v gpio value : %d\n",ret);
+#endif
+#if 0
+        gpio_set_value(15,1);
+	ret = gpio_get_value(15);
+	printk("edp_en gpio value : %d\n",ret);
+        gpio_set_value(21,1);
+	ret = gpio_get_value(21);
+	printk("hub_host3_5v_gpio value : %d\n",ret);
+#endif
+#if 0
+        usleep_range(80000, 100000);
+        gpio_set_value(120,0);
+//      gpio_direction_output(120, 0);
+        usleep_range(80000, 100000);
+        ret = gpio_get_value(120);
+        printk("edp_reset gpio value : %d\n",ret);
+//      gpio_direction_output(120, 1);
+        gpio_set_value(120,1);
+        usleep_range(80000, 100000);
+        ret = gpio_get_value(120);
+        printk("edp_reset gpio value : %d\n",ret);
+#endif
+        //enable = 1;
+        //LED_SET(11);
+        return 0;
+}
+
+static const struct of_device_id nk_io_control_of_match[] = {
+        { .compatible = "nk_io_control", },
+        {},
+};
+MODULE_DEVICE_TABLE(of, nk_io_control_of_match);
+
+static struct platform_driver nk_io_control_driver = {
+	.probe	= nk_io_control_probe,
+	.remove = nk_io_control_remove,
+	.resume = 	nk_io_control_resume,	
+	.suspend = 	nk_io_control_suspend,	
+	.driver	= {
+		.name	= "nk_io_control",
+		.owner	= THIS_MODULE,
+		.of_match_table = of_match_ptr(nk_io_control_of_match),		
+	},
+};
+
+static int __init nk_io_control_init(void)
+{
+	platform_driver_register(&nk_io_control_driver);
+	return 0;
+}
+
+static void __exit nk_io_control_exit(void)
+{
+	platform_driver_unregister(&nk_io_control_driver);
+}
+
+subsys_initcall(nk_io_control_init);
+
+//late_initcall(nk_io_control_init);
+MODULE_DESCRIPTION("nk io Core Driver");
+MODULE_LICENSE("GPL");
diff --git a/kernel/drivers/misc/nkio/nk_io_core.c_suspend b/kernel/drivers/misc/nkio/nk_io_core.c_suspend
new file mode 100755
index 0000000..14d9942
--- /dev/null
+++ b/kernel/drivers/misc/nkio/nk_io_core.c_suspend
@@ -0,0 +1,1882 @@
+/* 
+ * Copyright (C) 2014 Rockchip Corporation.
+ *
+ * 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 <linux/module.h>
+#include <linux/moduleparam.h>
+#include <linux/init.h>
+#include <linux/delay.h>
+#include <linux/pm.h>
+#include <linux/i2c.h>
+#include <linux/spi/spi.h>
+#include <linux/platform_device.h>
+#include <linux/errno.h>
+#include <linux/err.h>
+#include <linux/debugfs.h>
+#include <linux/of_gpio.h>
+#include <linux/gpio.h>
+#include <linux/iio/consumer.h>
+#include <linux/of.h>
+#include "nkio.h"
+
+/* Debug */
+#if 1
+#define DBG(x...) printk(x)
+#else
+#define DBG(x...) do { } while (0)
+#endif
+
+struct nk_io_pdata *NKpdata_info;
+u32 op0_enable,op1_enable,op2_enable,op3_enable,op4_enable,op5_enable,mic_enable;
+u32 ip0_enable,ip1_enable,ip2_enable,ip3_enable,ip4_enable,ip5_enable;
+u32 module_enable;
+//static struct class *nk_class;
+
+
+#if 0
+
+ void mic_switch_control(int i)
+{
+if(i==11){
+	gpio_direction_output(NKpdata_info->mic_switch_gpio, 1);
+	printk("mic_switch_control ENABLE------andy\n");
+}else{
+	gpio_direction_output(NKpdata_info->mic_switch_gpio, 0);
+	printk("mic_switch_control DISABLE------andy\n");
+}
+}
+
+
+
+
+static ssize_t mic_switch_store(struct class *class,struct class_attribute *attr, const char *buf, size_t count)
+{	
+		sscanf(buf, "%d", &mic_enable);
+		printk("MIC_SWITCH enable =%d\n",mic_enable);
+
+	if (mic_enable)
+		{
+			printk("store_MIC_SWITCH ENABLE------andy\n");
+			mic_switch_control(11);
+		}
+		else {
+			mic_switch_control(0);
+			printk("store_MIC_SWITCH DISABLE------andy\n");
+		}
+		return count;
+}
+
+static ssize_t mic_switch_show(struct class *class,struct class_attribute *attr, char *buf)
+{
+return snprintf(buf, 3, "%d\n",mic_enable);
+}
+
+static CLASS_ATTR(mic_switch, 0664, mic_switch_show, mic_switch_store);
+
+
+ 
+  void Audio_SET(int i)
+ {
+	 if(i==11){
+		 gpio_direction_output(NKpdata_info->audio_switch_gpio, 1);
+		 printk("Audio_SET ENABLE------andy\n");
+	 }else{
+		 gpio_direction_output(NKWpdata_info->audio_switch_gpio, 0);
+		 printk("Audio_SET DISABLE------andy\n");
+	 }
+ }
+  EXPORT_SYMBOL_GPL(Audio_SET);
+
+
+
+static void LED_SET(int i)
+{
+	if(i==11){
+		gpio_direction_output(NKpdata_info->led_gpio, 1);
+	}else{
+		gpio_direction_output(NKpdata_info->led_gpio, 0);
+	}
+}
+
+
+
+static ssize_t led_display_store(struct class *class,struct class_attribute *attr, const char *buf, size_t count)
+{	
+		sscanf(buf, "%d", &enable);
+		printk("store_led enable =%d\n",enable);
+
+	if (enable)
+		{
+			printk("store_led ENABLE------andy\n");
+			LED_SET(11);
+		}
+		else {
+			LED_SET(0);
+			printk("store_led DISABLE------andy\n");
+		}
+		return count;
+}
+
+static ssize_t led_display_show(struct class *class,struct class_attribute *attr, char *buf)
+{
+return snprintf(buf, 3, "%d\n",enable);
+}
+
+static CLASS_ATTR(led_display, 0664, led_display_show, led_display_store);
+
+#endif
+
+void MODULE_SET(int i)
+{
+	if(i==11){
+		gpio_direction_output(NKpdata_info->en_4g_gpio, 1);
+	}else{
+		gpio_direction_output(NKpdata_info->en_4g_gpio, 0);
+	}
+}
+
+EXPORT_SYMBOL_GPL(MODULE_SET);
+
+
+void LED_SET(int i)
+{
+	if(i==11){
+		gpio_direction_output(NKpdata_info->led_gpio, 1);
+	}else{
+		gpio_direction_output(NKpdata_info->led_gpio, 0);
+	}
+}
+
+EXPORT_SYMBOL_GPL(LED_SET);
+
+
+void Audio_SET(int i);
+
+  void Audio_SET(int i)
+ {
+	 if(i==11){
+		 gpio_direction_output(NKpdata_info->audio_switch_gpio, 1);
+		 printk("Audio_SET ENABLE------andy\n");
+	 }else{
+		 gpio_direction_output(NKpdata_info->audio_switch_gpio, 0);
+		 printk("Audio_SET DISABLE------andy\n");
+	 }
+ }
+  EXPORT_SYMBOL_GPL(Audio_SET);
+
+
+//6 in 6 out-s
+static void GPIO_IO_SET(int i)
+{
+	if(i==11){
+		gpio_direction_output(NKpdata_info->gpio_op0, 1);
+	}
+	else if(i==10){
+		gpio_direction_output(NKpdata_info->gpio_op0, 0);
+	}
+	else if(i==21){
+		gpio_direction_output(NKpdata_info->gpio_op1, 1);
+	}
+	else if(i==20){
+		gpio_direction_output(NKpdata_info->gpio_op1, 0);
+	}
+	else if(i==31){
+		gpio_direction_output(NKpdata_info->gpio_op2, 1);
+	}
+	else if(i==30){
+		gpio_direction_output(NKpdata_info->gpio_op2, 0);
+	}
+	else if(i==41){
+		gpio_direction_output(NKpdata_info->gpio_op3, 1);
+	}
+	else if(i==40){
+		gpio_direction_output(NKpdata_info->gpio_op3, 0);
+	}
+	else if(i==51){
+		gpio_direction_output(NKpdata_info->gpio_op4, 1);
+	}
+	else if(i==50){
+		gpio_direction_output(NKpdata_info->gpio_op4, 0);
+	}
+	else if(i==61){
+		gpio_direction_output(NKpdata_info->gpio_op5, 1);
+	}
+	else if(i==60){
+		gpio_direction_output(NKpdata_info->gpio_op5, 0);
+	}
+	/*
+		else if(i==51){
+		gpio_direction_output(NKpdata_info->gpio_ip0, 1);
+	}
+		else if(i==50){
+		gpio_direction_output(NKpdata_info->gpio_ip0, 0);
+	}
+		else if(i==61){
+		gpio_direction_output(NKpdata_info->gpio_ip1, 1);
+	}
+		else if(i==60){
+		gpio_direction_output(NKpdata_info->gpio_ip1, 0);
+	}
+		else if(i==71){
+		gpio_direction_output(NKpdata_info->gpio_ip2, 1);
+	}
+		else if(i==70){
+		gpio_direction_output(NKpdata_info->gpio_ip2, 0);
+	}
+		else if(i==81){
+		gpio_direction_output(NKpdata_info->gpio_ip3, 1);
+	}
+		else if(i==80){
+		gpio_direction_output(NKpdata_info->gpio_ip3, 0);
+	}
+	*/	
+		
+}
+
+EXPORT_SYMBOL_GPL(GPIO_IO_SET);
+
+#if 0
+static ssize_t en_4g_gpio_store(struct class *class,struct class_attribute *attr, const char *buf, size_t count)
+{	
+		sscanf(buf, "%d", &module_enable);
+		printk("store en_4g_gpio ouput =%d\n",module_enable);
+
+	if (module_enable)
+		{
+			printk("store en_4g_gpio output High \n");
+			MODULE_SET(11);
+		}
+		else {
+			MODULE_SET(10);
+			printk("store en_4g_gpio output Low \n");
+			
+		}
+		return count;
+}
+
+static ssize_t en_4g_gpio_show(struct class *class,struct class_attribute *attr, char *buf)
+{
+	module_enable = gpio_get_value(NKpdata_info->en_4g_gpio);
+    return snprintf(buf,3,"%d\n",module_enable);
+}
+
+
+
+static ssize_t gpio_op0_store(struct class *class,struct class_attribute *attr, const char *buf, size_t count)
+{	
+		sscanf(buf, "%d", &op0_enable);
+		printk("store_gpio_op0 ouput =%d\n",op0_enable);
+
+	if (op0_enable)
+		{
+			printk("store_gpio_op0 output High------konby\n");
+			GPIO_IO_SET(11);
+		}
+		else {
+			GPIO_IO_SET(10);
+			printk("tore_gpio_op0 output Low------konby\n");
+			
+		}
+		return count;
+}
+
+static ssize_t gpio_op0_show(struct class *class,struct class_attribute *attr, char *buf)
+{
+	op0_enable = gpio_get_value(NKpdata_info->gpio_op0);
+    return snprintf(buf,3,"%d\n",op0_enable);
+}
+
+static ssize_t gpio_op1_store(struct class *class,struct class_attribute *attr, const char *buf, size_t count)
+{	
+		sscanf(buf, "%d", &op1_enable);
+		printk("store_gpio_op1 ouput =%d\n",op1_enable);
+
+	if (op1_enable)
+		{
+			printk("store_gpio_op1 output High------konby\n");
+			GPIO_IO_SET(21);
+		}
+		else {
+			GPIO_IO_SET(20);
+			printk("tore_gpio_op1 output Low------konby\n");
+			
+		}
+		return count;
+}
+
+static ssize_t gpio_op1_show(struct class *class,struct class_attribute *attr, char *buf)
+{
+	op1_enable = gpio_get_value(NKpdata_info->gpio_op1);
+    return snprintf(buf,3,"%d\n",op1_enable);
+}
+
+static ssize_t gpio_op2_store(struct class *class,struct class_attribute *attr, const char *buf, size_t count)
+{	
+		sscanf(buf, "%d", &op2_enable);
+		printk("store_gpio_op2 ouput =%d\n",op2_enable);
+
+	if (op2_enable)
+		{
+			printk("store_gpio_op2 output High------konby\n");
+			GPIO_IO_SET(31);
+		}
+		else {
+			GPIO_IO_SET(30);
+			printk("tore_gpio_op2 output Low------konby\n");
+			
+		}
+		return count;
+}
+
+static ssize_t gpio_op2_show(struct class *class,struct class_attribute *attr, char *buf)
+{
+	op2_enable = gpio_get_value(NKpdata_info->gpio_op2);
+    return snprintf(buf,3,"%d\n",op2_enable);
+}
+
+static ssize_t gpio_op3_store(struct class *class,struct class_attribute *attr, const char *buf, size_t count)
+{	
+		sscanf(buf, "%d", &op3_enable);
+		printk("store_gpio_op3 ouput =%d\n",op3_enable);
+
+	if (op3_enable)
+		{
+			printk("store_gpio_op3 output High------konby\n");
+			GPIO_IO_SET(41);
+		}
+		else {
+			GPIO_IO_SET(40);
+			printk("tore_gpio_op3 output Low------konby\n");
+			
+		}
+		return count;
+}
+
+static ssize_t gpio_op3_show(struct class *class,struct class_attribute *attr, char *buf)
+{
+	op3_enable = gpio_get_value(NKpdata_info->gpio_op3);
+    return snprintf(buf,3,"%d\n",op3_enable);
+}
+
+static ssize_t gpio_op4_store(struct class *class,struct class_attribute *attr, const char *buf, size_t count)
+{	
+		sscanf(buf, "%d", &op4_enable);
+		printk("store_gpio_op3 ouput =%d\n",op4_enable);
+
+	if (op4_enable)
+		{
+			printk("store_gpio_op4 output High------konby\n");
+			GPIO_IO_SET(51);
+		}
+		else {
+			GPIO_IO_SET(50);
+			printk("tore_gpio_op4 output Low------konby\n");
+			
+		}
+		return count;
+}
+
+static ssize_t gpio_op4_show(struct class *class,struct class_attribute *attr, char *buf)
+{
+	op4_enable = gpio_get_value(NKpdata_info->gpio_op4);
+    return snprintf(buf,3,"%d\n",op4_enable);
+}
+
+static ssize_t gpio_op5_store(struct class *class,struct class_attribute *attr, const char *buf, size_t count)
+{	
+		sscanf(buf, "%d", &op5_enable);
+		printk("store_gpio_op5 ouput =%d\n",op5_enable);
+
+	if (op5_enable)
+		{
+			printk("store_gpio_op5 output High------konby\n");
+			GPIO_IO_SET(61);
+		}
+		else {
+			GPIO_IO_SET(60);
+			printk("tore_gpio_op5 output Low------konby\n");
+			
+		}
+		return count;
+}
+
+static ssize_t gpio_op5_show(struct class *class,struct class_attribute *attr, char *buf)
+{
+	op5_enable = gpio_get_value(NKpdata_info->gpio_op5);
+    return snprintf(buf,3,"%d\n",op5_enable);
+}
+
+
+
+
+static ssize_t gpio_ip0_show(struct class *class,struct class_attribute *attr, char *buf)
+{
+	ip0_enable = gpio_get_value(NKpdata_info->gpio_ip0);
+    return snprintf(buf,3,"%d\n",ip0_enable);
+
+}
+
+static ssize_t gpio_ip1_show(struct class *class,struct class_attribute *attr, char *buf)
+{
+	ip1_enable = gpio_get_value(NKpdata_info->gpio_ip1);
+    return snprintf(buf,3,"%d\n",ip1_enable);
+}
+
+static ssize_t gpio_ip2_show(struct class *class,struct class_attribute *attr, char *buf)
+{
+	ip2_enable = gpio_get_value(NKpdata_info->gpio_ip2);
+    return snprintf(buf,3,"%d\n",ip2_enable);
+}
+
+static ssize_t gpio_ip3_show(struct class *class,struct class_attribute *attr, char *buf)
+{
+	ip3_enable = gpio_get_value(NKpdata_info->gpio_ip3);
+    return snprintf(buf,3,"%d\n",ip3_enable);
+}
+
+static ssize_t gpio_ip4_show(struct class *class,struct class_attribute *attr, char *buf)
+{
+	ip4_enable = gpio_get_value(NKpdata_info->gpio_ip4);
+    return snprintf(buf,3,"%d\n",ip4_enable);
+}
+
+static ssize_t gpio_ip5_show(struct class *class,struct class_attribute *attr, char *buf)
+{
+	ip5_enable = gpio_get_value(NKpdata_info->gpio_ip5);
+    return snprintf(buf,3,"%d\n",ip5_enable);
+}
+#endif
+
+
+#if 0
+static ssize_t gpio_ip0_store(struct class *class,struct class_attribute *attr, const char *buf, size_t count)
+{	
+		sscanf(buf, "%d", &ip0_enable);
+		printk("store_gpio_op3 ouput =%d\n",ip0_enable);
+
+	if (ip0_enable)
+		{
+			printk("store_gpio_op3 output High------konby\n");
+			GPIO_IO_SET(51);
+		}
+		else {
+			GPIO_IO_SET(50);
+			printk("tore_gpio_op3 output Low------konby\n");
+			
+		}
+		return count;
+}
+
+static ssize_t gpio_ip1_store(struct class *class,struct class_attribute *attr, const char *buf, size_t count)
+{	
+		sscanf(buf, "%d", &ip1_enable);
+		printk("store_gpio_op3 ouput =%d\n",ip1_enable);
+
+	if (ip1_enable)
+		{
+			printk("store_gpio_op3 output High------konby\n");
+			GPIO_IO_SET(61);
+		}
+		else {
+			GPIO_IO_SET(60);
+			printk("tore_gpio_op3 output Low------konby\n");
+			
+		}
+		return count;
+}
+
+static ssize_t gpio_ip2_store(struct class *class,struct class_attribute *attr, const char *buf, size_t count)
+{	
+		sscanf(buf, "%d", &ip2_enable);
+		printk("store_gpio_op3 ouput =%d\n",ip2_enable);
+
+	if (ip2_enable)
+		{
+			printk("store_gpio_op3 output High------konby\n");
+			GPIO_IO_SET(71);
+		}
+		else {
+			GPIO_IO_SET(70);
+			printk("tore_gpio_op3 output Low------konby\n");
+			
+		}
+		return count;
+}
+
+static ssize_t gpio_ip3_store(struct class *class,struct class_attribute *attr, const char *buf, size_t count)
+{	
+		sscanf(buf, "%d", &ip3_enable);
+		printk("store_gpio_op3 ouput =%d\n",ip3_enable);
+
+	if (ip3_enable)
+		{
+			printk("store_gpio_op3 output High------konby\n");
+			GPIO_IO_SET(81);
+		}
+		else {
+			GPIO_IO_SET(80);
+			printk("tore_gpio_op3 output Low------konby\n");
+			
+		}
+		return count;
+}
+
+#endif
+
+
+
+#if 0
+
+//static CLASS_ATTR(en_4g_gpio, 0666, module_show, module_store);
+static CLASS_ATTR_RW(en_4g_gpio);
+
+
+//static CLASS_ATTR(gpio_op0, 0666, gpio_op0_show, gpio_op0_store);
+static CLASS_ATTR_RW(gpio_op0);
+//static CLASS_ATTR(gpio_op1, 0666, gpio_op1_show, gpio_op1_store);
+static CLASS_ATTR_RW(gpio_op1);
+//static CLASS_ATTR(gpio_op2, 0666, gpio_op2_show, gpio_op2_store);
+static CLASS_ATTR_RW(gpio_op2);
+//static CLASS_ATTR(gpio_op3, 0666, gpio_op3_show, gpio_op3_store);
+static CLASS_ATTR_RW(gpio_op3);
+//static CLASS_ATTR(gpio_op4, 0666, gpio_op4_show, gpio_op4_store);
+static CLASS_ATTR_RW(gpio_op4);
+//static CLASS_ATTR(gpio_op5, 0666, gpio_op5_show, gpio_op5_store);
+static CLASS_ATTR_RW(gpio_op5);
+
+
+
+//static CLASS_ATTR(gpio_ip0, 0666, gpio_ip0_show, NULL);
+static CLASS_ATTR_RO(gpio_ip0);
+//static CLASS_ATTR(gpio_ip1, 0666, gpio_ip1_show, NULL);
+static CLASS_ATTR_RO(gpio_ip1);
+//static CLASS_ATTR(gpio_ip2, 0666, gpio_ip2_show, NULL);
+static CLASS_ATTR_RO(gpio_ip2);
+//static CLASS_ATTR(gpio_ip3, 0666, gpio_ip3_show, NULL);
+static CLASS_ATTR_RO(gpio_ip3);
+//static CLASS_ATTR(gpio_ip4, 0666, gpio_ip4_show, NULL);
+static CLASS_ATTR_RO(gpio_ip4);
+//static CLASS_ATTR(gpio_ip5, 0666, gpio_ip5_show, NULL);
+static CLASS_ATTR_RO(gpio_ip5);
+
+
+#endif
+
+
+
+
+//ben
+static int nk_io_control_probe(struct platform_device *pdev)
+{
+	struct device_node *node = pdev->dev.of_node;
+	struct nk_io_pdata *pdata;	
+	int gpio0, gpio1, gpio2, gpio3, reset_pin, ch342_reset;
+	int ret;
+        int lvds_index;
+        int i=0;
+        static int lvds_gpio[4] ;
+
+	enum of_gpio_flags flags;
+	
+	printk(" #######nk_io_control_probe####### \n");
+
+	pdata = kzalloc(sizeof(struct nk_io_pdata), GFP_KERNEL);
+	if (pdata == NULL) {
+		printk("%s failed to allocate driver data\n",__FUNCTION__);
+		return -ENOMEM;
+	}
+	memset(pdata,0,sizeof(struct nk_io_pdata));
+	
+	//vcc_5v_io
+#if 0
+	ret = of_get_named_gpio_flags(node, "vcc_5v_io", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property vcc_5v_io\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->vcc_5v_io = ret;
+		ret = devm_gpio_request(&pdev->dev, pdata->vcc_5v_io, "vcc_5v_io");
+		if(ret < 0){
+			printk("%s() devm_gpio_request vcc_5v_io request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->vcc_5v_io,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input vcc_5v_io set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+#endif
+	//tp_enable
+	ret = of_get_named_gpio_flags(node, "tp_enable", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property tp_enable\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->tp_enable = ret;
+		ret = devm_gpio_request(&pdev->dev, pdata->tp_enable, "tp_enable");
+		if(ret < 0){
+			printk("%s() devm_gpio_request tp_enable request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->tp_enable,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_output tp_enable set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+
+	//vcc_12v_io
+	ret = of_get_named_gpio_flags(node, "vcc_12v_io", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property vcc_12v_io\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->vcc_12v_io = ret;
+		ret = devm_gpio_request(&pdev->dev, pdata->vcc_12v_io, "vcc_12v_io");
+		if(ret < 0){
+			printk("%s() devm_gpio_request vcc_12v_io request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->vcc_12v_io,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input vcc_12v_io set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+	
+	//hub_hos2_5V_gpio
+	ret = of_get_named_gpio_flags(node, "hub_host2_5v_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property hub_host2_5v_gpio\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->hub_host2_5v_gpio = ret;
+		gpio_free(ret);
+		ret = devm_gpio_request(&pdev->dev, pdata->hub_host2_5v_gpio, "hub_host2_5v_gpio");
+		if(ret < 0){
+			printk("%s() devm_gpio_request hub_host2_5v_gpio request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->hub_host2_5v_gpio,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input hub_host2_5v_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+
+	//hub_host2_5V_rest_gpio
+	ret = of_get_named_gpio_flags(node, "hub_host2_5V_rest_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property hub_host2_5V_rest_gpio\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->hub_host2_5V_rest_gpio = ret;
+		ret = devm_gpio_request(&pdev->dev, pdata->hub_host2_5V_rest_gpio, "hub_host2_5V_rest_gpio");
+		if(ret < 0){
+			printk("%s() devm_gpio_request hub_host2_5V_rest_gpio request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->hub_host2_5V_rest_gpio,0); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input hub_host2_5V_rest_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+		msleep(800);
+		ret = gpio_direction_output(pdata->hub_host2_5V_rest_gpio,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input hub_host2_5V_rest_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+
+	//hub_hos3_5V_gpio
+	ret = of_get_named_gpio_flags(node, "hub_host3_5v_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property hub_host3_5v_gpio\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->hub_host3_5v_gpio = ret;
+		gpio_free(ret);
+		ret = devm_gpio_request(&pdev->dev, pdata->hub_host3_5v_gpio, "hub_host3_5v_gpio");
+		if(ret < 0){
+			printk("%s() devm_gpio_request hub_host3_5v_gpio request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->hub_host3_5v_gpio,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input hub_host3_5v_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+
+	//hub_host3_5V_rest_gpio
+	ret = of_get_named_gpio_flags(node, "hub_host3_5V_rest_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property hub_host3_5V_rest_gpio\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->hub_host3_5V_rest_gpio = ret;
+		ret = devm_gpio_request(&pdev->dev, pdata->hub_host3_5V_rest_gpio, "hub_host3_5V_rest_gpio");
+		if(ret < 0){
+			printk("%s() devm_gpio_request hub_host3_5V_rest_gpio request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->hub_host3_5V_rest_gpio,0); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input hub_host3_5V_rest_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+		msleep(800);
+		ret = gpio_direction_output(pdata->hub_host3_5V_rest_gpio,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input hub_host3_5V_rest_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+
+	//wake_4g_gpio
+	   ret = of_get_named_gpio_flags(node, "wake_4g_gpio", 0, &flags);
+	   if (ret < 0) {
+	           printk("%s() Can not read property wake_4g_gpio\n", __FUNCTION__);
+	   } else {
+	           pdata->wake_4g_gpio = ret;
+
+	           ret = devm_gpio_request(&pdev->dev, pdata->wake_4g_gpio, "wake_4g_gpio");
+	           if(ret < 0){
+	                   printk("%s() devm_gpio_request wake_4g_gpio request ERROR\n", __FUNCTION__);
+	           }
+	           ret = gpio_direction_output(pdata->wake_4g_gpio,0);
+	           if(ret < 0){
+	                   printk("%s() gpio_direction_input wake_4g_gpio set ERROR\n", __FUNCTION__);
+	           }
+	   }
+
+#if 0
+	   //reset_4g_gpio
+	   ret = of_get_named_gpio_flags(node, "reset_4g_gpio", 0, &flags);
+	   if (ret < 0) {
+	           printk("%s() Can not read property reset_4g_gpio\n", __FUNCTION__);
+	   } else {
+	           pdata->reset_4g_gpio = ret;
+
+	           ret = devm_gpio_request(&pdev->dev, pdata->reset_4g_gpio, "reset_4g_gpio");
+	           if(ret < 0){
+	                   printk("%s() devm_gpio_request reset_4g_gpio request ERROR\n", __FUNCTION__);
+	           }
+	           ret = gpio_direction_output(pdata->reset_4g_gpio,0);
+	           if(ret < 0){
+	                   printk("%s() gpio_direction_input reset_4g_gpio set ERROR\n", __FUNCTION__);
+	           }
+	   }
+
+	   //en_4g_gpio
+	   ret = of_get_named_gpio_flags(node, "en_4g_gpio", 0, &flags);
+	   if (ret < 0) {
+	           printk("%s() Can not read property en_4g_gpio\n", __FUNCTION__);
+	   } else {
+	           pdata->en_4g_gpio = ret;
+
+	           ret = devm_gpio_request(&pdev->dev, pdata->en_4g_gpio, "en_4g_gpio");
+	           if(ret < 0){
+	                   printk("%s() devm_gpio_request en_4g_gpio request ERROR\n", __FUNCTION__);
+	           }
+	           ret = gpio_direction_output(pdata->en_4g_gpio,1);
+	           if(ret < 0){
+	                   printk("%s() gpio_direction_input en_4g_gpio set ERROR\n", __FUNCTION__);
+	           }
+	   }
+
+
+	   //air_mode_4g_gpio
+	   ret = of_get_named_gpio_flags(node, "air_mode_4g_gpio", 0, &flags);
+	   if (ret < 0) {
+	           printk("%s() Can not read property air_mode_4g_gpio\n", __FUNCTION__);
+	   } else {
+	           pdata->air_mode_4g_gpio = ret;
+
+	           ret = devm_gpio_request(&pdev->dev, pdata->air_mode_4g_gpio, "air_mode_4g_gpio");
+	           if(ret < 0){
+	                   printk("%s() devm_gpio_request air_mode_4g_gpio request ERROR\n", __FUNCTION__);
+	           }
+	           ret = gpio_direction_output(pdata->air_mode_4g_gpio,0);
+	           if(ret < 0){
+	                   printk("%s() gpio_direction_input air_mode_4g_gpio set ERROR\n", __FUNCTION__);
+	           }
+	   }
+
+#endif	  
+/*
+	//edp_power_supply_gpio;
+	ret = of_get_named_gpio_flags(node, "edp_power_supply_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property edp_power_supply_gpio\n", __FUNCTION__);
+	} else {
+		pdata->edp_power_supply_gpio = ret;
+
+		ret = devm_gpio_request(&pdev->dev, pdata->edp_power_supply_gpio, "edp_power_supply_gpio");
+		if(ret < 0){
+			printk("%s() devm_gpio_request edp_power_supply_gpio request ERROR\n", __FUNCTION__);
+		}
+		
+		ret = gpio_direction_output(pdata->edp_power_supply_gpio,1);
+		if(ret < 0){
+			printk("%s() gpio_direction_input edp_power_supply_gpio set ERROR\n", __FUNCTION__);
+		}
+	}
+*/	
+   //edp_enable-gpio;
+#if 0
+	ret = of_get_named_gpio_flags(node, "edp_enable_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property edp_enable_gpio\n", __FUNCTION__);
+	} else {
+		pdata->edp_enable_gpio = ret;
+
+		ret = devm_gpio_request(&pdev->dev, pdata->edp_enable_gpio, "edp_enable_gpio");
+		if(ret < 0){
+			printk("%s() devm_gpio_request edp_enable_gpio request ERROR\n", __FUNCTION__);
+		}
+		
+		ret = gpio_direction_output(pdata->edp_enable_gpio,1);
+		if(ret < 0){
+			printk("%s() gpio_direction_input edp_enable_gpio set ERROR\n", __FUNCTION__);
+		}
+	} 
+  
+#endif
+   //ch342_enable-gpio;
+	ret = of_get_named_gpio_flags(node, "ch342_power", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property ch342_gpio\n", __FUNCTION__);
+	} else {
+		pdata->ch342_power = ret;
+
+		ret = devm_gpio_request(&pdev->dev, pdata->ch342_power, "ch342_power");
+		if(ret < 0){
+			printk("%s() devm_gpio_request ch342_power request ERROR\n", __FUNCTION__);
+		}
+		
+		ret = gpio_direction_output(pdata->ch342_power,1);
+		if(ret < 0){
+			printk("%s() gpio_direction_input ch342_power set ERROR\n", __FUNCTION__);
+		}
+	}   
+
+
+        //edp_set_pixel-s
+         ret = of_get_named_gpio_flags(node, "edp_reset", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_reset\n", __FUNCTION__);
+        goto err;
+    }
+
+    reset_pin = ret;
+
+	   // ch342_reset
+	   ret = of_get_named_gpio_flags(node, "ch342_reset", 0, &flags);
+	   if (ret < 0) {
+	           printk("%s() Can not read property ch342_reset\n", __FUNCTION__);
+	   } else {
+	           pdata->reset_ch342_gpio = ret;
+
+	           ret = devm_gpio_request(&pdev->dev, pdata->reset_ch342_gpio, "ch342_reset");
+	           if(ret < 0){
+	                   printk("%s() devm_gpio_request ch342_reset request ERROR\n", __FUNCTION__);
+	           }
+	           ret = gpio_direction_output(pdata->reset_ch342_gpio,1);
+	           if(ret < 0){
+	                   printk("%s() gpio_direction_output ch342_reset set ERROR\n", __FUNCTION__);
+	           }
+//    		 ch342_reset = ret;
+	   }
+
+
+// enable lvds
+     ret = of_get_named_gpio_flags(node, "edp_gpio0", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_gpio0\n", __FUNCTION__);
+        goto err;
+    }
+	 gpio0 = ret;
+
+
+
+    ret = of_get_named_gpio_flags(node, "edp_gpio1", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_gpio1\n", __FUNCTION__);
+        goto err;
+    }
+
+        gpio1 = ret;
+
+    ret = of_get_named_gpio_flags(node, "edp_gpio2", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_gpio2\n", __FUNCTION__);
+        goto err;
+    }
+
+    gpio2 = ret;
+
+    ret = of_get_named_gpio_flags(node, "edp_gpio3", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_gpio3\n", __FUNCTION__);
+        goto err;
+    }
+
+    gpio3 = ret;
+
+
+	 ret = devm_gpio_request(&pdev->dev, reset_pin, "edp_reset");
+    if(ret < 0){
+        printk("%s() devm_gpio_request edp_reset request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+
+    ret = devm_gpio_request(&pdev->dev, gpio0, "edp_gpio0");
+    if(ret < 0){
+        printk("%s() devm_gpio_request edp_gpio0 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+    ret = devm_gpio_request(&pdev->dev, gpio1, "edp_gpio1");
+    if(ret < 0){
+        printk("%s() devm_gpio_request edp_gpio1 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+    ret = devm_gpio_request(&pdev->dev, gpio2, "edp_gpio2");
+    if(ret < 0){
+        printk("%s() devm_gpio_request edp_gpio2 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+    ret = devm_gpio_request(&pdev->dev, gpio3, "edp_gpio3");
+    if(ret < 0){
+        printk("%s() devm_gpio_request edp_gpio3 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+	
+	   ret = of_property_read_u32(node, "nodka_lvds", &lvds_index);
+        if (ret < 0){
+                printk("%s() Can not read property nodka_lvds\n", __FUNCTION__);
+        }
+
+        printk("nodka_lvds_index = %d\n",lvds_index);
+
+        while ( i < 4 ){
+                if ( lvds_index > 0)
+                        lvds_gpio[i] = lvds_index%2;
+                else
+                        lvds_gpio[i] = 0;
+                printk("lvds_gpio[%d]=%d\n",i,lvds_gpio[i]);
+                lvds_index = lvds_index/2;
+                i++;
+        }
+
+    gpio_direction_output(reset_pin, 0);
+    usleep_range(80000, 100000);
+    gpio_direction_output(reset_pin, 1);
+    usleep_range(80000, 100000);
+
+//    gpio_direction_output(ch342_reset, 0);
+//   usleep_range(80000, 100000);
+//    gpio_direction_output(ch342_reset, 1);
+//    usleep_range(80000, 100000);
+
+/*
+      //gpio_op0
+         ret = of_get_named_gpio_flags(node, "gpio_op0", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property gpio_op0\n", __FUNCTION__);
+        goto err;
+    }
+
+    pdata->gpio_op0 = ret;
+
+         ret = devm_gpio_request(&pdev->dev, pdata->gpio_op0, "gpio_op0");
+    if(ret < 0){
+        printk("%s() devm_gpio_request gpio_op0 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+	gpio_direction_output(pdata->gpio_op0, 1);
+*/
+	
+	gpio_direction_output(gpio0, lvds_gpio[0]);
+	gpio_direction_output(gpio1, lvds_gpio[1]);
+	gpio_direction_output(gpio2, lvds_gpio[2]);
+	gpio_direction_output(gpio3, lvds_gpio[3]);
+	
+	printk(" #######nk_io_control_probe end####### \n");
+	return 0;
+	
+err:
+	kfree(pdata);
+	return ret;	
+}	
+
+//6 in 6 out-e
+#if 0 
+static int nk_io_control_probe1(struct platform_device *pdev)
+{
+	struct device_node *node = pdev->dev.of_node;
+	struct nk_io_pdata *pdata;
+	int ret;
+	int gpio0, gpio1, gpio2, gpio3, reset_pin;
+	enum of_gpio_flags flags;
+	printk(" #######nk_io_control_probe####### \n");
+	//enable = 0 ;
+
+
+//	ret = gpio_direction_output(74,0); 
+//	if(ret < 0){
+//		printk("fuwei %s() gpio_direction_input vcc_12v_io set ERROR\n", __FUNCTION__);
+//		goto err;
+//	}
+
+
+	pdata = kzalloc(sizeof(struct nk_io_pdata), GFP_KERNEL);
+	if (pdata == NULL) {
+		printk("%s failed to allocate driver data\n",__FUNCTION__);
+		return -ENOMEM;
+	}
+	memset(pdata,0,sizeof(struct nk_io_pdata));
+
+
+	//edp_set_pixel-s
+	 ret = of_get_named_gpio_flags(node, "edp_reset", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_reset\n", __FUNCTION__);
+        goto err;
+    }
+
+    reset_pin = ret;
+
+	ret = of_get_named_gpio_flags(node, "edp_gpio0", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_gpio0\n", __FUNCTION__);
+        goto err;
+    } 
+
+    gpio0 = ret;
+
+    ret = of_get_named_gpio_flags(node, "edp_gpio1", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_gpio1\n", __FUNCTION__);
+        goto err;
+    }
+
+	gpio1 = ret;
+
+    ret = of_get_named_gpio_flags(node, "edp_gpio2", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_gpio2\n", __FUNCTION__);
+        goto err;
+    }
+
+    gpio2 = ret;
+
+    ret = of_get_named_gpio_flags(node, "edp_gpio3", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_gpio3\n", __FUNCTION__);
+        goto err;
+    }
+
+    gpio3 = ret;
+
+    ret = devm_gpio_request(&pdev->dev, reset_pin, "edp_reset");
+    if(ret < 0){
+        printk("%s() devm_gpio_request edp_reset request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+    ret = devm_gpio_request(&pdev->dev, gpio0, "edp_gpio0");
+    if(ret < 0){
+        printk("%s() devm_gpio_request edp_gpio0 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+    ret = devm_gpio_request(&pdev->dev, gpio1, "edp_gpio1");
+    if(ret < 0){
+        printk("%s() devm_gpio_request edp_gpio1 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+    ret = devm_gpio_request(&pdev->dev, gpio2, "edp_gpio2");
+    if(ret < 0){
+        printk("%s() devm_gpio_request edp_gpio2 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+    ret = devm_gpio_request(&pdev->dev, gpio3, "edp_gpio3");
+    if(ret < 0){
+        printk("%s() devm_gpio_request edp_gpio3 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+    gpio_direction_output(reset_pin, 0); 
+    usleep_range(80000, 100000);
+    gpio_direction_output(reset_pin, 1); 
+    usleep_range(80000, 100000);
+
+    gpio_direction_output(gpio0, 0); 
+    gpio_direction_output(gpio1, 1); 
+    gpio_direction_output(gpio2, 1); 
+    gpio_direction_output(gpio3, 0); 
+	printk("edp set pixels success.\r\n");
+
+	//edp_set_pixel-e
+
+	//6 in 6 out-s	
+	//gpio_op0
+	 ret = of_get_named_gpio_flags(node, "gpio_op0", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property gpio_op0\n", __FUNCTION__);
+        goto err;
+    }
+
+    pdata->gpio_op0 = ret;
+
+	 ret = devm_gpio_request(&pdev->dev, pdata->gpio_op0, "gpio_op0");
+    if(ret < 0){
+        printk("%s() devm_gpio_request gpio_op0 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+
+	//gpio_op1
+	 ret = of_get_named_gpio_flags(node, "gpio_op1", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property gpio_op1\n", __FUNCTION__);
+        goto err;
+    }
+
+    pdata->gpio_op1 = ret;
+
+	 ret = devm_gpio_request(&pdev->dev, pdata->gpio_op1, "gpio_op1");
+    if(ret < 0){
+        printk("%s() devm_gpio_request gpio_op1 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+
+	//gpio_op2
+	 ret = of_get_named_gpio_flags(node, "gpio_op2", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property gpio_op2\n", __FUNCTION__);
+        goto err;
+    }
+
+    pdata->gpio_op2 = ret;
+
+	 ret = devm_gpio_request(&pdev->dev, pdata->gpio_op2, "gpio_op2");
+    if(ret < 0){
+        printk("%s() devm_gpio_request gpio_op2 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+
+
+	//gpio_op3
+	 ret = of_get_named_gpio_flags(node, "gpio_op3", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property gpio_op3\n", __FUNCTION__);
+        goto err;
+    }
+
+    pdata->gpio_op3 = ret;
+
+	 ret = devm_gpio_request(&pdev->dev, pdata->gpio_op3, "gpio_op3");
+    if(ret < 0){
+        printk("%s() devm_gpio_request gpio_op3 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+	//gpio_op4
+	 ret = of_get_named_gpio_flags(node, "gpio_op4", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property gpio_op4\n", __FUNCTION__);
+        goto err;
+    }
+
+    pdata->gpio_op4 = ret;
+
+	 ret = devm_gpio_request(&pdev->dev, pdata->gpio_op4, "gpio_op4");
+    if(ret < 0){
+        printk("%s() devm_gpio_request gpio_op4 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+	//gpio_op5
+	 ret = of_get_named_gpio_flags(node, "gpio_op5", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property gpio_op5\n", __FUNCTION__);
+        goto err;
+    }
+
+    pdata->gpio_op5 = ret;
+
+	 ret = devm_gpio_request(&pdev->dev, pdata->gpio_op5, "gpio_op5");
+    if(ret < 0){
+        printk("%s() devm_gpio_request gpio_op5 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+	
+
+	//d4 low
+	gpio_direction_output(pdata->gpio_op0, 1);
+	gpio_direction_output(pdata->gpio_op1, 1);
+	gpio_direction_output(pdata->gpio_op2, 1);
+	gpio_direction_output(pdata->gpio_op3, 1);
+	gpio_direction_output(pdata->gpio_op4, 1);
+	gpio_direction_output(pdata->gpio_op5, 1);
+
+	
+
+
+
+	//gpio_ip0
+	 ret = of_get_named_gpio_flags(node, "gpio_ip0", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property gpio_ip0\n", __FUNCTION__);
+        goto err;
+    }
+
+    pdata->gpio_ip0 = ret;
+
+	 ret = devm_gpio_request(&pdev->dev, pdata->gpio_ip0, "gpio_ip0");
+    if(ret < 0){
+        printk("%s() devm_gpio_request gpio_ip0 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+	//gpio_ip1
+	 ret = of_get_named_gpio_flags(node, "gpio_ip1", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property gpio_ip1\n", __FUNCTION__);
+        goto err;
+    }
+
+    pdata->gpio_ip1 = ret;
+
+	 ret = devm_gpio_request(&pdev->dev, pdata->gpio_ip1, "gpio_ip1");
+    if(ret < 0){
+        printk("%s() devm_gpio_request gpio_ip1 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+	//gpio_ip2
+	 ret = of_get_named_gpio_flags(node, "gpio_ip2", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property gpio_ip2\n", __FUNCTION__);
+        goto err;
+    }
+
+    pdata->gpio_ip2 = ret;
+
+	 ret = devm_gpio_request(&pdev->dev, pdata->gpio_ip2, "gpio_ip2");
+    if(ret < 0){
+        printk("%s() devm_gpio_request gpio_ip2 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+	//gpio_ip3
+	 ret = of_get_named_gpio_flags(node, "gpio_ip3", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property gpio_ip3\n", __FUNCTION__);
+        goto err;
+    }
+
+    pdata->gpio_ip3 = ret;
+
+	 ret = devm_gpio_request(&pdev->dev, pdata->gpio_ip3, "gpio_ip3");
+    if(ret < 0){
+        printk("%s() devm_gpio_request gpio_ip3 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+	//gpio_ip4
+	 ret = of_get_named_gpio_flags(node, "gpio_ip4", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property gpio_ip4\n", __FUNCTION__);
+        goto err;
+    }
+
+    pdata->gpio_ip4 = ret;
+
+	 ret = devm_gpio_request(&pdev->dev, pdata->gpio_ip4, "gpio_ip4");
+    if(ret < 0){
+        printk("%s() devm_gpio_request gpio_ip4 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+	//gpio_ip5
+	 ret = of_get_named_gpio_flags(node, "gpio_ip5", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property gpio_ip5\n", __FUNCTION__);
+        goto err;
+    }
+
+    pdata->gpio_ip5 = ret;
+
+	 ret = devm_gpio_request(&pdev->dev, pdata->gpio_ip5, "gpio_ip3");
+    if(ret < 0){
+        printk("%s() devm_gpio_request gpio_ip5 request ERROR\n", __FUNCTION__);
+        goto err;
+    }
+
+	//d4 low
+	gpio_direction_input(pdata->gpio_ip0);
+	gpio_direction_input(pdata->gpio_ip1);
+	gpio_direction_input(pdata->gpio_ip2);
+	gpio_direction_input(pdata->gpio_ip3);
+	gpio_direction_input(pdata->gpio_ip4);
+	gpio_direction_input(pdata->gpio_ip5);
+
+
+	//6 in 6 out-e
+
+
+	   //wake_4g_gpio
+	   ret = of_get_named_gpio_flags(node, "wake_4g_gpio", 0, &flags);
+	   if (ret < 0) {
+	           printk("%s() Can not read property wake_4g_gpio\n", __FUNCTION__);
+	   } else {
+	           pdata->wake_4g_gpio = ret;
+
+	           ret = devm_gpio_request(&pdev->dev, pdata->wake_4g_gpio, "wake_4g_gpio");
+	           if(ret < 0){
+	                   printk("%s() devm_gpio_request wake_4g_gpio request ERROR\n", __FUNCTION__);
+	           }
+	           ret = gpio_direction_output(pdata->wake_4g_gpio,0);
+	           if(ret < 0){
+	                   printk("%s() gpio_direction_input wake_4g_gpio set ERROR\n", __FUNCTION__);
+	           }
+	   }
+
+
+	   //reset_4g_gpio
+	   ret = of_get_named_gpio_flags(node, "reset_4g_gpio", 0, &flags);
+	   if (ret < 0) {
+	           printk("%s() Can not read property reset_4g_gpio\n", __FUNCTION__);
+	   } else {
+	           pdata->reset_4g_gpio = ret;
+
+	           ret = devm_gpio_request(&pdev->dev, pdata->reset_4g_gpio, "reset_4g_gpio");
+	           if(ret < 0){
+	                   printk("%s() devm_gpio_request reset_4g_gpio request ERROR\n", __FUNCTION__);
+	           }
+	           ret = gpio_direction_output(pdata->reset_4g_gpio,0);
+	           if(ret < 0){
+	                   printk("%s() gpio_direction_input reset_4g_gpio set ERROR\n", __FUNCTION__);
+	           }
+	   }
+
+	   //en_4g_gpio
+	   ret = of_get_named_gpio_flags(node, "en_4g_gpio", 0, &flags);
+	   if (ret < 0) {
+	           printk("%s() Can not read property en_4g_gpio\n", __FUNCTION__);
+	   } else {
+	           pdata->en_4g_gpio = ret;
+
+	           ret = devm_gpio_request(&pdev->dev, pdata->en_4g_gpio, "en_4g_gpio");
+	           if(ret < 0){
+	                   printk("%s() devm_gpio_request en_4g_gpio request ERROR\n", __FUNCTION__);
+	           }
+	           ret = gpio_direction_output(pdata->en_4g_gpio,1);
+	           if(ret < 0){
+	                   printk("%s() gpio_direction_input en_4g_gpio set ERROR\n", __FUNCTION__);
+	           }
+	   }
+
+
+	   //air_mode_4g_gpio
+	   ret = of_get_named_gpio_flags(node, "air_mode_4g_gpio", 0, &flags);
+	   if (ret < 0) {
+	           printk("%s() Can not read property air_mode_4g_gpio\n", __FUNCTION__);
+	   } else {
+	           pdata->air_mode_4g_gpio = ret;
+
+	           ret = devm_gpio_request(&pdev->dev, pdata->air_mode_4g_gpio, "air_mode_4g_gpio");
+	           if(ret < 0){
+	                   printk("%s() devm_gpio_request air_mode_4g_gpio request ERROR\n", __FUNCTION__);
+	           }
+	           ret = gpio_direction_output(pdata->air_mode_4g_gpio,0);
+	           if(ret < 0){
+	                   printk("%s() gpio_direction_input air_mode_4g_gpio set ERROR\n", __FUNCTION__);
+	           }
+	   }
+
+
+       
+	
+
+	//mic_switch_gpio
+		ret = of_get_named_gpio_flags(node, "mic_switch_gpio", 0, &flags);
+		if (ret < 0) {
+				printk("%s() Can not read property mic_switch_gpio\n", __FUNCTION__);
+				goto err;
+		} else {
+				pdata->mic_switch_gpio = ret;
+				ret = devm_gpio_request(&pdev->dev, pdata->mic_switch_gpio, "mic_switch_gpio");
+				if(ret < 0){
+						printk("%s() devm_gpio_request mic_switch_gpio request ERROR\n", __FUNCTION__);
+						goto err;
+				}
+				ret = gpio_direction_output(pdata->mic_switch_gpio,0); 
+				mic_enable = 0;
+				if(ret < 0){
+				printk("%s() gpio_direction_input mic_switch_gpio set ERROR\n", __FUNCTION__);
+				goto err;
+		}
+				}
+#if 0
+	//vcc_5v_io
+	ret = of_get_named_gpio_flags(node, "vcc_5v_io", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property vcc_5v_io\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->vcc_5v_io = ret;
+		ret = devm_gpio_request(&pdev->dev, pdata->vcc_5v_io, "vcc_5v_io");
+		if(ret < 0){
+			printk("%s() devm_gpio_request vcc_5v_io request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->vcc_5v_io,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input vcc_5v_io set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+#endif
+	//vcc_3.3v_io
+	ret = of_get_named_gpio_flags(node, "vcc_3_3v_io", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property vcc_3_3v_io\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->vcc_3_3v_io = ret;
+		ret = devm_gpio_request(&pdev->dev, pdata->vcc_3_3v_io, "vcc_3_3v_io");
+		if(ret < 0){
+			printk("%s() devm_gpio_request vcc_3_3v_io request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->vcc_3_3v_io,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input vcc_3_3v_io set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+
+		//vcc_12v_io
+	ret = of_get_named_gpio_flags(node, "vcc_12v_io", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property vcc_12v_io\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->vcc_12v_io = ret;
+		ret = devm_gpio_request(&pdev->dev, pdata->vcc_12v_io, "vcc_12v_io");
+		if(ret < 0){
+			printk("%s() devm_gpio_request vcc_12v_io request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->vcc_12v_io,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input vcc_12v_io set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+	
+		//hub_5V_gpio
+	ret = of_get_named_gpio_flags(node, "hub_5V_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property hub_5V_gpio\n", __FUNCTION__);
+		goto err;
+	} else {
+		
+		pdata->hub_5V_gpio = ret;
+		gpio_free(ret);
+		ret = devm_gpio_request(&pdev->dev, pdata->hub_5V_gpio, "hub_5V_gpio");
+		if(ret < 0){
+			printk("%s() devm_gpio_request hub_5V_gpio request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->hub_5V_gpio,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input hub_5V_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+
+
+	//hub_5V_rest_gpio
+	ret = of_get_named_gpio_flags(node, "hub_5V_rest_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property hub_5V_rest_gpio\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->hub_5V_rest_gpio = ret;
+		ret = devm_gpio_request(&pdev->dev, pdata->hub_5V_rest_gpio, "hub_5V_rest_gpio");
+		if(ret < 0){
+			printk("%s() devm_gpio_request hub_5V_rest_gpio request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(pdata->hub_5V_rest_gpio,0); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input hub_5V_rest_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+		msleep(800);
+		ret = gpio_direction_output(pdata->hub_5V_rest_gpio,1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input hub_5V_rest_gpio set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+	
+		//audio_switch_gpio
+	ret = of_get_named_gpio_flags(node, "audio_switch_gpio", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property audio_switch_gpio\n", __FUNCTION__);
+		goto err;
+	} else {
+		pdata->audio_switch_gpio = ret;
+		ret = devm_gpio_request(&pdev->dev, pdata->audio_switch_gpio, "audio_switch_gpio");
+		if(ret < 0){
+			printk("%s() devm_gpio_request audio_switch_gpio request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+            ret = gpio_direction_output(pdata->audio_switch_gpio, !flags); 
+		if(ret < 0){
+		printk("%s() gpio_direction_input audio_switch_gpio set ERROR\n", __FUNCTION__);
+		goto err;
+	}
+		}
+
+	//led_ctl
+		ret = of_get_named_gpio_flags(node, "led_ctl", 0, &flags);
+		if (ret < 0) {
+			printk("%s() Can not read property usb_5v_gpio\n", __FUNCTION__);
+			goto err;
+		} else {
+			pdata->led_gpio = ret;
+			ret = devm_gpio_request(&pdev->dev, pdata->led_gpio, "led_ctl");
+			if(ret < 0){
+				printk("%s() devm_gpio_request led_gpio request ERROR\n", __FUNCTION__);
+				goto err;
+			}
+	
+			ret = gpio_direction_output(pdata->led_gpio,0); 
+			if(ret < 0){
+				printk("%s() gpio_direction_input led_gpio set ERROR\n", __FUNCTION__);
+				goto err;
+			}
+		}
+		
+		   
+
+    printk("edp_bl_on ....\r\n"); 
+    ret = of_get_named_gpio_flags(node, "edp_bl_on", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_bl_on\n", __FUNCTION__);
+        goto err;
+    } else {
+        int gpio = ret;
+        ret = devm_gpio_request(&pdev->dev, gpio, "edp_bl_on");
+        if(ret < 0){
+            printk("%s() devm_gpio_request edp_b1_on request ERROR\n", __FUNCTION__);
+            goto err;
+        }
+
+        ret = gpio_direction_output(gpio, !flags); 
+        if(ret < 0){
+            printk("%s() gpio_direction_input edp_bl_on set ERROR\n", __FUNCTION__);
+            goto err;
+        }
+    }
+    printk("edp_bl_on ....ok!\r\n"); 
+
+    printk("edp_bl_en ....\r\n"); 
+    ret = of_get_named_gpio_flags(node, "edp_bl_en", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property edp_bl_en\n", __FUNCTION__);
+        goto err;
+    } else {
+        int gpio = ret;
+        ret = devm_gpio_request(&pdev->dev, gpio, "edp_bl_en");
+        if(ret < 0){
+            printk("%s() devm_gpio_request edp_bl_en  request ERROR\n", __FUNCTION__);
+            goto err;
+        }
+        ret = gpio_direction_output(gpio, !flags); 
+        if(ret < 0){
+            printk("%s() gpio_direction_input edp_bl_en set ERROR\n", __FUNCTION__);
+            goto err;
+        }
+    }
+    printk("edp_bl_en ....ok!\r\n"); 
+
+    printk("fan_io_en ....\r\n"); 
+    ret = of_get_named_gpio_flags(node, "fan_io_en", 0, &flags);
+    if (ret < 0) {
+        printk("%s() Can not read property fan_io_en\n", __FUNCTION__);
+        goto err;
+    } else {
+        int gpio = ret;
+        ret = devm_gpio_request(&pdev->dev, gpio, "fan_io_en");
+        if(ret < 0){
+            printk("%s() devm_gpio_request fan_io_en request ERROR\n", __FUNCTION__);
+            goto err;
+        }
+
+        ret = gpio_direction_output(gpio, !flags); 
+        if(ret < 0){
+            printk("%s() gpio_direction_input fan_io_en set ERROR\n", __FUNCTION__);
+            goto err;
+        }
+    }
+    printk("fan_io_en ....ok!\r\n"); 
+
+
+    //pcie_wakeup for ap6256 BT_wake
+    /* Rfkill-bt.c bt driver config and set this pin already
+    printk("pcie_wakeup ....\r\n"); 
+
+	ret = of_get_named_gpio_flags(node, "pcie_wakeup", 0, &flags);
+	if (ret < 0) {
+		printk("%s() Can not read property pcie_wakeup\n", __FUNCTION__);
+		goto err;
+	} else {
+        int gpio = ret;
+		ret = devm_gpio_request(&pdev->dev, gpio, "pcie_wakeup");
+		if(ret < 0){
+			printk("%s() devm_gpio_request pcie_wakeup request ERROR\n", __FUNCTION__);
+			goto err;
+		}
+
+		ret = gpio_direction_output(gpio, 1); 
+		if(ret < 0){
+			printk("%s() gpio_direction_input pcie_wakeup set ERROR\n", __FUNCTION__);
+			goto err;
+		}
+	}
+    printk("pcie_wakeup ....ok!\r\n"); 
+	*/
+
+
+	nk_class = class_create(THIS_MODULE, "io_control");
+#if 0
+	ret = class_create_file(nk_class, &class_attr_en_4g_gpio);
+	if (ret) {
+		printk(KERN_ERR "%s:Fail to creat en_4g_gpio class file\n", __func__);
+		return ret;
+	}else
+	printk("class_create io_control en_4g_gpio OK !!!!\n");
+	
+	ret = class_create_file(nk_class, &class_attr_gpio_op0);
+	if (ret) {
+		printk(KERN_ERR "%s:Fail to creat gpio_op0 class file\n", __func__);
+		return ret;
+	}else
+	printk("class_create io_control gpio_op0 OK !!!!\n");
+
+	ret = class_create_file(nk_class, &class_attr_gpio_op1);
+	if (ret) {
+		printk(KERN_ERR "%s:Fail to creat gpio_op1 class file\n", __func__);
+		return ret;
+	}else
+	printk("class_create io_control gpio_op1 OK !!!!\n");
+
+	ret = class_create_file(nk_class, &class_attr_gpio_op2);
+	if (ret) {
+		printk(KERN_ERR "%s:Fail to creat gpio_op2 class file\n", __func__);
+		return ret;
+	}else
+	printk("class_create io_control gpio_op2 OK !!!!\n");
+
+	ret = class_create_file(nk_class, &class_attr_gpio_op3);
+	if (ret) {
+		printk(KERN_ERR "%s:Fail to creat gpio_op3 class file\n", __func__);
+		return ret;
+	}else
+	printk("class_create io_control gpio_op3 OK !!!!\n");
+
+	ret = class_create_file(nk_class, &class_attr_gpio_op4);
+	if (ret) {
+		printk(KERN_ERR "%s:Fail to creat gpio_op4 class file\n", __func__);
+		return ret;
+	}else
+	printk("class_create io_control gpio_op4 OK !!!!\n");
+
+	ret = class_create_file(nk_class, &class_attr_gpio_op5);
+	if (ret) {
+		printk(KERN_ERR "%s:Fail to creat gpio_op5 class file\n", __func__);
+		return ret;
+	}else
+	printk("class_create io_control gpio_op5 OK !!!!\n");
+
+	ret = class_create_file(nk_class, &class_attr_gpio_ip0);
+	if (ret) {
+		printk(KERN_ERR "%s:Fail to creat gpio_ip0 class file\n", __func__);
+		return ret;
+	}else
+	printk("class_create io_control gpio_ip0 OK !!!!\n");
+
+	ret = class_create_file(nk_class, &class_attr_gpio_ip1);
+	if (ret) {
+		printk(KERN_ERR "%s:Fail to creat gpio_ip1 class file\n", __func__);
+		return ret;
+	}else
+	printk("class_create io_control gpio_ip1 OK !!!!\n");
+
+	ret = class_create_file(nk_class, &class_attr_gpio_ip2);
+	if (ret) {
+		printk(KERN_ERR "%s:Fail to creat gpio_ip2 class file\n", __func__);
+		return ret;
+	}else
+	printk("class_create io_control gpio_ip2 OK !!!!\n");
+
+	ret = class_create_file(nk_class, &class_attr_gpio_ip3);
+	if (ret) {
+		printk(KERN_ERR "%s:Fail to creat gpio_ip3 class file\n", __func__);
+		return ret;
+	}else
+	printk("class_create io_control gpio_ip3 OK !!!!\n");
+
+	ret = class_create_file(nk_class, &class_attr_gpio_ip4);
+	if (ret) {
+		printk(KERN_ERR "%s:Fail to creat gpio_ip4 class file\n", __func__);
+		return ret;
+	}else
+	printk("class_create io_control gpio_ip4 OK !!!!\n");
+
+	ret = class_create_file(nk_class, &class_attr_gpio_ip5);
+	if (ret) {
+		printk(KERN_ERR "%s:Fail to creat gpio_ip5 class file\n", __func__);
+		return ret;
+	}else
+	printk("class_create io_control gpio_ip5 OK !!!!\n");
+	
+	ret = class_create_file(nk_class, &class_attr_led_display);
+	if (ret) {
+		printk(KERN_ERR "%s:Fail to creat led_display class file\n", __func__);
+		return ret;
+	}else
+	printk("class_create nk_io_control led OK !!!!\n");	
+
+   ret = class_create_file(nk_class, &class_attr_mic_switch);
+   if (ret) {
+           printk(KERN_ERR "%s:Fail to creat mic_switch class file\n", __func__);
+           return ret;
+   }else
+   printk("class_create nk_io_control mic OK !!!!\n");	
+#endif
+		   
+	NKpdata_info = pdata;
+
+	printk(" #######nk_io_control_probe end####### \n");
+	return 0;
+err:
+	kfree(pdata);
+	return ret;
+}
+#endif
+
+static int nk_io_control_remove(struct platform_device *pdev)
+{
+	if(NKpdata_info)
+		kfree(NKpdata_info);
+	return 0;
+}
+
+static int nk_io_control_suspend(struct platform_device *pdev, pm_message_t state)
+{
+	printk("LED_early_suspend LED_early_suspend LED_early_suspend !!!!\n");
+
+	//enable = 0;
+	//LED_SET(0);
+	return 0;
+}
+
+static int nk_io_control_resume(struct platform_device *pdev)
+{
+	int ret,reset_pin;
+	printk("nk_io resume !!!!\n");
+	ret = gpio_get_value(120);
+	printk("edp_reset gpio value : %d\n",ret);
+
+        usleep_range(80000, 100000);
+	gpio_set_value(120,0);
+//    	gpio_direction_output(120, 0);
+        usleep_range(80000, 100000);
+	ret = gpio_get_value(120);
+	printk("edp_reset gpio value : %d\n",ret);
+//    	gpio_direction_output(120, 1);
+	gpio_set_value(120,1);
+    	usleep_range(80000, 100000);
+	ret = gpio_get_value(120);
+	printk("edp_reset gpio value : %d\n",ret);
+
+	//enable = 1;
+    	//LED_SET(11);
+	return 0;
+}
+
+static const struct of_device_id nk_io_control_of_match[] = {
+        { .compatible = "nk_io_control", },
+        {},
+};
+MODULE_DEVICE_TABLE(of, nk_io_control_of_match);
+
+static struct platform_driver nk_io_control_driver = {
+	.probe	= nk_io_control_probe,
+	.remove = nk_io_control_remove,
+	.resume = 	nk_io_control_resume,	
+	.suspend = 	nk_io_control_suspend,	
+	.driver	= {
+		.name	= "nk_io_control",
+		.owner	= THIS_MODULE,
+		.of_match_table = of_match_ptr(nk_io_control_of_match),		
+	},
+};
+
+static int __init nk_io_control_init(void)
+{
+	platform_driver_register(&nk_io_control_driver);
+	return 0;
+}
+
+static void __exit nk_io_control_exit(void)
+{
+	platform_driver_unregister(&nk_io_control_driver);
+}
+
+subsys_initcall(nk_io_control_init);
+
+//late_initcall(nk_io_control_init);
+MODULE_DESCRIPTION("nk io Core Driver");
+MODULE_LICENSE("GPL");
diff --git a/kernel/drivers/misc/nkio/nkio.h b/kernel/drivers/misc/nkio/nkio.h
new file mode 100755
index 0000000..e94e17f
--- /dev/null
+++ b/kernel/drivers/misc/nkio/nkio.h
@@ -0,0 +1,36 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef NK_IO_H
+#define NK_IO_H
+
+struct nk_io_pdata{
+	unsigned int vcc_5v_io;
+	unsigned int vcc_3_3v_io;
+	unsigned int vcc_12v_io;
+	unsigned int usb_5v_gpio;
+	//unsigned int hub_5V_rest_gpio;
+	//unsigned int hub_5V_gpio;
+	unsigned int led_gpio;
+	unsigned int mic_switch_gpio;
+	unsigned int audio_switch_gpio;
+	unsigned int wake_4g_gpio;
+	unsigned int reset_4g_gpio;
+	unsigned int en_4g_gpio;
+	unsigned int air_mode_4g_gpio;
+	unsigned int usb_en_oc_gpio;
+	unsigned int lcd_bk_en_gpio;
+	unsigned int lcd_pwblk_gpio;
+	unsigned int vcc3_io_en_gpio;
+	
+	unsigned int hub_host2_5V_rest_gpio;
+	unsigned int hub_host2_5v_gpio; 	
+	unsigned int hub_host3_5V_rest_gpio;
+	unsigned int hub_host3_5v_gpio; 
+	unsigned int edp_power_supply_gpio;
+	unsigned int edp_enable_gpio;
+   	unsigned int tp_enable;
+	unsigned int vddio_mipi;
+//    unsigned int tp_reset;
+};
+
+#endif
+
diff --git a/kernel/drivers/misc/nkmcu/Makefile b/kernel/drivers/misc/nkmcu/Makefile
new file mode 100644
index 0000000..aca06fb
--- /dev/null
+++ b/kernel/drivers/misc/nkmcu/Makefile
@@ -0,0 +1 @@
+obj-y += nk_mcu.o 
diff --git a/kernel/drivers/misc/nkmcu/nk_mcu.c b/kernel/drivers/misc/nkmcu/nk_mcu.c
new file mode 100755
index 0000000..b0702be
--- /dev/null
+++ b/kernel/drivers/misc/nkmcu/nk_mcu.c
@@ -0,0 +1,161 @@
+#include <linux/module.h>
+#include <linux/clk-provider.h>
+#include <linux/i2c.h>
+#include <linux/delay.h>
+
+static struct i2c_client s_m_client;
+static struct i2c_client* m_client;
+ 
+//写16位寄存器
+static inline int nkmcu_reg_write(struct i2c_client *client,int index,unsigned short reg, unsigned char val)
+{
+	unsigned char u8_buf[3] = { 0 };
+	unsigned int buf_len = 3;
+	int retry, timeout = 5;
+	int ret;
+
+	ret = 0;
+	u8_buf[0] = (reg >> 8) & 0xFF;//寄存器地址高位
+	u8_buf[1] = reg & 0xFF;  //寄存器地址低位
+	u8_buf[2] = val; //要发送的数据
+
+	//pdata->client->addr = ADDR + index;
+	for (retry = 0; retry < timeout; retry++) 
+    {
+		if (i2c_master_send(client, u8_buf, buf_len) < 0) 
+        {
+			pr_err("%s:write reg error: reg=0x%x, val=0x%x, retry = %d.\n", __func__, reg, val, retry);
+			ret = -1;
+			msleep(5);
+			continue;
+		}
+		else
+        {      
+			pr_err("%s:write reg ok: reg=0x%x, val=0x%x, retry = %d.\n", __func__, reg, val, retry);
+			ret = 0;
+            break;
+        }
+	}
+	return ret;
+}
+
+//16位读
+static inline int nkmcu_reg_read(struct i2c_client *client, int index, unsigned short reg)
+{
+	unsigned char u8_buf[2] = { 0 };
+	unsigned int buf_len = 2;
+	int retry, timeout = 5;
+	unsigned char u8_val = 0;
+
+	u8_buf[0] = (reg >> 8) & 0xFF;//寄存器地址高位
+	u8_buf[1] = reg & 0xFF;//寄存器地址低位
+
+	//pdata->client->addr = ADDR + index;
+	for (retry = 0; retry < timeout; retry++) 
+    {
+		if (i2c_master_send(client, u8_buf, buf_len) < 0) 
+        {
+			pr_err("%s:read reg error on send: reg=0x%x, retry = %d.\n", __func__, reg, retry);
+			msleep(5);
+			continue;
+		}
+		if (i2c_master_recv(client, &u8_val, 1) != 1) {
+			pr_err("%s:read reg error on recv: reg=0x%x, retry = %d.\n", __func__, reg, retry);
+			msleep(5);
+			continue;
+		}
+		break;
+	}
+
+	if (retry >= timeout) {
+		pr_err("%s:read reg error: reg=0x%x.\n", __func__, reg);
+		return -1;
+	}
+
+	return u8_val;
+}
+
+void nkmcu_device_shutdown(void)
+{
+	int ret;
+	
+	pr_err("nkmcu_device_shutdown.. \n");
+	
+	//powenoff
+	if (m_client != NULL)
+	{	
+		ret = nkmcu_reg_write(m_client, 0x00, 0x06, 0x01);
+		if (ret < 0)	
+			pr_err("nkmcu_device_shutdown..failed \n");	
+		else
+			pr_err("nkmcu_device_shutdown.. ok \n");
+	}	
+	
+}
+EXPORT_SYMBOL(nkmcu_device_shutdown);
+	
+static int  nk_mcu_probe(struct i2c_client *client, const struct i2c_device_id *id)
+{
+	struct device_node *np = client->dev.of_node;
+	int ret;
+	
+	printk("%s: probe\n", __FUNCTION__);
+	
+	/* check state of calendar information */
+	//device id
+	//i2c_smbus_read_word_data
+	msleep(100);
+	//ret = i2c_smbus_read_byte_data(client, 0x00);
+	ret = nkmcu_reg_read(client, 0x00, 0x00);
+	printk("device id:%x \n", ret);
+	if (ret != 0xaa)
+		goto error;
+	
+	//powenon
+	msleep(100);
+	//ret = i2c_smbus_write_word_data(client, 0x07, 0x01);
+	ret = nkmcu_reg_write(client, 0x00, 0x07, 0x01);
+	printk("poweron command:%x \n", ret);
+	if (ret < 0)
+		goto error;
+	
+	//m_client = client;
+	memcpy(&s_m_client, client, sizeof(struct i2c_client));
+	m_client = &s_m_client;
+	return 0;
+	
+error:
+	return -1;			
+}
+
+static const struct i2c_device_id nk_mcu_id[] = {
+        { "nk_mcu", 0 },
+        { }
+};
+
+static struct i2c_driver nk_mcu_driver = {
+        .driver         = {
+                .name   = "nk_mcu",
+                .owner  = THIS_MODULE,
+        },
+        .probe          = nk_mcu_probe,
+        .id_table       = nk_mcu_id,
+};
+
+static int __init nk_mcu_init(void)
+{
+        return i2c_add_driver(&nk_mcu_driver);
+}
+
+static void __exit nk_mcu_exit(void)
+{
+        i2c_del_driver(&nk_mcu_driver);
+}
+
+
+MODULE_AUTHOR("ben@hotmail.com");
+MODULE_DESCRIPTION("nodka mcu driver");
+MODULE_LICENSE("GPL");
+
+late_initcall(nk_mcu_init);
+module_exit(nk_mcu_exit);
diff --git a/mk-rootfs.sh b/mk-rootfs.sh
new file mode 100755
index 0000000..c654dec
--- /dev/null
+++ b/mk-rootfs.sh
@@ -0,0 +1,50 @@
+#!/bin/bash -e
+TARGET_ROOTFS_DIR=./debian/debian_rootfs
+MOUNTPOINT=./temp
+ROOTFSIMAGE=rootfs.ext4
+OUT=$PWD/tools/linux/Linux_Pack_Firmware/rockdev/Image/
+
+echo Making rootfs!
+
+if [ -e ${ROOTFSIMAGE} ]; then 
+	rm ${ROOTFSIMAGE}
+fi
+if [ -e ${MOUNTPOINT} ]; then 
+	rm -r ${MOUNTPOINT}
+fi
+
+# Create directories
+mkdir ${MOUNTPOINT}
+dd if=/dev/zero of=${ROOTFSIMAGE} bs=1M count=0 seek=4300
+
+finish() {
+	sudo umount ${MOUNTPOINT} || true
+	echo -e "\e[31m MAKE ROOTFS FAILED.\e[0m"
+	exit -1
+}
+
+echo Format rootfs to ext4
+mkfs.ext4 ${ROOTFSIMAGE}
+
+echo Mount rootfs to ${MOUNTPOINT}
+sudo mount  ${ROOTFSIMAGE} ${MOUNTPOINT}
+trap finish ERR
+
+echo Copy rootfs to ${MOUNTPOINT}
+sudo cp -rvfp ${TARGET_ROOTFS_DIR}/*  ${MOUNTPOINT}
+sync
+
+
+echo Umount rootfs
+sudo umount ${MOUNTPOINT}
+
+echo Rootfs Image: ${ROOTFSIMAGE}
+
+e2fsck -p -f ${ROOTFSIMAGE}
+resize2fs -M ${ROOTFSIMAGE}
+
+#[ ! -d ${OUT} ] && mkdir ${OUT}
+cp $ROOTFSIMAGE ${OUT}
+
+unlink $ROOTFSIMAGE
+cd ..

--
Gitblit v1.6.2