summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Lo <kevlo@cvs.openbsd.org>2023-04-28 01:24:15 +0000
committerKevin Lo <kevlo@cvs.openbsd.org>2023-04-28 01:24:15 +0000
commitb2cbd08f0fb3abb9202ad6db1439587a50c0eae0 (patch)
tree661787a63f772751850bc7fc8a31ece2ff4350fe
parent0f75be51a50da9f76eac648408c7be1ce46780a4 (diff)
Add support for RTL8188FTV chip to urtwn(4).
Tested with Comfast CF-WU710N v4. "go ahead" deraadt@ OK stsp@
-rw-r--r--distrib/amd64/ramdisk_cd/list3
-rw-r--r--distrib/arm64/ramdisk/list3
-rw-r--r--distrib/armv7/ramdisk/list3
-rw-r--r--distrib/i386/ramdisk_cd/list3
-rw-r--r--distrib/macppc/ramdisk/list3
-rw-r--r--distrib/octeon/ramdisk/list3
-rw-r--r--distrib/riscv64/ramdisk/list3
-rw-r--r--share/man/man4/urtwn.418
-rw-r--r--share/man/man4/usb.46
-rw-r--r--sys/dev/ic/r92creg.h248
-rw-r--r--sys/dev/ic/rtwn.c263
-rw-r--r--sys/dev/ic/rtwnvar.h5
-rw-r--r--sys/dev/microcode/urtwn/Makefile5
-rw-r--r--sys/dev/microcode/urtwn/build.c3
-rw-r--r--sys/dev/microcode/urtwn/microcode.h1916
-rw-r--r--sys/dev/usb/if_urtwn.c180
-rw-r--r--sys/dev/usb/usbdevs3
17 files changed, 2539 insertions, 129 deletions
diff --git a/distrib/amd64/ramdisk_cd/list b/distrib/amd64/ramdisk_cd/list
index f1cd0cdcdb0..2daf2d018ed 100644
--- a/distrib/amd64/ramdisk_cd/list
+++ b/distrib/amd64/ramdisk_cd/list
@@ -1,4 +1,4 @@
-# $OpenBSD: list,v 1.5 2021/10/04 01:34:29 kevlo Exp $
+# $OpenBSD: list,v 1.6 2023/04/28 01:24:14 kevlo Exp $
SRCDIRS distrib/special
@@ -97,6 +97,7 @@ COPY ${DESTDIR}/etc/firmware/rtwn-rtl8192cU_B etc/firmware/rtwn-rtl8192cU_B
COPY ${DESTDIR}/etc/firmware/rtwn-rtl8723 etc/firmware/rtwn-rtl8723
COPY ${DESTDIR}/etc/firmware/rtwn-rtl8723_B etc/firmware/rtwn-rtl8723_B
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8188eu etc/firmware/urtwn-rtl8188eu
+COPY ${DESTDIR}/etc/firmware/urtwn-rtl8188ftv etc/firmware/urtwn-rtl8188ftv
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192cT etc/firmware/urtwn-rtl8192cT
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192cU etc/firmware/urtwn-rtl8192cU
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192eu etc/firmware/urtwn-rtl8192eu
diff --git a/distrib/arm64/ramdisk/list b/distrib/arm64/ramdisk/list
index d8971aa9f7a..38f938ecc1d 100644
--- a/distrib/arm64/ramdisk/list
+++ b/distrib/arm64/ramdisk/list
@@ -1,4 +1,4 @@
-# $OpenBSD: list,v 1.21 2023/04/03 10:51:50 kn Exp $
+# $OpenBSD: list,v 1.22 2023/04/28 01:24:14 kevlo Exp $
SRCDIRS distrib/special
@@ -96,6 +96,7 @@ COPY ${DESTDIR}/etc/firmware/atu-rfmd2958smc-ext etc/firmware/atu-rfmd2958smc-ex
COPY ${DESTDIR}/etc/firmware/atu-rfmd2958smc-int etc/firmware/atu-rfmd2958smc-int
COPY ${DESTDIR}/etc/firmware/rsu-rtl8712 etc/firmware/rsu-rtl8712
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8188eu etc/firmware/urtwn-rtl8188eu
+COPY ${DESTDIR}/etc/firmware/urtwn-rtl8188ftv etc/firmware/urtwn-rtl8188ftv
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192cT etc/firmware/urtwn-rtl8192cT
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192cU etc/firmware/urtwn-rtl8192cU
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192eu etc/firmware/urtwn-rtl8192eu
diff --git a/distrib/armv7/ramdisk/list b/distrib/armv7/ramdisk/list
index 3d3dfff0df9..ad58619d228 100644
--- a/distrib/armv7/ramdisk/list
+++ b/distrib/armv7/ramdisk/list
@@ -1,4 +1,4 @@
-# $OpenBSD: list,v 1.47 2022/02/19 08:33:28 visa Exp $
+# $OpenBSD: list,v 1.48 2023/04/28 01:24:14 kevlo Exp $
SRCDIRS distrib/special
@@ -96,6 +96,7 @@ COPY ${DESTDIR}/etc/firmware/atu-rfmd2958smc-ext etc/firmware/atu-rfmd2958smc-ex
COPY ${DESTDIR}/etc/firmware/atu-rfmd2958smc-int etc/firmware/atu-rfmd2958smc-int
COPY ${DESTDIR}/etc/firmware/rsu-rtl8712 etc/firmware/rsu-rtl8712
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8188eu etc/firmware/urtwn-rtl8188eu
+COPY ${DESTDIR}/etc/firmware/urtwn-rtl8188ftv etc/firmware/urtwn-rtl8188ftv
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192cT etc/firmware/urtwn-rtl8192cT
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192cU etc/firmware/urtwn-rtl8192cU
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192eu etc/firmware/urtwn-rtl8192eu
diff --git a/distrib/i386/ramdisk_cd/list b/distrib/i386/ramdisk_cd/list
index 80b80d3725c..d582b5bdffc 100644
--- a/distrib/i386/ramdisk_cd/list
+++ b/distrib/i386/ramdisk_cd/list
@@ -1,4 +1,4 @@
-# $OpenBSD: list,v 1.4 2021/10/04 01:34:29 kevlo Exp $
+# $OpenBSD: list,v 1.5 2023/04/28 01:24:14 kevlo Exp $
SRCDIRS distrib/special
@@ -97,6 +97,7 @@ COPY ${DESTDIR}/etc/firmware/rtwn-rtl8192cU_B etc/firmware/rtwn-rtl8192cU_B
COPY ${DESTDIR}/etc/firmware/rtwn-rtl8723 etc/firmware/rtwn-rtl8723
COPY ${DESTDIR}/etc/firmware/rtwn-rtl8723_B etc/firmware/rtwn-rtl8723_B
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8188eu etc/firmware/urtwn-rtl8188eu
+COPY ${DESTDIR}/etc/firmware/urtwn-rtl8188ftv etc/firmware/urtwn-rtl8188ftv
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192cT etc/firmware/urtwn-rtl8192cT
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192cU etc/firmware/urtwn-rtl8192cU
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192eu etc/firmware/urtwn-rtl8192eu
diff --git a/distrib/macppc/ramdisk/list b/distrib/macppc/ramdisk/list
index db7d84b9ec2..62d9d91dd6b 100644
--- a/distrib/macppc/ramdisk/list
+++ b/distrib/macppc/ramdisk/list
@@ -1,4 +1,4 @@
-# $OpenBSD: list,v 1.78 2022/05/23 16:58:10 krw Exp $
+# $OpenBSD: list,v 1.79 2023/04/28 01:24:14 kevlo Exp $
SRCDIRS distrib/special
@@ -79,6 +79,7 @@ COPY ${DESTDIR}/etc/firmware/rum-rt2573 etc/firmware/rum-rt2573
COPY ${DESTDIR}/etc/firmware/run-rt2870 etc/firmware/run-rt2870
COPY ${DESTDIR}/etc/firmware/run-rt3071 etc/firmware/run-rt3071
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8188eu etc/firmware/urtwn-rtl8188eu
+COPY ${DESTDIR}/etc/firmware/urtwn-rtl8188ftv etc/firmware/urtwn-rtl8188ftv
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192cT etc/firmware/urtwn-rtl8192cT
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192cU etc/firmware/urtwn-rtl8192cU
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192eu etc/firmware/urtwn-rtl8192eu
diff --git a/distrib/octeon/ramdisk/list b/distrib/octeon/ramdisk/list
index f50acd58245..a54d69ed4ca 100644
--- a/distrib/octeon/ramdisk/list
+++ b/distrib/octeon/ramdisk/list
@@ -1,4 +1,4 @@
-# $OpenBSD: list,v 1.32 2021/10/04 01:34:29 kevlo Exp $
+# $OpenBSD: list,v 1.33 2023/04/28 01:24:14 kevlo Exp $
SRCDIRS distrib/special
@@ -69,6 +69,7 @@ SPECIAL rm bin/md5
# firmware we might need
COPY ${DESTDIR}/etc/firmware/rsu-rtl8712 etc/firmware/rsu-rtl8712
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8188eu etc/firmware/urtwn-rtl8188eu
+COPY ${DESTDIR}/etc/firmware/urtwn-rtl8188ftv etc/firmware/urtwn-rtl8188ftv
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192cT etc/firmware/urtwn-rtl8192cT
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192cU etc/firmware/urtwn-rtl8192cU
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192eu etc/firmware/urtwn-rtl8192eu
diff --git a/distrib/riscv64/ramdisk/list b/distrib/riscv64/ramdisk/list
index b765f96d74d..d04c6addcd8 100644
--- a/distrib/riscv64/ramdisk/list
+++ b/distrib/riscv64/ramdisk/list
@@ -1,4 +1,4 @@
-# $OpenBSD: list,v 1.6 2022/02/03 10:27:33 visa Exp $
+# $OpenBSD: list,v 1.7 2023/04/28 01:24:14 kevlo Exp $
SRCDIRS distrib/special
@@ -74,6 +74,7 @@ SPECIAL rm usr/bin/ftp-ssl
# firmware we might need
COPY ${DESTDIR}/etc/firmware/rsu-rtl8712 etc/firmware/rsu-rtl8712
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8188eu etc/firmware/urtwn-rtl8188eu
+COPY ${DESTDIR}/etc/firmware/urtwn-rtl8188ftv etc/firmware/urtwn-rtl8188ftv
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192cT etc/firmware/urtwn-rtl8192cT
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192cU etc/firmware/urtwn-rtl8192cU
COPY ${DESTDIR}/etc/firmware/urtwn-rtl8192eu etc/firmware/urtwn-rtl8192eu
diff --git a/share/man/man4/urtwn.4 b/share/man/man4/urtwn.4
index f76c2c332f8..6dc933d834c 100644
--- a/share/man/man4/urtwn.4
+++ b/share/man/man4/urtwn.4
@@ -1,4 +1,4 @@
-.\" $OpenBSD: urtwn.4,v 1.53 2021/10/24 12:32:42 kn Exp $
+.\" $OpenBSD: urtwn.4,v 1.54 2023/04/28 01:24:14 kevlo Exp $
.\"
.\" Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr>
.\"
@@ -14,12 +14,12 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: October 24 2021 $
+.Dd $Mdocdate: April 28 2023 $
.Dt URTWN 4
.Os
.Sh NAME
.Nm urtwn
-.Nd Realtek RTL8188CU/RTL8188EU/RTL8192CU/RTL8192EU USB IEEE 802.11b/g/n wireless
+.Nd Realtek RTL8188CU/RTL8188EU/RTL8188FTV/RTL8192CU/RTL8192EU USB IEEE 802.11b/g/n wireless
network device
.Sh SYNOPSIS
.Cd "urtwn* at uhub? port ?"
@@ -27,10 +27,10 @@ network device
The
.Nm
driver supports USB 2.0 wireless network devices based on Realtek
-RTL8188CU, RTL8188CE-VAU, RTL8188EU, RTL8188RU, RTL8192CU and RTL8192EU
-chipsets.
+RTL8188CU, RTL8188CE-VAU, RTL8188EU, RTL8188FTV, RTL8188RU, RTL8192CU
+and RTL8192EU chipsets.
.Pp
-The RTL8188CU and RTL8188EU are highly integrated 802.11n adapters
+The RTL8188CU, RTL8188EU and RTL8188FTV are highly integrated 802.11n adapters
that combine a MAC, a 1T1R capable baseband and an RF in a single chip.
They operate in the 2GHz spectrum only.
The RTL8188RU is a high-power variant of the RTL8188CU.
@@ -92,6 +92,7 @@ the driver when the device is attached:
.It Pa /etc/firmware/urtwn-rtl8192cU
.It Pa /etc/firmware/urtwn-rtl8192eu
.It Pa /etc/firmware/urtwn-rtl8188eu
+.It Pa /etc/firmware/urtwn-rtl8188ftv
.El
.Sh HARDWARE
The following adapters should work:
@@ -105,9 +106,10 @@ The following adapters should work:
.It Asus USB-N10 NANO B1
.It B-Link BL-LW05-5R
.It Belkin F7D1102 Surf Wireless Micro
+.It Comfast CF-WU710N v4
.It D-Link DWA-121
-.It D-Link DWA-123 rev \&D1
-.It D-Link DWA-125 rev \&D1
+.It D-Link DWA-123 rev D1
+.It D-Link DWA-125 rev D1
.It D-Link DWA-131 rev B, E1
.It D-Link DWA-133
.It D-Link DWA-135
diff --git a/share/man/man4/usb.4 b/share/man/man4/usb.4
index 75262e2b4c3..f65bc86f457 100644
--- a/share/man/man4/usb.4
+++ b/share/man/man4/usb.4
@@ -1,4 +1,4 @@
-.\" $OpenBSD: usb.4,v 1.214 2023/03/31 13:48:34 jmc Exp $
+.\" $OpenBSD: usb.4,v 1.215 2023/04/28 01:24:14 kevlo Exp $
.\" $NetBSD: usb.4,v 1.15 1999/07/29 14:20:32 augustss Exp $
.\"
.\" Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -28,7 +28,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd $Mdocdate: March 31 2023 $
+.Dd $Mdocdate: April 28 2023 $
.Dt USB 4
.Os
.Sh NAME
@@ -163,7 +163,7 @@ Ralink Technology/MediaTek USB IEEE 802.11b/g wireless network device
.It Xr urtw 4
Realtek RTL8187L/RTL8187B USB IEEE 802.11b/g wireless network device
.It Xr urtwn 4
-Realtek RTL8188CU/RTL8188EU/RTL8192CU/RTL8192EU USB IEEE 802.11b/g/n wireless
+Realtek RTL8188CU/RTL8188EU/RTL8188FTV/RTL8192CU/RTL8192EU USB IEEE 802.11b/g/n wireless
network device
.It Xr wi 4
Intersil PRISM 2-3 IEEE 802.11b wireless network device
diff --git a/sys/dev/ic/r92creg.h b/sys/dev/ic/r92creg.h
index b8d1a2f5ed7..cd8b8dab458 100644
--- a/sys/dev/ic/r92creg.h
+++ b/sys/dev/ic/r92creg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: r92creg.h,v 1.29 2023/04/27 03:19:45 kevlo Exp $ */
+/* $OpenBSD: r92creg.h,v 1.30 2023/04/28 01:24:14 kevlo Exp $ */
/*-
* Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr>
@@ -40,6 +40,7 @@
#define R92C_LDOHCI12_CTRL 0x022
#define R92C_LPLDO_CTRL 0x023
#define R92C_AFE_XTAL_CTRL 0x024
+#define R92C_AFE_LDO_CTRL 0x027
#define R92C_AFE_PLL_CTRL 0x028
#define R92C_AFE_CTRL3 0x02c
#define R92C_EFUSE_CTRL 0x030
@@ -148,14 +149,14 @@
#define R92C_UART_TX_DES 0x370
#define R92C_UART_RX_DES 0x378
-#define R92C_VOQ_INFORMATION 0x0400
-#define R92C_VIQ_INFORMATION 0x0404
-#define R92C_BEQ_INFORMATION 0x0408
-#define R92C_BKQ_INFORMATION 0x040C
-#define R92C_MGQ_INFORMATION 0x0410
-#define R92C_HGQ_INFORMATION 0x0414
-#define R92C_BCNQ_INFORMATION 0x0418
-#define R92C_CPU_MGQ_INFORMATION 0x041C
+#define R92C_VOQ_INFORMATION 0x0400
+#define R92C_VIQ_INFORMATION 0x0404
+#define R92C_BEQ_INFORMATION 0x0408
+#define R92C_BKQ_INFORMATION 0x040c
+#define R92C_MGQ_INFORMATION 0x0410
+#define R92C_HGQ_INFORMATION 0x0414
+#define R92C_BCNQ_INFORMATION 0x0418
+#define R92C_CPU_MGQ_INFORMATION 0x041c
/* Protocol Configuration. */
#define R92C_FWHW_TXQ_CTRL 0x420
@@ -168,6 +169,7 @@
#define R92C_RARFRC 0x438
#define R92C_RRSR 0x440
#define R92C_ARFR(i) (0x444 + (i) * 4)
+#define R88F_AMPDU_MAX_TIME 0x456
#define R92C_AGGLEN_LMT 0x458
#define R92C_AMPDU_MIN_SPACE 0x45c
#define R92C_TXPKTBUF_WMAC_LBK_BF_HD 0x45d
@@ -177,6 +179,7 @@
#define R92E_DATA_SC 0x483
#define R92C_INIDATA_RATE_SEL(macid) (0x484 + (macid))
#define R92C_QUEUE_CTRL 0x4c6
+#define R88F_HT_SINGLE_AMPDU 0x4c7
#define R92C_MAX_AGGR_NUM 0x4ca
#define R92C_BAR_MODE_CTRL 0x4cc
#define R88E_TX_RPT_CTRL 0x4ec
@@ -230,10 +233,12 @@
#define R92C_BWOPMODE 0x603
#define R92C_TCR 0x604
#define R92C_RCR 0x608
+#define R88F_RX_PKT_LIMIT 0x60c
#define R92C_RX_DRVINFO_SZ 0x60f
#define R92C_MACID 0x610
#define R92C_BSSID 0x618
#define R92C_MAR 0x620
+#define R88F_USTIME_EDCA 0x638
#define R92C_MAC_SPEC_SIFS 0x63a
#define R92C_RESP_SIFS_CCK 0x63c
#define R92C_RESP_SIFS_OFDM 0x63e
@@ -363,6 +368,10 @@
#define R92C_EFUSE_CTRL_ADDR_S 8
#define R92C_EFUSE_CTRL_VALID 0x80000000
+/* Bits for R92C_EFUSE_TEST. */
+#define R92C_EFUSE_TEST_SEL_M 0x00000300
+#define R92C_EFUSE_TEST_SEL_S 8
+
/* Bits for R92C_GPIO_MUXCFG. */
#define R92C_GPIO_MUXCFG_RFKILL 0x0008
#define R92C_GPIO_MUXCFG_ENBT 0x0020
@@ -553,7 +562,10 @@
#define R92C_TXDMA_OFFSET_CHK_DROP_DATA_EN 0x00000200
/* Bits for R92E_AUTO_LLT. */
-#define R92E_AUTO_LLT_EN 0x00010000
+#define R92E_AUTO_LLT_EN 0x00010000
+
+/* Bits for R92E_RXDMA_PRO. */
+#define R92E_RXDMA_PRO_DMA_MODE 0x02
/* Bits for R92C_FWHW_TXQ_CTRL. */
#define R92C_FWHW_TXQ_CTRL_AMPDU_RTY_NEW 0x80
@@ -579,6 +591,9 @@
#define R92C_RRSR_RSC_UPSUBCHNL 0x00400000
#define R92C_RRSR_SHORT 0x00800000
+/* Bits for R88F_HT_SINGLE_AMPDU. */
+#define R88F_HT_SINGLE_AMPDU_EN 0x80
+
/* Bits for R88E_TX_RPT_CTRL. */
#define R88E_TX_RPT_CTRL_EN 0x01
#define R88E_TX_RPT_CTRL_TIMER_EN 0x02
@@ -798,10 +813,12 @@
#define R92C_HSPI_READBACK(chain) (0x8b8 + (chain) * 4)
#define R92C_FPGA1_RFMOD 0x900
#define R92C_FPGA1_TXINFO 0x90c
+#define R88F_RX_DFIR 0x954
#define R92C_CCK0_SYSTEM 0xa00
#define R92C_CCK0_AFESETTING 0xa04
#define R92C_OFDM0_TRXPATHENA 0xc04
#define R92C_OFDM0_TRMUXPAR 0xc08
+#define R92C_OFDM0_RXAFE 0xc10
#define R92C_OFDM0_RXIQIMBALANCE(chain) (0xc14 + (chain) * 8)
#define R92C_OFDM0_ECCATHRESHOLD 0xc4c
#define R92C_OFDM0_AGCCORE1(chain) (0xc50 + (chain) * 8)
@@ -1363,6 +1380,35 @@ struct r88e_rom {
} __packed;
/*
+ * RTL8188FTV ROM image.
+ */
+struct r88f_rom {
+ uint16_t id;
+ uint8_t reserved1[14];
+ struct r88e_tx_pwr txpwr;
+ uint8_t reserved2[156];
+ uint8_t channel_plan;
+ uint8_t xtal;
+ uint8_t thermal_meter;
+ uint8_t iqk_lck;
+ uint8_t pa_type;
+ uint8_t lna_type_2g;
+ uint8_t reserved3[3];
+ uint8_t rf_board_opt;
+ uint8_t rf_feature_opt;
+ uint8_t rf_bt_opt;
+ uint8_t eeprom_version;
+ uint8_t eeprom_customer_id;
+ uint8_t reserved4[10];
+ uint16_t vid;
+ uint16_t pid;
+ uint8_t usb_optional_function;
+ uint8_t reserved5[2];
+ uint8_t macaddr[IEEE80211_ADDR_LEN];
+ uint8_t reserved6[291];
+} __packed;
+
+/*
* RTL8723A ROM images.
*/
struct r23a_rom {
@@ -1811,6 +1857,33 @@ static const struct {
{ 0x63f, 0x0e }, { 0x640, 0x40 }, { 0x66e, 0x05 }, { 0x700, 0x21 },
{ 0x701, 0x43 }, { 0x702, 0x65 }, { 0x703, 0x87 }, { 0x708, 0x21 },
{ 0x709, 0x43 }, { 0x70a, 0x65 }, { 0x70b, 0x87 }
+}, rtl8188ftv_mac[] = {
+ { 0x024, 0xdf }, { 0x025, 0x07 }, { 0x02b, 0x1c }, { 0x283, 0x20 },
+ { 0x421, 0x0f }, { 0x428, 0x0a }, { 0x429, 0x10 }, { 0x430, 0x00 },
+ { 0x431, 0x00 }, { 0x432, 0x00 }, { 0x433, 0x01 }, { 0x434, 0x04 },
+ { 0x435, 0x05 }, { 0x436, 0x07 }, { 0x437, 0x08 }, { 0x43c, 0x04 },
+ { 0x43d, 0x05 }, { 0x43e, 0x07 }, { 0x43f, 0x08 }, { 0x440, 0x5d },
+ { 0x441, 0x01 }, { 0x442, 0x00 }, { 0x444, 0x10 }, { 0x445, 0x00 },
+ { 0x446, 0x00 }, { 0x447, 0x00 }, { 0x448, 0x00 }, { 0x449, 0xf0 },
+ { 0x44a, 0x0f }, { 0x44b, 0x3e }, { 0x44c, 0x10 }, { 0x44d, 0x00 },
+ { 0x44e, 0x00 }, { 0x44f, 0x00 }, { 0x450, 0x00 }, { 0x451, 0xf0 },
+ { 0x452, 0x0f }, { 0x453, 0x00 }, { 0x456, 0x5e }, { 0x460, 0x44 },
+ { 0x461, 0x44 }, { 0x4bc, 0xc0 }, { 0x4c8, 0xff }, { 0x4c9, 0x08 },
+ { 0x4cc, 0xff }, { 0x4cd, 0xff }, { 0x4ce, 0x01 }, { 0x500, 0x26 },
+ { 0x501, 0xa2 }, { 0x502, 0x2f }, { 0x503, 0x00 }, { 0x504, 0x28 },
+ { 0x505, 0xa3 }, { 0x506, 0x5e }, { 0x507, 0x00 }, { 0x508, 0x2b },
+ { 0x509, 0xa4 }, { 0x50a, 0x5e }, { 0x50b, 0x00 }, { 0x50c, 0x4f },
+ { 0x50d, 0xa4 }, { 0x50e, 0x00 }, { 0x50f, 0x00 }, { 0x512, 0x1c },
+ { 0x514, 0x0a }, { 0x516, 0x0a }, { 0x525, 0x4f }, { 0x550, 0x10 },
+ { 0x551, 0x10 }, { 0x559, 0x02 }, { 0x55c, 0x28 }, { 0x55d, 0xff },
+ { 0x605, 0x30 }, { 0x608, 0x0e }, { 0x609, 0x2a }, { 0x620, 0xff },
+ { 0x621, 0xff }, { 0x622, 0xff }, { 0x623, 0xff }, { 0x624, 0xff },
+ { 0x625, 0xff }, { 0x626, 0xff }, { 0x627, 0xff }, { 0x638, 0x28 },
+ { 0x63c, 0x0a }, { 0x63d, 0x0a }, { 0x63e, 0x0e }, { 0x63f, 0x0e },
+ { 0x640, 0x40 }, { 0x642, 0x40 }, { 0x643, 0x00 }, { 0x652, 0xc8 },
+ { 0x66e, 0x05 }, { 0x700, 0x21 }, { 0x701, 0x43 }, { 0x702, 0x65 },
+ { 0x703, 0x87 }, { 0x708, 0x21 }, { 0x709, 0x43 }, { 0x70a, 0x65 },
+ { 0x70b, 0x87 }
}, rtl8192cu_mac[] = {
{ 0x420, 0x80 }, { 0x423, 0x00 }, { 0x430, 0x00 }, { 0x431, 0x00 },
{ 0x432, 0x00 }, { 0x433, 0x01 }, { 0x434, 0x04 }, { 0x435, 0x05 },
@@ -2378,6 +2451,104 @@ static const struct r92c_bb_prog rtl8188eu_bb_prog = {
};
/*
+ * RTL8188FTV.
+ */
+static const uint16_t rtl8188ftv_bb_regs[] = {
+ 0x800, 0x804, 0x808, 0x80c, 0x810, 0x814, 0x818, 0x81c, 0x820,
+ 0x824, 0x828, 0x82c, 0x830, 0x834, 0x838, 0x83c, 0x840, 0x844,
+ 0x848, 0x84c, 0x850, 0x854, 0x858, 0x85c, 0x860, 0x864, 0x868,
+ 0x86c, 0x870, 0x874, 0x878, 0x87c, 0x880, 0x884, 0x888, 0x88c,
+ 0x890, 0x894, 0x898, 0x89c, 0x900, 0x904, 0x908, 0x90c, 0x910,
+ 0x914, 0x948, 0x94c, 0x950, 0x954, 0x958, 0x95c, 0x96c, 0xa00,
+ 0xa04, 0xa08, 0xa0c, 0xa10, 0xa14, 0xa18, 0xa1c, 0xa20, 0xa24,
+ 0xa28, 0xa2c, 0xa70, 0xa74, 0xa78, 0xa7c, 0xa80, 0xa84, 0xa88,
+ 0xa8c, 0xa90, 0xa94, 0xa98, 0xa9c, 0xaa0, 0xb2c, 0xc00, 0xc04,
+ 0xc08, 0xc0c, 0xc10, 0xc14, 0xc18, 0xc1c, 0xc20, 0xc24, 0xc28,
+ 0xc2c, 0xc30, 0xc34, 0xc38, 0xc3c, 0xc40, 0xc44, 0xc48, 0xc4c,
+ 0xc50, 0xc54, 0xc58, 0xc5c, 0xc60, 0xc64, 0xc68, 0xc6c, 0xc70,
+ 0xc74, 0xc78, 0xc7c, 0xc80, 0xc84, 0xc88, 0xc8c, 0xc90, 0xc94,
+ 0xc98, 0xc9c, 0xca0, 0xca4, 0xca8, 0xcac, 0xcb0, 0xcb4, 0xcb8,
+ 0xcbc, 0xcc0, 0xcc4, 0xcc8, 0xccc, 0xcd0, 0xcd4, 0xcd8, 0xcdc,
+ 0xce0, 0xce4, 0xce8, 0xcec, 0xd00, 0xd04, 0xd08, 0xd0c, 0xd10,
+ 0xd14, 0xd18, 0xd2c, 0xd30, 0xd34, 0xd38, 0xd3c, 0xd40, 0xd44,
+ 0xd48, 0xd4c, 0xd50, 0xd54, 0xd58, 0xd5c, 0xd60, 0xd64, 0xd68,
+ 0xd6c, 0xd70, 0xd74, 0xd78, 0xe00, 0xe04, 0xe08, 0xe10, 0xe14,
+ 0xe18, 0xe1c, 0xe28, 0xe30, 0xe34, 0xe38, 0xe3c, 0xe40, 0xe44,
+ 0xe48, 0xe4c, 0xe50, 0xe54, 0xe58, 0xe5c, 0xe60, 0xe60, 0xe64,
+ 0xe6c, 0xe70, 0xe74, 0xe78, 0xe7c, 0xe80, 0xe84, 0xe88, 0xe8c,
+ 0xed0, 0xed4, 0xed8, 0xedc, 0xee0, 0xeec, 0xf14, 0xf4c, 0xf00
+};
+
+static const uint32_t rtl8188ftv_bb_vals[] = {
+ 0x80045700, 0x00000001, 0x0000fc00, 0x0000000a, 0x10001331,
+ 0x020c3d10, 0x00200385, 0x00000000, 0x01000100, 0x00390204,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00030000, 0x00000000, 0x569a569a, 0x569a569a, 0x00000130,
+ 0x00000000, 0x00000000, 0x27272700, 0x00000000, 0x25004000,
+ 0x00000808, 0x004f0201, 0xb0000b1e, 0x00000007, 0x00000000,
+ 0xccc000c0, 0x00000800, 0xfffffffe, 0x40302010, 0x00706050,
+ 0x00000000, 0x00000023, 0x00000000, 0x81121111, 0x00000002,
+ 0x00000201, 0x99000000, 0x00000010, 0x20003000, 0x4a880000,
+ 0x4bc5d87a, 0x04eb9b79, 0x00000003, 0x00d047c8, 0x80ff800c,
+ 0x8c898300, 0x2e7f120f, 0x9500bb78, 0x1114d028, 0x00881117,
+ 0x89140f00, 0xd1d80000, 0x5a7da0bd, 0x0000223b, 0x00d30000,
+ 0x101fbf00, 0x00000007, 0x00000900, 0x225b0606, 0x218075b1,
+ 0x00120000, 0x040c0000, 0x12345678, 0xabcdef00, 0x001b1b89,
+ 0x05100000, 0x3f000000, 0x00000000, 0x00000000, 0x48071d40,
+ 0x03a05611, 0x000000e4, 0x6c6c6c6c, 0x18800000, 0x40000100,
+ 0x08800000, 0x40000100, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x69e9cc4a, 0x31000040, 0x21688080, 0x00001714,
+ 0x1f78403f, 0x00010036, 0xec020107, 0x007f037f, 0x69553420,
+ 0x43bc0094, 0x00013169, 0x00250492, 0x00000000, 0x7112848b,
+ 0x47c07bff, 0x00000036, 0x2c7f000d, 0x020600db, 0x0000001f,
+ 0x00b91612, 0x390000e4, 0x11f60000, 0x40000100, 0x20200000,
+ 0x00091521, 0x00000000, 0x00121820, 0x00007f7f, 0x00000000,
+ 0x000300a0, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x28000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x64b22427, 0x00766932,
+ 0x00222222, 0x10000000, 0x37644302, 0x2f97d40c, 0x04030740,
+ 0x40020401, 0x0000907f, 0x20010201, 0xa0633333, 0x3333bc53,
+ 0x7a8f5b6f, 0xcb979975, 0x00000000, 0x80608000, 0x98000000,
+ 0x40127353, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x6437140a, 0x00000000, 0x00000282, 0x30032064, 0x4653de68,
+ 0x04518a3c, 0x00002101, 0x2a201c16, 0x1812362e, 0x322c2220,
+ 0x000e3c24, 0x2d2d2d2d, 0x2d2d2d2d, 0x0390272d, 0x2d2d2d2d,
+ 0x2d2d2d2d, 0x2d2d2d2d, 0x2d2d2d2d, 0x00000000, 0x1000dc1f,
+ 0x10008c1f, 0x02140102, 0x681604c2, 0x01007c00, 0x01004800,
+ 0xfb000000, 0x000028d1, 0x1000dc1f, 0x10008c1f, 0x02140102,
+ 0x28160d05, 0x00000008, 0x021400a0, 0x281600a0, 0x01c00010,
+ 0x01c00010, 0x02000010, 0x02000010, 0x02000010, 0x02000010,
+ 0x01c00010, 0x02000010, 0x01c00010, 0x01c00010, 0x01c00010,
+ 0x01c00010, 0x00000010, 0x00000010, 0x03c00010, 0x00000003,
+ 0x00000000, 0x00000300
+};
+
+static const uint32_t rtl8188ftv_agc_vals[] = {
+ 0xfc000001, 0xfb010001, 0xfa020001, 0xf9030001, 0xf8040001,
+ 0xf7050001, 0xf6060001, 0xf5070001, 0xf4080001, 0xf3090001,
+ 0xf20a0001, 0xf10b0001, 0xf00c0001, 0xef0d0001, 0xee0e0001,
+ 0xed0f0001, 0xec100001, 0xeb110001, 0xea120001, 0xe9130001,
+ 0xe8140001, 0xe7150001, 0xe6160001, 0xe5170001, 0xe4180001,
+ 0xe3190001, 0xe21a0001, 0xe11b0001, 0xe01c0001, 0xc21d0001,
+ 0xc11e0001, 0xc01f0001, 0xa5200001, 0xa4210001, 0xa3220001,
+ 0xa2230001, 0xa1240001, 0xa0250001, 0x65260001, 0x64270001,
+ 0x63280001, 0x62290001, 0x612a0001, 0x442b0001, 0x432c0001,
+ 0x422d0001, 0x412e0001, 0x402f0001, 0x21300001, 0x20310001,
+ 0x05320001, 0x04330001, 0x03340001, 0x02350001, 0x01360001,
+ 0x00370001, 0x00380001, 0x00390001, 0x003a0001, 0x003b0001,
+ 0x003c0001, 0x003d0001, 0x003e0001, 0x003f0001
+};
+
+static const struct r92c_bb_prog rtl8188ftv_bb_prog = {
+ nitems(rtl8188ftv_bb_regs),
+ rtl8188ftv_bb_regs,
+ rtl8188ftv_bb_vals,
+ nitems(rtl8188ftv_agc_vals),
+ rtl8188ftv_agc_vals
+};
+
+/*
* RTL8188RU.
*/
static const uint16_t rtl8188ru_bb_regs[] = {
@@ -2570,14 +2741,14 @@ static const struct r92c_bb_prog rtl8723a_bb_prog = {
*/
struct r92c_rf_prog {
int count;
- const uint8_t *regs;
+ const uint16_t *regs;
const uint32_t *vals;
};
/*
* RTL8192CU and RTL8192CE-VAU.
*/
-static const uint8_t rtl8192ce_rf1_regs[] = {
+static const uint16_t rtl8192ce_rf1_regs[] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e,
0x0f, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22,
0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2a, 0x2b,
@@ -2617,7 +2788,7 @@ static const uint32_t rtl8192ce_rf1_vals[] = {
0x30159
};
-static const uint8_t rtl8192ce_rf2_regs[] = {
+static const uint16_t rtl8192ce_rf2_regs[] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e,
0x0f, 0x12, 0x12, 0x12, 0x12, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13,
0x13, 0x13, 0x13, 0x13, 0x13, 0x14, 0x14, 0x14, 0x14, 0x15, 0x15,
@@ -2720,7 +2891,7 @@ static const struct r92c_rf_prog rtl8188cu_rf_prog[] = {
/*
* RTL8192EE and RTL8192EU.
*/
-static const uint8_t rtl8192e_rf_regs[] = {
+static const uint16_t rtl8192e_rf_regs[] = {
0x7f, 0x81, 0x00, 0x08, 0x18, 0x19, 0x1b, 0x1e, 0x1f, 0x2f, 0x3f,
0x42, 0x57, 0x58, 0x67, 0x83, 0xb0, 0xb1, 0xb2, 0xb4, 0xb5, 0xb6,
0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1,
@@ -2751,7 +2922,7 @@ static const uint32_t rtl8192e_rf_vals[] = {
0x00000, 0x00000, 0x00001, 0x80000, 0x33e70
};
-static const uint8_t rtl8192e_rf2_regs[] = {
+static const uint16_t rtl8192e_rf2_regs[] = {
0x7f, 0x81, 0x00, 0x08, 0x18, 0x19, 0x1b, 0x1e, 0x1f, 0x2f, 0x3f,
0x42, 0x57, 0x58, 0x67, 0x7f, 0x81, 0x83, 0x1c, 0xdf, 0xef, 0x51,
0x52, 0x53, 0x56, 0x35, 0x35, 0x35, 0x36, 0x36, 0x36, 0x36, 0x18,
@@ -2793,7 +2964,7 @@ static const struct r92c_rf_prog rtl8192e_rf_prog[] = {
/*
* RTL8188EU.
*/
-static const uint8_t rtl8188eu_rf_regs[] = {
+static const uint16_t rtl8188eu_rf_regs[] = {
0x00, 0x08, 0x18, 0x19, 0x1e, 0x1f, 0x2f, 0x3f, 0x42, 0x57, 0x58,
0x67, 0x83, 0xb0, 0xb1, 0xb2, 0xb4, 0xb6, 0xb7, 0xb8, 0xb9, 0xba,
0xbb, 0xbf, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca,
@@ -2831,6 +3002,49 @@ static const struct r92c_rf_prog rtl8188eu_rf_prog[] = {
};
/*
+ * RTL8188FTV.
+ */
+static const uint16_t rtl8188ftv_rf_regs[] = {
+ 0x000, 0x008, 0x018, 0x019, 0x01b, 0x01e, 0x01f, 0x02f, 0x03f, 0x042,
+ 0x057, 0x058, 0x067, 0x083, 0x0b0, 0x0b1, 0x0b2, 0x0b4, 0x0b5, 0x0b6,
+ 0x0b7, 0x0b8, 0x0b9, 0x0ba, 0x0bb, 0x0bf, 0x0c2, 0x0c3, 0x0c4, 0x0c5,
+ 0x0c6, 0x0c7, 0x0c8, 0x0c9, 0x0ca, 0x0df, 0x0ef, 0x051, 0x052, 0x053,
+ 0x056, 0x035, 0x035, 0x035, 0x036, 0x036, 0x036, 0x036, 0x018, 0x05a,
+ 0x019, 0x034, 0x034, 0x034, 0x034, 0x034, 0x034, 0x034, 0x034, 0x034,
+ 0x034, 0x034, 0x000, 0x084, 0x086, 0x087, 0x08e, 0x08f, 0x0ef, 0x03b,
+ 0x03b, 0x03b, 0x03b, 0x03b, 0x03b, 0x03b, 0x03b, 0x03b, 0x03b, 0x03b,
+ 0x03b, 0x03b, 0x03b, 0x03b, 0x03b, 0x0ef, 0x0ef, 0x03b, 0x03b, 0x0ef,
+ 0x0ef, 0x030, 0x031, 0x032, 0x0ef, 0x000, 0x018, 0xffe, 0xffe, 0x01f,
+ 0xffe, 0xffe, 0x01e, 0x01f, 0x000
+};
+
+static const uint32_t rtl8188ftv_rf_vals[] = {
+ 0x30000, 0x08400, 0x00407, 0x00012, 0x01c6c, 0x80009, 0x00880,
+ 0x1a060, 0x28000, 0x060c0, 0xd0000, 0xc0160, 0x01552, 0x00000,
+ 0xff9f0, 0x22218, 0x34c00, 0x4484b, 0x0112a, 0x0053e, 0x10408,
+ 0x10200, 0x80001, 0x40001, 0x00400, 0xc0000, 0x02400, 0x00009,
+ 0x40c91, 0x99999, 0x000a3, 0x8f820, 0x76c06, 0x00000, 0x80000,
+ 0x00180, 0x001a0, 0xe8231, 0xfac2c, 0x00141, 0x517f0, 0x00090,
+ 0x00190, 0x00290, 0x01064, 0x09064, 0x11064, 0x19064, 0x00c07,
+ 0x48000, 0x739d0, 0x0add2, 0x09dd0, 0x08cf3, 0x07cf0, 0x06ced,
+ 0x05cd2, 0x04ccf, 0x03ccc, 0x02cc9, 0x01c4c, 0x00c49, 0x30159,
+ 0x48000, 0x0002a, 0x00025, 0x65540, 0x88000, 0x020a0, 0xf0f00,
+ 0xe0b00, 0xd0900, 0xc0700, 0xb0600, 0xa0400, 0x90200, 0x80000,
+ 0x7bf00, 0x60b00, 0x5c900, 0x40700, 0x30600, 0x2d500, 0x10200,
+ 0x0e000, 0x000a0, 0x00010, 0x0c0a8, 0x10400, 0x00000, 0x80000,
+ 0x10000, 0x0000f, 0x07efe, 0x00000, 0x10159, 0x0fc07, 0x00000,
+ 0x00000, 0x80003, 0x00000, 0x00000, 0x00001, 0x80000, 0x33d95
+};
+
+static const struct r92c_rf_prog rtl8188ftv_rf_prog[] = {
+ {
+ nitems(rtl8188ftv_rf_regs),
+ rtl8188ftv_rf_regs,
+ rtl8188ftv_rf_vals
+ }
+};
+
+/*
* RTL8192EE and RTL8192EU.
*/
static const uint16_t rtl8192e_bb_regs[] = {
@@ -2982,7 +3196,7 @@ static const struct r92c_rf_prog rtl8188ru_rf_prog[] = {
* RTL8723AE and RTL8723AU.
*/
-static const uint8_t rtl8723a_rf_regs[] = {
+static const uint16_t rtl8723a_rf_regs[] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e,
0x0f, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22,
0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2a, 0x2b,
diff --git a/sys/dev/ic/rtwn.c b/sys/dev/ic/rtwn.c
index bf5d79a0c5d..b9b83bbfe11 100644
--- a/sys/dev/ic/rtwn.c
+++ b/sys/dev/ic/rtwn.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rtwn.c,v 1.56 2023/04/27 03:28:34 kevlo Exp $ */
+/* $OpenBSD: rtwn.c,v 1.57 2023/04/28 01:24:14 kevlo Exp $ */
/*-
* Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr>
@@ -115,7 +115,7 @@ uint8_t rtwn_read_1(struct rtwn_softc *, uint16_t);
uint16_t rtwn_read_2(struct rtwn_softc *, uint16_t);
uint32_t rtwn_read_4(struct rtwn_softc *, uint16_t);
int rtwn_fw_cmd(struct rtwn_softc *, uint8_t, const void *, int);
-void rtwn_rf_write(struct rtwn_softc *, int, uint8_t, uint32_t);
+void rtwn_rf_write(struct rtwn_softc *, int, uint16_t, uint32_t);
uint32_t rtwn_rf_read(struct rtwn_softc *, int, uint8_t);
void rtwn_cam_write(struct rtwn_softc *, uint32_t, uint32_t);
uint8_t rtwn_efuse_read_1(struct rtwn_softc *, uint16_t);
@@ -126,6 +126,7 @@ void rtwn_read_rom(struct rtwn_softc *);
void rtwn_r92c_read_rom(struct rtwn_softc *);
void rtwn_r92e_read_rom(struct rtwn_softc *);
void rtwn_r88e_read_rom(struct rtwn_softc *);
+void rtwn_r88f_read_rom(struct rtwn_softc *);
void rtwn_r23a_read_rom(struct rtwn_softc *);
int rtwn_media_change(struct ifnet *);
int rtwn_ra_init(struct rtwn_softc *);
@@ -140,6 +141,7 @@ void rtwn_update_short_preamble(struct ieee80211com *);
void rtwn_r92c_update_short_preamble(struct rtwn_softc *);
void rtwn_r88e_update_short_preamble(struct rtwn_softc *);
int8_t rtwn_r88e_get_rssi(struct rtwn_softc *, int, void *);
+int8_t rtwn_r88f_get_rssi(struct rtwn_softc *, int, void *);
void rtwn_watchdog(struct ifnet *);
void rtwn_fw_reset(struct rtwn_softc *);
void rtwn_r92c_fw_reset(struct rtwn_softc *);
@@ -168,6 +170,7 @@ void rtwn_set_txpower(struct rtwn_softc *,
struct ieee80211_channel *, struct ieee80211_channel *);
void rtwn_set_chan(struct rtwn_softc *,
struct ieee80211_channel *, struct ieee80211_channel *);
+int rtwn_chan2group(int);
int rtwn_iq_calib_chain(struct rtwn_softc *, int, uint16_t[2],
uint16_t[2]);
void rtwn_iq_calib_run(struct rtwn_softc *, int, uint16_t[2][2],
@@ -238,6 +241,7 @@ rtwn_attach(struct device *pdev, struct rtwn_softc *sc)
(sc->chip & RTWN_CHIP_92C) ? "8192CU" :
(sc->chip & RTWN_CHIP_92E) ? "8192EU" :
(sc->chip & RTWN_CHIP_88E) ? "8188EU" :
+ (sc->chip & RTWN_CHIP_88F) ? "8188FTV" :
(sc->board_type == R92C_BOARD_TYPE_HIGHPA) ? "8188RU" :
(sc->board_type == R92C_BOARD_TYPE_MINICARD) ?
"8188CE-VAU" : "8188CUS",
@@ -431,7 +435,7 @@ rtwn_fw_cmd(struct rtwn_softc *sc, uint8_t id, const void *buf, int len)
}
void
-rtwn_rf_write(struct rtwn_softc *sc, int chain, uint8_t addr, uint32_t val)
+rtwn_rf_write(struct rtwn_softc *sc, int chain, uint16_t addr, uint32_t val)
{
uint32_t param_addr;
@@ -440,7 +444,7 @@ rtwn_rf_write(struct rtwn_softc *sc, int chain, uint8_t addr, uint32_t val)
rtwn_read_4(sc, R92C_FPGA0_POWER_SAVE) & ~0x20000);
}
- if (sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_92E))
+ if (sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_88F | RTWN_CHIP_92E))
param_addr = SM(R88E_LSSI_PARAM_ADDR, addr);
else
param_addr = SM(R92C_LSSI_PARAM_ADDR, addr);
@@ -531,6 +535,13 @@ rtwn_efuse_read(struct rtwn_softc *sc, uint8_t *rom, size_t size)
rtwn_efuse_switch_power(sc);
+ /* Switch bank to 0 for wifi/bt later use. */
+ if (sc->chip & RTWN_CHIP_88F) {
+ reg = rtwn_read_4(sc, R92C_EFUSE_TEST);
+ reg = RW(reg, R92C_EFUSE_TEST_SEL, 0);
+ rtwn_write_4(sc, R92C_EFUSE_TEST, reg);
+ }
+
memset(rom, 0xff, size);
len = (sc->chip & RTWN_CHIP_88E) ? 256 : 512;
while (addr < len) {
@@ -579,7 +590,7 @@ rtwn_efuse_switch_power(struct rtwn_softc *sc)
{
uint16_t reg;
- if (!(sc->chip & RTWN_CHIP_92E)) {
+ if (!(sc->chip & (RTWN_CHIP_88F | RTWN_CHIP_92E))) {
reg = rtwn_read_2(sc, R92C_SYS_ISO_CTRL);
if (!(reg & R92C_SYS_ISO_CTRL_PWC_EV12V)) {
rtwn_write_2(sc, R92C_SYS_ISO_CTRL,
@@ -604,7 +615,7 @@ rtwn_read_chipid(struct rtwn_softc *sc)
{
uint32_t reg;
- if (sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_92E)) {
+ if (sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_88F | RTWN_CHIP_92E)) {
sc->sc_flags |= RTWN_FLAG_EXT_HDR;
return (0);
}
@@ -648,6 +659,8 @@ rtwn_read_rom(struct rtwn_softc *sc)
{
if (sc->chip & RTWN_CHIP_88E)
rtwn_r88e_read_rom(sc);
+ else if (sc->chip & RTWN_CHIP_88F)
+ rtwn_r88f_read_rom(sc);
else if (sc->chip & RTWN_CHIP_92E)
rtwn_r92e_read_rom(sc);
else if (sc->chip & RTWN_CHIP_23A)
@@ -721,6 +734,21 @@ rtwn_r88e_read_rom(struct rtwn_softc *sc)
}
void
+rtwn_r88f_read_rom(struct rtwn_softc *sc)
+{
+ struct ieee80211com *ic = &sc->sc_ic;
+ struct r88f_rom *rom = &sc->sc_r88f_rom;
+
+ /* Read full ROM image. */
+ rtwn_efuse_read(sc, (uint8_t *)&sc->sc_r88f_rom,
+ sizeof(sc->sc_r88f_rom));
+
+ sc->crystal_cap = rom->xtal;
+
+ IEEE80211_ADDR_COPY(ic->ic_myaddr, rom->macaddr);
+}
+
+void
rtwn_r23a_read_rom(struct rtwn_softc *sc)
{
struct ieee80211com *ic = &sc->sc_ic;
@@ -803,7 +831,7 @@ rtwn_ra_init(struct rtwn_softc *sc)
rtwn_write_4(sc, R92C_ARFR(0), rates & 0x07f5);
}
- if (sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_92E)) {
+ if (sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_88F | RTWN_CHIP_92E)) {
error = rtwn_r88e_ra_init(sc, mode, rates, maxrate,
basicrates, maxbasicrate);
/* We use AMRR with this chip. Start with the lowest rate. */
@@ -1432,6 +1460,8 @@ rtwn_get_rssi(struct rtwn_softc *sc, int rate, void *physt)
if (sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_92E))
return rtwn_r88e_get_rssi(sc, rate, physt);
+ else if (sc->chip & RTWN_CHIP_88E)
+ return rtwn_r88f_get_rssi(sc, rate, physt);
if (rate <= 3) {
cck = (struct r92c_rx_cck *)physt;
@@ -1474,6 +1504,45 @@ rtwn_r88e_get_rssi(struct rtwn_softc *sc, int rate, void *physt)
return (rssi);
}
+int8_t
+rtwn_r88f_get_rssi(struct rtwn_softc *sc, int rate, void *physt)
+{
+ struct r88e_rx_phystat *phy;
+ uint8_t lna_idx, vga_idx;
+ int8_t rssi;
+
+ phy = (struct r88e_rx_phystat *)physt;
+ lna_idx = (phy->agc_rpt & 0xe0) >> 5;
+ vga_idx = (phy->agc_rpt & 0x1f);
+ rssi = -(2 * vga_idx);
+
+ if (rate <= 3) {
+ switch (lna_idx) {
+ case 7:
+ if (vga_idx > 27)
+ rssi = -100;
+ else
+ rssi += -46;
+ break;
+ case 5:
+ rssi += -32;
+ break;
+ case 3:
+ rssi += -20;
+ break;
+ case 1:
+ rssi += -6;
+ break;
+ default:
+ rssi = 0;
+ break;
+ }
+ } else { /* OFDM/HT. */
+ rssi = ((le32toh(phy->sq_rpt) >> 1) & 0x7f) - 110;
+ }
+ return (rssi);
+}
+
void
rtwn_start(struct ifnet *ifp)
{
@@ -1609,7 +1678,7 @@ rtwn_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
void
rtwn_fw_reset(struct rtwn_softc *sc)
{
- if (sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_92E))
+ if (sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_88F | RTWN_CHIP_92E))
rtwn_r88e_fw_reset(sc);
else
rtwn_r92c_fw_reset(sc);
@@ -1646,11 +1715,11 @@ sleep:
void
rtwn_r88e_fw_reset(struct rtwn_softc *sc)
{
- uint16_t reg;
-
/* Reset MCU IO wrapper. */
- rtwn_write_1(sc, R92C_RSV_CTRL,
- rtwn_read_1(sc, R92C_RSV_CTRL) & ~R92C_RSV_CTRL_WLOCK_00);
+ if (!(sc->chip & RTWN_CHIP_88F)) {
+ rtwn_write_1(sc, R92C_RSV_CTRL,
+ rtwn_read_1(sc, R92C_RSV_CTRL) & ~R92C_RSV_CTRL_WLOCK_00);
+ }
if (sc->chip & RTWN_CHIP_88E) {
rtwn_write_2(sc, R92C_RSV_CTRL,
rtwn_read_2(sc, R92C_RSV_CTRL) & ~R88E_RSV_CTRL_MCU_RST);
@@ -1658,12 +1727,14 @@ rtwn_r88e_fw_reset(struct rtwn_softc *sc)
rtwn_write_2(sc, R92C_RSV_CTRL,
rtwn_read_2(sc, R92C_RSV_CTRL) & ~R88E_RSV_CTRL_MIO_EN);
}
- reg = rtwn_read_2(sc, R92C_SYS_FUNC_EN);
- rtwn_write_2(sc, R92C_SYS_FUNC_EN, reg & ~R92C_SYS_FUNC_EN_CPUEN);
+ rtwn_write_2(sc, R92C_SYS_FUNC_EN,
+ rtwn_read_2(sc, R92C_SYS_FUNC_EN) & ~R92C_SYS_FUNC_EN_CPUEN);
/* Enable MCU IO wrapper. */
- rtwn_write_1(sc, R92C_RSV_CTRL,
- rtwn_read_1(sc, R92C_RSV_CTRL) & ~R92C_RSV_CTRL_WLOCK_00);
+ if (!(sc->chip & RTWN_CHIP_88F)) {
+ rtwn_write_1(sc, R92C_RSV_CTRL,
+ rtwn_read_1(sc, R92C_RSV_CTRL) & ~R92C_RSV_CTRL_WLOCK_00);
+ }
if (sc->chip & RTWN_CHIP_88E) {
rtwn_write_2(sc, R92C_RSV_CTRL,
rtwn_read_2(sc, R92C_RSV_CTRL) | R88E_RSV_CTRL_MCU_RST);
@@ -1671,7 +1742,8 @@ rtwn_r88e_fw_reset(struct rtwn_softc *sc)
rtwn_write_2(sc, R92C_RSV_CTRL,
rtwn_read_2(sc, R92C_RSV_CTRL) | R88E_RSV_CTRL_MIO_EN);
}
- rtwn_write_2(sc, R92C_SYS_FUNC_EN, reg | R92C_SYS_FUNC_EN_CPUEN);
+ rtwn_write_2(sc, R92C_SYS_FUNC_EN,
+ rtwn_read_2(sc, R92C_SYS_FUNC_EN) | R92C_SYS_FUNC_EN_CPUEN);
}
int
@@ -1699,6 +1771,7 @@ rtwn_load_firmware(struct rtwn_softc *sc)
if ((letoh16(hdr->signature) >> 4) == 0x230 ||
(letoh16(hdr->signature) >> 4) == 0x88c ||
(letoh16(hdr->signature) >> 4) == 0x88e ||
+ (letoh16(hdr->signature) >> 4) == 0x88f ||
(letoh16(hdr->signature) >> 4) == 0x92c ||
(letoh16(hdr->signature) >> 4) == 0x92e) {
DPRINTF(("FW V%d.%d %02d-%02d %02d:%02d\n",
@@ -1713,7 +1786,7 @@ rtwn_load_firmware(struct rtwn_softc *sc)
rtwn_fw_reset(sc);
}
- if (sc->chip & RTWN_CHIP_PCI) {
+ if ((sc->chip & RTWN_CHIP_PCI) || (sc->chip & RTWN_CHIP_88F)) {
rtwn_write_2(sc, R92C_SYS_FUNC_EN,
rtwn_read_2(sc, R92C_SYS_FUNC_EN) | R92C_SYS_FUNC_EN_CPUEN);
}
@@ -1760,7 +1833,7 @@ rtwn_load_firmware(struct rtwn_softc *sc)
rtwn_read_1(sc, R92C_MCUFWDL) & ~R92C_MCUFWDL_EN);
/* Reserved for fw extension. */
- if (!(sc->chip & RTWN_CHIP_92E))
+ if (!(sc->chip & (RTWN_CHIP_88F | RTWN_CHIP_92E)))
rtwn_write_1(sc, R92C_MCUFWDL + 1, 0);
reg = rtwn_read_4(sc, R92C_MCUFWDL);
@@ -1788,6 +1861,9 @@ rtwn_load_firmware(struct rtwn_softc *sc)
}
fail:
free(fw, M_DEVBUF, len0);
+ /* Init H2C command. */
+ if (sc->chip & RTWN_CHIP_88F)
+ rtwn_write_1(sc, R92C_HMETFR, 0xf);
return (error);
}
@@ -1801,6 +1877,8 @@ rtwn_rf_init(struct rtwn_softc *sc)
/* Select RF programming based on board type. */
if (sc->chip & RTWN_CHIP_88E)
prog = rtl8188eu_rf_prog;
+ else if (sc->chip & RTWN_CHIP_88F)
+ prog = rtl8188ftv_rf_prog;
else if (sc->chip & RTWN_CHIP_92E)
prog = rtl8192e_rf_prog;
else if (!(sc->chip & RTWN_CHIP_92C)) {
@@ -1844,6 +1922,7 @@ rtwn_rf_init(struct rtwn_softc *sc)
for (j = 0; j < prog[i].count; j++) {
switch (prog[i].regs[j]) {
case 0xfe:
+ case 0xffe:
DELAY(50000);
continue;
case 0xfd:
@@ -1957,8 +2036,13 @@ rtwn_edca_init(struct rtwn_softc *sc)
rtwn_write_2(sc, R92C_MAC_SPEC_SIFS, 0x100a);
rtwn_write_2(sc, R92C_SIFS_CCK, 0x100a);
rtwn_write_2(sc, R92C_SIFS_OFDM, 0x100a);
- rtwn_write_2(sc, R92C_RESP_SIFS_CCK, 0x100a);
- rtwn_write_2(sc, R92C_RESP_SIFS_OFDM, 0x100a);
+ if (!(sc->chip & RTWN_CHIP_88F)) {
+ rtwn_write_2(sc, R92C_RESP_SIFS_CCK, 0x100a);
+ rtwn_write_2(sc, R92C_RESP_SIFS_OFDM, 0x100a);
+ } else {
+ rtwn_write_2(sc, R92C_RESP_SIFS_CCK, 0x0808);
+ rtwn_write_2(sc, R92C_RESP_SIFS_OFDM, 0x0a0a);
+ }
if (ic->ic_curmode == IEEE80211_MODE_AUTO)
mode = IEEE80211_MODE_11G; /* XXX */
@@ -2061,7 +2145,7 @@ void
rtwn_get_txpower(struct rtwn_softc *sc, int chain, struct ieee80211_channel *c,
struct ieee80211_channel *extc, uint16_t power[RTWN_POWER_COUNT])
{
- if (sc->chip & RTWN_CHIP_88E)
+ if (sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_88F))
rtwn_r88e_get_txpower(sc, chain, c, extc, power);
else if (sc->chip & RTWN_CHIP_92E)
rtwn_r92e_get_txpower(sc, chain, c, extc, power);
@@ -2182,16 +2266,7 @@ rtwn_r92e_get_txpower(struct rtwn_softc *sc, int chain,
/* Determine channel group. */
chan = ieee80211_chan2ieee(ic, c); /* XXX center freq! */
- if (chan <= 2)
- group = 0;
- else if (chan <= 5)
- group = 1;
- else if (chan <= 8)
- group = 2;
- else if (chan <= 11)
- group = 3;
- else
- group = 4;
+ group = rtwn_chan2group(chan);
memset(power, 0, RTWN_POWER_COUNT * sizeof(power[0]));
@@ -2253,31 +2328,42 @@ rtwn_r88e_get_txpower(struct rtwn_softc *sc, int chain,
/* Determine channel group. */
chan = ieee80211_chan2ieee(ic, c); /* XXX center freq! */
- if (chan <= 2)
- group = 0;
- else if (chan <= 5)
- group = 1;
- else if (chan <= 8)
- group = 2;
- else if (chan <= 11)
- group = 3;
- else if (chan <= 13)
- group = 4;
- else
- group = 5;
+ if (sc->chip & RTWN_CHIP_88F)
+ group = rtwn_chan2group(chan);
+ else {
+ if (chan <= 2)
+ group = 0;
+ else if (chan <= 5)
+ group = 1;
+ else if (chan <= 8)
+ group = 2;
+ else if (chan <= 11)
+ group = 3;
+ else if (chan <= 13)
+ group = 4;
+ else
+ group = 5;
+ }
memset(power, 0, RTWN_POWER_COUNT * sizeof(power[0]));
/* Compute per-CCK rate Tx power. */
cckpow = rom->txpwr.cck_tx_pwr[group];
for (ridx = RTWN_RIDX_CCK1; ridx <= RTWN_RIDX_CCK11; ridx++) {
- power[ridx] = (ridx == RTWN_RIDX_CCK2) ? cckpow - 9 : cckpow;
+ if (sc->chip & RTWN_CHIP_88F)
+ power[ridx] = cckpow;
+ else
+ power[ridx] = (ridx == RTWN_RIDX_CCK2) ?
+ cckpow - 9 : cckpow;
if (power[ridx] > R92C_MAX_TX_PWR)
power[ridx] = R92C_MAX_TX_PWR;
}
- htpow = (group == 5) ? rom->txpwr.ht40_tx_pwr[group - 1] :
- rom->txpwr.ht40_tx_pwr[group];
+ if (sc->chip & RTWN_CHIP_88F)
+ htpow = rom->txpwr.ht40_tx_pwr[group];
+ else
+ htpow = (group == 5) ? rom->txpwr.ht40_tx_pwr[group - 1] :
+ rom->txpwr.ht40_tx_pwr[group];
/* Compute per-OFDM rate Tx power. */
diff = RTWN_SIGN4TO8(MS(rom->txpwr.ht20_ofdm_tx_pwr_diff,
@@ -2386,7 +2472,7 @@ rtwn_set_chan(struct rtwn_softc *sc, struct ieee80211_channel *c,
reg &= ~R92C_WMAC_TRXPTCL_CTL_BW_MASK;
rtwn_write_2(sc, R92C_WMAC_TRXPTCL_CTL, reg);
rtwn_write_1(sc, R92E_DATA_SC, 0);
- } else {
+ } else if (!(sc->chip & RTWN_CHIP_88F)) {
rtwn_write_1(sc, R92C_BWOPMODE,
rtwn_read_1(sc, R92C_BWOPMODE) |
R92C_BWOPMODE_20MHZ);
@@ -2397,22 +2483,60 @@ rtwn_set_chan(struct rtwn_softc *sc, struct ieee80211_channel *c,
rtwn_bb_write(sc, R92C_FPGA1_RFMOD,
rtwn_bb_read(sc, R92C_FPGA1_RFMOD) & ~R92C_RFMOD_40MHZ);
- if (!(sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_92E))) {
+ if (!(sc->chip &
+ (RTWN_CHIP_88E | RTWN_CHIP_88F | RTWN_CHIP_92E))) {
rtwn_bb_write(sc, R92C_FPGA0_ANAPARAM2,
rtwn_bb_read(sc, R92C_FPGA0_ANAPARAM2) |
R92C_FPGA0_ANAPARAM2_CBW20);
- } else if (sc->chip & RTWN_CHIP_92E) {
- reg = rtwn_read_4(sc, R92C_OFDM0_TX_PSDO_NOISE_WEIGHT);
+ } else if (sc->chip & (RTWN_CHIP_88F | RTWN_CHIP_92E)) {
+ if (sc->chip & RTWN_CHIP_88F) {
+ reg = rtwn_bb_read(sc, R92C_FPGA0_RFMOD);
+ reg = (reg & ~0x00000700) | 0x7 << 8;
+ rtwn_bb_write(sc, R92C_FPGA0_RFMOD, reg);
+ reg = rtwn_bb_read(sc, R92C_FPGA0_RFMOD);
+ reg = (reg & ~0x00007000) | 0x5 << 12;
+ rtwn_bb_write(sc, R92C_FPGA0_RFMOD, reg);
+ }
+
+ reg = rtwn_bb_read(sc, R92C_OFDM0_TX_PSDO_NOISE_WEIGHT);
reg &= ~0xc0000000;
- rtwn_write_4(sc, R92C_OFDM0_TX_PSDO_NOISE_WEIGHT, reg);
+ rtwn_bb_write(sc, R92C_OFDM0_TX_PSDO_NOISE_WEIGHT, reg);
+
+ if (sc->chip & RTWN_CHIP_88F) {
+ /* Small bandwidth */
+ reg = rtwn_bb_read(sc,
+ R92C_OFDM0_TX_PSDO_NOISE_WEIGHT);
+ reg |= 0x30000000;
+ rtwn_bb_write(sc,
+ R92C_OFDM0_TX_PSDO_NOISE_WEIGHT, reg);
+ /* ADC buffer clk */
+ rtwn_bb_write(sc, R92C_OFDM0_RXAFE,
+ rtwn_bb_read(sc, R92C_OFDM0_RXAFE) |
+ 0x30000000);
+ /* OFDM Rx DFIR */
+ rtwn_bb_write(sc, R88F_RX_DFIR,
+ rtwn_bb_read(sc, R88F_RX_DFIR) &
+ ~0x00080000);
+ reg = rtwn_bb_read(sc, R88F_RX_DFIR);
+ reg = (reg & ~0x00f00000) | 0x3 << 15;
+ rtwn_bb_write(sc, R88F_RX_DFIR, reg);
+ }
}
/* Select 20MHz bandwidth. */
for (i = 0; i < sc->nrxchains; i++) {
rtwn_rf_write(sc, i, R92C_RF_CHNLBW,
(sc->rf_chnlbw[i] & ~0xfff) | chan |
- ((sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_92E)) ?
+ ((sc->chip &
+ (RTWN_CHIP_88E | RTWN_CHIP_88F | RTWN_CHIP_92E)) ?
R88E_RF_CHNLBW_BW20 : R92C_RF_CHNLBW_BW20));
+
+ if (sc->chip & RTWN_CHIP_88F) {
+ rtwn_rf_write(sc, i, 0x87, 0x65);
+ rtwn_rf_write(sc, i, 0x1c, 0);
+ rtwn_rf_write(sc, i, 0xdf, 0x0140);
+ rtwn_rf_write(sc, i, 0x1b, 0x1c6c);;
+ }
}
}
@@ -2421,6 +2545,25 @@ rtwn_set_chan(struct rtwn_softc *sc, struct ieee80211_channel *c,
}
int
+rtwn_chan2group(int chan)
+{
+ int group;
+
+ if (chan <= 2)
+ group = 0;
+ else if (chan <= 5)
+ group = 1;
+ else if (chan <= 8)
+ group = 2;
+ else if (chan <= 11)
+ group = 3;
+ else
+ group = 4;
+
+ return (group);
+}
+
+int
rtwn_iq_calib_chain(struct rtwn_softc *sc, int chain, uint16_t tx[2],
uint16_t rx[2])
{
@@ -3047,7 +3190,7 @@ rtwn_init(struct ifnet *ifp)
/* Set info size in Rx descriptors (in 64-bit words). */
rtwn_write_1(sc, R92C_RX_DRVINFO_SZ, 4);
- if (sc->chip & RTWN_CHIP_USB) {
+ if ((sc->chip & RTWN_CHIP_USB) && !(sc->chip & RTWN_CHIP_88F)) {
/* Init interrupts. */
rtwn_enable_intr(sc);
} else if (sc->chip & RTWN_CHIP_PCI) {
@@ -3107,11 +3250,12 @@ rtwn_init(struct ifnet *ifp)
rtwn_write_2(sc, R92C_BCN_CTRL,
(R92C_BCN_CTRL_DIS_TSF_UDT0 << 8) | R92C_BCN_CTRL_DIS_TSF_UDT0);
rtwn_write_2(sc, R92C_TBTT_PROHIBIT, 0x6404);
- rtwn_write_1(sc, R92C_DRVERLYINT, R92C_DRVERLYINT_INIT_TIME);
+ if (!(sc->chip & RTWN_CHIP_88F))
+ rtwn_write_1(sc, R92C_DRVERLYINT, R92C_DRVERLYINT_INIT_TIME);
rtwn_write_1(sc, R92C_BCNDMATIM, R92C_BCNDMATIM_INIT_TIME);
rtwn_write_2(sc, R92C_BCNTCFG, 0x660f);
- if (!(sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_92E))) {
+ if (!(sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_88F | RTWN_CHIP_92E))) {
/* Setup AMPDU aggregation. */
rtwn_write_4(sc, R92C_AGGLEN_LMT, 0x99997631); /* MCS7~0 */
rtwn_write_1(sc, R92C_AGGR_BREAK_TIME, 0x16);
@@ -3135,7 +3279,7 @@ rtwn_init(struct ifnet *ifp)
sc->sc_ops.bb_init(sc->sc_ops.cookie);
rtwn_rf_init(sc);
- if (sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_92E)) {
+ if (sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_88F | RTWN_CHIP_92E)) {
rtwn_write_2(sc, R92C_CR,
rtwn_read_2(sc, R92C_CR) | R92C_CR_MACTXEN |
R92C_CR_MACRXEN);
@@ -3175,7 +3319,8 @@ rtwn_init(struct ifnet *ifp)
/* Fix USB interference issue. */
if (sc->chip & RTWN_CHIP_USB) {
- if (!(sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_92E))) {
+ if (!(sc->chip &
+ (RTWN_CHIP_88E | RTWN_CHIP_88F | RTWN_CHIP_92E))) {
rtwn_write_1(sc, 0xfe40, 0xe0);
rtwn_write_1(sc, 0xfe41, 0x8d);
rtwn_write_1(sc, 0xfe42, 0x80);
@@ -3189,7 +3334,7 @@ rtwn_init(struct ifnet *ifp)
rtwn_read_1(sc, R92C_GPIO_MUXCFG) & ~R92C_GPIO_MUXCFG_ENBT);
/* Fix for lower temperature. */
- if (!(sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_92E)))
+ if (!(sc->chip & (RTWN_CHIP_88E | RTWN_CHIP_88F | RTWN_CHIP_92E)))
rtwn_write_1(sc, 0x15, 0xe9);
/* Set default channel. */
diff --git a/sys/dev/ic/rtwnvar.h b/sys/dev/ic/rtwnvar.h
index e7ee10c0fc5..2b3ca85b346 100644
--- a/sys/dev/ic/rtwnvar.h
+++ b/sys/dev/ic/rtwnvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: rtwnvar.h,v 1.15 2019/03/11 06:19:33 kevlo Exp $ */
+/* $OpenBSD: rtwnvar.h,v 1.16 2023/04/28 01:24:14 kevlo Exp $ */
/*-
* Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr>
@@ -84,6 +84,7 @@ struct rtwn_softc {
#define RTWN_CHIP_92E 0x00000040
#define RTWN_CHIP_23A 0x00000080
#define RTWN_CHIP_23B 0x00000100
+#define RTWN_CHIP_88F 0x00000200
#define RTWN_CHIP_PCI 0x40000000
#define RTWN_CHIP_USB 0x80000000
@@ -105,11 +106,13 @@ struct rtwn_softc {
struct r92c_rom r92c_rom;
struct r92e_rom r92e_rom;
struct r88e_rom r88e_rom;
+ struct r88f_rom r88f_rom;
struct r23a_rom r23a_rom;
} u;
#define sc_r92c_rom u.r92c_rom
#define sc_r92e_rom u.r92e_rom
#define sc_r88e_rom u.r88e_rom
+#define sc_r88f_rom u.r88f_rom
#define sc_r23a_rom u.r23a_rom
uint32_t rf_chnlbw[R92C_MAX_CHAINS];
diff --git a/sys/dev/microcode/urtwn/Makefile b/sys/dev/microcode/urtwn/Makefile
index 5e0e2f702bb..412fddfd1f6 100644
--- a/sys/dev/microcode/urtwn/Makefile
+++ b/sys/dev/microcode/urtwn/Makefile
@@ -1,10 +1,11 @@
-# $OpenBSD: Makefile,v 1.1 2021/10/04 01:33:42 kevlo Exp $
+# $OpenBSD: Makefile,v 1.2 2023/04/28 01:24:14 kevlo Exp $
NOPROG=
NOMAN=
CC=${HOSTCC}
-FIRM= urtwn-rtl8188eu urtwn-rtl8192cT urtwn-rtl8192cU urtwn-rtl8192eu
+FIRM= urtwn-rtl8188eu urtwn-rtl8188ftv urtwn-rtl8192cT urtwn-rtl8192cU \
+ urtwn-rtl8192eu
PROG= build
diff --git a/sys/dev/microcode/urtwn/build.c b/sys/dev/microcode/urtwn/build.c
index 870ce85b9c8..ae66d2ae314 100644
--- a/sys/dev/microcode/urtwn/build.c
+++ b/sys/dev/microcode/urtwn/build.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: build.c,v 1.1 2021/10/04 01:33:42 kevlo Exp $ */
+/* $OpenBSD: build.c,v 1.2 2023/04/28 01:24:14 kevlo Exp $ */
/*-
* Copyright (c) 2006
@@ -51,6 +51,7 @@ int
main(void)
{
output("urtwn-rtl8188eu", rtl8188eu, sizeof rtl8188eu);
+ output("urtwn-rtl8188ftv", rtl8188ftv, sizeof rtl8188ftv);
output("urtwn-rtl8192cT", rtl8192cT, sizeof rtl8192cT);
output("urtwn-rtl8192cU", rtl8192cU, sizeof rtl8192cU);
output("urtwn-rtl8192eu", rtl8192eu, sizeof rtl8192eu);
diff --git a/sys/dev/microcode/urtwn/microcode.h b/sys/dev/microcode/urtwn/microcode.h
index 7a6546d0430..94dffb7ef66 100644
--- a/sys/dev/microcode/urtwn/microcode.h
+++ b/sys/dev/microcode/urtwn/microcode.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: microcode.h,v 1.1 2021/10/04 01:29:57 kevlo Exp $ */
+/* $OpenBSD: microcode.h,v 1.2 2023/04/28 01:24:14 kevlo Exp $ */
/*-
* Copyright (C) 2009-2021 Realtek Corporation
@@ -1301,6 +1301,1920 @@ static const uint8_t rtl8188eu[] = {
0x1c, 0xf0, 0xe4, 0x90, 0x81, 0x48, 0xf0, 0x22, 0x00, 0xbb, 0x8e
};
+static const uint8_t rtl8188ftv[] = {
+ 0xf1, 0x88, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x22, 0x17,
+ 0x36, 0xfc, 0x51, 0x02, 0x00, 0xbc, 0x38, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+ 0x87, 0x7d, 0x02, 0xc8, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xb5, 0x27, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x02, 0xc8, 0xa7, 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,
+ 0x02, 0xc8, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xc2, 0x21,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xc8, 0xa6, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x88, 0x18, 0x02, 0x8a,
+ 0xd9, 0x02, 0x80, 0x86, 0x02, 0x80, 0x89, 0x02, 0xa9, 0x59, 0x02,
+ 0xa3, 0x0c, 0x02, 0xb6, 0x62, 0x02, 0x80, 0x95, 0x02, 0x80, 0x98,
+ 0x02, 0x80, 0x9b, 0x02, 0x80, 0x9e, 0x02, 0x80, 0xa1, 0x02, 0x80,
+ 0xa4, 0x02, 0x80, 0xa7, 0x02, 0x80, 0xaa, 0x02, 0x80, 0xad, 0x02,
+ 0x80, 0xb0, 0x02, 0xa0, 0x3d, 0x02, 0x80, 0xb6, 0x02, 0x80, 0xb9,
+ 0x02, 0xb3, 0x1b, 0x02, 0xb8, 0xcd, 0x02, 0xb8, 0x52, 0x02, 0xb7,
+ 0xf9, 0x02, 0xb1, 0x62, 0x02, 0xb3, 0x7c, 0x02, 0x80, 0xce, 0x02,
+ 0x80, 0xd1, 0x02, 0x80, 0xd4, 0x02, 0x80, 0xd7, 0x00, 0x00, 0x00,
+ 0x02, 0x80, 0xdd, 0x02, 0x80, 0xe0, 0x02, 0x80, 0xe3, 0x02, 0x80,
+ 0xe6, 0x02, 0x80, 0xe9, 0x02, 0x80, 0xec, 0x02, 0x80, 0xef, 0x02,
+ 0x80, 0xf2, 0x02, 0x80, 0xf5, 0x02, 0x80, 0xf8, 0x02, 0x80, 0xfb,
+ 0x02, 0x80, 0xfe, 0x02, 0x81, 0x01, 0x02, 0x81, 0x04, 0x02, 0x81,
+ 0x07, 0x02, 0x81, 0x0a, 0x02, 0x81, 0x0d, 0x02, 0x81, 0x10, 0x02,
+ 0x81, 0x13, 0x02, 0x81, 0x16, 0x02, 0x81, 0x19, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+ 0xbf, 0x8b, 0x02, 0xc9, 0x2d, 0x02, 0x96, 0xee, 0x02, 0x98, 0xe3,
+ 0x02, 0x81, 0x40, 0x02, 0xa4, 0x6b, 0x02, 0xcd, 0xf1, 0x02, 0x81,
+ 0x49, 0x02, 0x81, 0x4c, 0x02, 0x81, 0x4f, 0x02, 0x81, 0x52, 0x02,
+ 0x81, 0x55, 0x02, 0x81, 0x58, 0x02, 0x81, 0x5b, 0x02, 0x99, 0xf8,
+ 0x02, 0x81, 0x61, 0x02, 0x81, 0x64, 0x02, 0xc6, 0xb7, 0x02, 0xcf,
+ 0xe8, 0x02, 0xd0, 0x1d, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0xf0, 0xff, 0x0f, 0x00, 0x00,
+ 0x00, 0x15, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x05, 0xf0, 0xff,
+ 0x0f, 0x00, 0x00, 0x00, 0x05, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00,
+ 0x10, 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x10, 0xf0, 0x0f, 0x00,
+ 0x00, 0x00, 0x00, 0xf5, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
+ 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x0a, 0x08, 0x03, 0x03, 0x00, 0x04, 0x09, 0x07, 0x03,
+ 0x03, 0x00, 0x04, 0x08, 0x06, 0x03, 0x02, 0x00, 0x04, 0x08, 0x05,
+ 0x03, 0x01, 0x00, 0x04, 0x0d, 0x0a, 0x07, 0x05, 0x00, 0x08, 0x0c,
+ 0x0a, 0x07, 0x04, 0x00, 0x08, 0x0b, 0x0a, 0x06, 0x05, 0x00, 0x08,
+ 0x0b, 0x0a, 0x05, 0x03, 0x00, 0x08, 0x0b, 0x0a, 0x03, 0x02, 0x00,
+ 0x08, 0x14, 0x12, 0x0c, 0x04, 0x00, 0x10, 0x14, 0x12, 0x09, 0x04,
+ 0x00, 0x10, 0x24, 0x22, 0x1c, 0x12, 0x00, 0x20, 0x24, 0x22, 0x18,
+ 0x0c, 0x00, 0x20, 0x24, 0x22, 0x14, 0x06, 0x00, 0x20, 0x24, 0x22,
+ 0x0f, 0x04, 0x00, 0x20, 0x24, 0x21, 0x0a, 0x04, 0x00, 0x20, 0x23,
+ 0x21, 0x0c, 0x04, 0x00, 0x20, 0x23, 0x1f, 0x0a, 0x04, 0x00, 0x20,
+ 0x22, 0x1f, 0x0f, 0x04, 0x00, 0x20, 0x21, 0x1f, 0x16, 0x0c, 0x00,
+ 0x20, 0x31, 0x2f, 0x20, 0x14, 0x00, 0x30, 0x31, 0x2f, 0x18, 0x10,
+ 0x00, 0x30, 0x31, 0x2c, 0x18, 0x0c, 0x00, 0x30, 0x31, 0x2a, 0x14,
+ 0x0c, 0x00, 0x30, 0x31, 0x28, 0x14, 0x00, 0x00, 0x30, 0x31, 0x24,
+ 0x14, 0x00, 0x00, 0x30, 0x31, 0x1e, 0x14, 0x00, 0x00, 0x30, 0x02,
+ 0x02, 0x03, 0x04, 0x04, 0x08, 0x09, 0x09, 0x0c, 0x0e, 0x10, 0x12,
+ 0x02, 0x09, 0x0b, 0x0e, 0x0d, 0x0f, 0x10, 0x12, 0x00, 0x04, 0x00,
+ 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x23, 0x00, 0x2d, 0x00, 0x50,
+ 0x00, 0x91, 0x00, 0xc3, 0x01, 0x27, 0x01, 0x31, 0x01, 0x5e, 0x00,
+ 0x8c, 0x00, 0xc8, 0x00, 0xdc, 0x01, 0x5e, 0x01, 0x68, 0x01, 0x9a,
+ 0x01, 0xcc, 0x01, 0xea, 0x02, 0x02, 0x04, 0x08, 0x0c, 0x12, 0x18,
+ 0x24, 0x30, 0x48, 0x60, 0x6c, 0x14, 0x28, 0x32, 0x50, 0x78, 0xa0,
+ 0xc8, 0xe6, 0x01, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x02, 0x03,
+ 0x03, 0x04, 0x04, 0x02, 0x04, 0x06, 0x07, 0x07, 0x08, 0x08, 0x08,
+ 0x01, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02,
+ 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x05, 0x01,
+ 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x03, 0x03, 0x03, 0x02,
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+ 0x02, 0x02, 0x02, 0x02, 0x02, 0x19, 0x06, 0x04, 0x02, 0x00, 0x18,
+ 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, 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, 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, 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, 0x00,
+ 0xc2, 0xaf, 0x80, 0xfe, 0x32, 0x12, 0x84, 0x04, 0x85, 0xd0, 0x0b,
+ 0x75, 0xd0, 0x08, 0xaa, 0xe0, 0xc2, 0x8c, 0xe5, 0x8a, 0x24, 0x67,
+ 0xf5, 0x8a, 0xe5, 0x8c, 0x34, 0x79, 0xf5, 0x8c, 0xd2, 0x8c, 0xec,
+ 0x24, 0x87, 0xf8, 0xe6, 0xbc, 0x02, 0x02, 0x74, 0xff, 0xc3, 0x95,
+ 0x81, 0xb4, 0x40, 0x00, 0x40, 0xce, 0x79, 0x03, 0x78, 0x80, 0x16,
+ 0xe6, 0x08, 0x70, 0x0b, 0xc2, 0xaf, 0xe6, 0x30, 0xe1, 0x03, 0x44,
+ 0x18, 0xf6, 0xd2, 0xaf, 0x08, 0xd9, 0xed, 0xea, 0x8b, 0xd0, 0x22,
+ 0xe5, 0x0c, 0xff, 0x23, 0x24, 0x81, 0xf8, 0x0f, 0x08, 0x08, 0xbf,
+ 0x03, 0x04, 0x7f, 0x00, 0x78, 0x81, 0xe6, 0x30, 0xe4, 0xf2, 0x00,
+ 0xe5, 0x0c, 0xc3, 0x9f, 0x50, 0x20, 0x05, 0x0c, 0x74, 0x86, 0x25,
+ 0x0c, 0xf8, 0xe6, 0xfd, 0xa6, 0x81, 0x08, 0xe6, 0xae, 0x0c, 0xbe,
+ 0x02, 0x02, 0x74, 0xff, 0xcd, 0xf8, 0xe8, 0x6d, 0x60, 0xe0, 0x08,
+ 0xe6, 0xc0, 0xe0, 0x80, 0xf6, 0xe5, 0x0c, 0xd3, 0x9f, 0x40, 0x27,
+ 0xe5, 0x0c, 0x24, 0x87, 0xf8, 0xe6, 0xae, 0x0c, 0xbe, 0x02, 0x02,
+ 0x74, 0xff, 0xfd, 0x18, 0xe6, 0xcd, 0xf8, 0xe5, 0x81, 0x6d, 0x60,
+ 0x06, 0xd0, 0xe0, 0xf6, 0x18, 0x80, 0xf5, 0xe5, 0x0c, 0x24, 0x86,
+ 0xc8, 0xf6, 0x15, 0x0c, 0x80, 0xd3, 0xe5, 0x0c, 0x23, 0x24, 0x81,
+ 0xf8, 0x7f, 0x04, 0xc2, 0xaf, 0xe6, 0x30, 0xe0, 0x03, 0x10, 0xe2,
+ 0x0c, 0x7f, 0x00, 0x30, 0xe1, 0x07, 0x30, 0xe3, 0x04, 0x7f, 0x08,
+ 0x54, 0xf4, 0x54, 0x7c, 0xc6, 0xd2, 0xaf, 0x54, 0x80, 0x42, 0x07,
+ 0x22, 0x78, 0x86, 0xa6, 0x81, 0x74, 0x02, 0x60, 0x06, 0xff, 0x08,
+ 0x76, 0xff, 0xdf, 0xfb, 0x7f, 0x03, 0xe4, 0x78, 0x80, 0xf6, 0x08,
+ 0xf6, 0x08, 0xdf, 0xfa, 0x78, 0x81, 0x76, 0x30, 0x90, 0x88, 0x0d,
+ 0x74, 0x01, 0x93, 0xc0, 0xe0, 0xe4, 0x93, 0xc0, 0xe0, 0x43, 0x89,
+ 0x01, 0x75, 0x8a, 0x60, 0x75, 0x8c, 0x79, 0xd2, 0x8c, 0xd2, 0xaf,
+ 0x22, 0x02, 0xef, 0xd3, 0x94, 0x02, 0x40, 0x03, 0x7f, 0xff, 0x22,
+ 0x74, 0x81, 0x2f, 0x2f, 0xf8, 0xe6, 0x20, 0xe5, 0xf4, 0xc2, 0xaf,
+ 0xe6, 0x44, 0x30, 0xf6, 0xd2, 0xaf, 0xae, 0x0c, 0xee, 0xc3, 0x9f,
+ 0x50, 0x21, 0x0e, 0x74, 0x86, 0x2e, 0xf8, 0xe6, 0xf9, 0x08, 0xe6,
+ 0x18, 0xbe, 0x02, 0x02, 0x74, 0xff, 0xfd, 0xed, 0x69, 0x60, 0x09,
+ 0x09, 0xe7, 0x19, 0x19, 0xf7, 0x09, 0x09, 0x80, 0xf3, 0x16, 0x16,
+ 0x80, 0xda, 0xee, 0xd3, 0x9f, 0x40, 0x04, 0x05, 0x81, 0x05, 0x81,
+ 0xee, 0xd3, 0x9f, 0x40, 0x22, 0x74, 0x86, 0x2e, 0xf8, 0x08, 0xe6,
+ 0xf9, 0xee, 0xb5, 0x0c, 0x02, 0xa9, 0x81, 0x18, 0x06, 0x06, 0xe6,
+ 0xfd, 0xed, 0x69, 0x60, 0x09, 0x19, 0x19, 0xe7, 0x09, 0x09, 0xf7,
+ 0x19, 0x80, 0xf3, 0x1e, 0x80, 0xd9, 0xef, 0x24, 0x86, 0xf8, 0xe6,
+ 0x04, 0xf8, 0xef, 0x2f, 0x04, 0x90, 0x88, 0x0d, 0x93, 0xf6, 0x08,
+ 0xef, 0x2f, 0x93, 0xf6, 0x7f, 0x00, 0x22, 0xef, 0xd3, 0x94, 0x02,
+ 0x40, 0x03, 0x7f, 0xff, 0x22, 0xef, 0x23, 0x24, 0x81, 0xf8, 0xe6,
+ 0x30, 0xe5, 0xf4, 0xc2, 0xaf, 0xe6, 0x54, 0x8c, 0xf6, 0xd2, 0xaf,
+ 0xe5, 0x0c, 0xb5, 0x07, 0x0a, 0x74, 0x86, 0x2f, 0xf8, 0xe6, 0xf5,
+ 0x81, 0x02, 0x84, 0x4d, 0x50, 0x2e, 0x74, 0x87, 0x2f, 0xf8, 0xe6,
+ 0xbf, 0x02, 0x02, 0x74, 0xff, 0xfd, 0x18, 0xe6, 0xf9, 0x74, 0x86,
+ 0x2f, 0xf8, 0xfb, 0xe6, 0xfc, 0xe9, 0x6c, 0x60, 0x08, 0xa8, 0x05,
+ 0xe7, 0xf6, 0x1d, 0x19, 0x80, 0xf4, 0xa8, 0x03, 0xa6, 0x05, 0x1f,
+ 0xe5, 0x0c, 0xb5, 0x07, 0xe3, 0x7f, 0x00, 0x22, 0x74, 0x87, 0x2f,
+ 0xf8, 0xe6, 0xfd, 0x18, 0x86, 0x01, 0x0f, 0x74, 0x86, 0x2f, 0xf8,
+ 0xa6, 0x01, 0x08, 0x86, 0x04, 0xe5, 0x0c, 0xb5, 0x07, 0x02, 0xac,
+ 0x81, 0xed, 0x6c, 0x60, 0x08, 0x0d, 0x09, 0xa8, 0x05, 0xe6, 0xf7,
+ 0x80, 0xf4, 0xe5, 0x0c, 0xb5, 0x07, 0xde, 0x89, 0x81, 0x7f, 0x00,
+ 0x22, 0xef, 0xd3, 0x94, 0x02, 0x40, 0x03, 0x7f, 0xff, 0x22, 0xef,
+ 0x23, 0x24, 0x81, 0xf8, 0xc2, 0xaf, 0xe6, 0x30, 0xe5, 0x05, 0x30,
+ 0xe0, 0x02, 0xd2, 0xe4, 0xd2, 0xe2, 0xc6, 0xd2, 0xaf, 0x7f, 0x00,
+ 0x30, 0xe2, 0x01, 0x0f, 0x02, 0x84, 0x4c, 0x8f, 0xf0, 0xe4, 0xff,
+ 0xfe, 0xe5, 0x0c, 0x23, 0x24, 0x80, 0xf8, 0xc2, 0xa9, 0x30, 0xf7,
+ 0x0d, 0x7f, 0x08, 0xe6, 0x60, 0x0b, 0x2d, 0xf6, 0x60, 0x30, 0x50,
+ 0x2e, 0x80, 0x07, 0x30, 0xf1, 0x06, 0xed, 0xf6, 0x60, 0x25, 0x7e,
+ 0x02, 0x08, 0x30, 0xf0, 0x10, 0xc2, 0xaf, 0xe6, 0x10, 0xe7, 0x23,
+ 0x0e, 0x30, 0xe2, 0x0c, 0xd2, 0xaf, 0x7f, 0x04, 0x80, 0x12, 0xc2,
+ 0xaf, 0xe6, 0x10, 0xe7, 0x13, 0x54, 0xec, 0x4e, 0xf6, 0xd2, 0xaf,
+ 0x02, 0x84, 0x4d, 0x7f, 0x08, 0x08, 0xef, 0x44, 0x83, 0xf4, 0xc2,
+ 0xaf, 0x56, 0xc6, 0xd2, 0xaf, 0x54, 0x80, 0x4f, 0xff, 0x22, 0xef,
+ 0x2b, 0xff, 0xee, 0x3a, 0xfe, 0xed, 0x39, 0xfd, 0xec, 0x38, 0xfc,
+ 0x22, 0xc3, 0xef, 0x9b, 0xff, 0xee, 0x9a, 0xfe, 0xed, 0x99, 0xfd,
+ 0xec, 0x98, 0xfc, 0x22, 0xe8, 0x8f, 0xf0, 0xa4, 0xcc, 0x8b, 0xf0,
+ 0xa4, 0x2c, 0xfc, 0xe9, 0x8e, 0xf0, 0xa4, 0x2c, 0xfc, 0x8a, 0xf0,
+ 0xed, 0xa4, 0x2c, 0xfc, 0xea, 0x8e, 0xf0, 0xa4, 0xcd, 0xa8, 0xf0,
+ 0x8b, 0xf0, 0xa4, 0x2d, 0xcc, 0x38, 0x25, 0xf0, 0xfd, 0xe9, 0x8f,
+ 0xf0, 0xa4, 0x2c, 0xcd, 0x35, 0xf0, 0xfc, 0xeb, 0x8e, 0xf0, 0xa4,
+ 0xfe, 0xa9, 0xf0, 0xeb, 0x8f, 0xf0, 0xa4, 0xcf, 0xc5, 0xf0, 0x2e,
+ 0xcd, 0x39, 0xfe, 0xe4, 0x3c, 0xfc, 0xea, 0xa4, 0x2d, 0xce, 0x35,
+ 0xf0, 0xfd, 0xe4, 0x3c, 0xfc, 0x22, 0xef, 0x5b, 0xff, 0xee, 0x5a,
+ 0xfe, 0xed, 0x59, 0xfd, 0xec, 0x58, 0xfc, 0x22, 0xef, 0x4b, 0xff,
+ 0xee, 0x4a, 0xfe, 0xed, 0x49, 0xfd, 0xec, 0x48, 0xfc, 0x22, 0xe0,
+ 0xfc, 0xa3, 0xe0, 0xfd, 0xa3, 0xe0, 0xfe, 0xa3, 0xe0, 0xff, 0x22,
+ 0xe0, 0xf8, 0xa3, 0xe0, 0xf9, 0xa3, 0xe0, 0xfa, 0xa3, 0xe0, 0xfb,
+ 0x22, 0xe0, 0xfb, 0xa3, 0xe0, 0xfa, 0xa3, 0xe0, 0xf9, 0x22, 0xeb,
+ 0xf0, 0xa3, 0xea, 0xf0, 0xa3, 0xe9, 0xf0, 0x22, 0xd0, 0x83, 0xd0,
+ 0x82, 0xf8, 0xe4, 0x93, 0x70, 0x12, 0x74, 0x01, 0x93, 0x70, 0x0d,
+ 0xa3, 0xa3, 0x93, 0xf8, 0x74, 0x01, 0x93, 0xf5, 0x82, 0x88, 0x83,
+ 0xe4, 0x73, 0x74, 0x02, 0x93, 0x68, 0x60, 0xef, 0xa3, 0xa3, 0xa3,
+ 0x80, 0xdf, 0x02, 0x87, 0xbb, 0x02, 0x84, 0xdd, 0xe4, 0x93, 0xa3,
+ 0xf8, 0xe4, 0x93, 0xa3, 0x40, 0x03, 0xf6, 0x80, 0x01, 0xf2, 0x08,
+ 0xdf, 0xf4, 0x80, 0x29, 0xe4, 0x93, 0xa3, 0xf8, 0x54, 0x07, 0x24,
+ 0x0c, 0xc8, 0xc3, 0x33, 0xc4, 0x54, 0x0f, 0x44, 0x20, 0xc8, 0x83,
+ 0x40, 0x04, 0xf4, 0x56, 0x80, 0x01, 0x46, 0xf6, 0xdf, 0xe4, 0x80,
+ 0x0b, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x90, 0x88,
+ 0x00, 0xe4, 0x7e, 0x01, 0x93, 0x60, 0xbc, 0xa3, 0xff, 0x54, 0x3f,
+ 0x30, 0xe5, 0x09, 0x54, 0x1f, 0xfe, 0xe4, 0x93, 0xa3, 0x60, 0x01,
+ 0x0e, 0xcf, 0x54, 0xc0, 0x25, 0xe0, 0x60, 0xa8, 0x40, 0xb8, 0xe4,
+ 0x93, 0xa3, 0xfa, 0xe4, 0x93, 0xa3, 0xf8, 0xe4, 0x93, 0xa3, 0xc8,
+ 0xc5, 0x82, 0xc8, 0xca, 0xc5, 0x83, 0xca, 0xf0, 0xa3, 0xc8, 0xc5,
+ 0x82, 0xc8, 0xca, 0xc5, 0x83, 0xca, 0xdf, 0xe9, 0xde, 0xe7, 0x80,
+ 0xbe, 0x41, 0x95, 0x11, 0x00, 0x41, 0x95, 0x12, 0x00, 0x41, 0x95,
+ 0x19, 0x00, 0x00, 0xbb, 0x20, 0xc0, 0x66, 0xc8, 0x01, 0x12, 0x5e,
+ 0x10, 0x7f, 0x04, 0x90, 0x95, 0x17, 0xef, 0xf0, 0x7f, 0x02, 0x12,
+ 0x86, 0x27, 0x90, 0x84, 0xc1, 0xe0, 0xff, 0x90, 0x95, 0x17, 0xe0,
+ 0xfe, 0xef, 0x4e, 0x90, 0x84, 0xc1, 0xf0, 0x22, 0x90, 0x93, 0xfb,
+ 0xef, 0xf0, 0x51, 0x7e, 0x7f, 0xf4, 0x7e, 0x00, 0x12, 0x64, 0x37,
+ 0xbf, 0x01, 0x08, 0x90, 0x94, 0x1a, 0xe0, 0x90, 0x94, 0x1c, 0xf0,
+ 0x51, 0x7e, 0x7f, 0xf5, 0x7e, 0x00, 0x12, 0x64, 0x37, 0xbf, 0x01,
+ 0x08, 0x90, 0x94, 0x1a, 0xe0, 0x90, 0x94, 0x1d, 0xf0, 0x51, 0x7e,
+ 0x7f, 0xf6, 0x7e, 0x00, 0x12, 0x64, 0x37, 0xbf, 0x01, 0x08, 0x90,
+ 0x94, 0x1a, 0xe0, 0x90, 0x94, 0x1e, 0xf0, 0x51, 0x7e, 0x7f, 0xf7,
+ 0x7e, 0x00, 0x12, 0x64, 0x37, 0xbf, 0x01, 0x08, 0x90, 0x94, 0x1a,
+ 0xe0, 0x90, 0x94, 0x1f, 0xf0, 0x51, 0x7e, 0x7f, 0xf8, 0x7e, 0x00,
+ 0x12, 0x64, 0x37, 0xbf, 0x01, 0x08, 0x90, 0x94, 0x1a, 0xe0, 0x90,
+ 0x94, 0x20, 0xf0, 0x51, 0x7e, 0x12, 0xbf, 0x6c, 0xbf, 0x01, 0x08,
+ 0x90, 0x94, 0x1a, 0xe0, 0x90, 0x94, 0x21, 0xf0, 0x51, 0x7e, 0x51,
+ 0x85, 0x70, 0x52, 0x90, 0x94, 0x1a, 0xe0, 0x90, 0x94, 0x22, 0xf0,
+ 0x54, 0x07, 0x60, 0x08, 0x90, 0x94, 0x1a, 0xe0, 0x54, 0xe0, 0x70,
+ 0x3e, 0x7b, 0x01, 0x7a, 0x94, 0x79, 0x1b, 0x7f, 0xfa, 0x51, 0x87,
+ 0x70, 0x32, 0x90, 0x94, 0x1a, 0xe0, 0xfc, 0x54, 0x07, 0x70, 0x12,
+ 0x90, 0x94, 0x22, 0xe0, 0xfe, 0x90, 0x94, 0x1b, 0xe0, 0x54, 0x07,
+ 0xfd, 0xee, 0x4d, 0x90, 0x94, 0x22, 0xf0, 0xec, 0x54, 0xe0, 0x70,
+ 0x12, 0x90, 0x94, 0x22, 0xe0, 0xff, 0x90, 0x94, 0x1b, 0xe0, 0x54,
+ 0xe0, 0xfe, 0xef, 0x4e, 0x90, 0x94, 0x22, 0xf0, 0x51, 0x7e, 0x7f,
+ 0xfd, 0x51, 0x87, 0x70, 0x47, 0x90, 0x94, 0x1a, 0xe0, 0xfe, 0x54,
+ 0xcc, 0x90, 0x94, 0x23, 0xf0, 0xee, 0x54, 0x0c, 0xff, 0x60, 0x08,
+ 0x90, 0x94, 0x1a, 0xe0, 0x54, 0xc0, 0x70, 0x2e, 0xef, 0x70, 0x12,
+ 0x90, 0x94, 0x23, 0xe0, 0xff, 0x90, 0x94, 0x1a, 0xe0, 0x54, 0x03,
+ 0x12, 0xd1, 0xca, 0x90, 0x94, 0x23, 0xf0, 0x90, 0x94, 0x1a, 0xe0,
+ 0xff, 0x54, 0xc0, 0x70, 0x10, 0x90, 0x94, 0x23, 0xe0, 0xfe, 0xef,
+ 0x54, 0x30, 0x25, 0xe0, 0x25, 0xe0, 0xff, 0xee, 0x4f, 0xf0, 0x51,
+ 0x7e, 0x7f, 0xf0, 0x7e, 0x00, 0x12, 0x64, 0x37, 0xbf, 0x01, 0x08,
+ 0x90, 0x94, 0x1a, 0xe0, 0x90, 0x94, 0x24, 0xf0, 0x51, 0x7e, 0x7f,
+ 0xf1, 0x7e, 0x00, 0x12, 0x64, 0x37, 0xbf, 0x01, 0x08, 0x90, 0x94,
+ 0x1a, 0xe0, 0x90, 0x94, 0x25, 0xf0, 0x51, 0x7e, 0x7f, 0xf2, 0x7e,
+ 0x00, 0x12, 0x64, 0x37, 0xbf, 0x01, 0x08, 0x90, 0x94, 0x1a, 0xe0,
+ 0x90, 0x94, 0x26, 0xf0, 0x51, 0x7e, 0x7f, 0xf3, 0x7e, 0x00, 0x12,
+ 0x64, 0x37, 0xbf, 0x01, 0x08, 0x90, 0x94, 0x1a, 0xe0, 0x90, 0x94,
+ 0x27, 0xf0, 0x51, 0x7e, 0x7f, 0xfc, 0x7e, 0x00, 0x12, 0x64, 0x37,
+ 0xbf, 0x01, 0x08, 0x90, 0x94, 0x1a, 0xe0, 0x90, 0x94, 0x28, 0xf0,
+ 0x90, 0x93, 0xfc, 0x74, 0x19, 0xf0, 0x90, 0x94, 0x0a, 0x74, 0x08,
+ 0xf0, 0x90, 0x94, 0x1c, 0xe0, 0x90, 0x93, 0xfe, 0xf0, 0x90, 0x94,
+ 0x1d, 0xe0, 0x90, 0x93, 0xff, 0xf0, 0x90, 0x94, 0x1e, 0xe0, 0x90,
+ 0x94, 0x00, 0xf0, 0x90, 0x94, 0x1f, 0xe0, 0x90, 0x94, 0x01, 0xf0,
+ 0x90, 0x94, 0x20, 0xe0, 0x90, 0x94, 0x02, 0xf0, 0x90, 0x94, 0x21,
+ 0xe0, 0x90, 0x94, 0x03, 0xf0, 0x90, 0x94, 0x22, 0xe0, 0x90, 0x94,
+ 0x04, 0xf0, 0x90, 0x94, 0x23, 0xe0, 0x90, 0x94, 0x05, 0xf0, 0x90,
+ 0x94, 0x0b, 0x74, 0x1a, 0xf0, 0x90, 0x94, 0x19, 0x74, 0x05, 0xf0,
+ 0x90, 0x94, 0x24, 0xe0, 0x90, 0x94, 0x0d, 0xf0, 0x90, 0x94, 0x25,
+ 0xe0, 0x90, 0x94, 0x0e, 0xf0, 0x90, 0x94, 0x26, 0xe0, 0x90, 0x94,
+ 0x0f, 0xf0, 0x90, 0x94, 0x27, 0xe0, 0x90, 0x94, 0x10, 0xf0, 0x90,
+ 0x94, 0x28, 0xe0, 0x90, 0x94, 0x11, 0xf0, 0x90, 0x93, 0xfb, 0xe0,
+ 0xb4, 0x01, 0x16, 0x7b, 0x01, 0x7a, 0x93, 0x79, 0xfc, 0x12, 0x5e,
+ 0x10, 0x7b, 0x01, 0x7a, 0x94, 0x79, 0x0b, 0x12, 0x5e, 0x10, 0x7f,
+ 0x04, 0x01, 0x18, 0x75, 0x1b, 0x01, 0x75, 0x1c, 0x93, 0x75, 0x1d,
+ 0xfc, 0x75, 0x1e, 0x0a, 0x7b, 0x01, 0x7a, 0x01, 0x79, 0xa0, 0x12,
+ 0x6a, 0x21, 0x75, 0x1b, 0x01, 0x75, 0x1c, 0x94, 0x75, 0x1d, 0x0d,
+ 0x75, 0x1e, 0x05, 0x7b, 0x01, 0x7a, 0x01, 0x79, 0xaa, 0x02, 0x6a,
+ 0x21, 0x7b, 0x01, 0x7a, 0x94, 0x79, 0x1a, 0x22, 0x7f, 0xfb, 0x7e,
+ 0x00, 0x12, 0x64, 0x37, 0xef, 0x64, 0x01, 0x22, 0x12, 0xa0, 0x37,
+ 0x12, 0x02, 0xf6, 0xff, 0xf1, 0x73, 0xfe, 0x54, 0x03, 0xfd, 0xee,
+ 0x13, 0x13, 0x54, 0x07, 0xfb, 0xc0, 0x03, 0xf1, 0x58, 0xf1, 0xf3,
+ 0x12, 0xd0, 0x6a, 0xd0, 0x03, 0x12, 0xa9, 0x59, 0xf1, 0x58, 0xf1,
+ 0x73, 0x71, 0xbe, 0x90, 0x93, 0xc6, 0x74, 0x10, 0xf0, 0x90, 0x93,
+ 0xd4, 0x74, 0x07, 0xf0, 0xf1, 0x58, 0x12, 0x02, 0xf6, 0x90, 0x93,
+ 0xc8, 0xf0, 0x7b, 0x01, 0x7a, 0x93, 0x79, 0xc6, 0x12, 0x5e, 0x10,
+ 0x7f, 0x04, 0x01, 0x18, 0x90, 0x93, 0xc0, 0x12, 0x87, 0x4e, 0x90,
+ 0x93, 0xbf, 0xef, 0xf0, 0x12, 0x87, 0x57, 0x8b, 0x33, 0x00, 0x8b,
+ 0x37, 0x01, 0x8b, 0x3c, 0x06, 0x8b, 0x4d, 0x10, 0x8b, 0x52, 0x11,
+ 0x8b, 0x57, 0x12, 0x8b, 0x5c, 0x14, 0x8b, 0xa9, 0x15, 0x8b, 0x61,
+ 0x16, 0x8b, 0x65, 0x18, 0x8b, 0x6a, 0x19, 0x8b, 0x6f, 0x1c, 0x8b,
+ 0x73, 0x20, 0x8b, 0x78, 0x24, 0x8b, 0x7d, 0x25, 0x8b, 0x82, 0x27,
+ 0x8b, 0x87, 0x40, 0x8b, 0x8c, 0x42, 0x8b, 0xa9, 0x47, 0x8b, 0x91,
+ 0x49, 0x8b, 0x96, 0xc3, 0x8b, 0x41, 0xc6, 0x8b, 0x41, 0xc7, 0x8b,
+ 0x41, 0xc8, 0x00, 0x00, 0x8b, 0x9a, 0x71, 0xaa, 0xe1, 0xf9, 0x71,
+ 0xaa, 0x02, 0x98, 0x09, 0x71, 0xaa, 0x02, 0xb9, 0x3f, 0x90, 0x93,
+ 0xbf, 0xe0, 0xff, 0xa3, 0x12, 0x87, 0x45, 0x02, 0xb9, 0xda, 0x71,
+ 0xaa, 0x02, 0x9f, 0xff, 0x71, 0xaa, 0x02, 0x91, 0x0f, 0x71, 0xaa,
+ 0x02, 0xb0, 0x32, 0x71, 0xaa, 0x02, 0xb1, 0x0c, 0x71, 0xaa, 0xe1,
+ 0xca, 0x71, 0xaa, 0x02, 0xa8, 0x01, 0x71, 0xaa, 0x02, 0xaf, 0xed,
+ 0x71, 0xaa, 0x41, 0x90, 0x71, 0xaa, 0x02, 0x90, 0x3f, 0x71, 0xaa,
+ 0x02, 0xa4, 0xb6, 0x71, 0xaa, 0x02, 0xb1, 0x1b, 0x71, 0xaa, 0x02,
+ 0xb1, 0x23, 0x71, 0xaa, 0x02, 0xa0, 0x3d, 0x71, 0xaa, 0x02, 0x4e,
+ 0x29, 0x71, 0xaa, 0x02, 0xca, 0xe1, 0x71, 0xaa, 0xe1, 0xb5, 0x90,
+ 0x01, 0xc0, 0xe0, 0x44, 0x01, 0xf0, 0x90, 0x93, 0xbf, 0xe0, 0x90,
+ 0x01, 0xc2, 0xf0, 0x22, 0x90, 0x93, 0xc0, 0x02, 0x87, 0x45, 0x75,
+ 0xf0, 0x1b, 0xa4, 0x24, 0x38, 0xf5, 0x82, 0xe4, 0x34, 0x92, 0xf5,
+ 0x83, 0xe0, 0xfe, 0x54, 0x03, 0xff, 0xee, 0x13, 0x13, 0x54, 0x07,
+ 0xfd, 0xd3, 0x10, 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0x90, 0x95, 0x15,
+ 0xed, 0xf0, 0xe4, 0xa3, 0xf0, 0xef, 0x14, 0x60, 0x02, 0x81, 0xaf,
+ 0x90, 0x06, 0x03, 0xe0, 0x54, 0xfb, 0xf0, 0x90, 0x95, 0x15, 0xe0,
+ 0xfb, 0xc4, 0x33, 0x54, 0xe0, 0xfe, 0x90, 0x04, 0x42, 0xe0, 0x54,
+ 0x9f, 0x4e, 0xfe, 0xf0, 0xe4, 0xfd, 0x12, 0xcd, 0x05, 0x90, 0x95,
+ 0x16, 0xef, 0xf0, 0x90, 0x04, 0x83, 0xf0, 0x90, 0x94, 0xd3, 0x12,
+ 0x04, 0xf7, 0x00, 0x00, 0x00, 0x01, 0x90, 0x94, 0xd7, 0x12, 0x04,
+ 0xf7, 0x00, 0x00, 0x00, 0x01, 0xb1, 0x82, 0x12, 0x04, 0xf7, 0x00,
+ 0x00, 0x00, 0x01, 0x90, 0x94, 0xd7, 0x12, 0x04, 0xf7, 0x00, 0x00,
+ 0x00, 0x01, 0x7f, 0x00, 0x7e, 0x09, 0xb1, 0x86, 0x12, 0x04, 0xf7,
+ 0x00, 0x00, 0x00, 0x10, 0x90, 0x95, 0x15, 0xb1, 0xa5, 0xef, 0x54,
+ 0x03, 0xff, 0xe4, 0x78, 0x01, 0x12, 0x04, 0xc5, 0x78, 0x04, 0xf1,
+ 0x64, 0x7f, 0x00, 0x7e, 0x0a, 0xb1, 0x86, 0x12, 0x04, 0xf7, 0x00,
+ 0x00, 0x0c, 0x00, 0x90, 0x95, 0x15, 0xb1, 0xa5, 0xef, 0x54, 0x03,
+ 0xff, 0xe4, 0x78, 0x0a, 0xf1, 0x64, 0x7f, 0x00, 0x7e, 0x0d, 0xb1,
+ 0x86, 0x12, 0x04, 0xf7, 0x0c, 0x00, 0x00, 0x00, 0x90, 0x95, 0x16,
+ 0xb1, 0xa5, 0xef, 0x54, 0x03, 0xff, 0xe4, 0x78, 0x1a, 0xf1, 0x64,
+ 0x7f, 0x18, 0xb1, 0x84, 0x12, 0x04, 0xf7, 0x00, 0x00, 0x0c, 0x00,
+ 0x90, 0x94, 0xd7, 0x12, 0x04, 0xf7, 0x00, 0x00, 0x00, 0x00, 0xb1,
+ 0x18, 0x90, 0x94, 0xc1, 0x12, 0x04, 0xf7, 0x00, 0x00, 0x0c, 0x00,
+ 0x90, 0x94, 0xc5, 0x12, 0x04, 0xf7, 0x00, 0x00, 0x04, 0x00, 0x80,
+ 0x5b, 0x90, 0x06, 0x03, 0xe0, 0x44, 0x04, 0xf0, 0x90, 0x94, 0xd3,
+ 0x12, 0x04, 0xf7, 0x00, 0x00, 0x00, 0x01, 0x90, 0x94, 0xd7, 0x12,
+ 0x04, 0xf7, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x82, 0x12, 0x04, 0xf7,
+ 0x00, 0x00, 0x00, 0x01, 0x90, 0x94, 0xd7, 0x12, 0x04, 0xf7, 0x00,
+ 0x00, 0x00, 0x00, 0x7f, 0x00, 0x7e, 0x09, 0xb1, 0x86, 0x12, 0x04,
+ 0xf7, 0x00, 0x00, 0x0c, 0x00, 0x90, 0x94, 0xd7, 0x12, 0x04, 0xf7,
+ 0x00, 0x00, 0x0c, 0x00, 0xb1, 0x18, 0x90, 0x94, 0xc1, 0x12, 0x04,
+ 0xf7, 0x00, 0x00, 0x0c, 0x00, 0x90, 0x94, 0xc5, 0x12, 0x04, 0xf7,
+ 0x00, 0x00, 0x0c, 0x00, 0x7d, 0x18, 0x7c, 0x00, 0xe4, 0xff, 0x12,
+ 0xa9, 0xd2, 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0x7f, 0x84, 0x7e, 0x08,
+ 0xd3, 0x10, 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0x90, 0x94, 0xd1, 0xee,
+ 0xf0, 0xa3, 0xef, 0xf0, 0x12, 0x70, 0x61, 0x90, 0x94, 0xdb, 0x12,
+ 0x04, 0xeb, 0x90, 0x94, 0xd3, 0x12, 0x87, 0x2d, 0x12, 0x04, 0xa7,
+ 0x90, 0x94, 0xdb, 0xf1, 0x5e, 0xc0, 0x04, 0xc0, 0x05, 0xc0, 0x06,
+ 0xc0, 0x07, 0x90, 0x94, 0xd3, 0x12, 0x87, 0x2d, 0x90, 0x94, 0xd7,
+ 0xf1, 0x5e, 0xd0, 0x03, 0xd0, 0x02, 0xd0, 0x01, 0xd0, 0x00, 0x12,
+ 0x87, 0x20, 0x90, 0x94, 0xdf, 0x12, 0x04, 0xeb, 0x90, 0x94, 0xdf,
+ 0x12, 0x87, 0x2d, 0x90, 0x91, 0x66, 0x12, 0x04, 0xeb, 0x90, 0x94,
+ 0xd1, 0xe0, 0xfe, 0xa3, 0xe0, 0xff, 0x12, 0x71, 0x18, 0xd0, 0xd0,
+ 0x92, 0xaf, 0x22, 0x7f, 0x00, 0x7e, 0x08, 0xb1, 0x1c, 0x90, 0x94,
+ 0xd3, 0x22, 0x90, 0x05, 0x61, 0xe0, 0xff, 0xe4, 0xfc, 0xfd, 0xfe,
+ 0x78, 0x08, 0x12, 0x04, 0xd8, 0xa8, 0x04, 0xa9, 0x05, 0xaa, 0x06,
+ 0xab, 0x07, 0x90, 0x05, 0x60, 0xe0, 0xff, 0xe4, 0xfc, 0xfd, 0xfe,
+ 0x22, 0x90, 0x92, 0x0a, 0xe0, 0x20, 0xe0, 0x02, 0xe1, 0x49, 0x90,
+ 0x92, 0xb6, 0xe0, 0x04, 0xf0, 0x12, 0x94, 0x0e, 0x04, 0xff, 0x90,
+ 0x94, 0x6f, 0xf0, 0x90, 0x92, 0x0b, 0xe0, 0xb5, 0x07, 0x05, 0xe4,
+ 0x90, 0x94, 0x6f, 0xf0, 0x90, 0x92, 0xb4, 0xe0, 0xff, 0x60, 0x17,
+ 0x90, 0x94, 0x6f, 0xf1, 0x7c, 0xe0, 0xc3, 0x9f, 0x90, 0x91, 0x6f,
+ 0x12, 0xaf, 0x91, 0xfb, 0xfd, 0x7f, 0x50, 0x7e, 0x01, 0x12, 0x61,
+ 0x41, 0x90, 0x94, 0x6f, 0xe0, 0xff, 0xf1, 0xa6, 0x54, 0x07, 0xfe,
+ 0x64, 0x02, 0x60, 0x03, 0xee, 0x70, 0x11, 0xef, 0xf1, 0x7d, 0xe0,
+ 0x24, 0xfc, 0xff, 0xe4, 0x90, 0x91, 0x6e, 0xf0, 0xa3, 0xef, 0x12,
+ 0xc6, 0x20, 0x90, 0x92, 0x0a, 0xe0, 0xf1, 0xa2, 0x54, 0x07, 0xff,
+ 0x14, 0x60, 0x0f, 0x14, 0x60, 0x07, 0x14, 0x60, 0x09, 0x24, 0x03,
+ 0x70, 0x0b, 0x12, 0xcc, 0x5e, 0x80, 0x03, 0x12, 0x97, 0xee, 0x12,
+ 0x94, 0x17, 0x90, 0x92, 0xb3, 0xe0, 0xff, 0x90, 0x92, 0xb6, 0xe0,
+ 0xd3, 0x9f, 0x40, 0x02, 0xe1, 0x49, 0xb1, 0x8c, 0x12, 0x87, 0x20,
+ 0xc0, 0x04, 0xc0, 0x05, 0xc0, 0x06, 0xc0, 0x07, 0x90, 0x05, 0x62,
+ 0xb1, 0xa5, 0x78, 0x10, 0x12, 0x04, 0xd8, 0xd0, 0x03, 0xd0, 0x02,
+ 0xd0, 0x01, 0xd0, 0x00, 0x12, 0x87, 0x20, 0xc0, 0x04, 0xc0, 0x05,
+ 0xc0, 0x06, 0xc0, 0x07, 0xa3, 0xb1, 0xa5, 0x78, 0x18, 0x12, 0x04,
+ 0xd8, 0xd0, 0x03, 0xd0, 0x02, 0xd0, 0x01, 0xd0, 0x00, 0x12, 0x87,
+ 0x20, 0x90, 0x94, 0x70, 0x12, 0x04, 0xeb, 0x90, 0x05, 0x65, 0xb1,
+ 0xa5, 0x12, 0xae, 0x80, 0x90, 0x05, 0x64, 0xb1, 0xa5, 0x12, 0x87,
+ 0x20, 0xc0, 0x04, 0xc0, 0x05, 0xc0, 0x06, 0xc0, 0x07, 0x90, 0x05,
+ 0x66, 0xb1, 0xa5, 0x78, 0x10, 0x12, 0x04, 0xd8, 0xd0, 0x03, 0xd0,
+ 0x02, 0xd0, 0x01, 0xd0, 0x00, 0x12, 0x87, 0x20, 0xc0, 0x04, 0xc0,
+ 0x05, 0xc0, 0x06, 0xc0, 0x07, 0xa3, 0xb1, 0xa5, 0x78, 0x18, 0x12,
+ 0x04, 0xd8, 0xd0, 0x03, 0xd0, 0x02, 0xd0, 0x01, 0xd0, 0x00, 0x12,
+ 0x87, 0x20, 0x90, 0x94, 0x74, 0x12, 0x04, 0xeb, 0x90, 0x94, 0x6f,
+ 0xf1, 0x7c, 0xb1, 0xa5, 0x12, 0xaf, 0xa6, 0x90, 0x94, 0x70, 0x12,
+ 0x87, 0x39, 0x12, 0x86, 0xa9, 0x90, 0x94, 0x78, 0x12, 0x04, 0xeb,
+ 0x90, 0x94, 0x70, 0x12, 0x87, 0x2d, 0x90, 0x94, 0x78, 0x12, 0xaf,
+ 0x9f, 0x50, 0x11, 0xf1, 0x4c, 0x12, 0xb9, 0x37, 0xe4, 0x3d, 0xfd,
+ 0xe4, 0x3c, 0xfc, 0x90, 0x94, 0x74, 0x12, 0x04, 0xeb, 0xf1, 0x4c,
+ 0x12, 0xaf, 0xb7, 0xf1, 0x4a, 0x12, 0xaf, 0xc0, 0xf1, 0x4a, 0x12,
+ 0xaf, 0xc9, 0xf1, 0x4a, 0x90, 0x05, 0x88, 0xef, 0xf0, 0x90, 0x94,
+ 0x78, 0x12, 0x87, 0x2d, 0x12, 0xaf, 0xd2, 0xef, 0xf0, 0x90, 0x94,
+ 0x78, 0x12, 0x87, 0x2d, 0x12, 0xaf, 0xdb, 0xef, 0xf0, 0x90, 0x94,
+ 0x78, 0x12, 0x87, 0x2d, 0x12, 0xaf, 0xe4, 0xef, 0xf0, 0x90, 0x94,
+ 0x78, 0x12, 0x87, 0x2d, 0x12, 0xd1, 0x1f, 0x22, 0xef, 0xf0, 0x90,
+ 0x94, 0x74, 0x02, 0x87, 0x2d, 0x24, 0x03, 0xff, 0xe4, 0x33, 0xfe,
+ 0x90, 0x93, 0xc3, 0x02, 0x87, 0x45, 0x12, 0x87, 0x39, 0x02, 0x87,
+ 0x13, 0x12, 0x04, 0xd8, 0x90, 0x94, 0xd7, 0x02, 0x04, 0xeb, 0xab,
+ 0x5b, 0xaa, 0x5c, 0xa9, 0x5d, 0x90, 0x00, 0x01, 0x02, 0x03, 0x0f,
+ 0x90, 0x94, 0x7e, 0xe0, 0x75, 0xf0, 0x1b, 0xa4, 0x24, 0x39, 0xf5,
+ 0x82, 0xe4, 0x34, 0x92, 0xf5, 0x83, 0x22, 0xf1, 0x8f, 0xa1, 0xac,
+ 0x90, 0x92, 0x09, 0xe0, 0x30, 0xe0, 0x0b, 0x12, 0xaf, 0x8a, 0xe4,
+ 0x90, 0x92, 0x0c, 0xf0, 0x12, 0xc5, 0xf1, 0x22, 0xc3, 0x13, 0x54,
+ 0x07, 0x75, 0xf0, 0x1b, 0xa4, 0x24, 0x3a, 0xf5, 0x82, 0xe4, 0x34,
+ 0x92, 0xf5, 0x83, 0xe0, 0x22, 0x12, 0x02, 0xf6, 0xff, 0x90, 0x92,
+ 0xbc, 0xf0, 0xbf, 0x01, 0x09, 0x7f, 0x01, 0x11, 0x33, 0xe4, 0x90,
+ 0x92, 0xbc, 0xf0, 0x22, 0x12, 0xaf, 0xae, 0x90, 0x92, 0x3c, 0xf0,
+ 0xf1, 0x73, 0x90, 0x92, 0x3d, 0xf1, 0xf2, 0x90, 0x92, 0x57, 0xf0,
+ 0x12, 0x91, 0x09, 0x90, 0x92, 0x58, 0xf0, 0x12, 0x97, 0xe7, 0x90,
+ 0x92, 0x72, 0x12, 0x97, 0xf5, 0x90, 0x92, 0x73, 0xf0, 0x22, 0x4f,
+ 0xf0, 0x90, 0x00, 0x02, 0x02, 0x03, 0x0f, 0x90, 0x02, 0x09, 0xe0,
+ 0xf5, 0x5b, 0x12, 0x02, 0xf6, 0x25, 0x5b, 0x90, 0x84, 0xc6, 0xf0,
+ 0x12, 0x8f, 0x73, 0x25, 0x5b, 0x90, 0x84, 0xc7, 0x12, 0x8f, 0xf2,
+ 0x25, 0x5b, 0x90, 0x84, 0xc8, 0xf0, 0x31, 0x09, 0x25, 0x5b, 0x90,
+ 0x84, 0xc9, 0xf0, 0xf1, 0xe7, 0x25, 0x5b, 0x90, 0x84, 0xca, 0xf1,
+ 0xf5, 0x25, 0x5b, 0x90, 0x84, 0xcb, 0xf0, 0x11, 0x39, 0x25, 0x5b,
+ 0x90, 0x84, 0xcc, 0xf0, 0x22, 0x90, 0x00, 0x06, 0x02, 0x03, 0x0f,
+ 0x12, 0xa0, 0x37, 0x12, 0x02, 0xf6, 0xff, 0x54, 0x7f, 0x90, 0x85,
+ 0xc5, 0xf0, 0xef, 0x12, 0xa3, 0x01, 0xa3, 0xf0, 0x12, 0x8f, 0x73,
+ 0xfd, 0x54, 0xf0, 0xc4, 0x54, 0x0f, 0xff, 0x90, 0x85, 0xc3, 0xe0,
+ 0x54, 0xf0, 0x4f, 0xf0, 0x31, 0x09, 0xfc, 0x54, 0x01, 0x25, 0xe0,
+ 0xff, 0x90, 0x85, 0xc1, 0xe0, 0x54, 0xfd, 0x4f, 0xf0, 0xec, 0x54,
+ 0x04, 0xff, 0x90, 0x92, 0xc9, 0xe0, 0x54, 0xfb, 0x4f, 0xf0, 0xed,
+ 0x54, 0x0f, 0xc4, 0x54, 0xf0, 0xff, 0x12, 0xb7, 0xdc, 0x12, 0x8f,
+ 0xf1, 0x90, 0x85, 0xc4, 0xf0, 0x11, 0x39, 0x30, 0xe0, 0x50, 0xc3,
+ 0x13, 0x54, 0x07, 0xff, 0xc3, 0x94, 0x04, 0x90, 0x85, 0xd8, 0x50,
+ 0x04, 0xef, 0xf0, 0x80, 0x27, 0x74, 0x03, 0xf0, 0x12, 0x8f, 0x58,
+ 0xe9, 0x24, 0x06, 0x12, 0xa7, 0xee, 0xff, 0x74, 0x03, 0x24, 0xfd,
+ 0xfe, 0xef, 0xc4, 0x54, 0x0f, 0xfd, 0xef, 0x54, 0x0f, 0xff, 0xed,
+ 0x2e, 0x54, 0x0f, 0xfe, 0xc4, 0x54, 0xf0, 0x4f, 0x12, 0x03, 0x3c,
+ 0x12, 0x8f, 0x58, 0x11, 0x39, 0xc4, 0x54, 0x0f, 0xff, 0xc3, 0x94,
+ 0x04, 0x90, 0x85, 0xcd, 0x50, 0x05, 0x74, 0x04, 0xf0, 0x80, 0x02,
+ 0xef, 0xf0, 0x12, 0x8f, 0x58, 0xf1, 0xe7, 0xfd, 0x7f, 0x02, 0x12,
+ 0x57, 0x82, 0x12, 0x8f, 0x58, 0x12, 0x71, 0xcb, 0x12, 0xc2, 0xd4,
+ 0xf0, 0x90, 0x85, 0xc5, 0x12, 0xd1, 0x6e, 0x12, 0xb7, 0xdb, 0x90,
+ 0x01, 0xbe, 0xf0, 0x22, 0x90, 0x00, 0x03, 0x02, 0x03, 0x0f, 0x12,
+ 0xaf, 0xae, 0xc4, 0x54, 0x0f, 0xff, 0xbf, 0x0f, 0x15, 0x90, 0x92,
+ 0x09, 0xe0, 0x54, 0xfe, 0xf0, 0x12, 0xaf, 0x8a, 0x12, 0x98, 0xd7,
+ 0x54, 0x0f, 0xff, 0x51, 0xc7, 0x02, 0xbc, 0x2f, 0x12, 0x8f, 0x6d,
+ 0x12, 0xd1, 0xf1, 0xf1, 0xfc, 0xf5, 0x83, 0xef, 0x12, 0x8f, 0xf2,
+ 0x54, 0x03, 0xff, 0x51, 0xb7, 0x54, 0xfc, 0x12, 0x8f, 0xf1, 0x54,
+ 0x1c, 0xff, 0xee, 0x54, 0x0f, 0xfe, 0x51, 0xb8, 0x54, 0xe3, 0x12,
+ 0x8f, 0xf1, 0x54, 0xe0, 0xff, 0xee, 0x51, 0xb8, 0x54, 0x1f, 0x4f,
+ 0xf0, 0xf1, 0xe7, 0xff, 0x12, 0x02, 0xf6, 0x54, 0x0f, 0xfd, 0xe4,
+ 0xfb, 0x51, 0xae, 0xf1, 0xf6, 0xff, 0x12, 0x02, 0xf6, 0x54, 0x0f,
+ 0xfd, 0x7b, 0x01, 0x51, 0xae, 0x31, 0x09, 0x33, 0x33, 0x33, 0x54,
+ 0xf8, 0x12, 0xd1, 0xf1, 0xfd, 0x75, 0xf0, 0x0e, 0xa4, 0x24, 0x16,
+ 0xf5, 0x82, 0xe4, 0x34, 0x92, 0xf5, 0x83, 0xef, 0xf0, 0x31, 0x09,
+ 0xc4, 0x13, 0x54, 0x07, 0xff, 0xed, 0x75, 0xf0, 0x0e, 0xa4, 0x24,
+ 0x17, 0xf5, 0x82, 0xe4, 0x34, 0x92, 0xf5, 0x83, 0xef, 0xf0, 0xee,
+ 0xc4, 0x54, 0x0f, 0xff, 0x14, 0x6d, 0x70, 0x21, 0x90, 0x92, 0x0b,
+ 0xef, 0xf0, 0x11, 0x39, 0x54, 0x0f, 0xc4, 0x54, 0xf0, 0xff, 0x90,
+ 0x92, 0x0a, 0xe0, 0x54, 0x0f, 0x4f, 0xf0, 0x54, 0xf1, 0xf0, 0x90,
+ 0x92, 0x09, 0xe0, 0x44, 0x01, 0x12, 0xd1, 0x23, 0x22, 0x8f, 0x5e,
+ 0x8d, 0x5f, 0xae, 0x03, 0x74, 0x1f, 0xc3, 0x95, 0x5e, 0x40, 0x0a,
+ 0x51, 0xa6, 0xe4, 0xfd, 0x51, 0x9e, 0x24, 0xd4, 0x80, 0x31, 0x74,
+ 0x3f, 0xc3, 0x95, 0x5e, 0x40, 0x0a, 0x51, 0xa6, 0x7d, 0x20, 0x51,
+ 0x9c, 0x24, 0x88, 0x80, 0x20, 0x74, 0x5f, 0xc3, 0x95, 0x5e, 0x40,
+ 0x0a, 0x51, 0xa6, 0x7d, 0x40, 0x51, 0x9c, 0x24, 0xd0, 0x80, 0x0f,
+ 0x74, 0x7f, 0xc3, 0x95, 0x5e, 0x40, 0x20, 0x51, 0xa6, 0x7d, 0x60,
+ 0x51, 0x9c, 0x24, 0x84, 0xfd, 0xe4, 0x34, 0x04, 0xfc, 0xe5, 0x5f,
+ 0x12, 0xd1, 0x13, 0xf5, 0x83, 0x75, 0xf0, 0x03, 0xee, 0x12, 0x05,
+ 0x28, 0xec, 0xf0, 0xa3, 0xed, 0xf0, 0x22, 0xc3, 0xef, 0x9d, 0xf5,
+ 0x60, 0xc3, 0x94, 0x08, 0x50, 0x1c, 0xe4, 0xf5, 0x61, 0x71, 0x9f,
+ 0xc0, 0x83, 0xc0, 0x82, 0x90, 0x93, 0xc7, 0xe0, 0xd0, 0x82, 0xd0,
+ 0x83, 0x75, 0xf0, 0x03, 0x12, 0x05, 0x28, 0xe5, 0x60, 0xf0, 0x80,
+ 0x3e, 0xe5, 0x60, 0xc3, 0x94, 0x10, 0x50, 0x09, 0x75, 0x61, 0x01,
+ 0xe5, 0x60, 0x24, 0xf8, 0x80, 0x17, 0xe5, 0x60, 0xc3, 0x94, 0x18,
+ 0x50, 0x09, 0x75, 0x61, 0x02, 0xe5, 0x60, 0x24, 0xf0, 0x80, 0x07,
+ 0x75, 0x61, 0x03, 0xe5, 0x60, 0x24, 0xe8, 0xff, 0x71, 0x9f, 0xc0,
+ 0x83, 0xc0, 0x82, 0x90, 0x93, 0xc7, 0xe0, 0xd0, 0x82, 0xd0, 0x83,
+ 0x75, 0xf0, 0x03, 0x12, 0x05, 0x28, 0xef, 0xf0, 0xaf, 0x61, 0x22,
+ 0xaf, 0x5e, 0x51, 0x35, 0x90, 0x93, 0xc3, 0xef, 0xf0, 0x22, 0x90,
+ 0x93, 0xc7, 0xee, 0xf0, 0xab, 0x5f, 0x22, 0x31, 0xd4, 0xab, 0x5b,
+ 0xaa, 0x5c, 0xa9, 0x5d, 0x22, 0xed, 0x75, 0xf0, 0x0e, 0xa4, 0x24,
+ 0x0e, 0xf5, 0x82, 0xe4, 0x34, 0x92, 0xf5, 0x83, 0xe0, 0x22, 0x8f,
+ 0x5e, 0xd1, 0xe6, 0xe5, 0x5e, 0xf1, 0xfd, 0xf5, 0x83, 0xe0, 0xfc,
+ 0xe5, 0x5e, 0x51, 0xb8, 0x12, 0xd0, 0x5a, 0xaf, 0x04, 0x12, 0xa9,
+ 0x59, 0xe5, 0x5e, 0x51, 0xb8, 0x12, 0x8b, 0xbe, 0xe5, 0x5e, 0x12,
+ 0xaa, 0xe3, 0xfd, 0xb1, 0x92, 0xb1, 0x82, 0xad, 0x5e, 0x7f, 0x01,
+ 0x80, 0x00, 0xd3, 0x10, 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0x90, 0x94,
+ 0xf9, 0xef, 0xf0, 0xa3, 0xed, 0xf0, 0xe4, 0xa3, 0xf0, 0x90, 0x94,
+ 0xfb, 0xe0, 0xff, 0xc3, 0x94, 0x03, 0x40, 0x02, 0x61, 0x9a, 0x90,
+ 0x94, 0xfa, 0xe0, 0xfe, 0x12, 0xd1, 0x13, 0xf5, 0x83, 0x75, 0xf0,
+ 0x03, 0xef, 0x12, 0xd1, 0x7b, 0xe0, 0x90, 0x94, 0xfc, 0xf0, 0x90,
+ 0x94, 0xf9, 0xe0, 0xfc, 0xb4, 0x02, 0x20, 0x90, 0x94, 0xfc, 0xe0,
+ 0xfd, 0xee, 0x71, 0xa0, 0xc0, 0x83, 0xc0, 0x82, 0x90, 0x94, 0xfb,
+ 0xe0, 0xd0, 0x82, 0xd0, 0x83, 0x12, 0xb2, 0x7b, 0x80, 0x02, 0xc3,
+ 0x33, 0xd8, 0xfc, 0x4d, 0x80, 0x20, 0xec, 0xb4, 0x01, 0x20, 0x12,
+ 0xd1, 0x9d, 0x71, 0xa0, 0xc0, 0x83, 0xc0, 0x82, 0x90, 0x94, 0xfb,
+ 0xe0, 0xd0, 0x82, 0xd0, 0x83, 0x12, 0xb2, 0x7b, 0x80, 0x02, 0xc3,
+ 0x33, 0xd8, 0xfc, 0xf4, 0x5f, 0x90, 0x94, 0xfc, 0xf0, 0x12, 0xd1,
+ 0x9d, 0x12, 0xd1, 0x13, 0xf5, 0x83, 0xc0, 0x83, 0xc0, 0x82, 0x90,
+ 0x94, 0xfb, 0xe0, 0xd0, 0x82, 0xd0, 0x83, 0x75, 0xf0, 0x03, 0x12,
+ 0xd1, 0x7b, 0xef, 0xf0, 0x90, 0x94, 0xfb, 0xe0, 0x04, 0xf0, 0x61,
+ 0x08, 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0xeb, 0x75, 0xf0, 0x0e, 0xa4,
+ 0x24, 0x11, 0xf5, 0x82, 0xe4, 0x34, 0x92, 0xf5, 0x83, 0x22, 0x12,
+ 0xd0, 0xa7, 0xb5, 0x07, 0x04, 0xee, 0x54, 0xf1, 0xf0, 0x12, 0xc5,
+ 0xf1, 0xe4, 0x90, 0x92, 0x0c, 0xf0, 0xd1, 0xee, 0x12, 0xd0, 0xbe,
+ 0xf1, 0xfc, 0xf5, 0x83, 0xe0, 0xfa, 0x51, 0xb7, 0xfc, 0x54, 0x03,
+ 0xfd, 0xec, 0x13, 0x13, 0x54, 0x07, 0xfb, 0xee, 0x12, 0xd0, 0x69,
+ 0xaf, 0x02, 0x12, 0xa9, 0x59, 0x91, 0x0e, 0x51, 0xb8, 0x12, 0x8b,
+ 0xbe, 0x91, 0x0e, 0xff, 0x75, 0xf0, 0x0e, 0xa4, 0x24, 0x18, 0xf5,
+ 0x82, 0xe4, 0x34, 0x92, 0xf5, 0x83, 0xe0, 0x04, 0xf0, 0x12, 0xaa,
+ 0xe2, 0xfd, 0xb1, 0x92, 0xe4, 0xfb, 0xfd, 0x91, 0x0a, 0xfd, 0x7f,
+ 0x01, 0x41, 0xf6, 0x7f, 0xff, 0xb1, 0x87, 0x90, 0x92, 0x0a, 0xe0,
+ 0xc3, 0x13, 0x54, 0x07, 0x22, 0xe4, 0x90, 0x94, 0x7f, 0xf0, 0x90,
+ 0x92, 0x0a, 0xe0, 0xff, 0x20, 0xe0, 0x02, 0xa1, 0x81, 0x12, 0x8f,
+ 0xa2, 0x54, 0x07, 0x90, 0x94, 0x7c, 0xf0, 0x60, 0x07, 0xe0, 0x64,
+ 0x02, 0x60, 0x02, 0xa1, 0x25, 0x90, 0x92, 0x0c, 0xe0, 0x70, 0x2e,
+ 0x12, 0xd1, 0xb0, 0x7b, 0x4e, 0x7d, 0x6f, 0x91, 0x0a, 0xf1, 0xd9,
+ 0xe0, 0xff, 0x7e, 0x00, 0x7b, 0x04, 0x7d, 0x01, 0xb1, 0x92, 0xbf,
+ 0x01, 0x0d, 0xf1, 0x5a, 0xe0, 0x44, 0x01, 0xf0, 0x90, 0x92, 0x0c,
+ 0x74, 0x01, 0xf0, 0x22, 0x90, 0x94, 0x7d, 0xe0, 0xfd, 0x7b, 0x4f,
+ 0x81, 0xfd, 0x90, 0x92, 0x0c, 0xe0, 0x64, 0x01, 0x60, 0x02, 0xa1,
+ 0x16, 0x91, 0x0e, 0xff, 0x12, 0x8f, 0xa6, 0xfe, 0xc4, 0x54, 0x0f,
+ 0x30, 0xe0, 0x02, 0xa1, 0x14, 0xef, 0xf1, 0x62, 0xe0, 0xff, 0x30,
+ 0xe0, 0x08, 0x90, 0x94, 0x7f, 0x74, 0x01, 0xf0, 0x80, 0x17, 0xef,
+ 0xc3, 0x13, 0x20, 0xe0, 0x11, 0x90, 0x94, 0x7f, 0x74, 0x01, 0xf0,
+ 0x12, 0xd1, 0xb0, 0x7b, 0x50, 0x7d, 0x6f, 0x7f, 0xff, 0xb1, 0x87,
+ 0x90, 0x94, 0x7f, 0xe0, 0x60, 0x64, 0x90, 0x92, 0xbb, 0xe0, 0xff,
+ 0x90, 0x92, 0xba, 0xe0, 0x6f, 0x60, 0x43, 0xe0, 0x04, 0xf0, 0xe0,
+ 0xd3, 0x94, 0x01, 0x40, 0x08, 0x90, 0x94, 0x80, 0x74, 0x04, 0xf0,
+ 0x80, 0x05, 0xe4, 0x90, 0x94, 0x80, 0xf0, 0x91, 0x0e, 0xf1, 0xd9,
+ 0xe0, 0xff, 0x7e, 0x00, 0x90, 0x94, 0x80, 0xe0, 0xfb, 0x7d, 0x01,
+ 0xb1, 0x92, 0xbf, 0x01, 0x0e, 0x12, 0xd1, 0x57, 0xf0, 0xe4, 0xfb,
+ 0xfd, 0x7f, 0x58, 0x7e, 0x01, 0x02, 0x61, 0x41, 0x90, 0x94, 0x7d,
+ 0xe0, 0xfd, 0x7b, 0x51, 0xe4, 0xff, 0xa1, 0x87, 0xe4, 0x90, 0x92,
+ 0xba, 0xf1, 0xed, 0x90, 0x92, 0x0a, 0xe0, 0xff, 0xf1, 0x5e, 0xe0,
+ 0x54, 0xfb, 0xf0, 0x80, 0x02, 0xf1, 0xee, 0x90, 0x92, 0x0c, 0xe0,
+ 0x64, 0x05, 0x70, 0x63, 0xd1, 0x37, 0xef, 0x70, 0x5e, 0x80, 0x57,
+ 0x90, 0x94, 0x7c, 0xe0, 0xff, 0x64, 0x03, 0x60, 0x05, 0xef, 0x64,
+ 0x01, 0x70, 0x4e, 0x90, 0x92, 0x0c, 0xe0, 0x64, 0x05, 0x70, 0x46,
+ 0x90, 0x94, 0x7c, 0xe0, 0x64, 0x01, 0x70, 0x2c, 0x12, 0x8f, 0x79,
+ 0xe0, 0xd3, 0x94, 0x1f, 0x90, 0x92, 0x0a, 0xe0, 0x40, 0x0a, 0xf1,
+ 0xd6, 0xe0, 0xff, 0x7d, 0x00, 0x7c, 0x7c, 0x80, 0x12, 0xc3, 0xf1,
+ 0xd6, 0xe0, 0xfb, 0x12, 0x8f, 0x79, 0xe0, 0x7d, 0x00, 0x25, 0xe0,
+ 0x25, 0xe0, 0xfc, 0xaf, 0x03, 0x12, 0x98, 0xee, 0x91, 0x0e, 0xfd,
+ 0x7f, 0x02, 0x12, 0xaa, 0x52, 0xd1, 0x37, 0xef, 0x70, 0x05, 0x7f,
+ 0x06, 0x12, 0xaa, 0xf7, 0x22, 0xe4, 0xfb, 0xfd, 0x7f, 0xff, 0x90,
+ 0x05, 0x22, 0xed, 0xf0, 0x90, 0x92, 0x01, 0xeb, 0xf0, 0x22, 0xd3,
+ 0x10, 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0x90, 0x94, 0xf2, 0xee, 0xf0,
+ 0xa3, 0x12, 0xb1, 0x03, 0x90, 0x04, 0x1d, 0xe0, 0x60, 0x27, 0x90,
+ 0x05, 0x22, 0xe0, 0x90, 0x94, 0xf8, 0xf0, 0x7b, 0x14, 0xd1, 0xe8,
+ 0xef, 0x64, 0x01, 0x70, 0x05, 0x12, 0xd0, 0x71, 0x80, 0x04, 0x7f,
+ 0x00, 0x80, 0x15, 0x90, 0x94, 0xf8, 0xe0, 0xfd, 0x7b, 0x15, 0xe4,
+ 0xff, 0xb1, 0x87, 0x80, 0x03, 0x12, 0xd0, 0x71, 0x12, 0x9f, 0xf8,
+ 0x7f, 0x01, 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0x90, 0x92, 0x09, 0xe0,
+ 0x30, 0xe0, 0x53, 0x90, 0x92, 0x0c, 0xe0, 0x70, 0x25, 0x7b, 0x16,
+ 0x7d, 0x6f, 0xd1, 0xea, 0x91, 0x0e, 0x12, 0xaa, 0xe3, 0x7d, 0x01,
+ 0xb1, 0x92, 0x91, 0x0e, 0x12, 0xc5, 0x01, 0xe0, 0x44, 0x01, 0xf0,
+ 0x12, 0xd1, 0x57, 0x12, 0xc6, 0x20, 0x90, 0x92, 0x0c, 0x74, 0x01,
+ 0xf0, 0x22, 0x90, 0x92, 0x0c, 0xe0, 0x64, 0x01, 0x70, 0x1e, 0x91,
+ 0x0e, 0x12, 0xc5, 0x00, 0xe0, 0x30, 0xe0, 0x15, 0x12, 0xaa, 0xe2,
+ 0x7d, 0x01, 0xb1, 0x92, 0x12, 0xd1, 0x57, 0xf0, 0xe4, 0xfb, 0xfd,
+ 0x7f, 0x54, 0x7e, 0x01, 0x02, 0x61, 0x41, 0x71, 0xae, 0x22, 0xd1,
+ 0xee, 0xef, 0x70, 0x02, 0xff, 0x22, 0x91, 0x0e, 0x90, 0x92, 0x88,
+ 0xf0, 0x12, 0xd0, 0xa7, 0xb5, 0x07, 0x04, 0xee, 0x54, 0xf1, 0xf0,
+ 0x91, 0x0e, 0xf5, 0x77, 0xe4, 0x90, 0x92, 0x0c, 0xf0, 0xe5, 0x77,
+ 0x75, 0xf0, 0x1b, 0xa4, 0x24, 0x3b, 0xf5, 0x82, 0xe4, 0x34, 0x92,
+ 0xf5, 0x83, 0xe0, 0x30, 0xe0, 0x27, 0xf1, 0x4e, 0xe0, 0x24, 0x8b,
+ 0xf5, 0x82, 0xe4, 0x34, 0x92, 0xf5, 0x83, 0xe0, 0xff, 0x12, 0xaa,
+ 0xd2, 0xef, 0xf1, 0x4d, 0xe0, 0x04, 0xf1, 0x4d, 0xe0, 0xff, 0x90,
+ 0x92, 0x8a, 0xe0, 0xfe, 0xef, 0xb5, 0x06, 0x04, 0xf1, 0x4e, 0xe4,
+ 0xf0, 0x12, 0xaa, 0xd2, 0xe0, 0xfc, 0x90, 0x92, 0x88, 0xe0, 0x12,
+ 0xaa, 0xd4, 0xe0, 0x6c, 0x60, 0x0f, 0xe5, 0x77, 0x12, 0xd0, 0x4c,
+ 0xaf, 0x04, 0x12, 0xa9, 0x59, 0xe5, 0x77, 0x12, 0x8b, 0xb0, 0xe5,
+ 0x77, 0x12, 0x8f, 0xa6, 0x54, 0x07, 0xff, 0x60, 0x03, 0xbf, 0x02,
+ 0x0e, 0xe5, 0x77, 0xf1, 0xd9, 0xe0, 0xff, 0x7e, 0x00, 0x7b, 0x04,
+ 0xe4, 0xfd, 0xb1, 0x92, 0xad, 0x77, 0x7f, 0x01, 0x12, 0xaa, 0x52,
+ 0x90, 0x92, 0x89, 0xe0, 0xc3, 0x13, 0x54, 0x03, 0xff, 0xbf, 0x02,
+ 0x05, 0xe4, 0xff, 0x12, 0xaa, 0xf7, 0x7f, 0x01, 0x22, 0x7b, 0x17,
+ 0x7d, 0xff, 0x7f, 0xff, 0xb1, 0x87, 0xe4, 0x90, 0x95, 0x05, 0xf0,
+ 0xa3, 0xf0, 0x90, 0x05, 0x22, 0xe0, 0x90, 0x95, 0x07, 0xf0, 0x7d,
+ 0x47, 0x7f, 0xff, 0x12, 0x98, 0xe3, 0x90, 0x05, 0xf8, 0xe0, 0x70,
+ 0x15, 0xa3, 0xe0, 0x70, 0x11, 0xa3, 0xe0, 0x70, 0x0d, 0xa3, 0xe0,
+ 0x70, 0x09, 0x12, 0xd1, 0xe9, 0x12, 0x98, 0xe3, 0x7f, 0x01, 0x22,
+ 0xd3, 0x90, 0x95, 0x06, 0xe0, 0x94, 0xe8, 0x90, 0x95, 0x05, 0xe0,
+ 0x94, 0x03, 0x40, 0x10, 0x90, 0x01, 0xc0, 0xe0, 0x44, 0x20, 0xf0,
+ 0x12, 0xd1, 0xe9, 0x12, 0x98, 0xe3, 0x7f, 0x00, 0x22, 0x7f, 0x32,
+ 0x7e, 0x00, 0x12, 0x7c, 0x9f, 0x90, 0x95, 0x05, 0x12, 0xbd, 0xff,
+ 0x80, 0xb7, 0xf0, 0x74, 0xae, 0x25, 0x77, 0xf5, 0x82, 0xe4, 0x34,
+ 0x92, 0xf5, 0x83, 0x22, 0x90, 0x92, 0x0a, 0xe0, 0xc3, 0x13, 0x54,
+ 0x07, 0x75, 0xf0, 0x1b, 0xa4, 0x24, 0x3e, 0xf5, 0x82, 0xe4, 0x34,
+ 0x92, 0xf5, 0x83, 0x22, 0xe4, 0x90, 0x94, 0x6f, 0xf0, 0x90, 0x92,
+ 0x0a, 0xe0, 0x30, 0xe0, 0x59, 0xc3, 0x13, 0x54, 0x07, 0xff, 0xf1,
+ 0x62, 0xe0, 0xfe, 0x30, 0xe0, 0x4d, 0xef, 0xf1, 0x62, 0xee, 0x54,
+ 0xfe, 0xf0, 0xef, 0xf1, 0x62, 0x12, 0xc4, 0xb9, 0x30, 0xe0, 0x11,
+ 0x90, 0x92, 0x0a, 0xe0, 0xfe, 0xf1, 0x5e, 0xef, 0x54, 0xfb, 0xf0,
+ 0x90, 0x94, 0x6f, 0x74, 0x01, 0xf0, 0x90, 0x04, 0xe0, 0xe0, 0x30,
+ 0xe1, 0x1d, 0xf1, 0xee, 0xf1, 0x5a, 0xe0, 0x44, 0x02, 0xf0, 0xe4,
+ 0x90, 0x92, 0xba, 0xf0, 0x91, 0x0e, 0xfd, 0x7f, 0x02, 0x12, 0xaa,
+ 0x52, 0x90, 0x94, 0x6f, 0xe0, 0x60, 0x0a, 0x81, 0x17, 0xf1, 0x5a,
+ 0xe0, 0x54, 0xfd, 0xf0, 0xb1, 0x82, 0x22, 0x13, 0x54, 0x07, 0x75,
+ 0xf0, 0x1b, 0xa4, 0x24, 0x40, 0xf5, 0x82, 0xe4, 0x34, 0x92, 0xf5,
+ 0x83, 0x22, 0x90, 0x00, 0x04, 0x02, 0x03, 0x0f, 0xf0, 0x90, 0x92,
+ 0x0c, 0x74, 0x05, 0xf0, 0x22, 0xf0, 0x90, 0x00, 0x05, 0x02, 0x03,
+ 0x0f, 0xfd, 0x75, 0xf0, 0x0e, 0xa4, 0x24, 0x0d, 0xf5, 0x82, 0xe4,
+ 0x34, 0x92, 0x22, 0x8b, 0x5b, 0x8a, 0x5c, 0x89, 0x5d, 0x90, 0x92,
+ 0xbd, 0xe0, 0x70, 0x10, 0x12, 0x02, 0xf6, 0x13, 0x13, 0x54, 0x3f,
+ 0x30, 0xe0, 0x06, 0x90, 0x92, 0xc3, 0x74, 0x01, 0xf0, 0x90, 0x92,
+ 0xbf, 0xe0, 0x70, 0x0f, 0x11, 0xd7, 0xc4, 0x54, 0x0f, 0xff, 0xbf,
+ 0x05, 0x06, 0x90, 0x92, 0xc4, 0x74, 0x01, 0xf0, 0x12, 0x8f, 0x6d,
+ 0xff, 0xf5, 0x5f, 0x12, 0x02, 0xf6, 0xfe, 0xc3, 0x13, 0x30, 0xe0,
+ 0x07, 0x12, 0x8f, 0xf3, 0xf5, 0x60, 0x80, 0x02, 0x8f, 0x60, 0x85,
+ 0x5f, 0x5e, 0xe5, 0x5e, 0xd3, 0x95, 0x60, 0x50, 0x28, 0x11, 0xd7,
+ 0x54, 0x01, 0xfd, 0xaf, 0x5e, 0x12, 0x6e, 0x5f, 0xaf, 0x5e, 0x12,
+ 0x77, 0x39, 0xef, 0xaf, 0x5e, 0x70, 0x04, 0x11, 0x9f, 0x80, 0x02,
+ 0xf1, 0xe0, 0x90, 0x92, 0xc4, 0xe0, 0x60, 0x04, 0xaf, 0x5e, 0x11,
+ 0x9f, 0x05, 0x5e, 0x80, 0xd1, 0xe5, 0x5f, 0x70, 0x16, 0xff, 0x12,
+ 0x77, 0x39, 0xef, 0x70, 0x0f, 0x12, 0xbf, 0x8b, 0x12, 0x79, 0x61,
+ 0x12, 0xc6, 0xa5, 0x54, 0xbf, 0xf0, 0x54, 0x7f, 0xf0, 0x22, 0x7d,
+ 0x01, 0xd3, 0x10, 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0x90, 0x93, 0xc3,
+ 0xef, 0xf0, 0xa3, 0xed, 0xf0, 0x7d, 0x44, 0x7f, 0x6f, 0x51, 0x81,
+ 0x90, 0x93, 0xc4, 0xe0, 0x90, 0x93, 0xc3, 0xb4, 0x01, 0x09, 0xe0,
+ 0x51, 0xbc, 0xe0, 0x44, 0x04, 0xf0, 0x80, 0x07, 0xe0, 0x51, 0xbc,
+ 0xe0, 0x54, 0xfb, 0xf0, 0x11, 0xe0, 0xd0, 0xd0, 0x92, 0xaf, 0x22,
+ 0xab, 0x5b, 0xaa, 0x5c, 0xa9, 0x5d, 0x02, 0x02, 0xf6, 0xe4, 0xfd,
+ 0xff, 0x90, 0x05, 0x22, 0xef, 0xf0, 0x90, 0x92, 0x01, 0xed, 0xf0,
+ 0x22, 0xd3, 0x10, 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0x90, 0x94, 0x81,
+ 0xef, 0xf0, 0xa3, 0xec, 0xf0, 0xa3, 0xed, 0xf0, 0x90, 0x04, 0x1d,
+ 0xe0, 0x60, 0x1c, 0x90, 0x05, 0x22, 0xe0, 0x90, 0x94, 0x86, 0xf0,
+ 0x7d, 0x36, 0x51, 0x7f, 0xbf, 0x01, 0x02, 0x31, 0xd4, 0x90, 0x94,
+ 0x86, 0xe0, 0xff, 0x7d, 0x37, 0x11, 0xe3, 0x80, 0x02, 0x31, 0xd4,
+ 0x90, 0x05, 0x22, 0xe0, 0x54, 0x6f, 0xff, 0x7d, 0x38, 0x11, 0xe3,
+ 0xf1, 0xf8, 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0xd3, 0x10, 0xaf, 0x01,
+ 0xc3, 0xc0, 0xd0, 0x90, 0x94, 0xfe, 0xed, 0xf0, 0xa3, 0xeb, 0xf0,
+ 0x90, 0x94, 0xfd, 0xef, 0xf0, 0xe4, 0xfd, 0xfc, 0x12, 0x7b, 0x2a,
+ 0x7c, 0x00, 0xad, 0x07, 0x90, 0x94, 0xfd, 0xe0, 0x90, 0x04, 0x25,
+ 0xf0, 0x90, 0x94, 0xfe, 0xe0, 0x60, 0x05, 0x51, 0xac, 0x44, 0x80,
+ 0xf0, 0xaf, 0x05, 0x74, 0x20, 0x2f, 0xf5, 0x82, 0xe4, 0x34, 0xfc,
+ 0xf5, 0x83, 0xe0, 0x54, 0xc0, 0xf0, 0x51, 0xac, 0x54, 0xc0, 0xf0,
+ 0x90, 0x95, 0x00, 0xe0, 0xff, 0xae, 0x05, 0x74, 0x18, 0x2e, 0xf5,
+ 0x82, 0xe4, 0x34, 0xfc, 0xf5, 0x83, 0xef, 0xf0, 0x51, 0x8e, 0xf5,
+ 0x83, 0xe0, 0x20, 0xe1, 0x17, 0x54, 0x01, 0xff, 0x90, 0x94, 0xff,
+ 0xe0, 0x25, 0xe0, 0x25, 0xe0, 0xfb, 0xef, 0x44, 0x02, 0x4b, 0xff,
+ 0x51, 0x8e, 0xf5, 0x83, 0xef, 0xf0, 0xaf, 0x05, 0x74, 0x11, 0x2f,
+ 0xf5, 0x82, 0xe4, 0x34, 0xfc, 0xf5, 0x83, 0x74, 0xff, 0xf0, 0x74,
+ 0x29, 0x2f, 0xf5, 0x82, 0xe4, 0x34, 0xfc, 0xf5, 0x83, 0xe0, 0x54,
+ 0xf7, 0xf0, 0xae, 0x04, 0xaf, 0x05, 0xd0, 0xd0, 0x92, 0xaf, 0x22,
+ 0x90, 0x94, 0x81, 0xe0, 0xff, 0x90, 0x95, 0x00, 0x74, 0x0c, 0xf0,
+ 0xe4, 0xfb, 0x7d, 0x01, 0x31, 0x36, 0x90, 0x94, 0x84, 0xee, 0xf0,
+ 0xa3, 0xef, 0xf0, 0x90, 0x94, 0x82, 0xe0, 0xfc, 0xa3, 0xe0, 0xfd,
+ 0x02, 0x77, 0xd8, 0xd3, 0x10, 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0x90,
+ 0x94, 0x92, 0xef, 0xf0, 0xa3, 0xed, 0xf0, 0x90, 0x84, 0xc3, 0xe0,
+ 0x04, 0xf0, 0x90, 0x04, 0x1d, 0xe0, 0x60, 0x35, 0x90, 0x05, 0x22,
+ 0xe0, 0x90, 0x94, 0x96, 0xf0, 0x7d, 0x26, 0x51, 0x7f, 0xef, 0x64,
+ 0x01, 0x70, 0x17, 0x51, 0x97, 0xfb, 0x7d, 0x01, 0x12, 0x3a, 0xc2,
+ 0x12, 0xd0, 0xfc, 0x20, 0xe0, 0x09, 0x90, 0x92, 0x09, 0xe0, 0x20,
+ 0xe0, 0x02, 0x51, 0xa1, 0x90, 0x94, 0x96, 0xe0, 0xff, 0x7d, 0x27,
+ 0x11, 0xe3, 0x51, 0x86, 0x80, 0x1e, 0x51, 0x86, 0x51, 0x97, 0xfb,
+ 0x90, 0x95, 0x00, 0x74, 0x0a, 0xf0, 0x7d, 0x01, 0x31, 0x36, 0x12,
+ 0xd0, 0xfc, 0x20, 0xe0, 0x09, 0x90, 0x92, 0x09, 0xe0, 0x20, 0xe0,
+ 0x02, 0x51, 0xa1, 0xf1, 0xf8, 0x90, 0x84, 0xbf, 0xa3, 0xe0, 0x24,
+ 0x7f, 0xf5, 0x82, 0xe4, 0x34, 0x82, 0xf5, 0x83, 0x74, 0x01, 0xf0,
+ 0xff, 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0x7f, 0xff, 0x11, 0xe3, 0x02,
+ 0x96, 0xee, 0x90, 0x94, 0x92, 0xe0, 0xff, 0x02, 0x5c, 0xa3, 0x74,
+ 0x12, 0x2e, 0xf5, 0x82, 0xe4, 0x34, 0xfc, 0x22, 0x90, 0x84, 0xc8,
+ 0xe0, 0xff, 0x90, 0x94, 0x93, 0xe0, 0x22, 0x90, 0x94, 0x94, 0xe0,
+ 0xfe, 0xa3, 0xe0, 0xff, 0x02, 0x50, 0xd7, 0x74, 0x21, 0x2f, 0xf5,
+ 0x82, 0xe4, 0x34, 0xfc, 0xf5, 0x83, 0xe0, 0x22, 0xe0, 0xfd, 0xe5,
+ 0x76, 0xc4, 0x54, 0xf0, 0x24, 0x05, 0xf5, 0x82, 0xe4, 0x34, 0x81,
+ 0xf5, 0x83, 0x22, 0x8d, 0x76, 0xef, 0x30, 0xe6, 0x1a, 0x71, 0x48,
+ 0x51, 0xb8, 0xe0, 0x54, 0x03, 0x90, 0x91, 0x0b, 0xf0, 0xe4, 0xfb,
+ 0xaf, 0x76, 0x12, 0x27, 0x3d, 0x71, 0x3b, 0xd1, 0x5d, 0x74, 0x01,
+ 0x80, 0x49, 0xd1, 0x64, 0x04, 0xf0, 0xd1, 0x64, 0x64, 0x02, 0x70,
+ 0x1e, 0x74, 0xa9, 0x25, 0x76, 0xf1, 0x41, 0xe0, 0xfd, 0xf4, 0x60,
+ 0x02, 0x80, 0x04, 0x71, 0x48, 0xe0, 0xfd, 0x51, 0xba, 0x12, 0xd1,
+ 0x3b, 0x71, 0x48, 0xd1, 0x5d, 0x74, 0x02, 0x80, 0x21, 0xd1, 0x64,
+ 0xd3, 0x94, 0x03, 0x40, 0x0d, 0xaf, 0x76, 0x12, 0x6d, 0x94, 0x71,
+ 0x3b, 0xd1, 0x5d, 0x74, 0x03, 0x80, 0x0d, 0x71, 0x48, 0x51, 0xb8,
+ 0x12, 0xd1, 0x3b, 0x71, 0x48, 0xd1, 0x5d, 0x74, 0x02, 0xf0, 0xab,
+ 0x76, 0xe4, 0xfd, 0xff, 0x02, 0x52, 0xc3, 0x74, 0xbc, 0x25, 0x76,
+ 0xf5, 0x82, 0xe4, 0x34, 0x90, 0xf5, 0x83, 0xe4, 0xf0, 0xe5, 0x76,
+ 0xc4, 0x54, 0xf0, 0x24, 0x00, 0xf5, 0x82, 0xe4, 0x34, 0x81, 0xf5,
+ 0x83, 0x22, 0x90, 0x04, 0x85, 0xe0, 0xf5, 0x6b, 0x90, 0x94, 0xa8,
+ 0xe0, 0x04, 0xf0, 0xe4, 0xf5, 0x63, 0x90, 0x85, 0xbb, 0xe0, 0xff,
+ 0xe5, 0x63, 0xc3, 0x9f, 0x40, 0x02, 0xc1, 0x44, 0xe5, 0x63, 0x71,
+ 0x4a, 0xe0, 0xf5, 0x6d, 0x12, 0xd1, 0x87, 0xe0, 0x65, 0x6d, 0x60,
+ 0x16, 0x90, 0x8a, 0x71, 0xe5, 0x6d, 0xf0, 0xe4, 0xa3, 0xf0, 0xab,
+ 0x63, 0xfd, 0xff, 0x12, 0x52, 0xc3, 0x12, 0xd1, 0x87, 0xe5, 0x6d,
+ 0xf0, 0x90, 0x04, 0xa0, 0xe0, 0x64, 0x01, 0x70, 0x4c, 0xa3, 0xe0,
+ 0x65, 0x63, 0x70, 0x46, 0xa3, 0xe0, 0xf5, 0x64, 0xa3, 0xe0, 0x90,
+ 0x94, 0x45, 0xf0, 0xe5, 0x63, 0x71, 0x4a, 0xe0, 0x65, 0x64, 0x70,
+ 0x02, 0xc1, 0x40, 0xe5, 0x63, 0x71, 0x4a, 0xe5, 0x64, 0xf0, 0xe5,
+ 0x63, 0x51, 0xbc, 0xe0, 0x54, 0xfc, 0xff, 0x90, 0x94, 0x45, 0xe0,
+ 0x54, 0x03, 0x4f, 0xff, 0xe5, 0x63, 0x51, 0xbc, 0xef, 0xf0, 0x90,
+ 0x8a, 0x71, 0xe5, 0x64, 0xf0, 0xa3, 0x74, 0xff, 0xf0, 0xab, 0x63,
+ 0xe4, 0xfd, 0xff, 0x12, 0x52, 0xc3, 0xc1, 0x40, 0xaf, 0x63, 0x12,
+ 0x77, 0x39, 0xef, 0x70, 0x02, 0xc1, 0x40, 0x75, 0xf0, 0x12, 0xe5,
+ 0x63, 0x12, 0xa1, 0x8f, 0x12, 0xa3, 0x01, 0x30, 0xe0, 0x02, 0xc1,
+ 0x40, 0xe5, 0x63, 0x13, 0x13, 0x13, 0x54, 0x1f, 0x24, 0x75, 0x12,
+ 0xb3, 0x11, 0x7c, 0x00, 0xe5, 0x63, 0x12, 0xb2, 0x90, 0x80, 0x05,
+ 0xc3, 0x33, 0xce, 0x33, 0xce, 0xd8, 0xf9, 0xff, 0xee, 0x5c, 0xfe,
+ 0xef, 0x5d, 0x4e, 0x60, 0x02, 0xc1, 0x40, 0xf1, 0xd5, 0xe0, 0xfe,
+ 0xa3, 0xe0, 0x4e, 0x70, 0x07, 0xf1, 0xca, 0xe0, 0x70, 0x02, 0xc1,
+ 0x40, 0xe5, 0x63, 0x75, 0xf0, 0x12, 0xa4, 0x24, 0x44, 0xf9, 0x74,
+ 0x89, 0x35, 0xf0, 0xfa, 0x7b, 0x01, 0x90, 0x94, 0x40, 0x12, 0x87,
+ 0x4e, 0x90, 0x00, 0x02, 0x12, 0x04, 0x18, 0xff, 0x12, 0x03, 0xed,
+ 0x2f, 0xff, 0x12, 0xd1, 0xe1, 0xff, 0x12, 0xd1, 0xb9, 0x90, 0x00,
+ 0x08, 0x12, 0x04, 0x18, 0x2f, 0xf5, 0x6c, 0xf1, 0xd5, 0xe0, 0xf5,
+ 0x68, 0xa3, 0xe0, 0xf5, 0x69, 0xf1, 0xca, 0xe0, 0xff, 0x90, 0x94,
+ 0x43, 0xe4, 0xf0, 0xa3, 0xef, 0xf0, 0xe5, 0x63, 0x71, 0x4a, 0xe0,
+ 0xf5, 0x64, 0x54, 0x80, 0xff, 0xe5, 0x64, 0x54, 0x7f, 0xf5, 0x65,
+ 0x75, 0xf0, 0x12, 0xe5, 0x63, 0x12, 0xb5, 0x17, 0xfe, 0xe5, 0x65,
+ 0xd3, 0x9e, 0x40, 0x07, 0x8e, 0x65, 0xe5, 0x65, 0x4f, 0xf5, 0x64,
+ 0x74, 0x7c, 0x25, 0x63, 0xf5, 0x82, 0xe4, 0x34, 0x90, 0xf5, 0x83,
+ 0xe0, 0xc3, 0x94, 0x05, 0x40, 0x02, 0xc1, 0x3d, 0xe5, 0x65, 0x90,
+ 0x82, 0xe1, 0x93, 0xf5, 0x6a, 0xef, 0x60, 0x04, 0x05, 0x6a, 0x05,
+ 0x6a, 0xe5, 0x65, 0xc3, 0x94, 0x0c, 0x40, 0x21, 0x74, 0x98, 0x25,
+ 0x63, 0xf5, 0x82, 0xe4, 0x34, 0x94, 0xf5, 0x83, 0xe0, 0xff, 0x54,
+ 0x7f, 0xfe, 0xef, 0x30, 0xe7, 0x06, 0xe5, 0x6a, 0x2e, 0xff, 0x80,
+ 0x05, 0xc3, 0xe5, 0x6a, 0x9e, 0xff, 0x8f, 0x6a, 0xe5, 0x6a, 0xd3,
+ 0x94, 0x1a, 0xaf, 0x6a, 0x40, 0x02, 0x7f, 0x1a, 0x8f, 0x6a, 0xe5,
+ 0x64, 0x90, 0x83, 0x59, 0x93, 0xff, 0xd3, 0x90, 0x94, 0x44, 0xe0,
+ 0x9f, 0x90, 0x94, 0x43, 0xe0, 0x94, 0x00, 0x40, 0x02, 0xa1, 0xfd,
+ 0xc3, 0xe5, 0x69, 0x94, 0x0a, 0xe5, 0x68, 0x94, 0x00, 0x40, 0x02,
+ 0xa1, 0xb8, 0xd1, 0x45, 0xe0, 0xc3, 0x94, 0x01, 0x40, 0x05, 0xd1,
+ 0x45, 0xe0, 0x14, 0xf0, 0x90, 0x94, 0x40, 0x12, 0x87, 0x45, 0x90,
+ 0x00, 0x08, 0x12, 0x04, 0x18, 0xff, 0x90, 0x94, 0x44, 0xe0, 0x2f,
+ 0xff, 0x90, 0x94, 0x43, 0xe0, 0x35, 0xf0, 0xfe, 0x12, 0xd1, 0xb9,
+ 0xee, 0x35, 0xf0, 0xfe, 0x12, 0xd1, 0xe1, 0xfd, 0xee, 0x35, 0xf0,
+ 0xfc, 0xe5, 0x68, 0xc3, 0x13, 0xfe, 0xe5, 0x69, 0x13, 0xff, 0xd3,
+ 0xed, 0x9f, 0xec, 0x9e, 0x40, 0x0d, 0xe5, 0x63, 0x94, 0x05, 0x50,
+ 0x05, 0xd1, 0x45, 0x74, 0x03, 0xf0, 0xa1, 0xfd, 0x90, 0x94, 0x40,
+ 0x12, 0x87, 0x45, 0x12, 0x03, 0xed, 0x65, 0x6c, 0x70, 0x02, 0xe5,
+ 0xf0, 0x70, 0x2a, 0xe5, 0x63, 0xc3, 0x94, 0x05, 0x50, 0x0a, 0xd1,
+ 0x45, 0xe0, 0xd3, 0x94, 0x00, 0x40, 0x02, 0x80, 0x07, 0xe5, 0x6c,
+ 0xc3, 0x94, 0x03, 0x50, 0x08, 0x7d, 0x06, 0xaf, 0x63, 0xf1, 0x6f,
+ 0xc1, 0x40, 0xe4, 0xfd, 0xaf, 0x63, 0xd1, 0x71, 0xf1, 0x6b, 0xc1,
+ 0x3d, 0x12, 0xd1, 0xd2, 0xc1, 0x3d, 0xd1, 0x45, 0xe4, 0xf0, 0x90,
+ 0x94, 0x4a, 0x74, 0x02, 0xf0, 0xab, 0x6a, 0xad, 0x63, 0xaf, 0x69,
+ 0xae, 0x68, 0x12, 0xcb, 0x6f, 0x8e, 0x66, 0x8f, 0x67, 0x12, 0xd1,
+ 0x49, 0xc3, 0x74, 0x01, 0x93, 0x95, 0x67, 0xe4, 0x93, 0x95, 0x66,
+ 0x50, 0x0c, 0xd1, 0x51, 0xe4, 0xf0, 0x7d, 0x01, 0xaf, 0x63, 0xd1,
+ 0x71, 0x80, 0x51, 0x12, 0xd1, 0xd9, 0xc3, 0xe5, 0x67, 0x9f, 0xe5,
+ 0x66, 0x94, 0x00, 0x50, 0x0d, 0xd1, 0x51, 0xe4, 0xf0, 0x7d, 0x01,
+ 0xaf, 0x63, 0x12, 0xb4, 0x58, 0x80, 0x37, 0xf1, 0x6b, 0xd1, 0x51,
+ 0xe0, 0x04, 0xf0, 0xe5, 0x65, 0x90, 0x83, 0x6d, 0x93, 0xff, 0xd1,
+ 0x51, 0xe0, 0xc3, 0x9f, 0x40, 0x22, 0xd1, 0x51, 0xe4, 0xf0, 0x12,
+ 0xd1, 0xd9, 0x12, 0xd1, 0x49, 0x74, 0x01, 0x93, 0x2f, 0xff, 0xe4,
+ 0x93, 0x34, 0x00, 0xc3, 0x13, 0xfe, 0xef, 0x13, 0xff, 0xe5, 0x63,
+ 0xf1, 0x5f, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x12, 0xd1, 0xd2, 0x05,
+ 0x63, 0x61, 0x66, 0x22, 0x74, 0xb9, 0x25, 0x63, 0xf5, 0x82, 0xe4,
+ 0x34, 0x94, 0xf5, 0x83, 0x22, 0x74, 0xac, 0x25, 0x63, 0xf5, 0x82,
+ 0xe4, 0x34, 0x8f, 0xf5, 0x83, 0x22, 0xe0, 0x90, 0x8a, 0x71, 0xf0,
+ 0xa3, 0x22, 0x74, 0xbc, 0x25, 0x76, 0xf5, 0x82, 0xe4, 0x34, 0x90,
+ 0xf5, 0x83, 0xe0, 0x22, 0x8f, 0x6e, 0x8d, 0x6f, 0xef, 0x71, 0x4a,
+ 0xe0, 0xfd, 0x54, 0x7f, 0xf5, 0x70, 0xed, 0x54, 0x80, 0xf5, 0x71,
+ 0x75, 0xf0, 0x12, 0xef, 0x12, 0xb5, 0x17, 0xf5, 0x73, 0x75, 0xf0,
+ 0x12, 0xef, 0x12, 0xa1, 0x8f, 0xc4, 0x54, 0x03, 0xf5, 0x74, 0xf1,
+ 0x3d, 0x74, 0xff, 0xf0, 0xf1, 0x49, 0xee, 0xf0, 0xa3, 0xef, 0xf0,
+ 0xe5, 0x71, 0x4d, 0xff, 0x12, 0xb5, 0x0b, 0xef, 0xf0, 0xe5, 0x6e,
+ 0x51, 0xbc, 0xe0, 0x54, 0x03, 0xf5, 0x72, 0x74, 0x4c, 0x25, 0x6e,
+ 0x12, 0xb5, 0x1f, 0xe5, 0x72, 0xf0, 0xe5, 0x70, 0x65, 0x73, 0x70,
+ 0x27, 0x75, 0xf0, 0x12, 0xe5, 0x6e, 0x12, 0xa2, 0xee, 0xc4, 0x13,
+ 0x54, 0x07, 0x30, 0xe0, 0x0b, 0xe5, 0x71, 0x70, 0x07, 0xe5, 0x70,
+ 0x44, 0x80, 0xfd, 0x80, 0x50, 0xf1, 0x49, 0xee, 0xf0, 0xa3, 0xef,
+ 0xf0, 0x7d, 0x07, 0xaf, 0x6e, 0xe1, 0x6f, 0xe5, 0x70, 0xc3, 0x95,
+ 0x73, 0x50, 0x35, 0xab, 0x6e, 0xad, 0x73, 0xaf, 0x70, 0x12, 0x72,
+ 0xea, 0xad, 0x07, 0xe5, 0x70, 0xc3, 0x94, 0x0c, 0x40, 0x2a, 0x75,
+ 0xf0, 0x12, 0xe5, 0x6e, 0x12, 0xa2, 0xee, 0xfe, 0xc4, 0x13, 0x54,
+ 0x07, 0x30, 0xe0, 0x1a, 0xe5, 0x6f, 0x60, 0x16, 0xe5, 0x71, 0x70,
+ 0x12, 0xe5, 0x70, 0x44, 0x80, 0xfd, 0xf1, 0x3d, 0xef, 0xf0, 0x80,
+ 0x07, 0x12, 0xb5, 0x0b, 0xe5, 0x73, 0xf0, 0xfd, 0x90, 0x91, 0x0b,
+ 0xe5, 0x72, 0xf0, 0xab, 0x6f, 0xaf, 0x6e, 0x02, 0x27, 0x3d, 0x74,
+ 0xa9, 0x25, 0x6e, 0xf5, 0x82, 0xe4, 0x34, 0x94, 0xf5, 0x83, 0x22,
+ 0xe5, 0x70, 0x25, 0xe0, 0x24, 0xf5, 0xf5, 0x82, 0xe4, 0x34, 0x82,
+ 0xf5, 0x83, 0xe4, 0x93, 0xfe, 0x74, 0x01, 0x93, 0xff, 0xe5, 0x6e,
+ 0x25, 0xe0, 0x24, 0x7b, 0xf5, 0x82, 0xe4, 0x34, 0x8f, 0xf5, 0x83,
+ 0x22, 0x7d, 0x07, 0xaf, 0x63, 0xed, 0x30, 0xe0, 0x22, 0x75, 0xf0,
+ 0x12, 0xef, 0x90, 0x89, 0x44, 0xf1, 0xbe, 0x90, 0x89, 0x46, 0xf1,
+ 0xbe, 0x90, 0x89, 0x48, 0xf1, 0xbe, 0x90, 0x89, 0x4a, 0xf1, 0xbe,
+ 0x90, 0x89, 0x4c, 0x12, 0x05, 0x28, 0xe4, 0xf0, 0xa3, 0xf0, 0xed,
+ 0x30, 0xe1, 0x0a, 0x75, 0xf0, 0x12, 0xef, 0xf1, 0xda, 0xe4, 0xf0,
+ 0xa3, 0xf0, 0xed, 0x30, 0xe2, 0x08, 0x75, 0xf0, 0x12, 0xef, 0xf1,
+ 0xcf, 0xe4, 0xf0, 0x12, 0xd1, 0x60, 0xe0, 0x54, 0xbf, 0x44, 0x80,
+ 0xfe, 0x12, 0xd1, 0x60, 0xee, 0xf0, 0x22, 0x12, 0x05, 0x28, 0xe4,
+ 0xf0, 0xa3, 0xf0, 0x75, 0xf0, 0x12, 0xef, 0x22, 0x75, 0xf0, 0x12,
+ 0xe5, 0x63, 0x90, 0x89, 0x42, 0x02, 0x05, 0x28, 0x75, 0xf0, 0x12,
+ 0xe5, 0x63, 0x90, 0x89, 0x40, 0x02, 0x05, 0x28, 0xe4, 0xfd, 0x01,
+ 0xa1, 0x7d, 0x1f, 0x7f, 0x6f, 0x11, 0xe3, 0x90, 0x05, 0x27, 0xe0,
+ 0x54, 0xbf, 0xf0, 0x90, 0x85, 0xbf, 0x74, 0x04, 0xf0, 0x22, 0x90,
+ 0x04, 0x1f, 0x74, 0x20, 0xf0, 0x22, 0x11, 0x37, 0x90, 0x04, 0x24,
+ 0xe0, 0xf5, 0x5b, 0xe4, 0xff, 0x12, 0x8f, 0x58, 0x11, 0x2a, 0x75,
+ 0xf0, 0x0e, 0xa4, 0x24, 0x19, 0xf5, 0x82, 0xe4, 0x34, 0x92, 0xf5,
+ 0x83, 0xee, 0xf0, 0x11, 0x2a, 0x12, 0x97, 0xd9, 0xee, 0xf0, 0x0f,
+ 0xef, 0xb4, 0x03, 0xe0, 0x22, 0x8f, 0x82, 0x75, 0x83, 0x00, 0x12,
+ 0x03, 0x0f, 0x25, 0x5b, 0xfe, 0xef, 0x22, 0x90, 0x93, 0xc3, 0x02,
+ 0x87, 0x4e, 0x11, 0x37, 0x12, 0x8f, 0x58, 0x12, 0x02, 0xf6, 0x54,
+ 0x7f, 0xfd, 0x12, 0x8f, 0x73, 0xfe, 0x54, 0x1f, 0x90, 0x93, 0xc7,
+ 0x51, 0xfd, 0x90, 0x93, 0xc6, 0x12, 0x8f, 0xf2, 0xfe, 0x54, 0x03,
+ 0xfc, 0xee, 0x54, 0x30, 0xc4, 0x54, 0x0f, 0x90, 0x93, 0xc9, 0x12,
+ 0x8f, 0xf2, 0xfe, 0x54, 0x40, 0xc4, 0x13, 0x13, 0x54, 0x03, 0x90,
+ 0x93, 0xc8, 0x51, 0xfd, 0xff, 0x12, 0x8f, 0xf3, 0xfb, 0x54, 0x08,
+ 0x13, 0x13, 0x13, 0x54, 0x1f, 0x90, 0x93, 0xcb, 0xf0, 0xfa, 0xeb,
+ 0x54, 0x04, 0x13, 0x13, 0x54, 0x3f, 0xa3, 0xf0, 0xef, 0x54, 0x01,
+ 0xc4, 0x33, 0x33, 0x33, 0x54, 0x80, 0x31, 0x8a, 0x54, 0x7f, 0x4f,
+ 0xf0, 0x90, 0x93, 0xc8, 0xe0, 0x54, 0x01, 0xc4, 0x33, 0x33, 0x54,
+ 0xc0, 0x31, 0x8a, 0x54, 0xbf, 0x4f, 0xf0, 0xea, 0x60, 0x02, 0x21,
+ 0x89, 0x90, 0x93, 0xc7, 0xe0, 0x54, 0x1f, 0x51, 0xe9, 0x54, 0xe0,
+ 0x4f, 0xf0, 0xec, 0x54, 0x03, 0x31, 0x8a, 0x54, 0xfc, 0x4f, 0xf0,
+ 0xec, 0x54, 0x03, 0x25, 0xe0, 0x25, 0xe0, 0x31, 0x8a, 0x54, 0xf3,
+ 0x4f, 0xf0, 0x90, 0x93, 0xc6, 0xe0, 0x54, 0x01, 0xc4, 0x33, 0x54,
+ 0xe0, 0x51, 0xe9, 0x54, 0xdf, 0x4f, 0xf0, 0x90, 0x93, 0xc9, 0xe0,
+ 0x54, 0x03, 0xc4, 0x54, 0xf0, 0x31, 0x8a, 0x54, 0xcf, 0x4f, 0xf1,
+ 0x24, 0xe0, 0x54, 0xfb, 0xf1, 0x24, 0xc0, 0x83, 0xc0, 0x82, 0xe0,
+ 0xff, 0x90, 0x93, 0xcc, 0xe0, 0x12, 0xd1, 0xca, 0xd0, 0x82, 0xd0,
+ 0x83, 0xf0, 0x90, 0x92, 0xc3, 0xe0, 0x60, 0x31, 0x12, 0x8f, 0x58,
+ 0xe9, 0x24, 0x03, 0xf1, 0xee, 0x54, 0x1f, 0x12, 0x03, 0x3c, 0x90,
+ 0x93, 0xca, 0x74, 0x01, 0xf0, 0x90, 0x93, 0xca, 0xe0, 0xff, 0xc3,
+ 0x94, 0x04, 0x50, 0x14, 0xef, 0x12, 0x8f, 0x52, 0x8f, 0x82, 0x8e,
+ 0x83, 0xe4, 0x12, 0x03, 0x4e, 0x90, 0x93, 0xca, 0xe0, 0x04, 0xf0,
+ 0x80, 0xe2, 0x90, 0x92, 0xc1, 0xe0, 0x54, 0x07, 0xff, 0xbf, 0x05,
+ 0x0a, 0xec, 0xb4, 0x01, 0x06, 0x90, 0x92, 0xc6, 0x74, 0x01, 0xf0,
+ 0xe4, 0x90, 0x93, 0xca, 0xf0, 0x90, 0x93, 0xca, 0xe0, 0xfc, 0x12,
+ 0x8f, 0x52, 0x8f, 0x82, 0x8e, 0x83, 0x12, 0x03, 0x0f, 0xff, 0xed,
+ 0xf1, 0xf5, 0xf5, 0x83, 0xe5, 0x82, 0x2c, 0xf1, 0x36, 0xef, 0xf0,
+ 0x90, 0x93, 0xca, 0xe0, 0x04, 0xf0, 0xe0, 0xb4, 0x04, 0xda, 0xaf,
+ 0x05, 0x12, 0x17, 0x8e, 0x22, 0xff, 0x75, 0xf0, 0x12, 0xed, 0x90,
+ 0x89, 0x3f, 0x12, 0x05, 0x28, 0xe0, 0x22, 0xd3, 0x10, 0xaf, 0x01,
+ 0xc3, 0xc0, 0xd0, 0xd1, 0x14, 0x20, 0xe6, 0x02, 0x41, 0xb0, 0x90,
+ 0x00, 0x8c, 0xe0, 0x90, 0x95, 0x08, 0xf0, 0x7f, 0x8d, 0x12, 0x7b,
+ 0x51, 0x90, 0x95, 0x09, 0xef, 0xf0, 0x90, 0x00, 0x8e, 0xe0, 0x90,
+ 0x95, 0x0a, 0xf0, 0x90, 0x95, 0x09, 0xe0, 0x24, 0xfc, 0x60, 0x0f,
+ 0x24, 0x03, 0x60, 0x02, 0x41, 0xa9, 0x90, 0x95, 0x08, 0xe0, 0xff,
+ 0xd1, 0x1b, 0x41, 0xa9, 0x90, 0x95, 0x08, 0xe0, 0x24, 0xdc, 0xf5,
+ 0x82, 0xe4, 0x34, 0x8f, 0x51, 0xf6, 0xff, 0x51, 0xe2, 0x75, 0xf0,
+ 0x12, 0x31, 0x8f, 0x13, 0x13, 0x54, 0x03, 0xfb, 0x0d, 0xe4, 0xff,
+ 0x51, 0xe2, 0x75, 0xf0, 0x12, 0x31, 0x8f, 0x71, 0x01, 0xfb, 0x0d,
+ 0xe4, 0xff, 0x51, 0xe2, 0x75, 0xf0, 0x12, 0x31, 0x8f, 0xc4, 0x54,
+ 0x03, 0xfb, 0x0d, 0xe4, 0xff, 0x51, 0xe2, 0x75, 0xf0, 0x12, 0x12,
+ 0xb5, 0x17, 0xfb, 0xe4, 0xfd, 0x0f, 0x51, 0xe2, 0x75, 0xf0, 0x12,
+ 0x90, 0x89, 0x3d, 0x12, 0x05, 0x28, 0x51, 0xdf, 0x75, 0xf0, 0x12,
+ 0x51, 0xee, 0xc4, 0x13, 0x54, 0x01, 0xfb, 0x0d, 0x7f, 0x01, 0x51,
+ 0xe2, 0x75, 0xf0, 0x12, 0x51, 0xee, 0x54, 0x1f, 0x51, 0xe0, 0xf1,
+ 0xf5, 0x51, 0xf6, 0x0f, 0x51, 0xe2, 0x75, 0xf0, 0x08, 0xa4, 0x24,
+ 0x01, 0xf5, 0x82, 0xe4, 0x34, 0x82, 0x51, 0xdd, 0x75, 0xf0, 0x08,
+ 0xa4, 0x24, 0x02, 0xf5, 0x82, 0xe4, 0x34, 0x82, 0x51, 0xdd, 0x75,
+ 0xf0, 0x08, 0xa4, 0x24, 0x03, 0xf5, 0x82, 0xe4, 0x34, 0x82, 0x51,
+ 0xdd, 0x75, 0xf0, 0x08, 0xa4, 0x24, 0x04, 0xf5, 0x82, 0xe4, 0x34,
+ 0x82, 0x51, 0xf6, 0x0f, 0x51, 0xe2, 0x75, 0xf0, 0x08, 0xa4, 0x24,
+ 0x05, 0xf5, 0x82, 0xe4, 0x34, 0x82, 0x51, 0xdd, 0x75, 0xf0, 0x08,
+ 0xa4, 0x24, 0x06, 0xf5, 0x82, 0xe4, 0x34, 0x82, 0x51, 0xdd, 0x75,
+ 0xf0, 0x08, 0xa4, 0x24, 0x07, 0xf5, 0x82, 0xe4, 0x34, 0x82, 0xf5,
+ 0x83, 0xe0, 0xfb, 0x0d, 0x51, 0xb5, 0xd1, 0x14, 0x30, 0xe0, 0x02,
+ 0xf1, 0xd2, 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0xef, 0x70, 0x04, 0x74,
+ 0xf0, 0x80, 0x16, 0xef, 0xb4, 0x01, 0x04, 0x74, 0xf4, 0x80, 0x0e,
+ 0xef, 0xb4, 0x02, 0x04, 0x74, 0xf8, 0x80, 0x06, 0xef, 0xb4, 0x03,
+ 0x0c, 0x74, 0xfc, 0x2d, 0xf5, 0x82, 0xe4, 0x34, 0x02, 0xf5, 0x83,
+ 0xeb, 0xf0, 0x22, 0xf5, 0x83, 0xe0, 0xfb, 0x0d, 0x51, 0xb5, 0x90,
+ 0x95, 0x08, 0xe0, 0x22, 0xff, 0x75, 0xf0, 0x12, 0xed, 0x90, 0x89,
+ 0x3e, 0x12, 0x05, 0x28, 0xe0, 0x22, 0xf5, 0x83, 0xe0, 0xfb, 0xe4,
+ 0xfd, 0x22, 0xf0, 0xee, 0x54, 0x80, 0xc4, 0x13, 0x13, 0x13, 0x54,
+ 0x01, 0x22, 0x7d, 0x01, 0x7f, 0x04, 0xd3, 0x10, 0xaf, 0x01, 0xc3,
+ 0xc0, 0xd0, 0x90, 0x95, 0x1b, 0xed, 0xf0, 0x90, 0x85, 0xc1, 0xe0,
+ 0xfe, 0xc4, 0x13, 0x13, 0x54, 0x03, 0x30, 0xe0, 0x02, 0x81, 0x66,
+ 0xee, 0x71, 0x01, 0x30, 0xe0, 0x02, 0x81, 0x66, 0x90, 0x85, 0xc8,
+ 0xe0, 0xfe, 0x6f, 0x70, 0x02, 0x81, 0x66, 0xef, 0x70, 0x02, 0x61,
+ 0xd1, 0x24, 0xfe, 0x70, 0x02, 0x81, 0x0e, 0x24, 0xfe, 0x60, 0x4d,
+ 0x24, 0xfc, 0x70, 0x02, 0x81, 0x4d, 0x24, 0xfc, 0x60, 0x02, 0x81,
+ 0x5f, 0xee, 0xb4, 0x0e, 0x03, 0x12, 0x74, 0x93, 0x90, 0x85, 0xc8,
+ 0xe0, 0x70, 0x05, 0x7f, 0x01, 0x12, 0x79, 0x80, 0x90, 0x85, 0xc8,
+ 0xe0, 0xb4, 0x06, 0x03, 0x12, 0x73, 0x8e, 0x90, 0x85, 0xc8, 0xe0,
+ 0xb4, 0x04, 0x0f, 0x90, 0x95, 0x1b, 0xe0, 0xff, 0x60, 0x05, 0x12,
+ 0x6d, 0x4c, 0x80, 0x03, 0x12, 0x79, 0x61, 0x90, 0x85, 0xc8, 0xe0,
+ 0x64, 0x08, 0x60, 0x02, 0x81, 0x5f, 0x12, 0x7a, 0xb9, 0x81, 0x5f,
+ 0x90, 0x85, 0xc8, 0xe0, 0x70, 0x05, 0x7f, 0x01, 0x12, 0x79, 0x80,
+ 0x90, 0x85, 0xc8, 0xe0, 0xb4, 0x06, 0x03, 0x12, 0x73, 0x8e, 0x90,
+ 0x85, 0xc8, 0xe0, 0xb4, 0x0e, 0x08, 0x91, 0x6b, 0xbf, 0x01, 0x03,
+ 0x12, 0x74, 0x93, 0x90, 0x85, 0xc8, 0xe0, 0x64, 0x0c, 0x60, 0x02,
+ 0x81, 0x5f, 0x91, 0x6b, 0xef, 0x64, 0x01, 0x60, 0x02, 0x81, 0x5f,
+ 0x12, 0x70, 0x9e, 0x81, 0x5f, 0x90, 0x85, 0xc8, 0xe0, 0xb4, 0x0e,
+ 0x08, 0x91, 0x6b, 0xbf, 0x01, 0x03, 0x12, 0x74, 0x93, 0x90, 0x85,
+ 0xc8, 0xe0, 0xb4, 0x06, 0x03, 0x12, 0x73, 0x8e, 0x90, 0x85, 0xc8,
+ 0xe0, 0xb4, 0x0c, 0x08, 0x91, 0x6b, 0xbf, 0x01, 0x03, 0x12, 0x70,
+ 0x9e, 0x90, 0x85, 0xc8, 0xe0, 0x64, 0x04, 0x70, 0x5e, 0x12, 0xcd,
+ 0xf1, 0xef, 0x64, 0x01, 0x70, 0x56, 0x12, 0x77, 0xfe, 0x80, 0x51,
+ 0x90, 0x85, 0xc8, 0xe0, 0xb4, 0x0e, 0x08, 0x91, 0x6b, 0xbf, 0x01,
+ 0x03, 0x12, 0x74, 0x93, 0x90, 0x85, 0xc8, 0xe0, 0xb4, 0x06, 0x03,
+ 0x12, 0x73, 0x8e, 0x90, 0x85, 0xc8, 0xe0, 0xb4, 0x0c, 0x08, 0x91,
+ 0x6b, 0xbf, 0x01, 0x03, 0x12, 0x70, 0x9e, 0x90, 0x85, 0xc8, 0xe0,
+ 0x70, 0x05, 0x7f, 0x01, 0x12, 0x79, 0x80, 0x90, 0x85, 0xc8, 0xe0,
+ 0xb4, 0x04, 0x17, 0x12, 0x79, 0xf3, 0x80, 0x12, 0x90, 0x85, 0xc8,
+ 0xe0, 0xb4, 0x0c, 0x0b, 0x12, 0xc3, 0x4e, 0x54, 0x3f, 0x30, 0xe0,
+ 0x03, 0x12, 0x7a, 0x8a, 0x90, 0x85, 0xc8, 0x12, 0xd1, 0x6e, 0xf0,
+ 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0xd3, 0x10, 0xaf, 0x01, 0xc3, 0xc0,
+ 0xd0, 0x12, 0x7a, 0x29, 0xef, 0x64, 0x01, 0x60, 0x05, 0x75, 0x0f,
+ 0x01, 0x80, 0x24, 0x90, 0x85, 0xc1, 0xe0, 0x13, 0x13, 0x13, 0x54,
+ 0x1f, 0x30, 0xe0, 0x05, 0x75, 0x0f, 0x02, 0x80, 0x13, 0x90, 0x85,
+ 0xc7, 0xe0, 0xd3, 0x94, 0x04, 0x40, 0x05, 0x75, 0x0f, 0x08, 0x80,
+ 0x05, 0x12, 0xbf, 0x73, 0x80, 0x0e, 0x90, 0x01, 0xb9, 0x74, 0x02,
+ 0xf0, 0x90, 0x01, 0xb8, 0xe5, 0x0f, 0xf0, 0x7f, 0x00, 0xd0, 0xd0,
+ 0x92, 0xaf, 0x22, 0xd3, 0x10, 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0x8b,
+ 0x5b, 0x8a, 0x5c, 0x89, 0x5d, 0x90, 0x05, 0x27, 0xe0, 0xf5, 0x5e,
+ 0x8b, 0x1b, 0x8a, 0x1c, 0x89, 0x1d, 0x75, 0x1e, 0x01, 0x7b, 0x01,
+ 0x7a, 0x85, 0x79, 0xbc, 0x12, 0x6a, 0x21, 0x12, 0x98, 0xd7, 0xff,
+ 0xc3, 0x13, 0x20, 0xe0, 0x02, 0xa1, 0x6b, 0x90, 0x85, 0xbc, 0xe0,
+ 0x30, 0xe0, 0x6c, 0xd1, 0x69, 0x75, 0x5e, 0x21, 0xd1, 0x79, 0x30,
+ 0xe0, 0x05, 0x12, 0xd1, 0x2b, 0x80, 0x0d, 0xe4, 0x90, 0x85, 0xbd,
+ 0xf0, 0xa3, 0xf0, 0x7d, 0x40, 0xff, 0x12, 0x7c, 0x41, 0xd1, 0x70,
+ 0x54, 0x1f, 0x30, 0xe0, 0x03, 0x43, 0x5e, 0x12, 0xef, 0xc4, 0x54,
+ 0x0f, 0x30, 0xe0, 0x03, 0x43, 0x5e, 0x14, 0x90, 0x85, 0xbc, 0xe0,
+ 0xc4, 0x13, 0x54, 0x07, 0x30, 0xe0, 0x03, 0x43, 0x5e, 0x80, 0xf1,
+ 0xe2, 0x20, 0xe0, 0x03, 0x43, 0x5e, 0x40, 0xd1, 0x0d, 0x90, 0x85,
+ 0xbf, 0xe0, 0x70, 0x05, 0x7f, 0x01, 0x12, 0xc9, 0x5e, 0xd1, 0x82,
+ 0x30, 0xe0, 0x04, 0x7f, 0x04, 0x80, 0x0b, 0xd1, 0x8d, 0xef, 0x60,
+ 0x04, 0x7f, 0x01, 0x80, 0x02, 0x7f, 0x02, 0x12, 0xc9, 0x5e, 0x80,
+ 0x7e, 0xd1, 0x0a, 0x90, 0x85, 0xbf, 0xe0, 0x64, 0x04, 0x60, 0x02,
+ 0xc1, 0x05, 0xff, 0x12, 0xc9, 0x5e, 0xc1, 0x05, 0x90, 0x85, 0xbc,
+ 0xe0, 0x30, 0xe0, 0x6d, 0xd1, 0x69, 0x43, 0x5e, 0x31, 0xd1, 0x79,
+ 0x30, 0xe0, 0x05, 0x12, 0xd1, 0x2b, 0x80, 0x07, 0x7d, 0x40, 0xe4,
+ 0xff, 0x12, 0x7c, 0x41, 0xd1, 0x70, 0x54, 0x1f, 0x30, 0xe0, 0x03,
+ 0x43, 0x5e, 0x02, 0xef, 0xc4, 0x54, 0x0f, 0x30, 0xe0, 0x03, 0x43,
+ 0x5e, 0x04, 0xd1, 0x0d, 0xd1, 0x82, 0x30, 0xe0, 0x0a, 0xf1, 0x6c,
+ 0x60, 0x30, 0xe4, 0xfd, 0x7f, 0x02, 0x80, 0x1e, 0x12, 0xca, 0xc2,
+ 0x90, 0x85, 0xc0, 0xe0, 0xb4, 0x02, 0x18, 0x12, 0x7a, 0xa2, 0xd1,
+ 0x8d, 0xbf, 0x01, 0x09, 0x90, 0x85, 0xc7, 0xe0, 0xff, 0x7d, 0x01,
+ 0x80, 0x03, 0xe4, 0xfd, 0xff, 0x71, 0x0c, 0x80, 0x08, 0x90, 0x85,
+ 0xc8, 0xe0, 0x90, 0x85, 0xc0, 0xf0, 0x90, 0x05, 0x40, 0x74, 0x22,
+ 0xf0, 0x80, 0x26, 0xd1, 0x0a, 0x90, 0x85, 0xc0, 0xe0, 0xb4, 0x02,
+ 0x06, 0x7d, 0x01, 0x7f, 0x04, 0x80, 0x0b, 0x90, 0x85, 0xc0, 0xe0,
+ 0xb4, 0x08, 0x06, 0x7d, 0x01, 0x7f, 0x0c, 0x71, 0x0c, 0xf1, 0xd9,
+ 0x90, 0x85, 0xc7, 0xf1, 0xcc, 0x12, 0xcd, 0x91, 0xd0, 0xd0, 0x92,
+ 0xaf, 0x22, 0x75, 0x5e, 0x01, 0x90, 0x05, 0x27, 0xe5, 0x5e, 0xf0,
+ 0x22, 0x7f, 0x8f, 0x12, 0x7b, 0x51, 0xef, 0x22, 0xd3, 0x10, 0xaf,
+ 0x01, 0xc3, 0xc0, 0xd0, 0x90, 0x95, 0x13, 0xef, 0xf0, 0xd1, 0x14,
+ 0x30, 0xe6, 0x38, 0x7f, 0x8d, 0x12, 0x7b, 0x51, 0xef, 0x64, 0x01,
+ 0x70, 0x2e, 0x90, 0x95, 0x14, 0xf0, 0x90, 0x95, 0x14, 0xe0, 0xfd,
+ 0x90, 0x95, 0x13, 0xe0, 0x12, 0x9b, 0x4a, 0xe5, 0x82, 0x2d, 0xf1,
+ 0x36, 0xe0, 0xfb, 0xe4, 0xff, 0x51, 0xb5, 0x90, 0x95, 0x14, 0xe0,
+ 0x04, 0xf0, 0xe0, 0xc3, 0x94, 0x10, 0x40, 0xdd, 0xd1, 0x14, 0x30,
+ 0xe0, 0x02, 0xf1, 0xd2, 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0x7d, 0x03,
+ 0x7f, 0x02, 0x02, 0x7b, 0xfd, 0x90, 0x85, 0xbc, 0xe0, 0xff, 0x13,
+ 0x13, 0x13, 0x22, 0x90, 0x85, 0xbc, 0xe0, 0x13, 0x13, 0x54, 0x3f,
+ 0x22, 0x90, 0x85, 0xbc, 0xe0, 0xff, 0xc4, 0x13, 0x13, 0x54, 0x03,
+ 0x22, 0x90, 0x05, 0x43, 0xe0, 0x7f, 0x00, 0x30, 0xe7, 0x02, 0x7f,
+ 0x01, 0x22, 0xe4, 0xf5, 0x75, 0x90, 0x85, 0xc5, 0xe0, 0x60, 0x6f,
+ 0x12, 0xc4, 0x67, 0x70, 0x6a, 0x12, 0xc7, 0xc0, 0x75, 0x75, 0x01,
+ 0x90, 0x85, 0xbc, 0xe0, 0x30, 0xe0, 0x11, 0x90, 0x85, 0xc0, 0xe0,
+ 0xb4, 0x02, 0x03, 0xe4, 0xf5, 0x75, 0xd1, 0x8d, 0xef, 0x70, 0x02,
+ 0xf5, 0x75, 0xe5, 0x75, 0x60, 0x48, 0x90, 0x85, 0xc8, 0xe0, 0x20,
+ 0xe2, 0x02, 0x71, 0x08, 0x90, 0x85, 0xc9, 0xe0, 0x44, 0x10, 0xf0,
+ 0x90, 0x85, 0xce, 0xe0, 0x60, 0x04, 0x64, 0x01, 0x70, 0x17, 0xe4,
+ 0x90, 0x91, 0x6e, 0xf0, 0x90, 0x85, 0xce, 0xe0, 0xf1, 0x12, 0x90,
+ 0x91, 0x6f, 0x12, 0xc6, 0x20, 0x90, 0x85, 0xce, 0xe0, 0x80, 0x11,
+ 0xe4, 0x90, 0x91, 0x6e, 0xf0, 0xf1, 0x19, 0xf1, 0x12, 0x90, 0x91,
+ 0x6f, 0x12, 0xc6, 0x20, 0xf1, 0x19, 0xf1, 0x12, 0x90, 0x85, 0xde,
+ 0xf0, 0x22, 0xff, 0x90, 0x85, 0xcd, 0xe0, 0x2f, 0x22, 0x90, 0x85,
+ 0xce, 0xe0, 0x75, 0xf0, 0x03, 0xa4, 0x24, 0xfe, 0x22, 0xf0, 0x74,
+ 0xcc, 0x2d, 0xf5, 0x82, 0xe4, 0x34, 0x8f, 0xf5, 0x83, 0x22, 0x12,
+ 0x05, 0x28, 0xe5, 0x82, 0x29, 0xf5, 0x82, 0xe4, 0x35, 0x83, 0xf5,
+ 0x83, 0x22, 0xae, 0x07, 0xd1, 0x8d, 0xbf, 0x01, 0x0e, 0xf1, 0xe2,
+ 0x20, 0xe0, 0x09, 0xaf, 0x06, 0x7d, 0x01, 0x71, 0x0c, 0x7f, 0x01,
+ 0x22, 0x7f, 0x00, 0x22, 0xd1, 0x82, 0x30, 0xe0, 0x0a, 0xf1, 0x6c,
+ 0x60, 0x06, 0x7d, 0x01, 0x7f, 0x02, 0x71, 0x0c, 0xf1, 0x6c, 0x60,
+ 0x02, 0xf1, 0x73, 0x22, 0x90, 0x85, 0xc0, 0xe0, 0x64, 0x02, 0x22,
+ 0x90, 0x85, 0xc5, 0xe0, 0x64, 0x02, 0x60, 0x10, 0x12, 0xb7, 0xdc,
+ 0x60, 0x0b, 0x12, 0x7a, 0x29, 0xef, 0x70, 0x05, 0xfd, 0x7f, 0x0c,
+ 0x71, 0x0c, 0x22, 0x90, 0x85, 0xc5, 0xe0, 0x64, 0x01, 0x70, 0x19,
+ 0x12, 0xb7, 0xdc, 0x60, 0x0c, 0xe4, 0xfd, 0x7f, 0x0c, 0x71, 0x0c,
+ 0x12, 0x98, 0xe0, 0x02, 0x6b, 0x98, 0x90, 0x85, 0xc8, 0xe0, 0x70,
+ 0x02, 0x71, 0x08, 0x22, 0x90, 0x85, 0xc5, 0xe0, 0x70, 0x07, 0x90,
+ 0x85, 0xbc, 0xe0, 0x30, 0xe0, 0x10, 0x90, 0x85, 0xbc, 0xe0, 0x30,
+ 0xe0, 0x07, 0xd1, 0x8d, 0xbf, 0x01, 0x04, 0x80, 0xaa, 0xf1, 0x8c,
+ 0x22, 0xe0, 0xff, 0x7d, 0x01, 0x61, 0x0c, 0xe4, 0xfd, 0x7f, 0x8d,
+ 0x02, 0x7b, 0x3e, 0x12, 0x7a, 0x29, 0xef, 0x70, 0x02, 0xf1, 0x8c,
+ 0x22, 0x90, 0x85, 0xbc, 0xe0, 0xc4, 0x13, 0x13, 0x54, 0x03, 0x22,
+ 0x21, 0x97, 0xf9, 0xe4, 0x3a, 0xfa, 0x02, 0x02, 0xf6, 0x75, 0xf0,
+ 0x08, 0xa4, 0x24, 0x00, 0xf5, 0x82, 0xe4, 0x34, 0x82, 0x22, 0xf1,
+ 0xae, 0xff, 0x54, 0x0f, 0xf5, 0x5e, 0xef, 0xc4, 0x54, 0x0f, 0x64,
+ 0x0f, 0x70, 0x3b, 0x90, 0x92, 0x0a, 0xe0, 0x54, 0xfe, 0xff, 0xf0,
+ 0xe5, 0x5e, 0x54, 0x07, 0x25, 0xe0, 0xfe, 0xef, 0x54, 0xf1, 0x4e,
+ 0xf0, 0x12, 0x97, 0xe7, 0xc4, 0x13, 0x54, 0x07, 0x90, 0x92, 0xbb,
+ 0x20, 0xe0, 0x05, 0x74, 0x06, 0xf0, 0x80, 0x03, 0x74, 0x01, 0xf0,
+ 0xf1, 0x8a, 0xaf, 0x5e, 0x31, 0x03, 0xbf, 0x01, 0x05, 0xe4, 0xfd,
+ 0xff, 0x51, 0x52, 0x7f, 0x02, 0x21, 0x00, 0xe5, 0x5e, 0x75, 0xf0,
+ 0x1b, 0xa4, 0x24, 0x37, 0xf9, 0x74, 0x92, 0x35, 0xf0, 0xfa, 0x7b,
+ 0x01, 0xc0, 0x02, 0xc0, 0x01, 0xe5, 0x5d, 0x24, 0x01, 0xf9, 0xe4,
+ 0x35, 0x5c, 0x85, 0x5b, 0x1b, 0xf5, 0x1c, 0x89, 0x1d, 0x75, 0x1e,
+ 0x04, 0xd0, 0x01, 0xd0, 0x02, 0x12, 0x6a, 0x21, 0xe5, 0x5e, 0x12,
+ 0x8f, 0xa6, 0x54, 0xf7, 0xf0, 0x12, 0x98, 0xd7, 0xc4, 0x54, 0x0f,
+ 0x14, 0x65, 0x5e, 0x70, 0x77, 0x90, 0x85, 0xc5, 0xe0, 0x70, 0x07,
+ 0x90, 0x85, 0xbc, 0xe0, 0x30, 0xe0, 0x04, 0x7f, 0x05, 0x80, 0x64,
+ 0x12, 0x98, 0xd7, 0xc4, 0x54, 0x0f, 0x90, 0x92, 0x0b, 0xf0, 0x12,
+ 0x90, 0x39, 0xfc, 0x54, 0x0f, 0xc4, 0x54, 0xf0, 0xfe, 0x90, 0x92,
+ 0x0a, 0xe0, 0x54, 0x0f, 0x4e, 0xf0, 0xec, 0x54, 0x60, 0xc4, 0x54,
+ 0x0f, 0xff, 0x90, 0x92, 0x89, 0xe0, 0x54, 0xf9, 0x4f, 0xf0, 0x90,
+ 0x92, 0x0a, 0xe0, 0x54, 0xf1, 0xf0, 0x90, 0x05, 0x58, 0x74, 0x02,
+ 0xf0, 0x90, 0x92, 0xb1, 0xe0, 0x90, 0x92, 0xb5, 0x30, 0xe0, 0x0b,
+ 0xe0, 0x54, 0xfe, 0xf0, 0x54, 0xc1, 0x44, 0x02, 0xf0, 0x80, 0x07,
+ 0xe0, 0x44, 0x01, 0xf0, 0x54, 0xc1, 0xf0, 0x90, 0x92, 0xb5, 0xe0,
+ 0x54, 0xbf, 0xf0, 0x90, 0x92, 0x0a, 0xe0, 0x44, 0x01, 0xf0, 0x7f,
+ 0x03, 0x51, 0xf7, 0x22, 0x8f, 0x5f, 0x90, 0x05, 0x22, 0xe0, 0x90,
+ 0x93, 0xc3, 0xf0, 0x12, 0x96, 0xe6, 0xef, 0x64, 0x01, 0x70, 0x35,
+ 0xe5, 0x5f, 0x51, 0xd4, 0xe0, 0xfc, 0xe5, 0x5f, 0x12, 0xd0, 0x4c,
+ 0xaf, 0x04, 0x31, 0x59, 0xe5, 0x5f, 0x12, 0x8b, 0xb0, 0xe5, 0x5f,
+ 0x12, 0x8f, 0xa6, 0x54, 0x07, 0xff, 0x60, 0x03, 0xbf, 0x02, 0x0b,
+ 0xe5, 0x5f, 0x12, 0x97, 0xd9, 0x51, 0xf0, 0xfd, 0x12, 0x95, 0x92,
+ 0xad, 0x5f, 0x7f, 0x01, 0x51, 0x52, 0x7f, 0x01, 0x22, 0x90, 0x93,
+ 0xc3, 0xe0, 0xfd, 0x7b, 0x49, 0xe4, 0xff, 0x12, 0x95, 0x87, 0x7f,
+ 0x00, 0x22, 0xd3, 0x10, 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0x90, 0x95,
+ 0x01, 0xef, 0xf0, 0xed, 0x64, 0x01, 0x70, 0x2e, 0xeb, 0xb4, 0x01,
+ 0x07, 0xe0, 0x24, 0x02, 0xf5, 0x0e, 0x80, 0x08, 0x90, 0x95, 0x01,
+ 0xe0, 0x24, 0xfe, 0xf5, 0x0e, 0x90, 0x94, 0xc1, 0x12, 0x04, 0xf7,
+ 0x00, 0x00, 0x00, 0xff, 0xaf, 0x0e, 0x31, 0xc3, 0x51, 0x4a, 0x12,
+ 0x04, 0xf7, 0x00, 0x00, 0x00, 0xff, 0xaf, 0x0e, 0x80, 0x20, 0x90,
+ 0x94, 0xc1, 0x12, 0x04, 0xf7, 0x00, 0x00, 0x00, 0xff, 0x90, 0x95,
+ 0x01, 0x12, 0x8d, 0xa5, 0x31, 0xc7, 0x51, 0x4a, 0x12, 0x04, 0xf7,
+ 0x00, 0x00, 0x00, 0xff, 0x90, 0x95, 0x01, 0xe0, 0xff, 0x31, 0xc3,
+ 0x7f, 0x01, 0x31, 0xd2, 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0xe4, 0xfc,
+ 0xfd, 0xfe, 0x90, 0x94, 0xc5, 0x12, 0x04, 0xeb, 0x7d, 0x18, 0x7c,
+ 0x00, 0x22, 0xd3, 0x10, 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0x90, 0x94,
+ 0xbf, 0xec, 0xf0, 0xa3, 0xed, 0xf0, 0x90, 0x94, 0xbe, 0xef, 0xf0,
+ 0xa3, 0xa3, 0xe0, 0xfd, 0x12, 0x7b, 0xe0, 0x90, 0x94, 0xc9, 0x12,
+ 0x04, 0xeb, 0x90, 0x94, 0xc1, 0x12, 0x87, 0x2d, 0x12, 0x04, 0xa7,
+ 0x90, 0x94, 0xc9, 0x12, 0x8f, 0x5e, 0xc0, 0x04, 0xc0, 0x05, 0xc0,
+ 0x06, 0xc0, 0x07, 0x90, 0x94, 0xc1, 0x12, 0x87, 0x2d, 0x90, 0x94,
+ 0xc5, 0x12, 0x8f, 0x5e, 0xd0, 0x03, 0xd0, 0x02, 0xd0, 0x01, 0xd0,
+ 0x00, 0x12, 0x87, 0x20, 0x90, 0x94, 0xcd, 0x12, 0x04, 0xeb, 0x90,
+ 0x94, 0xbf, 0xa3, 0xe0, 0xfd, 0xc0, 0x05, 0x90, 0x94, 0xcd, 0x12,
+ 0x87, 0x2d, 0x90, 0x8d, 0x9d, 0x12, 0x04, 0xeb, 0x90, 0x94, 0xbe,
+ 0xe0, 0xff, 0xd0, 0x05, 0x12, 0x78, 0xdd, 0xd0, 0xd0, 0x92, 0xaf,
+ 0x22, 0xe4, 0xff, 0x31, 0xd2, 0x90, 0x94, 0xc1, 0x22, 0xd3, 0x10,
+ 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0x90, 0x94, 0x82, 0xed, 0xf0, 0x90,
+ 0x94, 0x81, 0xef, 0xf0, 0x64, 0x02, 0x70, 0x24, 0x90, 0x05, 0x22,
+ 0xe0, 0x90, 0x94, 0x83, 0xf0, 0x7b, 0x4a, 0x7d, 0x6f, 0x12, 0x96,
+ 0xea, 0xbf, 0x01, 0x07, 0x90, 0x04, 0xd4, 0x74, 0xff, 0x80, 0x48,
+ 0x90, 0x94, 0x83, 0xe0, 0xfd, 0x7b, 0x46, 0x31, 0x51, 0x80, 0x42,
+ 0x90, 0x94, 0x81, 0xe0, 0x64, 0x01, 0x70, 0x31, 0x12, 0x95, 0x83,
+ 0x90, 0x94, 0x82, 0xe0, 0xff, 0x75, 0xf0, 0x1b, 0xa4, 0x24, 0x3c,
+ 0xf5, 0x82, 0xe4, 0x34, 0x92, 0xf5, 0x83, 0xe0, 0xf4, 0x90, 0x04,
+ 0xd4, 0xf0, 0xef, 0x75, 0xf0, 0x1b, 0xa4, 0x24, 0x3d, 0xf5, 0x82,
+ 0xe4, 0x34, 0x92, 0xf5, 0x83, 0xe0, 0xf4, 0x90, 0x04, 0xd5, 0xf0,
+ 0x80, 0x07, 0x90, 0x04, 0xd4, 0xe4, 0xf0, 0xa3, 0xf0, 0x7f, 0x01,
+ 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0xe5, 0x77, 0x75, 0xf0, 0x1b, 0xa4,
+ 0x24, 0x37, 0xf5, 0x82, 0xe4, 0x34, 0x92, 0xf5, 0x83, 0x22, 0xef,
+ 0x75, 0xf0, 0x0e, 0xa4, 0x24, 0x19, 0xf5, 0x82, 0xe4, 0x34, 0x92,
+ 0xf5, 0x83, 0xe0, 0xff, 0x7e, 0x00, 0xe4, 0xfb, 0x22, 0xd3, 0x10,
+ 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0xad, 0x07, 0x90, 0x05, 0x63, 0xe0,
+ 0xfe, 0x90, 0x05, 0x62, 0xe0, 0x7a, 0x00, 0x24, 0x00, 0xff, 0xea,
+ 0x3e, 0x90, 0x94, 0x90, 0xf0, 0xa3, 0xef, 0xf0, 0x90, 0x05, 0x61,
+ 0xe0, 0xfe, 0x90, 0x05, 0x60, 0xe0, 0x24, 0x00, 0xff, 0xea, 0x3e,
+ 0xfe, 0xed, 0xb4, 0x08, 0x0a, 0x90, 0x05, 0x58, 0xe0, 0xfc, 0x2f,
+ 0xff, 0xea, 0x3e, 0xfe, 0x90, 0x94, 0x81, 0x74, 0x17, 0xf0, 0x90,
+ 0x94, 0x8f, 0x74, 0x06, 0xf0, 0x90, 0x94, 0x83, 0xed, 0xf0, 0x90,
+ 0x92, 0x0a, 0xe0, 0xfd, 0xc3, 0x13, 0x54, 0x07, 0x51, 0xd4, 0xe0,
+ 0x90, 0x94, 0x84, 0xf0, 0xa3, 0xef, 0xf0, 0xee, 0xa3, 0xf0, 0x90,
+ 0x94, 0x90, 0xe0, 0xfe, 0xa3, 0xe0, 0x90, 0x94, 0x87, 0xf0, 0xee,
+ 0xa3, 0xf0, 0x7b, 0x01, 0x7a, 0x94, 0x79, 0x81, 0x12, 0x88, 0x13,
+ 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0x90, 0x92, 0x0a, 0xe0, 0xff, 0x20,
+ 0xe0, 0x02, 0xc1, 0x4d, 0x90, 0x92, 0xb5, 0xe0, 0xfe, 0x20, 0xe0,
+ 0x02, 0x81, 0xbb, 0x90, 0x92, 0xb3, 0xe0, 0xfd, 0x90, 0x92, 0xb6,
+ 0xe0, 0xd3, 0x9d, 0x50, 0x02, 0x81, 0xbb, 0x90, 0x05, 0x58, 0xe0,
+ 0x90, 0x94, 0x5d, 0xf0, 0xef, 0x12, 0x8f, 0xa3, 0x54, 0x07, 0xff,
+ 0x64, 0x02, 0x60, 0x03, 0xef, 0x70, 0x23, 0xee, 0xc4, 0x13, 0x13,
+ 0x54, 0x03, 0x20, 0xe0, 0x1a, 0x90, 0x92, 0xb5, 0xe0, 0x44, 0x40,
+ 0xf1, 0x91, 0x90, 0x94, 0x5d, 0xe0, 0xff, 0x90, 0x92, 0xb2, 0xe0,
+ 0x2f, 0x24, 0xfd, 0x90, 0x91, 0x6f, 0x12, 0xc6, 0x20, 0x12, 0x8d,
+ 0x8c, 0x12, 0x87, 0x20, 0xc0, 0x04, 0xc0, 0x05, 0xc0, 0x06, 0xc0,
+ 0x07, 0x90, 0x05, 0x62, 0x12, 0x8d, 0xa5, 0x78, 0x10, 0x12, 0x04,
+ 0xd8, 0xd0, 0x03, 0xd0, 0x02, 0xd0, 0x01, 0xd0, 0x00, 0x12, 0x87,
+ 0x20, 0xc0, 0x04, 0xc0, 0x05, 0xc0, 0x06, 0xc0, 0x07, 0xa3, 0x12,
+ 0x8d, 0xa5, 0x78, 0x18, 0x12, 0x04, 0xd8, 0xd0, 0x03, 0xd0, 0x02,
+ 0xd0, 0x01, 0xd0, 0x00, 0x12, 0x87, 0x20, 0x90, 0x94, 0x51, 0x12,
+ 0x04, 0xeb, 0x90, 0x05, 0x65, 0x12, 0x8d, 0xa5, 0xd1, 0x80, 0x90,
+ 0x05, 0x64, 0x12, 0x8d, 0xa5, 0x12, 0x87, 0x20, 0xc0, 0x04, 0xc0,
+ 0x05, 0xc0, 0x06, 0xc0, 0x07, 0x90, 0x05, 0x66, 0x12, 0x8d, 0xa5,
+ 0x78, 0x10, 0x12, 0x04, 0xd8, 0xd0, 0x03, 0xd0, 0x02, 0xd0, 0x01,
+ 0xd0, 0x00, 0x12, 0x87, 0x20, 0xc0, 0x04, 0xc0, 0x05, 0xc0, 0x06,
+ 0xc0, 0x07, 0xa3, 0x12, 0x8d, 0xa5, 0x78, 0x18, 0x12, 0x04, 0xd8,
+ 0xd0, 0x03, 0xd0, 0x02, 0xd0, 0x01, 0xd0, 0x00, 0x12, 0x87, 0x20,
+ 0xd1, 0x7a, 0x90, 0x92, 0xb2, 0xe0, 0xfb, 0xe4, 0xfa, 0xf9, 0xf8,
+ 0x90, 0x94, 0x5d, 0x12, 0x8d, 0xa5, 0x12, 0x86, 0xa9, 0xe4, 0xfb,
+ 0x7a, 0x04, 0x12, 0x86, 0xc4, 0xd1, 0x67, 0x12, 0x86, 0xa9, 0x90,
+ 0x94, 0x59, 0xd1, 0x5e, 0x90, 0x94, 0x59, 0xf1, 0x9f, 0x50, 0x04,
+ 0xd1, 0x50, 0xd1, 0x6d, 0xd1, 0x50, 0xf1, 0xb7, 0xd1, 0x4e, 0xf1,
+ 0xc0, 0xd1, 0x4e, 0xf1, 0xc9, 0xd1, 0x4e, 0x90, 0x05, 0x88, 0xd1,
+ 0x56, 0xf1, 0xd2, 0xd1, 0x56, 0xf1, 0xdb, 0xd1, 0x56, 0xf1, 0xe4,
+ 0xd1, 0x56, 0x12, 0xd1, 0x1f, 0xe4, 0x90, 0x92, 0xb6, 0xf0, 0x90,
+ 0x92, 0xb1, 0xe0, 0x20, 0xe0, 0x02, 0xc1, 0x4d, 0x90, 0x92, 0xb5,
+ 0xe0, 0xff, 0xc3, 0x13, 0xfe, 0x54, 0x1f, 0x70, 0x02, 0xc1, 0x4d,
+ 0xef, 0x54, 0xc1, 0xff, 0xee, 0x14, 0x54, 0x1f, 0xfe, 0x25, 0xe0,
+ 0x4f, 0xf0, 0xe0, 0xc3, 0x13, 0x54, 0x1f, 0x60, 0x02, 0xc1, 0x4d,
+ 0x90, 0x05, 0x22, 0xe0, 0x44, 0x40, 0xfd, 0x7b, 0x58, 0x7f, 0x40,
+ 0x12, 0x95, 0x87, 0x90, 0x05, 0x50, 0xe0, 0x54, 0xf7, 0xf0, 0x90,
+ 0x05, 0x69, 0x12, 0x8d, 0xa5, 0xd1, 0x80, 0x90, 0x05, 0x68, 0x12,
+ 0x8d, 0xa5, 0x12, 0x87, 0x20, 0xc0, 0x04, 0xc0, 0x05, 0xc0, 0x06,
+ 0xc0, 0x07, 0x90, 0x05, 0x6a, 0x12, 0x8d, 0xa5, 0x78, 0x10, 0x12,
+ 0x04, 0xd8, 0xd0, 0x03, 0xd0, 0x02, 0xd0, 0x01, 0xd0, 0x00, 0x12,
+ 0x87, 0x20, 0xc0, 0x04, 0xc0, 0x05, 0xc0, 0x06, 0xc0, 0x07, 0xa3,
+ 0x12, 0x8d, 0xa5, 0x78, 0x18, 0x12, 0x04, 0xd8, 0xd0, 0x03, 0xd0,
+ 0x02, 0xd0, 0x01, 0xd0, 0x00, 0x12, 0x87, 0x20, 0x90, 0x94, 0x51,
+ 0xd1, 0x5e, 0x90, 0x94, 0x59, 0x12, 0x04, 0xeb, 0x90, 0x05, 0x6d,
+ 0x12, 0x8d, 0xa5, 0xd1, 0x80, 0x90, 0x05, 0x6c, 0x12, 0x8d, 0xa5,
+ 0x12, 0x87, 0x20, 0xc0, 0x04, 0xc0, 0x05, 0xc0, 0x06, 0xc0, 0x07,
+ 0x90, 0x05, 0x6e, 0x12, 0x8d, 0xa5, 0x78, 0x10, 0x12, 0x04, 0xd8,
+ 0xd0, 0x03, 0xd0, 0x02, 0xd0, 0x01, 0xd0, 0x00, 0x12, 0x87, 0x20,
+ 0xc0, 0x04, 0xc0, 0x05, 0xc0, 0x06, 0xc0, 0x07, 0xa3, 0x12, 0x8d,
+ 0xa5, 0x78, 0x18, 0x12, 0x04, 0xd8, 0xd0, 0x03, 0xd0, 0x02, 0xd0,
+ 0x01, 0xd0, 0x00, 0x12, 0x87, 0x20, 0xd1, 0x7a, 0xd1, 0x67, 0xc0,
+ 0x00, 0xc0, 0x01, 0xc0, 0x02, 0xc0, 0x03, 0x90, 0x92, 0xb1, 0xe0,
+ 0xc3, 0x13, 0x54, 0x7f, 0xff, 0xe4, 0xfc, 0xfd, 0xfe, 0xf1, 0xa6,
+ 0xd0, 0x03, 0xd0, 0x02, 0xd0, 0x01, 0xd0, 0x00, 0x12, 0x86, 0xa9,
+ 0x90, 0x94, 0x51, 0x12, 0x04, 0xeb, 0xd1, 0x58, 0xd1, 0x67, 0xc3,
+ 0x12, 0x04, 0xb4, 0x50, 0x04, 0xd1, 0x50, 0xd1, 0x6d, 0xd1, 0x50,
+ 0x78, 0x18, 0x12, 0x04, 0xc5, 0x90, 0x05, 0x67, 0xd1, 0x4e, 0x78,
+ 0x10, 0x12, 0x04, 0xc5, 0x90, 0x05, 0x66, 0xd1, 0x4e, 0x78, 0x08,
+ 0x12, 0x04, 0xc5, 0x90, 0x05, 0x65, 0xd1, 0x4e, 0x90, 0x05, 0x64,
+ 0xef, 0xf0, 0xd1, 0x61, 0x78, 0x18, 0x12, 0x04, 0xc5, 0x90, 0x05,
+ 0x63, 0xef, 0xf0, 0xd1, 0x61, 0x78, 0x10, 0x12, 0x04, 0xc5, 0x90,
+ 0x05, 0x62, 0xef, 0xf0, 0xd1, 0x61, 0x78, 0x08, 0x12, 0x04, 0xc5,
+ 0x90, 0x05, 0x61, 0xef, 0xf0, 0xd1, 0x61, 0x90, 0x05, 0x60, 0xef,
+ 0xf0, 0x90, 0x05, 0x50, 0xe0, 0x44, 0x08, 0xf0, 0x90, 0x05, 0x22,
+ 0xe0, 0x54, 0xbf, 0xfd, 0x7b, 0x59, 0x7f, 0x40, 0x12, 0x95, 0x87,
+ 0x7f, 0x08, 0x51, 0xf7, 0x90, 0x92, 0xb5, 0xe0, 0x54, 0xc1, 0x44,
+ 0x28, 0xf0, 0x44, 0x01, 0xf0, 0x22, 0xef, 0xf0, 0x90, 0x94, 0x55,
+ 0x02, 0x87, 0x2d, 0xef, 0xf0, 0x90, 0x94, 0x59, 0x02, 0x87, 0x2d,
+ 0x12, 0x04, 0xeb, 0x90, 0x94, 0x51, 0x02, 0x87, 0x2d, 0x90, 0x94,
+ 0x51, 0x02, 0x87, 0x39, 0xef, 0x24, 0x01, 0xff, 0xe4, 0x3e, 0xfe,
+ 0xe4, 0x3d, 0xfd, 0xe4, 0x3c, 0xfc, 0x90, 0x94, 0x55, 0x02, 0x04,
+ 0xeb, 0x78, 0x08, 0x12, 0x04, 0xd8, 0xa8, 0x04, 0xa9, 0x05, 0xaa,
+ 0x06, 0xab, 0x07, 0x22, 0x90, 0x85, 0xbc, 0xe0, 0x30, 0xe0, 0x10,
+ 0xa3, 0x74, 0x01, 0xf0, 0x90, 0x85, 0xbc, 0xe0, 0xff, 0xc3, 0x13,
+ 0x30, 0xe0, 0x02, 0xd1, 0xae, 0x12, 0xa6, 0x99, 0xe4, 0xff, 0xd1,
+ 0xc9, 0x61, 0x77, 0xd3, 0x10, 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0x12,
+ 0xa6, 0x8d, 0xbf, 0x01, 0x04, 0x7f, 0x01, 0x80, 0x02, 0x7f, 0x02,
+ 0x12, 0xc9, 0x5e, 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0xd3, 0x10, 0xaf,
+ 0x01, 0xc3, 0xc0, 0xd0, 0x90, 0x92, 0xc9, 0xe0, 0xfe, 0x13, 0x13,
+ 0x54, 0x3f, 0x30, 0xe0, 0x1f, 0x90, 0x94, 0xe3, 0x74, 0x1e, 0xf0,
+ 0x90, 0x94, 0xf1, 0x74, 0x01, 0xf0, 0x90, 0x94, 0xe5, 0xef, 0xf0,
+ 0x7b, 0x01, 0x7a, 0x94, 0x79, 0xe3, 0x12, 0x5e, 0x10, 0x7f, 0x04,
+ 0x12, 0xb6, 0x62, 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0x12, 0xc5, 0x8a,
+ 0xf1, 0x7a, 0x7f, 0x01, 0xd1, 0xc9, 0x90, 0x92, 0x04, 0xe0, 0x30,
+ 0xe0, 0x14, 0xf1, 0x81, 0x90, 0x92, 0x07, 0xe0, 0x60, 0x05, 0x14,
+ 0xf0, 0x02, 0x7a, 0x8a, 0x12, 0xb1, 0x58, 0xe4, 0xff, 0xf1, 0x25,
+ 0x22, 0xd3, 0x10, 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0xef, 0x64, 0x01,
+ 0x70, 0x1a, 0xf1, 0x72, 0x60, 0x09, 0xf1, 0x6b, 0x12, 0x7b, 0xfd,
+ 0xf1, 0x81, 0x80, 0x08, 0xf1, 0x6b, 0x12, 0x7b, 0xbf, 0x12, 0xb7,
+ 0x2f, 0x12, 0x7a, 0x8a, 0x80, 0x17, 0xf1, 0x72, 0x60, 0x07, 0xf1,
+ 0x6b, 0x12, 0x7b, 0xfd, 0x80, 0x05, 0xf1, 0x6b, 0x12, 0x7b, 0xbf,
+ 0xf1, 0x7a, 0xf1, 0x98, 0x12, 0x7a, 0xb9, 0xd0, 0xd0, 0x92, 0xaf,
+ 0x22, 0xf0, 0x90, 0x01, 0x3f, 0x74, 0x10, 0xf0, 0xfd, 0x7f, 0x03,
+ 0x22, 0x90, 0x92, 0x06, 0xe0, 0x90, 0x01, 0x3f, 0x22, 0x7d, 0x02,
+ 0x7f, 0x02, 0x02, 0x7c, 0xa9, 0x90, 0x92, 0x06, 0xe0, 0x90, 0x05,
+ 0x73, 0xf0, 0x22, 0x7d, 0x20, 0xe4, 0xff, 0x02, 0x7b, 0xbf, 0xf0,
+ 0xe4, 0x90, 0x91, 0x6e, 0xf0, 0x22, 0x7d, 0x01, 0x7f, 0x02, 0x02,
+ 0x7c, 0xa9, 0x12, 0x87, 0x39, 0xd3, 0x02, 0x04, 0xb4, 0xfb, 0x7a,
+ 0x04, 0xf9, 0xf8, 0x02, 0x86, 0xc4, 0x8b, 0x5b, 0x8a, 0x5c, 0x89,
+ 0x5d, 0x02, 0x02, 0xf6, 0x78, 0x18, 0x12, 0x04, 0xc5, 0x90, 0x05,
+ 0x8b, 0x22, 0x78, 0x10, 0x12, 0x04, 0xc5, 0x90, 0x05, 0x8a, 0x22,
+ 0x78, 0x08, 0x12, 0x04, 0xc5, 0x90, 0x05, 0x89, 0x22, 0x78, 0x18,
+ 0x12, 0x04, 0xc5, 0x90, 0x05, 0x87, 0x22, 0x78, 0x10, 0x12, 0x04,
+ 0xc5, 0x90, 0x05, 0x86, 0x22, 0x78, 0x08, 0x12, 0x04, 0xc5, 0x90,
+ 0x05, 0x85, 0x22, 0xf1, 0xae, 0xff, 0x54, 0x01, 0xfe, 0x90, 0x92,
+ 0xb1, 0x12, 0xb1, 0x50, 0x54, 0xfe, 0xff, 0xee, 0x54, 0x01, 0x4f,
+ 0xf0, 0x12, 0x8f, 0x73, 0x90, 0x92, 0xb2, 0x12, 0x8f, 0xf2, 0x90,
+ 0x92, 0xb3, 0xf0, 0xe4, 0xa3, 0xf0, 0x90, 0x92, 0xb3, 0xe0, 0xff,
+ 0xb4, 0x64, 0x05, 0x74, 0x01, 0xf0, 0x80, 0x0a, 0xef, 0xb4, 0x96,
+ 0x06, 0x90, 0x92, 0xb3, 0x74, 0x03, 0xf0, 0x90, 0x92, 0xb3, 0xe0,
+ 0x04, 0x90, 0x92, 0xb6, 0xf0, 0x22, 0x12, 0x02, 0xf6, 0xff, 0x90,
+ 0x92, 0x03, 0xf0, 0xbf, 0x01, 0x07, 0x11, 0x45, 0xe4, 0x90, 0x92,
+ 0x03, 0xf0, 0x22, 0x7b, 0x01, 0x7a, 0x93, 0x79, 0xc3, 0x7f, 0xef,
+ 0x7e, 0x00, 0x12, 0x64, 0x37, 0xbf, 0x01, 0x06, 0x90, 0x93, 0xc3,
+ 0xe0, 0xa3, 0xf0, 0x7b, 0x01, 0x7a, 0x93, 0x79, 0xc3, 0x7f, 0xee,
+ 0x7e, 0x00, 0x12, 0x64, 0x37, 0xbf, 0x01, 0x08, 0x90, 0x93, 0xc3,
+ 0xe0, 0x90, 0x93, 0xc5, 0xf0, 0x7b, 0x01, 0x7a, 0x93, 0x79, 0xc3,
+ 0x7f, 0xed, 0x7e, 0x00, 0x12, 0x64, 0x37, 0xbf, 0x01, 0x08, 0x90,
+ 0x93, 0xc3, 0xe0, 0x90, 0x93, 0xc6, 0xf0, 0x7b, 0x01, 0x7a, 0x93,
+ 0x79, 0xc3, 0x7f, 0xec, 0x7e, 0x00, 0x12, 0x64, 0x37, 0xbf, 0x01,
+ 0x08, 0x90, 0x93, 0xc3, 0xe0, 0x90, 0x93, 0xc7, 0xf0, 0x7b, 0x01,
+ 0x7a, 0x93, 0x79, 0xc3, 0x7f, 0xeb, 0x7e, 0x00, 0x12, 0x64, 0x37,
+ 0xbf, 0x01, 0x08, 0x90, 0x93, 0xc3, 0xe0, 0x90, 0x93, 0xc8, 0xf0,
+ 0x90, 0x93, 0xc4, 0xe0, 0xff, 0xa3, 0xe0, 0xfd, 0xa3, 0xe0, 0xfb,
+ 0xa3, 0xe0, 0x90, 0x93, 0xcc, 0xf0, 0x90, 0x93, 0xc8, 0xe0, 0x90,
+ 0x93, 0xcd, 0xf0, 0x90, 0x93, 0xce, 0x74, 0x12, 0xf0, 0x90, 0x93,
+ 0xdc, 0x74, 0x05, 0xf0, 0x90, 0x93, 0xd0, 0x31, 0x03, 0x90, 0x93,
+ 0xcc, 0xe0, 0x90, 0x93, 0xd3, 0xf0, 0x90, 0x93, 0xcd, 0xe0, 0x90,
+ 0x93, 0xd4, 0xf0, 0x7b, 0x01, 0x7a, 0x93, 0x79, 0xce, 0x12, 0x5e,
+ 0x10, 0x7f, 0x04, 0x02, 0x88, 0x18, 0xef, 0xf0, 0xa3, 0xed, 0xf0,
+ 0xa3, 0xeb, 0xf0, 0x22, 0x12, 0x02, 0xf6, 0x54, 0x01, 0xff, 0x90,
+ 0x92, 0xc8, 0xe0, 0x54, 0xfe, 0x4f, 0xf0, 0x22, 0x12, 0x02, 0xf6,
+ 0x90, 0x86, 0x71, 0xf0, 0x22, 0x12, 0x02, 0xf6, 0xff, 0x54, 0x01,
+ 0xfe, 0x90, 0x92, 0x04, 0x31, 0x50, 0x54, 0x02, 0xff, 0xee, 0x54,
+ 0xfd, 0x4f, 0xf0, 0x12, 0x8f, 0x73, 0x90, 0x92, 0x05, 0x12, 0x8f,
+ 0xf2, 0x90, 0x92, 0x06, 0xf0, 0x31, 0x58, 0x90, 0x92, 0x04, 0xe0,
+ 0x54, 0x01, 0xff, 0x02, 0xaf, 0x25, 0xe0, 0x54, 0xfe, 0x4e, 0xfe,
+ 0xf0, 0xef, 0x22, 0x90, 0x92, 0x05, 0xe0, 0x14, 0x90, 0x92, 0x07,
+ 0xf0, 0x22, 0x90, 0x01, 0xcc, 0xe0, 0x54, 0x0f, 0x90, 0x93, 0xbd,
+ 0xf0, 0x90, 0x93, 0xbd, 0xe0, 0xfd, 0x70, 0x02, 0x41, 0x5f, 0x90,
+ 0x85, 0x1d, 0xe0, 0xff, 0x70, 0x06, 0xa3, 0xe0, 0x64, 0x09, 0x60,
+ 0x0a, 0xef, 0x14, 0xff, 0x90, 0x85, 0x1e, 0xe0, 0xb5, 0x07, 0x04,
+ 0x7f, 0x01, 0x80, 0x02, 0x7f, 0x00, 0xef, 0x60, 0x08, 0x90, 0x01,
+ 0xc1, 0xe0, 0x44, 0x01, 0xf0, 0x22, 0x90, 0x95, 0x11, 0xe0, 0x51,
+ 0x92, 0x80, 0x05, 0xc3, 0x33, 0xce, 0x33, 0xce, 0xd8, 0xf9, 0xff,
+ 0xef, 0x5d, 0x70, 0x02, 0x41, 0x42, 0xe4, 0x90, 0x93, 0xbe, 0xf0,
+ 0x90, 0x93, 0xbe, 0xe0, 0xf9, 0xc3, 0x94, 0x04, 0x50, 0x36, 0x51,
+ 0x61, 0xa4, 0xff, 0xe9, 0xfd, 0x7c, 0x00, 0x2f, 0xff, 0xec, 0x35,
+ 0xf0, 0xfe, 0x74, 0xd0, 0x51, 0x69, 0x90, 0x84, 0xcd, 0x12, 0xa7,
+ 0x30, 0xef, 0x51, 0x60, 0xa4, 0x2d, 0xff, 0xec, 0x35, 0xf0, 0xfe,
+ 0x74, 0xf0, 0x51, 0x69, 0x90, 0x84, 0xd1, 0x12, 0xa7, 0x30, 0xef,
+ 0xf0, 0x90, 0x93, 0xbe, 0xe0, 0x04, 0xf0, 0x80, 0xc0, 0x90, 0x93,
+ 0xbd, 0xe0, 0xff, 0x90, 0x95, 0x11, 0x51, 0x81, 0x80, 0x02, 0xc3,
+ 0x33, 0xd8, 0xfc, 0xf4, 0x5f, 0x90, 0x93, 0xbd, 0xf0, 0x90, 0x95,
+ 0x11, 0xe0, 0xff, 0x74, 0x01, 0xa8, 0x07, 0x08, 0x80, 0x02, 0xc3,
+ 0x33, 0xd8, 0xfc, 0x90, 0x01, 0xcc, 0xf0, 0x90, 0x95, 0x11, 0xe0,
+ 0x04, 0xf0, 0xe0, 0x54, 0x03, 0xf0, 0x90, 0x85, 0x1e, 0x51, 0x89,
+ 0xb4, 0x0a, 0x02, 0x7f, 0x01, 0xef, 0x70, 0x02, 0x21, 0x6c, 0xe4,
+ 0x90, 0x85, 0x1e, 0xf0, 0x21, 0x6c, 0x90, 0x01, 0xc0, 0xe0, 0x44,
+ 0x02, 0xf0, 0x90, 0x95, 0x11, 0xe0, 0x44, 0x80, 0x90, 0x00, 0x8a,
+ 0x51, 0x60, 0x90, 0x01, 0xd0, 0x12, 0x05, 0x28, 0xe0, 0x90, 0x01,
+ 0xc3, 0xf0, 0x22, 0xf0, 0x90, 0x95, 0x11, 0xe0, 0x75, 0xf0, 0x04,
+ 0x22, 0x2f, 0xf5, 0x82, 0x74, 0x01, 0x3e, 0xf5, 0x83, 0xe0, 0xff,
+ 0x90, 0x85, 0x1e, 0xe0, 0x75, 0xf0, 0x08, 0x22, 0x75, 0xf0, 0x03,
+ 0x12, 0x05, 0x28, 0xe0, 0xfe, 0x74, 0x01, 0xa8, 0x06, 0x08, 0x22,
+ 0xe0, 0x04, 0xf0, 0xe0, 0x7f, 0x00, 0x22, 0x54, 0x07, 0xff, 0x74,
+ 0x01, 0x7e, 0x00, 0xa8, 0x07, 0x08, 0x22, 0xe4, 0xf5, 0x75, 0x90,
+ 0x85, 0xbb, 0xe0, 0xff, 0xe5, 0x75, 0xc3, 0x9f, 0x50, 0x65, 0xaf,
+ 0x75, 0x12, 0x77, 0x39, 0xef, 0x60, 0x59, 0xe5, 0x75, 0x13, 0x13,
+ 0x13, 0x54, 0x1f, 0xff, 0xe5, 0x75, 0x54, 0x07, 0xfe, 0x74, 0x75,
+ 0x2f, 0x71, 0x11, 0xaf, 0x06, 0x51, 0x93, 0x80, 0x05, 0xc3, 0x33,
+ 0xce, 0x33, 0xce, 0xd8, 0xf9, 0xff, 0xef, 0x5d, 0x60, 0x35, 0xe5,
+ 0x75, 0xc4, 0x54, 0xf0, 0x24, 0x01, 0xf5, 0x82, 0xe4, 0x34, 0x81,
+ 0xf5, 0x83, 0xe0, 0x20, 0xe7, 0x02, 0x80, 0x13, 0xe5, 0x75, 0xc4,
+ 0x54, 0xf0, 0x24, 0x02, 0xf5, 0x82, 0xe4, 0x34, 0x81, 0xf5, 0x83,
+ 0xe0, 0xff, 0x20, 0xe7, 0x09, 0x90, 0x01, 0xc1, 0xe0, 0x44, 0x20,
+ 0xf0, 0x80, 0x05, 0xad, 0x75, 0x12, 0x9a, 0xc9, 0x05, 0x75, 0x80,
+ 0x90, 0x22, 0x80, 0x8a, 0xf5, 0x82, 0xe4, 0x34, 0x8f, 0xf5, 0x83,
+ 0xe0, 0xfd, 0x22, 0x90, 0x85, 0xb5, 0xe0, 0xff, 0x70, 0x06, 0xa3,
+ 0xe0, 0x64, 0x09, 0x60, 0x0a, 0xef, 0x14, 0xff, 0x90, 0x85, 0xb6,
+ 0xe0, 0xb5, 0x07, 0x04, 0x7f, 0x01, 0x80, 0x02, 0x7f, 0x00, 0xef,
+ 0x60, 0x08, 0x90, 0x01, 0xc1, 0xe0, 0x44, 0x02, 0xf0, 0x22, 0xc0,
+ 0x01, 0x90, 0x85, 0xb6, 0xe0, 0x75, 0xf0, 0x0f, 0xa4, 0x24, 0x1f,
+ 0xf9, 0x74, 0x85, 0x35, 0xf0, 0xa8, 0x01, 0xfc, 0x7d, 0x01, 0xd0,
+ 0x01, 0x7e, 0x00, 0x7f, 0x0f, 0x12, 0x02, 0xd0, 0x7d, 0xcc, 0x7f,
+ 0xfe, 0x12, 0x7b, 0x3e, 0x90, 0x85, 0xb6, 0x51, 0x89, 0xb4, 0x0a,
+ 0x02, 0x7f, 0x01, 0xef, 0x60, 0x05, 0xe4, 0x90, 0x85, 0xb6, 0xf0,
+ 0x22, 0xd3, 0x10, 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0x90, 0x85, 0x1e,
+ 0xe0, 0xff, 0x90, 0x85, 0x1d, 0xe0, 0xb5, 0x07, 0x04, 0x7f, 0x01,
+ 0x80, 0x02, 0x7f, 0x00, 0xef, 0x70, 0x47, 0x90, 0x85, 0x1d, 0xe0,
+ 0xfe, 0x75, 0xf0, 0x08, 0x90, 0x84, 0xcd, 0x12, 0x05, 0x28, 0xe0,
+ 0xfd, 0xee, 0x75, 0xf0, 0x08, 0xa4, 0x24, 0xce, 0xf9, 0x74, 0x84,
+ 0x35, 0xf0, 0xfa, 0x7b, 0x01, 0xaf, 0x05, 0x12, 0x8a, 0xd9, 0x90,
+ 0x85, 0x1d, 0x51, 0x89, 0xb4, 0x0a, 0x02, 0x7f, 0x01, 0xef, 0x60,
+ 0x05, 0xe4, 0x90, 0x85, 0x1d, 0xf0, 0x7d, 0x68, 0x7f, 0xfe, 0x12,
+ 0x7b, 0x3e, 0x12, 0x40, 0xb9, 0x90, 0x84, 0xc1, 0xe0, 0x44, 0x02,
+ 0xf0, 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0xe4, 0xf5, 0x73, 0xef, 0x14,
+ 0xf5, 0x72, 0xed, 0xff, 0xe5, 0x72, 0xf5, 0x82, 0x33, 0x95, 0xe0,
+ 0xf5, 0x83, 0xc3, 0xe5, 0x82, 0x9f, 0x74, 0x80, 0xf8, 0x65, 0x83,
+ 0x98, 0x40, 0x53, 0xe5, 0x72, 0x78, 0x03, 0xa2, 0xe7, 0x13, 0xd8,
+ 0xfb, 0xff, 0x33, 0x95, 0xe0, 0xfe, 0xeb, 0x12, 0xa7, 0xf5, 0xf5,
+ 0x83, 0xe5, 0x82, 0x2f, 0xf5, 0x82, 0xe5, 0x83, 0x3e, 0xf5, 0x83,
+ 0xe0, 0xf5, 0x82, 0x75, 0x83, 0x00, 0xe5, 0x72, 0x51, 0x90, 0x80,
+ 0x05, 0xc3, 0x33, 0xce, 0x33, 0xce, 0xd8, 0xf9, 0xff, 0xee, 0x55,
+ 0x83, 0xfe, 0xef, 0x55, 0x82, 0x4e, 0x60, 0x13, 0x85, 0x72, 0x74,
+ 0x05, 0x73, 0x90, 0x94, 0x4b, 0xe0, 0x65, 0x73, 0x60, 0x0a, 0xe5,
+ 0x74, 0xd3, 0x9d, 0x40, 0x04, 0x15, 0x72, 0x80, 0x96, 0xaf, 0x74,
+ 0x22, 0xaa, 0x07, 0xa9, 0x05, 0xea, 0x12, 0x9b, 0x4a, 0xe0, 0xf5,
+ 0x6e, 0x54, 0x7f, 0xf5, 0x70, 0x75, 0xf0, 0x12, 0xea, 0x90, 0x89,
+ 0x3d, 0x12, 0x05, 0x28, 0xe0, 0x90, 0x94, 0x47, 0xf0, 0x75, 0xf0,
+ 0x12, 0xea, 0xb1, 0x17, 0xff, 0xea, 0x12, 0x9a, 0xbc, 0xe0, 0x54,
+ 0x03, 0xf5, 0x6f, 0xe5, 0x70, 0x90, 0x83, 0x1d, 0x93, 0xfd, 0xea,
+ 0x12, 0x9f, 0x5f, 0xe4, 0xf0, 0xa3, 0xed, 0xf0, 0x75, 0xf0, 0x12,
+ 0xea, 0x12, 0xa1, 0x8f, 0xfe, 0xc4, 0x54, 0x03, 0x90, 0x94, 0x46,
+ 0xf0, 0x74, 0xcc, 0x2a, 0xb1, 0x0f, 0xe5, 0x70, 0xf0, 0x74, 0x4c,
+ 0x2a, 0xb1, 0x1f, 0xe5, 0x6f, 0xf0, 0xe5, 0x70, 0xd3, 0x9f, 0x40,
+ 0x04, 0x8f, 0x70, 0x8f, 0x6e, 0x89, 0x71, 0xe4, 0xff, 0xef, 0xc3,
+ 0x95, 0x71, 0x50, 0x33, 0xe5, 0x6e, 0x30, 0xe7, 0x09, 0x85, 0x70,
+ 0x6e, 0x19, 0xe9, 0x70, 0x24, 0x80, 0x25, 0x90, 0x94, 0x47, 0xe0,
+ 0xfd, 0xe5, 0x70, 0xd3, 0x9d, 0x40, 0x0f, 0xab, 0x02, 0x90, 0x94,
+ 0x4b, 0xe9, 0xf0, 0xaf, 0x70, 0x71, 0xe4, 0x8f, 0x6e, 0x80, 0x0b,
+ 0x90, 0x94, 0x47, 0xe0, 0xf5, 0x6e, 0x80, 0x03, 0x0f, 0x80, 0xc7,
+ 0xaf, 0x02, 0x90, 0x91, 0x0b, 0xe5, 0x6f, 0xf0, 0xe4, 0xfb, 0xad,
+ 0x6e, 0x02, 0x27, 0x3d, 0x74, 0xcc, 0x25, 0x6e, 0xf5, 0x82, 0xe4,
+ 0x34, 0x90, 0xf5, 0x83, 0x22, 0x90, 0x89, 0x3c, 0x12, 0x05, 0x28,
+ 0xe0, 0x22, 0xf5, 0x82, 0xe4, 0x34, 0x90, 0xf5, 0x83, 0x22, 0xc0,
+ 0xe0, 0xc0, 0xf0, 0xc0, 0x83, 0xc0, 0x82, 0xc0, 0xd0, 0x75, 0xd0,
+ 0x00, 0xc0, 0x00, 0xc0, 0x01, 0xc0, 0x02, 0xc0, 0x03, 0xc0, 0x04,
+ 0xc0, 0x05, 0xc0, 0x06, 0xc0, 0x07, 0x90, 0x01, 0xc4, 0x74, 0x27,
+ 0xf0, 0x74, 0xb5, 0xa3, 0xf0, 0x12, 0x71, 0x90, 0xe5, 0x4c, 0x30,
+ 0xe1, 0x02, 0xb1, 0xdf, 0xe5, 0x4c, 0x30, 0xe4, 0x02, 0xd1, 0x5d,
+ 0xe5, 0x4c, 0x30, 0xe5, 0x03, 0x12, 0xcc, 0xc9, 0xe5, 0x4c, 0x30,
+ 0xe6, 0x03, 0x12, 0xc8, 0xd8, 0xe5, 0x4e, 0x30, 0xe0, 0x03, 0x12,
+ 0xae, 0x8e, 0xe5, 0x4e, 0x30, 0xe1, 0x02, 0xd1, 0x71, 0xe5, 0x4e,
+ 0x30, 0xe2, 0x03, 0x12, 0xc7, 0x9e, 0xe5, 0x4e, 0x30, 0xe3, 0x02,
+ 0xf1, 0x3d, 0xe5, 0x4e, 0x30, 0xe4, 0x03, 0x12, 0xc1, 0x8d, 0xe5,
+ 0x4e, 0x30, 0xe5, 0x02, 0xf1, 0x71, 0xe5, 0x4e, 0x30, 0xe6, 0x02,
+ 0xf1, 0x51, 0xe5, 0x4f, 0x30, 0xe1, 0x03, 0x12, 0xa7, 0xae, 0xe5,
+ 0x4f, 0x30, 0xe4, 0x02, 0xf1, 0xe3, 0xe5, 0x4f, 0x30, 0xe5, 0x02,
+ 0x71, 0x0f, 0x74, 0x27, 0x04, 0x90, 0x01, 0xc4, 0xf0, 0x74, 0xb5,
+ 0xa3, 0xf0, 0xd0, 0x07, 0xd0, 0x06, 0xd0, 0x05, 0xd0, 0x04, 0xd0,
+ 0x03, 0xd0, 0x02, 0xd0, 0x01, 0xd0, 0x00, 0xd0, 0xd0, 0xd0, 0x82,
+ 0xd0, 0x83, 0xd0, 0xf0, 0xd0, 0xe0, 0x32, 0xe4, 0xff, 0x90, 0x94,
+ 0x51, 0xef, 0xf0, 0x90, 0x04, 0x7e, 0xe0, 0xff, 0xa3, 0xe0, 0x90,
+ 0x94, 0x61, 0xf0, 0xe0, 0xfe, 0x6f, 0x60, 0x66, 0x90, 0x94, 0x52,
+ 0x74, 0x03, 0xf0, 0x90, 0x94, 0x60, 0x74, 0x08, 0xf0, 0xee, 0x04,
+ 0x54, 0x0f, 0xff, 0xe4, 0xfe, 0xef, 0x75, 0xf0, 0x08, 0xa4, 0x24,
+ 0x00, 0xf5, 0x82, 0xe4, 0x34, 0x80, 0xf5, 0x83, 0xe5, 0x82, 0x2e,
+ 0x12, 0xa7, 0x36, 0xe0, 0xfd, 0x74, 0x54, 0x2e, 0xf5, 0x82, 0xe4,
+ 0x34, 0x94, 0xf5, 0x83, 0xed, 0xf0, 0x0e, 0xee, 0xb4, 0x08, 0xd9,
+ 0x7b, 0x01, 0x7a, 0x94, 0x79, 0x52, 0x12, 0x5e, 0x10, 0x90, 0x94,
+ 0x61, 0xe0, 0x04, 0x54, 0x0f, 0xff, 0xf0, 0xbf, 0x0f, 0x02, 0xe4,
+ 0xf0, 0x90, 0x94, 0x61, 0xe0, 0x90, 0x04, 0x7f, 0xf0, 0x90, 0x94,
+ 0x51, 0xe0, 0x7f, 0x04, 0x70, 0x02, 0x80, 0x09, 0x12, 0x88, 0x18,
+ 0x22, 0x12, 0x40, 0xb9, 0x7f, 0x02, 0x8f, 0x0d, 0x7f, 0x02, 0x12,
+ 0x86, 0x27, 0x90, 0x84, 0xc1, 0xe0, 0x45, 0x0d, 0xf0, 0x22, 0x90,
+ 0x85, 0xbc, 0xe0, 0x30, 0xe0, 0x06, 0x90, 0x85, 0xbe, 0x74, 0x01,
+ 0xf0, 0x90, 0x85, 0xc5, 0xe0, 0x70, 0x02, 0xe1, 0x1a, 0x90, 0x85,
+ 0xdc, 0xe0, 0x04, 0xf0, 0x12, 0x8d, 0x8c, 0x12, 0x87, 0x20, 0xc0,
+ 0x04, 0xc0, 0x05, 0xc0, 0x06, 0xc0, 0x07, 0x90, 0x05, 0x62, 0x12,
+ 0x8d, 0xa5, 0x78, 0x10, 0x12, 0x04, 0xd8, 0xd0, 0x03, 0xd0, 0x02,
+ 0xd0, 0x01, 0xd0, 0x00, 0x12, 0x87, 0x20, 0xc0, 0x04, 0xc0, 0x05,
+ 0xc0, 0x06, 0xc0, 0x07, 0xa3, 0x12, 0x8d, 0xa5, 0x78, 0x18, 0x12,
+ 0x04, 0xd8, 0xd0, 0x03, 0xd0, 0x02, 0xd0, 0x01, 0xd0, 0x00, 0x12,
+ 0x87, 0x20, 0x90, 0x85, 0xfc, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x90,
+ 0x92, 0xc9, 0xe0, 0x54, 0xfe, 0xf0, 0xe0, 0xc3, 0x13, 0x30, 0xe0,
+ 0x0d, 0x12, 0xc7, 0x7d, 0x12, 0x51, 0x7d, 0x90, 0x92, 0xc9, 0xe0,
+ 0x54, 0xfd, 0xf0, 0x90, 0x85, 0xc2, 0xe0, 0x13, 0x13, 0x13, 0x54,
+ 0x1f, 0x30, 0xe0, 0x09, 0x90, 0x01, 0x3b, 0xe0, 0x30, 0xe4, 0x02,
+ 0xf1, 0x2f, 0x90, 0x95, 0x18, 0xe0, 0x04, 0xf0, 0xe0, 0xc3, 0x94,
+ 0x80, 0x40, 0x0b, 0x90, 0x01, 0x98, 0xe0, 0x54, 0xfe, 0xf0, 0xe0,
+ 0x44, 0x01, 0xf0, 0x7f, 0x01, 0xd1, 0x62, 0x90, 0x92, 0x04, 0xe0,
+ 0x30, 0xe0, 0x09, 0x90, 0x01, 0x3b, 0xe0, 0x30, 0xe4, 0x02, 0xf1,
+ 0x2f, 0x22, 0x7d, 0x02, 0x7f, 0x02, 0x12, 0x7c, 0x41, 0x7d, 0x01,
+ 0x7f, 0x02, 0x02, 0x7c, 0x41, 0x12, 0xc4, 0x67, 0x70, 0x0e, 0x90,
+ 0x85, 0xc5, 0xe0, 0x60, 0x08, 0x12, 0xc4, 0x80, 0xf1, 0xeb, 0x12,
+ 0xc6, 0x20, 0x22, 0xe4, 0xff, 0x12, 0x77, 0x39, 0xbf, 0x01, 0x0f,
+ 0x90, 0x85, 0xc5, 0xe0, 0x60, 0x09, 0xf1, 0x69, 0x54, 0x07, 0x70,
+ 0x03, 0x12, 0xc1, 0x7b, 0x22, 0x90, 0x85, 0xc9, 0xe0, 0x54, 0xfe,
+ 0xf0, 0x22, 0xe4, 0xff, 0x12, 0x77, 0x39, 0xbf, 0x01, 0x12, 0x90,
+ 0x85, 0xc5, 0xe0, 0x60, 0x0c, 0xf1, 0xdc, 0x64, 0x02, 0x60, 0x03,
+ 0x02, 0x77, 0x61, 0x12, 0x79, 0x41, 0x22, 0xe4, 0xf5, 0x75, 0x90,
+ 0x06, 0xa9, 0xe0, 0xf5, 0x75, 0x54, 0xc0, 0x70, 0x08, 0xf1, 0x69,
+ 0x54, 0xfd, 0xf0, 0x02, 0xc1, 0x7b, 0xe5, 0x75, 0x30, 0xe6, 0x18,
+ 0x90, 0x85, 0xc5, 0xe0, 0x64, 0x01, 0x70, 0x12, 0xf1, 0xd5, 0x64,
+ 0x02, 0x60, 0x05, 0x12, 0x77, 0x61, 0x80, 0x07, 0x12, 0x79, 0x41,
+ 0x80, 0x02, 0xf1, 0x69, 0xe5, 0x75, 0x90, 0x85, 0xc9, 0x30, 0xe7,
+ 0x08, 0xf1, 0xe8, 0x12, 0xc6, 0x20, 0x02, 0xc6, 0x9d, 0xe0, 0x54,
+ 0xfd, 0xf0, 0x22, 0x90, 0x85, 0xc9, 0xe0, 0x44, 0x01, 0xf0, 0x90,
+ 0x85, 0xc3, 0xe0, 0x54, 0x0f, 0x22, 0xe4, 0xff, 0x02, 0x2d, 0xbd,
+ 0xe0, 0x44, 0x02, 0xf0, 0xe4, 0x90, 0x91, 0x6e, 0xf0, 0x90, 0x86,
+ 0x6e, 0xe0, 0x90, 0x91, 0x6f, 0x22, 0xe4, 0xfc, 0xed, 0x2c, 0x24,
+ 0x00, 0x11, 0x4a, 0xe4, 0xf0, 0x0c, 0xec, 0xb4, 0x18, 0xf3, 0x74,
+ 0x00, 0x2d, 0x11, 0x4a, 0xef, 0xf0, 0xee, 0x54, 0x3f, 0xff, 0x74,
+ 0x01, 0x2d, 0xf5, 0x82, 0xe4, 0x34, 0xfb, 0xf5, 0x83, 0xef, 0xf0,
+ 0x74, 0x02, 0x2d, 0xf5, 0x82, 0xe4, 0x34, 0xfb, 0xf5, 0x83, 0xe0,
+ 0x54, 0xf0, 0xf0, 0x74, 0x03, 0x2d, 0xf5, 0x82, 0xe4, 0x34, 0xfb,
+ 0xf5, 0x83, 0xe0, 0x44, 0x80, 0xf0, 0x74, 0x0b, 0x2d, 0xf5, 0x82,
+ 0xe4, 0x34, 0xfb, 0xf5, 0x83, 0xe0, 0x44, 0x10, 0xf0, 0x22, 0xf5,
+ 0x82, 0xe4, 0x34, 0xfb, 0xf5, 0x83, 0x22, 0x90, 0x93, 0xf3, 0xef,
+ 0xf0, 0xa3, 0x12, 0x87, 0x4e, 0x90, 0x95, 0x12, 0xe0, 0xfe, 0x04,
+ 0xf0, 0x90, 0x00, 0x01, 0xee, 0x12, 0x03, 0x4e, 0x74, 0x00, 0x2f,
+ 0xf9, 0xe4, 0x34, 0xfb, 0xfa, 0x7b, 0x01, 0xc0, 0x03, 0xc0, 0x02,
+ 0xc0, 0x01, 0x90, 0x93, 0xf4, 0x12, 0x87, 0x45, 0x8b, 0x1b, 0x8a,
+ 0x1c, 0x89, 0x1d, 0x75, 0x1e, 0x02, 0xd0, 0x01, 0xd0, 0x02, 0xd0,
+ 0x03, 0x12, 0x6a, 0x21, 0x90, 0x93, 0xf3, 0xe0, 0x24, 0x02, 0xf9,
+ 0xe4, 0x34, 0xfb, 0xfa, 0x7b, 0x01, 0xc0, 0x03, 0xc0, 0x02, 0xc0,
+ 0x01, 0xa3, 0x12, 0x87, 0x45, 0xe9, 0x24, 0x02, 0xf9, 0xe4, 0x3a,
+ 0x8b, 0x1b, 0xf5, 0x1c, 0x89, 0x1d, 0x90, 0x93, 0xf4, 0x11, 0xc4,
+ 0xf5, 0x1e, 0xd0, 0x01, 0xd0, 0x02, 0xd0, 0x03, 0x02, 0x6a, 0x21,
+ 0x12, 0x87, 0x45, 0x90, 0x00, 0x0e, 0x02, 0x03, 0x0f, 0xd3, 0x10,
+ 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0x90, 0x93, 0xf7, 0x12, 0x87, 0x4e,
+ 0x7f, 0x96, 0x7e, 0x02, 0x12, 0x66, 0x80, 0xef, 0x60, 0x4e, 0x90,
+ 0x01, 0x17, 0xe0, 0xfe, 0x90, 0x01, 0x16, 0xe0, 0x7c, 0x00, 0x24,
+ 0x00, 0xff, 0xec, 0x3e, 0xfe, 0x31, 0x37, 0x90, 0x93, 0xfa, 0xef,
+ 0xf0, 0xee, 0xff, 0x90, 0xfd, 0x11, 0xf0, 0x90, 0x93, 0xfa, 0xe0,
+ 0xfd, 0x90, 0x02, 0x94, 0xf0, 0xa3, 0xef, 0xf0, 0x90, 0x93, 0xf7,
+ 0x11, 0xc4, 0x24, 0x02, 0xff, 0xe4, 0x33, 0xfe, 0x12, 0x5a, 0xa5,
+ 0x90, 0x93, 0xfa, 0xe0, 0x24, 0x18, 0xff, 0x90, 0x93, 0xf7, 0x12,
+ 0x87, 0x45, 0x12, 0x56, 0xf4, 0x90, 0x02, 0x96, 0x74, 0x01, 0xf0,
+ 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0xef, 0x24, 0x01, 0xff, 0xe4, 0x3e,
+ 0xfe, 0x22, 0x12, 0x02, 0xf6, 0x64, 0x01, 0x60, 0x02, 0x21, 0xd0,
+ 0x90, 0x93, 0xe2, 0xf0, 0x90, 0x93, 0xe2, 0xe0, 0xff, 0xc3, 0x94,
+ 0x10, 0x50, 0x27, 0xef, 0x31, 0xd1, 0x7a, 0x93, 0x79, 0xe1, 0x12,
+ 0x64, 0x37, 0xbf, 0x01, 0x12, 0x90, 0x93, 0xe1, 0xe0, 0xff, 0xa3,
+ 0xe0, 0x24, 0xe3, 0xf5, 0x82, 0xe4, 0x34, 0x93, 0xf5, 0x83, 0xef,
+ 0xf0, 0x90, 0x93, 0xe2, 0xe0, 0x04, 0xf0, 0x80, 0xcf, 0x75, 0x1b,
+ 0x01, 0x75, 0x1c, 0x93, 0x75, 0x1d, 0xe3, 0x75, 0x1e, 0x08, 0x7b,
+ 0x01, 0x7a, 0x93, 0x79, 0xc5, 0x12, 0x6a, 0x21, 0x90, 0x93, 0xc3,
+ 0x74, 0x24, 0xf0, 0x90, 0x93, 0xd1, 0x74, 0x08, 0xf0, 0x75, 0x1b,
+ 0x01, 0x75, 0x1c, 0x93, 0x75, 0x1d, 0xeb, 0xf5, 0x1e, 0x7b, 0x01,
+ 0x7a, 0x93, 0x79, 0xd4, 0x12, 0x6a, 0x21, 0x90, 0x93, 0xd2, 0x74,
+ 0x25, 0xf0, 0x90, 0x93, 0xe0, 0x74, 0x08, 0xf0, 0x7b, 0x01, 0x7a,
+ 0x93, 0x79, 0xc3, 0x12, 0x5e, 0x10, 0x7b, 0x01, 0x7a, 0x93, 0x79,
+ 0xd2, 0x12, 0x88, 0x13, 0x22, 0x24, 0xde, 0xff, 0xe4, 0x33, 0xfe,
+ 0x7b, 0x01, 0x22, 0x12, 0xa0, 0x37, 0x12, 0x02, 0xf6, 0x64, 0x01,
+ 0x60, 0x02, 0x41, 0x6e, 0xef, 0x24, 0x39, 0x60, 0x12, 0x14, 0x60,
+ 0x19, 0x24, 0x02, 0x70, 0x1f, 0xe4, 0x90, 0x93, 0xc9, 0xf0, 0xa3,
+ 0x74, 0x06, 0xf0, 0x80, 0x14, 0x90, 0x93, 0xc9, 0x74, 0x06, 0xf0,
+ 0xa3, 0xf0, 0x80, 0x0a, 0x90, 0x93, 0xc9, 0x74, 0x0c, 0xf0, 0xa3,
+ 0x74, 0x04, 0xf0, 0x51, 0x81, 0xf0, 0x51, 0x6f, 0x40, 0x1c, 0x90,
+ 0x93, 0xc7, 0xe0, 0x31, 0xd1, 0x7a, 0x93, 0x79, 0xc6, 0x12, 0x64,
+ 0x37, 0xbf, 0x01, 0x07, 0x90, 0x93, 0xc6, 0xe0, 0xf4, 0x70, 0x3f,
+ 0x51, 0x77, 0xf0, 0x80, 0xe0, 0x51, 0x81, 0xf0, 0x51, 0x6f, 0x40,
+ 0x33, 0x90, 0x93, 0xc7, 0xe0, 0xfd, 0x7c, 0x00, 0x24, 0xde, 0xff,
+ 0xec, 0x33, 0xfe, 0xed, 0x24, 0x01, 0xfd, 0xec, 0x33, 0xfc, 0x90,
+ 0x93, 0xc9, 0xe0, 0xfb, 0xc3, 0xed, 0x9b, 0xfd, 0xec, 0x94, 0x00,
+ 0xfc, 0x12, 0x8f, 0x58, 0x8d, 0x82, 0x8c, 0x83, 0x12, 0x03, 0x0f,
+ 0xfd, 0x51, 0x91, 0x51, 0x77, 0xf0, 0x80, 0xc9, 0x22, 0x90, 0x93,
+ 0xc8, 0xe0, 0xd3, 0x94, 0x00, 0x22, 0x90, 0x93, 0xc7, 0xe0, 0x04,
+ 0xf0, 0xa3, 0xe0, 0x14, 0x22, 0x90, 0x93, 0xc9, 0xe0, 0x90, 0x93,
+ 0xc7, 0xf0, 0x90, 0x93, 0xca, 0xe0, 0x90, 0x93, 0xc8, 0x22, 0x8e,
+ 0x5b, 0x8f, 0x5c, 0x8d, 0x5d, 0xe4, 0x90, 0x93, 0xcb, 0xf0, 0x90,
+ 0x00, 0x37, 0xe0, 0x44, 0x80, 0xfd, 0x7f, 0x37, 0x12, 0x7b, 0x3e,
+ 0x7d, 0x69, 0x7f, 0xcf, 0x12, 0x7b, 0x3e, 0xe5, 0x5c, 0xfd, 0x7f,
+ 0x31, 0x12, 0x7b, 0x3e, 0xe5, 0x5b, 0x54, 0x03, 0xff, 0x90, 0x00,
+ 0x32, 0xe0, 0x54, 0xfc, 0x4f, 0xfd, 0x7f, 0x32, 0x12, 0x7b, 0x3e,
+ 0xad, 0x5d, 0x7f, 0x30, 0x12, 0x7b, 0x3e, 0x90, 0x00, 0x33, 0xe0,
+ 0x44, 0x80, 0xfd, 0x7f, 0x33, 0x12, 0x7b, 0x3e, 0x90, 0x00, 0x33,
+ 0xe0, 0x30, 0xe7, 0x09, 0x71, 0x08, 0x50, 0x05, 0xe0, 0x04, 0xf0,
+ 0x80, 0xf0, 0xe4, 0xfd, 0x7f, 0xcf, 0x12, 0x7b, 0x3e, 0x90, 0x00,
+ 0x37, 0xe0, 0x54, 0x7f, 0xfd, 0x7f, 0x37, 0x12, 0x7b, 0x3e, 0x71,
+ 0x08, 0x7f, 0x00, 0x50, 0x02, 0x7f, 0x01, 0x22, 0x90, 0x93, 0xcb,
+ 0xe0, 0xc3, 0x94, 0x64, 0x22, 0xe4, 0x90, 0x84, 0xc1, 0xf0, 0xa3,
+ 0xf0, 0xa3, 0xf0, 0xa3, 0xf0, 0x90, 0x92, 0x01, 0xf0, 0x22, 0x90,
+ 0x00, 0x80, 0xe0, 0x44, 0x80, 0xfd, 0x7f, 0x80, 0x12, 0x7b, 0x3e,
+ 0x12, 0xc7, 0xe8, 0x12, 0xcc, 0x75, 0x12, 0x7b, 0x9c, 0x91, 0x43,
+ 0x71, 0x10, 0x7f, 0x01, 0x12, 0x85, 0x15, 0x90, 0x92, 0x08, 0x74,
+ 0x02, 0xf0, 0xff, 0x12, 0x85, 0x15, 0x90, 0x92, 0x08, 0xe0, 0x04,
+ 0xf0, 0x91, 0x68, 0x91, 0x1d, 0x90, 0x01, 0xcc, 0x74, 0x0f, 0xf0,
+ 0x90, 0x00, 0x80, 0xe0, 0x44, 0x40, 0xfd, 0x7f, 0x80, 0x12, 0x7b,
+ 0x3e, 0x75, 0x20, 0xff, 0x12, 0x7c, 0xcd, 0x90, 0x01, 0xa0, 0xe0,
+ 0xb4, 0xfd, 0x05, 0xe4, 0xff, 0x12, 0x88, 0x33, 0x91, 0xcd, 0x90,
+ 0x00, 0x81, 0xe0, 0x44, 0x04, 0xfd, 0x7f, 0x81, 0x12, 0x7b, 0x3e,
+ 0x12, 0xc0, 0x2b, 0x71, 0x8e, 0xe4, 0xff, 0x02, 0x85, 0x9e, 0x7e,
+ 0x00, 0x7f, 0x0b, 0x7d, 0x00, 0x7b, 0x01, 0x7a, 0x92, 0x79, 0xbd,
+ 0x12, 0x06, 0xde, 0x91, 0x16, 0xf1, 0x6c, 0xbf, 0x01, 0x1c, 0x90,
+ 0x93, 0xfb, 0xe0, 0xfe, 0x54, 0x01, 0x90, 0x92, 0xbd, 0xf0, 0xee,
+ 0x54, 0x04, 0x90, 0x92, 0xbf, 0xf0, 0x90, 0x93, 0xfb, 0xe0, 0x54,
+ 0x08, 0x90, 0x92, 0xbe, 0xf0, 0x91, 0x16, 0x12, 0x8a, 0x85, 0x70,
+ 0x34, 0x90, 0x93, 0xfb, 0xe0, 0x54, 0x07, 0x70, 0x14, 0x7b, 0x01,
+ 0x7a, 0x93, 0x79, 0xfc, 0x7f, 0xfa, 0xfe, 0x12, 0x64, 0x37, 0xbf,
+ 0x01, 0x0f, 0x90, 0x93, 0xfc, 0x80, 0x03, 0x90, 0x93, 0xfb, 0xe0,
+ 0x54, 0x07, 0x90, 0x92, 0xc1, 0xf0, 0x90, 0x93, 0xfb, 0xe0, 0x54,
+ 0xe0, 0xc4, 0x13, 0x54, 0x07, 0x90, 0x92, 0xc0, 0xf0, 0x91, 0x16,
+ 0x7f, 0xfd, 0x7e, 0x00, 0x12, 0x64, 0x37, 0xbf, 0x01, 0x0e, 0x90,
+ 0x93, 0xfb, 0xe0, 0x54, 0x0c, 0x13, 0x13, 0x54, 0x3f, 0x90, 0x92,
+ 0xc2, 0xf0, 0x22, 0x7b, 0x01, 0x7a, 0x93, 0x79, 0xfb, 0x22, 0xb1,
+ 0xf9, 0x12, 0x7b, 0xef, 0x12, 0x3c, 0x03, 0x12, 0xca, 0xe9, 0x12,
+ 0xcd, 0x91, 0xb1, 0x1e, 0x91, 0x3e, 0x7e, 0x00, 0x7f, 0xb3, 0x7d,
+ 0x00, 0x7b, 0x01, 0x7a, 0x92, 0x79, 0x09, 0x02, 0x06, 0xde, 0xb1,
+ 0xec, 0x02, 0x06, 0xde, 0x90, 0x00, 0x00, 0xe0, 0x54, 0xfb, 0xfd,
+ 0xe4, 0xff, 0xf1, 0x7b, 0x44, 0x04, 0xfd, 0x7f, 0x01, 0x12, 0x7b,
+ 0x3e, 0x90, 0x01, 0x98, 0x74, 0x80, 0xf0, 0xa3, 0x74, 0x88, 0xf0,
+ 0xa3, 0xe4, 0xf0, 0xa3, 0x74, 0x80, 0xf0, 0x22, 0x12, 0x7c, 0x4e,
+ 0x90, 0x84, 0xc5, 0xef, 0xf0, 0x91, 0x9c, 0x90, 0x01, 0x64, 0x74,
+ 0x01, 0xf0, 0x90, 0x04, 0x23, 0xe0, 0x44, 0x80, 0xf0, 0x90, 0x00,
+ 0x17, 0xe0, 0x54, 0xfc, 0x44, 0x04, 0xfd, 0x7f, 0x17, 0x12, 0x7b,
+ 0x3e, 0x90, 0x00, 0x38, 0xe0, 0x44, 0x40, 0xfd, 0x7f, 0x38, 0x12,
+ 0x7b, 0x3e, 0x02, 0x68, 0xe2, 0x12, 0x75, 0xb6, 0x12, 0x75, 0x58,
+ 0xf1, 0xe5, 0x12, 0xc0, 0x0c, 0xe4, 0xf5, 0x40, 0xf5, 0x41, 0xf5,
+ 0x42, 0x75, 0x43, 0x80, 0xad, 0x40, 0x7f, 0x50, 0x12, 0x7b, 0x3e,
+ 0xad, 0x41, 0x7f, 0x51, 0x12, 0x7b, 0x3e, 0xad, 0x42, 0x7f, 0x52,
+ 0x12, 0x7b, 0x3e, 0xad, 0x43, 0x7f, 0x53, 0x02, 0x7b, 0x3e, 0xe4,
+ 0x90, 0x93, 0xfb, 0xf0, 0xa3, 0xf0, 0x12, 0xcc, 0xa0, 0xef, 0x64,
+ 0x01, 0x60, 0x3b, 0xc3, 0x90, 0x93, 0xfc, 0xe0, 0x94, 0x88, 0x90,
+ 0x93, 0xfb, 0xe0, 0x94, 0x13, 0x40, 0x0f, 0x90, 0x01, 0xc1, 0xe0,
+ 0x44, 0x10, 0xf0, 0x90, 0x01, 0xc7, 0x74, 0xfd, 0xf0, 0x80, 0x1d,
+ 0x90, 0x93, 0xfb, 0xb1, 0xff, 0xd1, 0x57, 0xd3, 0x90, 0x93, 0xfc,
+ 0xe0, 0x94, 0x32, 0x90, 0x93, 0xfb, 0xe0, 0x94, 0x00, 0x40, 0xc4,
+ 0x90, 0x01, 0xc6, 0xe0, 0x30, 0xe3, 0xbd, 0x90, 0x01, 0xc7, 0x74,
+ 0xfe, 0xf0, 0x22, 0x7e, 0x00, 0x7f, 0xac, 0x7d, 0x00, 0x7b, 0x01,
+ 0x7a, 0x85, 0x79, 0xc1, 0x12, 0x06, 0xde, 0xb1, 0xec, 0x12, 0x06,
+ 0xde, 0x90, 0x85, 0xc4, 0x74, 0x02, 0xf0, 0x90, 0x85, 0xcb, 0x14,
+ 0xf0, 0xa3, 0xf0, 0xa3, 0x74, 0x0a, 0xf0, 0x90, 0x85, 0xd1, 0xe4,
+ 0xf0, 0xa3, 0x74, 0x02, 0xb1, 0xdc, 0x12, 0xce, 0x89, 0xe4, 0xfd,
+ 0xff, 0x12, 0x57, 0x82, 0x7d, 0x0c, 0x7f, 0x02, 0x12, 0x57, 0x82,
+ 0x7d, 0x0c, 0x7f, 0x01, 0x12, 0x57, 0x82, 0x90, 0x84, 0xc5, 0xe0,
+ 0xff, 0xb4, 0x01, 0x08, 0x90, 0x85, 0xd0, 0x74, 0xdd, 0xf0, 0x80,
+ 0x0f, 0xef, 0x90, 0x85, 0xd0, 0xb4, 0x03, 0x05, 0x74, 0xd4, 0xf0,
+ 0x80, 0x03, 0x74, 0x40, 0xf0, 0x7f, 0x2c, 0x12, 0x7b, 0x51, 0xef,
+ 0x54, 0x0f, 0xff, 0xbf, 0x05, 0x08, 0x90, 0x85, 0xfb, 0x74, 0x02,
+ 0xf0, 0x80, 0x05, 0xe4, 0x90, 0x85, 0xfb, 0xf0, 0x90, 0x86, 0x6d,
+ 0x74, 0x02, 0xf0, 0xa3, 0x74, 0x0f, 0xf0, 0xa3, 0xe0, 0x54, 0x01,
+ 0x44, 0x28, 0xf0, 0xa3, 0x74, 0x07, 0xb1, 0xdc, 0xe4, 0x90, 0x85,
+ 0xd7, 0xf0, 0xa3, 0xf0, 0x7f, 0x01, 0x12, 0x69, 0x33, 0x90, 0x05,
+ 0x58, 0x74, 0x02, 0xf0, 0x90, 0x06, 0x04, 0xe0, 0x54, 0x7f, 0xf0,
+ 0x90, 0x06, 0x0a, 0xe0, 0x54, 0xf8, 0xf0, 0x90, 0x05, 0x22, 0xe4,
+ 0xf0, 0x90, 0x86, 0x71, 0xf0, 0x22, 0xf0, 0x90, 0x85, 0xfb, 0xe0,
+ 0x24, 0x04, 0x90, 0x85, 0xdd, 0xf0, 0xa3, 0x74, 0x0a, 0xf0, 0x22,
+ 0x7e, 0x00, 0x7f, 0x04, 0x7d, 0x00, 0x7b, 0x01, 0x7a, 0x92, 0x79,
+ 0x04, 0x22, 0xe4, 0xfd, 0xff, 0x02, 0x6e, 0x5f, 0xe4, 0x75, 0xf0,
+ 0x01, 0x02, 0x07, 0x0a, 0x90, 0x95, 0x0b, 0xef, 0xf0, 0xe4, 0xa3,
+ 0xf0, 0xa3, 0xf0, 0x90, 0x01, 0x09, 0xe0, 0x7f, 0x00, 0x30, 0xe7,
+ 0x02, 0x7f, 0x01, 0x90, 0x95, 0x0b, 0xe0, 0x6f, 0x60, 0x34, 0xc3,
+ 0x90, 0x95, 0x0d, 0xe0, 0x94, 0x88, 0x90, 0x95, 0x0c, 0xe0, 0x94,
+ 0x13, 0x40, 0x08, 0x90, 0x01, 0xc0, 0xe0, 0x44, 0x10, 0xf0, 0x22,
+ 0x90, 0x95, 0x0c, 0xb1, 0xff, 0xd1, 0x57, 0xd3, 0x90, 0x95, 0x0d,
+ 0xe0, 0x94, 0x32, 0x90, 0x95, 0x0c, 0xe0, 0x94, 0x00, 0x40, 0xc1,
+ 0x90, 0x01, 0xc6, 0xe0, 0x30, 0xe0, 0xba, 0x22, 0x7f, 0x14, 0x7e,
+ 0x00, 0x02, 0x7c, 0x9f, 0x12, 0xcd, 0x72, 0x7f, 0x08, 0x12, 0x7b,
+ 0x51, 0xef, 0x54, 0xef, 0xfd, 0x7f, 0x08, 0x12, 0x7b, 0x3e, 0xe4,
+ 0xff, 0xd1, 0x06, 0x7d, 0x35, 0x7f, 0x27, 0x12, 0x7b, 0x3e, 0x90,
+ 0x85, 0xc2, 0xe0, 0x54, 0xef, 0xf0, 0x22, 0xd3, 0x10, 0xaf, 0x01,
+ 0xc3, 0xc0, 0xd0, 0xd1, 0x92, 0xd1, 0x5e, 0xd0, 0xd0, 0x92, 0xaf,
+ 0x22, 0x90, 0x85, 0xc2, 0xe0, 0x44, 0x10, 0xf0, 0x90, 0x85, 0xd0,
+ 0xe0, 0xfd, 0x7f, 0x93, 0x12, 0x7b, 0x3e, 0x90, 0x85, 0xc6, 0xe0,
+ 0x60, 0x12, 0x90, 0x01, 0x2f, 0xe0, 0x30, 0xe7, 0x05, 0x74, 0x10,
+ 0xf0, 0x80, 0x06, 0x90, 0x01, 0x2f, 0x74, 0x90, 0xf0, 0x7f, 0x08,
+ 0x12, 0x7b, 0x51, 0xef, 0x44, 0x10, 0xfd, 0x7f, 0x08, 0x12, 0x7b,
+ 0x3e, 0x7f, 0x01, 0xd1, 0x06, 0x7d, 0x34, 0x7f, 0x27, 0x12, 0x7b,
+ 0x3e, 0x7f, 0x90, 0xf1, 0x83, 0x7f, 0x90, 0x12, 0x7b, 0x3e, 0x7f,
+ 0x14, 0x7e, 0x00, 0x02, 0x7c, 0x9f, 0x90, 0x85, 0xc8, 0xe0, 0xff,
+ 0x60, 0x03, 0xb4, 0x08, 0x0d, 0xf1, 0x1d, 0xbf, 0x01, 0x08, 0xd1,
+ 0x82, 0x90, 0x01, 0xe5, 0xe0, 0x04, 0xf0, 0x22, 0x90, 0x85, 0xc1,
+ 0xe0, 0x30, 0xe0, 0x19, 0x90, 0x85, 0xbc, 0xe0, 0xff, 0x30, 0xe0,
+ 0x0f, 0xc3, 0x13, 0x30, 0xe0, 0x08, 0x12, 0xcd, 0xb3, 0xbf, 0x01,
+ 0x06, 0x80, 0x02, 0x80, 0x00, 0xd1, 0xe4, 0x22, 0x90, 0x92, 0x04,
+ 0xe0, 0xc3, 0x13, 0x20, 0xe0, 0x35, 0x90, 0x02, 0x87, 0xe0, 0x60,
+ 0x02, 0x80, 0x08, 0x90, 0x01, 0x00, 0xe0, 0x64, 0x3f, 0x60, 0x05,
+ 0x75, 0x62, 0x01, 0x80, 0x22, 0x90, 0x02, 0x96, 0xe0, 0x60, 0x05,
+ 0x75, 0x62, 0x10, 0x80, 0x17, 0x90, 0x02, 0x86, 0xe0, 0x20, 0xe1,
+ 0x02, 0x80, 0x07, 0x90, 0x02, 0x86, 0xe0, 0x30, 0xe3, 0x05, 0x75,
+ 0x62, 0x04, 0x80, 0x02, 0x80, 0x16, 0x90, 0x01, 0xb9, 0x74, 0x08,
+ 0xf0, 0x90, 0x01, 0xb8, 0xe5, 0x62, 0xf0, 0x7f, 0x00, 0x22, 0x7f,
+ 0xf9, 0x7e, 0x00, 0x02, 0x64, 0x37, 0x90, 0x01, 0xb8, 0xe4, 0xf0,
+ 0x7f, 0x01, 0x22, 0x12, 0x7b, 0x3e, 0x90, 0x01, 0x01, 0xe0, 0x22,
+ 0x12, 0x7b, 0x51, 0xef, 0x44, 0x01, 0xfd, 0x22, 0xd3, 0x10, 0xaf,
+ 0x01, 0xc3, 0xc0, 0xd0, 0x7f, 0x02, 0xf1, 0x83, 0x7f, 0x02, 0xf1,
+ 0x7b, 0x44, 0x02, 0xf0, 0x90, 0x01, 0x00, 0x74, 0xff, 0xf0, 0x90,
+ 0x06, 0xb7, 0x74, 0x09, 0xf0, 0x90, 0x06, 0xb4, 0x74, 0x86, 0xf0,
+ 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0xf1, 0x8b, 0x12, 0xca, 0xa8, 0x74,
+ 0x01, 0xf0, 0x22, 0xf1, 0xb4, 0x90, 0x05, 0x27, 0xe0, 0x54, 0xbf,
+ 0xf0, 0xe4, 0x90, 0x85, 0xbf, 0xf0, 0x22, 0xf1, 0xd0, 0x80, 0xef,
+ 0xe4, 0xfd, 0xff, 0x12, 0x98, 0xe3, 0x12, 0xca, 0xc2, 0x90, 0x85,
+ 0xbf, 0x74, 0x01, 0xf0, 0x22, 0x12, 0xca, 0xa2, 0x80, 0xda, 0x75,
+ 0x48, 0x12, 0xe4, 0xf5, 0x49, 0x75, 0x4a, 0x07, 0x75, 0x4b, 0x32,
+ 0xf5, 0x50, 0x90, 0x01, 0x30, 0xe5, 0x48, 0xf0, 0xa3, 0xe5, 0x49,
+ 0xf0, 0xa3, 0xe5, 0x4a, 0xf0, 0xa3, 0xe5, 0x4b, 0xf0, 0x90, 0x01,
+ 0x20, 0xe5, 0x50, 0xf0, 0x22, 0x75, 0x52, 0x06, 0x75, 0x53, 0x01,
+ 0x75, 0x54, 0x03, 0x75, 0x55, 0x62, 0x90, 0x01, 0x38, 0xe5, 0x52,
+ 0xf0, 0xa3, 0xe5, 0x53, 0xf0, 0xa3, 0xe5, 0x54, 0xf0, 0xa3, 0xe5,
+ 0x55, 0xf0, 0x22, 0x90, 0x01, 0xe4, 0x74, 0x04, 0xf0, 0xa3, 0xe4,
+ 0xf0, 0x22, 0x7d, 0x02, 0x90, 0x01, 0xc4, 0x74, 0x35, 0xf0, 0x74,
+ 0xc0, 0xa3, 0xf0, 0x90, 0x92, 0x08, 0xe0, 0xff, 0xed, 0xc3, 0x9f,
+ 0x50, 0x18, 0xed, 0x25, 0xe0, 0x24, 0x81, 0xf8, 0xe6, 0x30, 0xe4,
+ 0x0b, 0x90, 0x01, 0xb8, 0x74, 0x08, 0xf0, 0xa3, 0xf0, 0x7f, 0x00,
+ 0x22, 0x0d, 0x80, 0xde, 0x7f, 0x01, 0x22, 0xe4, 0x90, 0x94, 0x29,
+ 0xf0, 0xa3, 0xf0, 0xa3, 0xf0, 0x90, 0x94, 0x29, 0xe0, 0x64, 0x01,
+ 0xf0, 0x90, 0x92, 0xc6, 0xe0, 0x70, 0x18, 0x90, 0x92, 0xc3, 0xe0,
+ 0x70, 0x12, 0xa3, 0xe0, 0x70, 0x0e, 0x90, 0x94, 0x29, 0xe0, 0x24,
+ 0x66, 0x90, 0x01, 0xc4, 0xf0, 0x74, 0xc0, 0xa3, 0xf0, 0x12, 0x7c,
+ 0x66, 0xbf, 0x01, 0x03, 0x12, 0x5b, 0x25, 0x90, 0x85, 0xc5, 0xe0,
+ 0x60, 0x0e, 0x90, 0x85, 0xc8, 0xe0, 0xff, 0x90, 0x85, 0xc7, 0xe0,
+ 0x6f, 0x60, 0x02, 0x31, 0x7b, 0xc2, 0xaf, 0x11, 0x35, 0xbf, 0x01,
+ 0x03, 0x12, 0xbe, 0xfc, 0xd2, 0xaf, 0x11, 0xc7, 0x12, 0xa7, 0xec,
+ 0x12, 0x84, 0x4d, 0x80, 0xa8, 0xd3, 0x10, 0xaf, 0x01, 0xc3, 0xc0,
+ 0xd0, 0x90, 0x92, 0xc3, 0xe0, 0x60, 0x25, 0x7f, 0x54, 0x7e, 0x09,
+ 0x12, 0x70, 0x61, 0x31, 0x6f, 0xef, 0x44, 0xfe, 0xff, 0xee, 0x44,
+ 0x03, 0xfe, 0xed, 0x44, 0x04, 0xfd, 0xec, 0x31, 0x6f, 0x90, 0x91,
+ 0x66, 0x12, 0x04, 0xeb, 0x7f, 0x54, 0x7e, 0x09, 0x12, 0x71, 0x18,
+ 0x90, 0x92, 0xbe, 0xe0, 0x70, 0x24, 0x90, 0x07, 0xcc, 0xe0, 0x30,
+ 0xe0, 0x1d, 0xe4, 0xf0, 0x90, 0x94, 0x30, 0x74, 0x22, 0xf0, 0x90,
+ 0x94, 0x3e, 0x74, 0x01, 0xf0, 0x90, 0x94, 0x32, 0x74, 0x03, 0xf0,
+ 0x7b, 0x01, 0x7a, 0x94, 0x79, 0x30, 0x12, 0x88, 0x13, 0x90, 0x92,
+ 0xc6, 0xe0, 0xff, 0x70, 0x0a, 0x90, 0x92, 0xc3, 0xe0, 0x70, 0x04,
+ 0xa3, 0xe0, 0x60, 0x15, 0x90, 0x00, 0x1f, 0xe0, 0x54, 0xf0, 0xf0,
+ 0x90, 0x01, 0xc5, 0x74, 0xea, 0xf0, 0xa3, 0x74, 0xef, 0xf0, 0xa3,
+ 0x74, 0xfd, 0xf0, 0xef, 0x60, 0x06, 0x90, 0x01, 0xc4, 0x74, 0x07,
+ 0xf0, 0x90, 0x92, 0xc3, 0xe0, 0x60, 0x06, 0x90, 0x01, 0xc4, 0x74,
+ 0x01, 0xf0, 0x90, 0x92, 0xc4, 0xe0, 0x60, 0x06, 0x90, 0x01, 0xc4,
+ 0x74, 0x02, 0xf0, 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0x90, 0x94, 0x2c,
+ 0x12, 0x04, 0xeb, 0x90, 0x94, 0x2c, 0x02, 0x87, 0x2d, 0x90, 0x85,
+ 0xbc, 0xe0, 0x90, 0x85, 0xc7, 0x30, 0xe0, 0x05, 0xe0, 0xff, 0x02,
+ 0xa7, 0x3e, 0x02, 0xa7, 0xcc, 0x91, 0x67, 0x70, 0x15, 0x90, 0x85,
+ 0xc5, 0xe0, 0x60, 0x0f, 0x91, 0x80, 0xf0, 0x90, 0x85, 0xc1, 0xe0,
+ 0x91, 0xae, 0x54, 0x07, 0x70, 0x02, 0x31, 0x7b, 0x22, 0x90, 0x85,
+ 0xc5, 0xe0, 0x60, 0x10, 0x90, 0x06, 0x92, 0xe0, 0x30, 0xe1, 0x05,
+ 0x12, 0x6b, 0x98, 0x80, 0x04, 0xd1, 0xa5, 0x31, 0x7b, 0x90, 0x92,
+ 0x0c, 0xe0, 0xb4, 0x01, 0x03, 0x12, 0x94, 0x17, 0x22, 0x90, 0x85,
+ 0xc1, 0x12, 0xa6, 0x85, 0x30, 0xe0, 0x19, 0xef, 0x54, 0xbf, 0x51,
+ 0xcb, 0x30, 0xe0, 0x06, 0xe0, 0x44, 0x01, 0xf0, 0x80, 0x09, 0xe0,
+ 0x54, 0xfe, 0xf0, 0x51, 0xd4, 0x74, 0x04, 0xf0, 0x31, 0x7b, 0x22,
+ 0x90, 0x85, 0xc1, 0xe0, 0xff, 0x12, 0xa3, 0x01, 0x30, 0xe0, 0x1e,
+ 0xef, 0x54, 0x7f, 0x51, 0xcb, 0x30, 0xe1, 0x06, 0xe0, 0x44, 0x02,
+ 0xf0, 0x80, 0x08, 0xe0, 0x54, 0xfd, 0xf0, 0x51, 0xd4, 0x04, 0xf0,
+ 0x90, 0x85, 0xc5, 0xe0, 0x60, 0x02, 0x31, 0x7b, 0x90, 0x04, 0xe0,
+ 0xe0, 0x30, 0xe1, 0x05, 0x91, 0xd9, 0x12, 0x97, 0x70, 0x22, 0xc0,
+ 0xe0, 0xc0, 0xf0, 0xc0, 0x83, 0xc0, 0x82, 0xc0, 0xd0, 0x75, 0xd0,
+ 0x00, 0xc0, 0x00, 0xc0, 0x01, 0xc0, 0x02, 0xc0, 0x03, 0xc0, 0x04,
+ 0xc0, 0x05, 0xc0, 0x06, 0xc0, 0x07, 0x90, 0x01, 0xc4, 0x74, 0x21,
+ 0xf0, 0x74, 0xc2, 0xa3, 0xf0, 0x12, 0x75, 0x28, 0xe5, 0x56, 0x30,
+ 0xe0, 0x02, 0xf1, 0x8b, 0xe5, 0x56, 0x30, 0xe1, 0x02, 0x51, 0xde,
+ 0xe5, 0x56, 0x30, 0xe2, 0x02, 0x31, 0xa7, 0xe5, 0x56, 0x30, 0xe5,
+ 0x03, 0x12, 0x8f, 0x8b, 0xe5, 0x57, 0x30, 0xe0, 0x02, 0xb1, 0x0f,
+ 0xe5, 0x58, 0x30, 0xe1, 0x02, 0xb1, 0x42, 0xe5, 0x58, 0x30, 0xe0,
+ 0x03, 0x12, 0xc8, 0xe5, 0xe5, 0x58, 0x30, 0xe4, 0x02, 0xd1, 0x9c,
+ 0xe5, 0x59, 0x30, 0xe1, 0x05, 0x7f, 0x04, 0x12, 0xb6, 0x62, 0xe5,
+ 0x59, 0x30, 0xe4, 0x03, 0x12, 0xaf, 0x00, 0xe5, 0x59, 0x30, 0xe5,
+ 0x02, 0x31, 0xc8, 0xe5, 0x59, 0x30, 0xe6, 0x02, 0x31, 0xeb, 0x74,
+ 0x21, 0x04, 0x90, 0x01, 0xc4, 0xf0, 0x74, 0xc2, 0xa3, 0xf0, 0xd0,
+ 0x07, 0xd0, 0x06, 0xd0, 0x05, 0xd0, 0x04, 0xd0, 0x03, 0xd0, 0x02,
+ 0xd0, 0x01, 0xd0, 0x00, 0xd0, 0xd0, 0xd0, 0x82, 0xd0, 0x83, 0xd0,
+ 0xf0, 0xd0, 0xe0, 0x32, 0xf0, 0x90, 0x04, 0xe0, 0xe0, 0x90, 0x85,
+ 0xc2, 0x22, 0x90, 0x01, 0xb9, 0x74, 0x01, 0xf0, 0x90, 0x01, 0xb8,
+ 0x22, 0x90, 0x85, 0xc5, 0xe0, 0x60, 0x02, 0x51, 0xec, 0x12, 0x95,
+ 0xdc, 0x02, 0x94, 0x17, 0x71, 0x4e, 0x13, 0x54, 0x1f, 0x30, 0xe0,
+ 0x0b, 0xef, 0xc4, 0x13, 0x13, 0x54, 0x03, 0x30, 0xe0, 0x02, 0x91,
+ 0x79, 0x90, 0x85, 0xc1, 0x91, 0xb9, 0x30, 0xe0, 0x09, 0xef, 0x91,
+ 0xae, 0x54, 0x07, 0x70, 0x37, 0x80, 0x33, 0x91, 0xc0, 0x40, 0x2f,
+ 0x91, 0x67, 0x70, 0x2d, 0x12, 0xb7, 0xdc, 0x70, 0x05, 0x12, 0x70,
+ 0xdb, 0x80, 0x24, 0x12, 0x70, 0xdb, 0x90, 0x85, 0xcf, 0xe0, 0x04,
+ 0xf0, 0xe0, 0xd3, 0x94, 0x02, 0x40, 0x09, 0x71, 0x46, 0xe4, 0x90,
+ 0x85, 0xcf, 0xf0, 0x80, 0x03, 0x12, 0x79, 0x41, 0xe4, 0x90, 0x85,
+ 0xce, 0xf0, 0x22, 0x31, 0x7b, 0x22, 0x90, 0x85, 0xc2, 0xe0, 0x54,
+ 0xfb, 0xf0, 0x22, 0x90, 0x85, 0xc2, 0xe0, 0xff, 0x13, 0x13, 0x22,
+ 0x91, 0x67, 0x60, 0x02, 0x81, 0x4b, 0x90, 0x85, 0xc5, 0xe0, 0x70,
+ 0x02, 0x81, 0x4b, 0x90, 0x05, 0x63, 0xe0, 0x90, 0x92, 0xce, 0xf0,
+ 0x90, 0x05, 0x62, 0xe0, 0x90, 0x92, 0xcf, 0xf0, 0x90, 0x05, 0x61,
+ 0xe0, 0x90, 0x92, 0xd0, 0xf0, 0x90, 0x05, 0x60, 0xe0, 0x90, 0x92,
+ 0xd1, 0xf0, 0x91, 0x80, 0xf0, 0x90, 0x85, 0xc9, 0xe0, 0x54, 0xec,
+ 0xf0, 0x91, 0x70, 0x24, 0xfd, 0x50, 0x02, 0x80, 0x0e, 0x90, 0x85,
+ 0xbc, 0xe0, 0x30, 0xe0, 0x04, 0xd1, 0x2b, 0x80, 0x03, 0x12, 0xb7,
+ 0x8c, 0x91, 0x70, 0x64, 0x01, 0x70, 0x30, 0x90, 0x06, 0xab, 0xe0,
+ 0x90, 0x85, 0xcc, 0xf0, 0x90, 0x06, 0xa9, 0xe0, 0x30, 0xe5, 0x05,
+ 0xa3, 0xe0, 0xff, 0x80, 0x05, 0x90, 0x85, 0xcb, 0xe0, 0xff, 0x90,
+ 0x85, 0xcb, 0xef, 0xf0, 0xa3, 0xe0, 0xff, 0x70, 0x08, 0x90, 0x85,
+ 0xcb, 0xe0, 0xfe, 0xff, 0x80, 0x00, 0x90, 0x85, 0xcc, 0xef, 0xf0,
+ 0x12, 0xce, 0xa1, 0xe4, 0x90, 0x85, 0xce, 0xf0, 0xd1, 0xad, 0x71,
+ 0x4e, 0x13, 0x54, 0x1f, 0x30, 0xe0, 0x5d, 0xef, 0xc4, 0x13, 0x13,
+ 0x54, 0x03, 0x20, 0xe0, 0x24, 0x91, 0x5f, 0x6f, 0x70, 0x4f, 0xef,
+ 0x60, 0x4c, 0x90, 0x85, 0xc2, 0xe0, 0x44, 0x40, 0xf0, 0xb1, 0xe9,
+ 0x12, 0xaf, 0x67, 0x12, 0x7b, 0xfd, 0x12, 0xb7, 0x36, 0x91, 0x79,
+ 0x90, 0x85, 0xcc, 0xe0, 0x14, 0xf0, 0x80, 0x30, 0x90, 0x85, 0xc3,
+ 0xe0, 0xc4, 0x54, 0x0f, 0x64, 0x01, 0x70, 0x25, 0x91, 0x5f, 0xfe,
+ 0x6f, 0x60, 0x1f, 0x90, 0x05, 0x73, 0xe0, 0xff, 0xee, 0x6f, 0x60,
+ 0x16, 0x71, 0x4e, 0x54, 0x3f, 0x30, 0xe0, 0x0f, 0xef, 0x54, 0xbf,
+ 0x12, 0xaf, 0x67, 0x12, 0x7b, 0xbf, 0x12, 0xaf, 0x98, 0x12, 0xaf,
+ 0x7a, 0x91, 0x57, 0x90, 0x85, 0xbc, 0xe0, 0xc3, 0x13, 0x20, 0xe0,
+ 0x02, 0x91, 0x57, 0x22, 0x90, 0x85, 0xc2, 0xe0, 0x44, 0x04, 0xf0,
+ 0x22, 0x90, 0x85, 0xcb, 0xe0, 0xff, 0xa3, 0xe0, 0x22, 0xe4, 0xff,
+ 0x12, 0x77, 0x39, 0xef, 0x64, 0x01, 0x22, 0x90, 0x85, 0xc3, 0xe0,
+ 0xff, 0xc4, 0x54, 0x0f, 0x22, 0x7d, 0x02, 0x7f, 0x02, 0x02, 0x7c,
+ 0x41, 0x90, 0x01, 0x57, 0xe4, 0xf0, 0x90, 0x01, 0x3c, 0x74, 0x02,
+ 0x22, 0x90, 0x01, 0x57, 0xe0, 0x60, 0x1c, 0x91, 0x83, 0xf0, 0x90,
+ 0x85, 0xc1, 0x91, 0xb9, 0x30, 0xe0, 0x03, 0xef, 0x80, 0x0f, 0x91,
+ 0xc0, 0x40, 0x0a, 0xe4, 0xff, 0x12, 0x77, 0x39, 0xbf, 0x01, 0x02,
+ 0x71, 0x46, 0x22, 0x54, 0xfb, 0xf0, 0x90, 0x85, 0xc9, 0xe0, 0x54,
+ 0xfd, 0xf0, 0x22, 0xe0, 0xff, 0x13, 0x13, 0x54, 0x3f, 0x22, 0x90,
+ 0x85, 0xce, 0xe0, 0x04, 0xf0, 0x90, 0x85, 0xc9, 0xe0, 0x54, 0xef,
+ 0xf0, 0x90, 0x86, 0x6d, 0xe0, 0xff, 0x90, 0x85, 0xce, 0xe0, 0xd3,
+ 0x9f, 0x22, 0x90, 0x92, 0x09, 0xe0, 0x30, 0xe0, 0x1f, 0xa3, 0xe0,
+ 0xc3, 0x13, 0x54, 0x07, 0xb1, 0x00, 0xe0, 0xfe, 0x30, 0xe0, 0x12,
+ 0xef, 0xb1, 0x01, 0xee, 0x54, 0xfe, 0x12, 0x97, 0xed, 0x12, 0x94,
+ 0x0e, 0xfd, 0x7f, 0x02, 0x12, 0x92, 0xf6, 0x22, 0xff, 0x75, 0xf0,
+ 0x0e, 0xa4, 0x24, 0x15, 0xf5, 0x82, 0xe4, 0x34, 0x92, 0xf5, 0x83,
+ 0x22, 0x12, 0xcd, 0x2d, 0x90, 0x94, 0x6f, 0xef, 0xf0, 0x30, 0xe0,
+ 0x05, 0x7d, 0x01, 0xe4, 0x80, 0x02, 0xe4, 0xfd, 0xff, 0x12, 0x57,
+ 0x82, 0x90, 0x94, 0x6f, 0xe0, 0x30, 0xe6, 0x11, 0x90, 0x01, 0x2f,
+ 0xe0, 0x30, 0xe7, 0x04, 0xe4, 0xf0, 0x80, 0x06, 0x90, 0x01, 0x2f,
+ 0x74, 0x80, 0xf0, 0xf1, 0x7d, 0x02, 0x51, 0x7d, 0x90, 0x85, 0xbc,
+ 0xe0, 0xff, 0x30, 0xe0, 0x3f, 0x90, 0x85, 0xc0, 0xe0, 0x7e, 0x00,
+ 0xb4, 0x02, 0x02, 0x7e, 0x01, 0x90, 0x85, 0xbf, 0xe0, 0x7d, 0x00,
+ 0xb4, 0x04, 0x02, 0x7d, 0x01, 0xed, 0x4e, 0x70, 0x25, 0xef, 0xc3,
+ 0x13, 0x30, 0xe0, 0x03, 0x02, 0xae, 0xae, 0x91, 0x8b, 0x90, 0x85,
+ 0xc0, 0xe0, 0xb4, 0x0c, 0x06, 0xe4, 0xfd, 0x7f, 0x08, 0x80, 0x0a,
+ 0x90, 0x85, 0xc0, 0xe0, 0xb4, 0x04, 0x06, 0xe4, 0xfd, 0xff, 0x12,
+ 0xa3, 0x0c, 0x22, 0xe4, 0x90, 0x94, 0x6f, 0xf0, 0x90, 0x85, 0xc5,
+ 0xe0, 0x60, 0x53, 0x91, 0x67, 0x70, 0x4f, 0xb1, 0xe9, 0xf0, 0xf1,
+ 0xc0, 0x90, 0x94, 0x6f, 0x74, 0x01, 0xf0, 0xe4, 0x90, 0x85, 0xcc,
+ 0xf0, 0x90, 0x85, 0xbc, 0xe0, 0x30, 0xe0, 0x16, 0x90, 0x85, 0xc0,
+ 0xe0, 0xb4, 0x02, 0x05, 0xe4, 0x90, 0x94, 0x6f, 0xf0, 0x12, 0xa6,
+ 0x8d, 0xef, 0x70, 0x04, 0x90, 0x94, 0x6f, 0xf0, 0x90, 0x94, 0x6f,
+ 0xe0, 0x60, 0x1c, 0x90, 0x85, 0xc8, 0xe0, 0x20, 0xe2, 0x03, 0x12,
+ 0xa3, 0x08, 0x90, 0x85, 0xc9, 0xe0, 0x44, 0x10, 0x12, 0xaf, 0x91,
+ 0x90, 0x85, 0xcd, 0xe0, 0x90, 0x91, 0x6f, 0xd1, 0x20, 0x22, 0x90,
+ 0x85, 0xcb, 0xe0, 0x90, 0x05, 0x73, 0x22, 0x90, 0x92, 0x0a, 0xe0,
+ 0xc3, 0x13, 0x54, 0x07, 0xff, 0x75, 0xf0, 0x0e, 0xa4, 0x24, 0x17,
+ 0xf5, 0x82, 0xe4, 0x34, 0x92, 0xf5, 0x83, 0xe0, 0xfe, 0xef, 0x75,
+ 0xf0, 0x0e, 0xa4, 0x24, 0x16, 0xf5, 0x82, 0xe4, 0x34, 0x92, 0xf5,
+ 0x83, 0xe0, 0x90, 0x91, 0x6f, 0xf0, 0x90, 0x91, 0x6e, 0xee, 0xf0,
+ 0xe4, 0xfb, 0xfd, 0x7f, 0x54, 0x7e, 0x01, 0x02, 0x61, 0x41, 0x90,
+ 0x06, 0xa9, 0xe0, 0x90, 0x94, 0x51, 0xf0, 0xe0, 0xfd, 0x54, 0xc0,
+ 0x70, 0x05, 0x12, 0xb7, 0x69, 0x80, 0x5a, 0xed, 0x30, 0xe6, 0x41,
+ 0x90, 0x85, 0xc5, 0xe0, 0x64, 0x02, 0x70, 0x28, 0x90, 0x85, 0xc1,
+ 0xe0, 0xff, 0xc3, 0x13, 0x20, 0xe0, 0x09, 0x90, 0x85, 0xc9, 0xe0,
+ 0x44, 0x01, 0xf0, 0x80, 0x1c, 0x12, 0xb7, 0xdc, 0x64, 0x01, 0x70,
+ 0x22, 0x90, 0x85, 0xc9, 0xe0, 0x44, 0x04, 0xf0, 0x7f, 0x01, 0x12,
+ 0x62, 0x8e, 0x80, 0x14, 0x12, 0xb7, 0xd5, 0x64, 0x02, 0x60, 0x05,
+ 0x12, 0x77, 0x61, 0x80, 0x08, 0x12, 0x79, 0x41, 0x80, 0x03, 0x12,
+ 0xb7, 0x69, 0x90, 0x94, 0x51, 0xe0, 0x90, 0x85, 0xc9, 0x30, 0xe7,
+ 0x07, 0x12, 0xb7, 0xe8, 0xd1, 0x20, 0x80, 0x06, 0xe0, 0x54, 0xfd,
+ 0xf0, 0x22, 0x22, 0x90, 0x85, 0xc1, 0xe0, 0x44, 0x04, 0xf0, 0x22,
+ 0x90, 0x85, 0xc1, 0xe0, 0x54, 0xf7, 0xf0, 0x22, 0x90, 0x85, 0xd1,
+ 0xa3, 0xe0, 0x90, 0x05, 0x58, 0xf0, 0x22, 0xac, 0x07, 0x90, 0x92,
+ 0xc9, 0xe0, 0xf9, 0x30, 0xe0, 0x02, 0xe1, 0x6b, 0x90, 0x85, 0xc1,
+ 0xe0, 0x30, 0xe0, 0x16, 0x90, 0x85, 0xfb, 0xe0, 0x24, 0x04, 0x90,
+ 0x85, 0xda, 0xf0, 0x90, 0x85, 0xfb, 0xe0, 0x24, 0x03, 0x90, 0x85,
+ 0xd9, 0xf0, 0x80, 0x0d, 0x90, 0x85, 0xda, 0x74, 0x02, 0xf0, 0x90,
+ 0x85, 0xd9, 0x14, 0xf0, 0x0b, 0x0b, 0x90, 0x85, 0xd9, 0xe0, 0xfa,
+ 0x90, 0x85, 0xd8, 0xe0, 0xd3, 0x9a, 0x50, 0x0e, 0x90, 0x85, 0xcd,
+ 0xeb, 0xf0, 0x90, 0x85, 0xda, 0xe0, 0xc3, 0x9d, 0x2c, 0x80, 0x11,
+ 0xc3, 0xed, 0x9a, 0x2b, 0x90, 0x85, 0xcd, 0xf0, 0x90, 0x85, 0xd9,
+ 0xe0, 0xff, 0xa3, 0xe0, 0xc3, 0x9f, 0x90, 0x85, 0xdd, 0xf0, 0x90,
+ 0x85, 0xda, 0xe0, 0xff, 0x24, 0x0a, 0xfd, 0xe4, 0x33, 0xfc, 0x90,
+ 0x85, 0xdd, 0xf1, 0x73, 0x98, 0x40, 0x04, 0xef, 0x24, 0x0a, 0xf0,
+ 0x90, 0x85, 0xdd, 0xe0, 0xff, 0x24, 0x23, 0xfd, 0xe4, 0x33, 0xfc,
+ 0x90, 0x85, 0xcd, 0xf1, 0x73, 0x98, 0x40, 0x04, 0xef, 0x24, 0x23,
+ 0xf0, 0x90, 0x85, 0xdd, 0xe0, 0xff, 0x7e, 0x00, 0x90, 0x85, 0xd1,
+ 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x90, 0x05, 0x58, 0xe0, 0x6f, 0x70,
+ 0x01, 0xe4, 0x60, 0x02, 0xd1, 0xad, 0xe9, 0x54, 0xfd, 0x80, 0x03,
+ 0xe9, 0x44, 0x02, 0x90, 0x92, 0xc9, 0xf0, 0x22, 0xe0, 0xd3, 0x9d,
+ 0xec, 0x64, 0x80, 0xf8, 0x74, 0x80, 0x22, 0x90, 0x85, 0xd7, 0xe0,
+ 0xff, 0xa3, 0xe0, 0xfd, 0x90, 0x85, 0xde, 0xe0, 0xfb, 0x22, 0x90,
+ 0x92, 0x0a, 0xe0, 0x30, 0xe0, 0x0b, 0x90, 0x92, 0xb4, 0xe0, 0x60,
+ 0x05, 0x7f, 0x07, 0x12, 0xaa, 0xf7, 0x22, 0x90, 0x85, 0xbc, 0xe0,
+ 0xff, 0x30, 0xe0, 0x05, 0x12, 0xa7, 0x6c, 0x60, 0x14, 0x90, 0x85,
+ 0xc5, 0xe0, 0x70, 0x04, 0xef, 0x30, 0xe0, 0x0a, 0x90, 0x85, 0xc8,
+ 0xe0, 0x64, 0x02, 0x60, 0x02, 0x71, 0x56, 0x22, 0x90, 0x05, 0x63,
+ 0xe0, 0x90, 0x92, 0xd2, 0xf0, 0x90, 0x05, 0x62, 0xe0, 0x90, 0x92,
+ 0xd3, 0xf0, 0x90, 0x05, 0x61, 0xe0, 0x90, 0x92, 0xd4, 0xf0, 0x90,
+ 0x05, 0x60, 0xe0, 0x90, 0x92, 0xd5, 0xf0, 0x90, 0x92, 0xc9, 0xe0,
+ 0x44, 0x01, 0xf0, 0x22, 0x90, 0x84, 0xa1, 0x74, 0x02, 0xf0, 0xa3,
+ 0x74, 0x9a, 0xf0, 0xa3, 0x74, 0x26, 0xf0, 0x90, 0x84, 0xa7, 0x74,
+ 0x80, 0xf0, 0xa3, 0x74, 0x03, 0xf0, 0x22, 0xe4, 0xfb, 0xfa, 0xfd,
+ 0x7f, 0x01, 0x12, 0x86, 0x4e, 0x90, 0x94, 0x3f, 0xef, 0xf0, 0x60,
+ 0xf0, 0x90, 0x84, 0xc1, 0xe0, 0xff, 0x70, 0x04, 0xa3, 0xe0, 0x60,
+ 0xe5, 0xc2, 0xaf, 0xef, 0x30, 0xe0, 0x0f, 0x90, 0x84, 0xc1, 0xe0,
+ 0x54, 0xfe, 0xf0, 0xe4, 0xff, 0x12, 0x2d, 0xbd, 0x12, 0x9b, 0x57,
+ 0x11, 0x4b, 0x30, 0xe1, 0x06, 0x54, 0xfd, 0xf0, 0x12, 0x60, 0x5d,
+ 0x11, 0x4b, 0x30, 0xe2, 0x06, 0x54, 0xfb, 0xf0, 0x12, 0x6a, 0x6d,
+ 0xd2, 0xaf, 0x80, 0xc6, 0xd2, 0xaf, 0xc2, 0xaf, 0x90, 0x84, 0xc1,
+ 0xe0, 0xff, 0x22, 0x32, 0xc0, 0xe0, 0xc0, 0xf0, 0xc0, 0x83, 0xc0,
+ 0x82, 0xc0, 0xd0, 0x75, 0xd0, 0x00, 0xc0, 0x00, 0xc0, 0x01, 0xc0,
+ 0x02, 0xc0, 0x03, 0xc0, 0x04, 0xc0, 0x05, 0xc0, 0x06, 0xc0, 0x07,
+ 0x90, 0x01, 0xc4, 0x74, 0x56, 0xf0, 0x74, 0xc8, 0xa3, 0xf0, 0x12,
+ 0x6c, 0xbc, 0x74, 0x56, 0x04, 0x90, 0x01, 0xc4, 0xf0, 0x74, 0xc8,
+ 0xa3, 0xf0, 0xd0, 0x07, 0xd0, 0x06, 0xd0, 0x05, 0xd0, 0x04, 0xd0,
+ 0x03, 0xd0, 0x02, 0xd0, 0x01, 0xd0, 0x00, 0xd0, 0xd0, 0xd0, 0x82,
+ 0xd0, 0x83, 0xd0, 0xf0, 0xd0, 0xe0, 0x32, 0x32, 0xc0, 0xe0, 0xc0,
+ 0x83, 0xc0, 0x82, 0xc0, 0xd0, 0x75, 0xd0, 0x00, 0xc0, 0x05, 0xc0,
+ 0x07, 0x7d, 0xa7, 0x90, 0x01, 0xc4, 0xed, 0xf0, 0x74, 0xc8, 0xff,
+ 0xa3, 0xf0, 0xed, 0x04, 0x90, 0x01, 0xc4, 0xf0, 0xa3, 0xef, 0xf0,
+ 0xd0, 0x07, 0xd0, 0x05, 0xd0, 0xd0, 0xd0, 0x82, 0xd0, 0x83, 0xd0,
+ 0xe0, 0x32, 0x90, 0x85, 0xbc, 0xe0, 0x30, 0xe0, 0x05, 0xe4, 0xa3,
+ 0xf0, 0xa3, 0xf0, 0x22, 0x90, 0x85, 0xbc, 0xe0, 0xff, 0x30, 0xe0,
+ 0x3f, 0x90, 0x85, 0xc0, 0xe0, 0x7e, 0x00, 0xb4, 0x02, 0x02, 0x7e,
+ 0x01, 0x90, 0x85, 0xbf, 0xe0, 0x7d, 0x00, 0xb4, 0x04, 0x02, 0x7d,
+ 0x01, 0xed, 0x4e, 0x70, 0x25, 0xef, 0xc3, 0x13, 0x30, 0xe0, 0x03,
+ 0x02, 0xae, 0xae, 0x12, 0xa7, 0x56, 0x90, 0x85, 0xc0, 0xe0, 0xb4,
+ 0x08, 0x06, 0xe4, 0xfd, 0x7f, 0x0c, 0x80, 0x09, 0x90, 0x85, 0xc0,
+ 0xe0, 0x70, 0x06, 0xfd, 0x7f, 0x04, 0x12, 0xa3, 0x0c, 0x22, 0xd3,
+ 0x10, 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0x12, 0x96, 0xee, 0x7f, 0x02,
+ 0x12, 0x7b, 0x51, 0xef, 0x54, 0xfe, 0xfd, 0x7f, 0x02, 0x12, 0x7b,
+ 0x3e, 0x90, 0x01, 0x00, 0x74, 0x3f, 0xf0, 0xa3, 0xe0, 0x54, 0xfd,
+ 0xf0, 0x90, 0x05, 0x53, 0xe0, 0x44, 0x20, 0xf0, 0xd0, 0xd0, 0x92,
+ 0xaf, 0x22, 0x41, 0x77, 0xd3, 0x10, 0xaf, 0x01, 0xc3, 0xc0, 0xd0,
+ 0x90, 0x85, 0xbf, 0xe0, 0x90, 0x95, 0x1a, 0xf0, 0x6f, 0x70, 0x02,
+ 0x41, 0x6b, 0xef, 0x14, 0x60, 0x46, 0x14, 0x60, 0x72, 0x14, 0x70,
+ 0x02, 0x41, 0x16, 0x14, 0x70, 0x02, 0x41, 0x41, 0x24, 0x04, 0x60,
+ 0x02, 0x41, 0x6b, 0x90, 0x95, 0x1a, 0xe0, 0xb4, 0x04, 0x05, 0x12,
+ 0xbf, 0xcc, 0x41, 0x6b, 0x90, 0x95, 0x1a, 0xe0, 0xb4, 0x02, 0x05,
+ 0x12, 0xbf, 0xbd, 0x41, 0x6b, 0x90, 0x95, 0x1a, 0xe0, 0xb4, 0x03,
+ 0x05, 0x12, 0xbf, 0xe0, 0x41, 0x6b, 0x90, 0x95, 0x1a, 0xe0, 0x64,
+ 0x01, 0x60, 0x02, 0x41, 0x6b, 0x12, 0xbf, 0xbf, 0x41, 0x6b, 0x90,
+ 0x95, 0x1a, 0xe0, 0xb4, 0x04, 0x05, 0x12, 0xbf, 0xd0, 0x41, 0x6b,
+ 0x90, 0x95, 0x1a, 0xe0, 0xb4, 0x02, 0x05, 0x12, 0xbf, 0xb4, 0x41,
+ 0x6b, 0x90, 0x95, 0x1a, 0xe0, 0xb4, 0x03, 0x04, 0x51, 0xa2, 0x41,
+ 0x6b, 0x90, 0x95, 0x1a, 0xe0, 0x60, 0x02, 0x41, 0x6b, 0x51, 0x8f,
+ 0x41, 0x6b, 0x90, 0x95, 0x1a, 0xe0, 0xb4, 0x04, 0x04, 0x51, 0x80,
+ 0x80, 0x75, 0x90, 0x95, 0x1a, 0xe0, 0xb4, 0x01, 0x04, 0x51, 0x70,
+ 0x80, 0x6a, 0x90, 0x95, 0x1a, 0xe0, 0xb4, 0x03, 0x04, 0x31, 0x5c,
+ 0x80, 0x5f, 0x90, 0x95, 0x1a, 0xe0, 0x70, 0x59, 0x51, 0x86, 0x80,
+ 0x55, 0x90, 0x95, 0x1a, 0xe0, 0xb4, 0x04, 0x04, 0x51, 0xb2, 0x80,
+ 0x4a, 0x90, 0x95, 0x1a, 0xe0, 0xb4, 0x01, 0x04, 0x51, 0x98, 0x80,
+ 0x3f, 0x90, 0x95, 0x1a, 0xe0, 0xb4, 0x02, 0x04, 0x51, 0xd7, 0x80,
+ 0x34, 0x90, 0x95, 0x1a, 0xe0, 0x70, 0x2e, 0x51, 0x96, 0x80, 0x2a,
+ 0x90, 0x95, 0x1a, 0xe0, 0xb4, 0x03, 0x04, 0x51, 0xca, 0x80, 0x1f,
+ 0x90, 0x95, 0x1a, 0xe0, 0xb4, 0x01, 0x05, 0x12, 0x9f, 0xe4, 0x80,
+ 0x13, 0x90, 0x95, 0x1a, 0xe0, 0xb4, 0x02, 0x04, 0x51, 0xcf, 0x80,
+ 0x08, 0x90, 0x95, 0x1a, 0xe0, 0x70, 0x02, 0x51, 0x8a, 0xd0, 0xd0,
+ 0x92, 0xaf, 0x22, 0x7d, 0x20, 0x7f, 0xff, 0x12, 0x98, 0xe3, 0x31,
+ 0x2d, 0x90, 0x85, 0xbf, 0x74, 0x02, 0xf0, 0x22, 0x51, 0xc2, 0x7d,
+ 0x23, 0x80, 0xec, 0x51, 0x8f, 0x80, 0xe6, 0x51, 0x8f, 0x02, 0x9f,
+ 0xe4, 0x90, 0x85, 0xbf, 0x74, 0x01, 0xf0, 0x22, 0x51, 0x8f, 0x7d,
+ 0x21, 0x7f, 0xff, 0x51, 0xab, 0x74, 0x03, 0xf0, 0x22, 0x51, 0xa8,
+ 0x74, 0x01, 0xf0, 0x22, 0xe4, 0xfd, 0xff, 0x12, 0x98, 0xe3, 0x90,
+ 0x85, 0xbf, 0x22, 0x7d, 0x22, 0x7f, 0xff, 0x12, 0x98, 0xe3, 0x51,
+ 0xc2, 0x90, 0x85, 0xbf, 0x74, 0x03, 0xf0, 0x22, 0x90, 0x05, 0x27,
+ 0xe0, 0x44, 0x40, 0xf0, 0x22, 0x7d, 0x25, 0x02, 0x9f, 0xe6, 0x12,
+ 0xbf, 0x8b, 0x7d, 0x24, 0x02, 0x9f, 0xe6, 0x12, 0xbf, 0x8b, 0x90,
+ 0x85, 0xbf, 0x74, 0x03, 0xf0, 0x22, 0x12, 0x02, 0xf6, 0x90, 0x94,
+ 0x97, 0xf0, 0x22, 0x7b, 0x00, 0x7a, 0x00, 0x79, 0x00, 0x90, 0x89,
+ 0x1b, 0x12, 0x87, 0x4e, 0x7b, 0xff, 0x7a, 0x82, 0x79, 0x00, 0x90,
+ 0x89, 0x1e, 0x12, 0x87, 0x4e, 0x7a, 0x82, 0x79, 0x3f, 0x90, 0x89,
+ 0x21, 0x12, 0x87, 0x4e, 0x7a, 0x82, 0x79, 0xe1, 0x90, 0x89, 0x27,
+ 0x12, 0x87, 0x4e, 0x7a, 0x82, 0x79, 0xf5, 0x90, 0x89, 0x2a, 0x12,
+ 0x87, 0x4e, 0x7a, 0x83, 0x79, 0x1d, 0x90, 0x89, 0x2d, 0x12, 0x87,
+ 0x4e, 0x7a, 0x83, 0x79, 0x31, 0x90, 0x89, 0x33, 0x12, 0x87, 0x4e,
+ 0x7a, 0x83, 0x79, 0x59, 0x90, 0x89, 0x36, 0x12, 0x87, 0x4e, 0x7a,
+ 0x83, 0x79, 0x81, 0x90, 0x89, 0x39, 0x12, 0x87, 0x4e, 0xe4, 0x90,
+ 0x94, 0xa8, 0xf0, 0x90, 0x94, 0x97, 0xf0, 0x90, 0x93, 0xfb, 0xf0,
+ 0x90, 0x93, 0xfb, 0xe0, 0xff, 0xc3, 0x94, 0x05, 0x50, 0x10, 0x74,
+ 0xb9, 0x2f, 0x12, 0x9e, 0x49, 0xe4, 0xf0, 0x90, 0x93, 0xfb, 0xe0,
+ 0x04, 0xf0, 0x80, 0xe6, 0x22, 0x90, 0x94, 0x46, 0xee, 0xf0, 0xa3,
+ 0xef, 0xf0, 0xa3, 0xed, 0xf0, 0xeb, 0x75, 0xf0, 0x06, 0xa4, 0xff,
+ 0x90, 0x89, 0x21, 0x12, 0x87, 0x45, 0xe9, 0x2f, 0xf9, 0xea, 0x35,
+ 0xf0, 0xfa, 0x90, 0x94, 0x4e, 0x12, 0x87, 0x4e, 0x90, 0x94, 0x48,
+ 0xe0, 0x12, 0x9f, 0x5f, 0xe0, 0xff, 0xa3, 0xe0, 0x90, 0x94, 0x4b,
+ 0xcf, 0xf0, 0xa3, 0xef, 0xf0, 0xe4, 0xa3, 0xf0, 0x90, 0x94, 0x4e,
+ 0x12, 0x87, 0x45, 0x90, 0x94, 0x4d, 0xe0, 0xff, 0xf5, 0x82, 0x75,
+ 0x83, 0x00, 0x12, 0x03, 0x0f, 0xfd, 0x7c, 0x00, 0x90, 0x94, 0x48,
+ 0xe0, 0x75, 0xf0, 0x12, 0x90, 0x89, 0x44, 0x12, 0x05, 0x28, 0x75,
+ 0xf0, 0x02, 0xef, 0x12, 0x05, 0x28, 0xe0, 0xfe, 0xa3, 0xe0, 0xff,
+ 0x90, 0x94, 0x4a, 0xe0, 0xfb, 0xef, 0xa8, 0x03, 0x08, 0x80, 0x05,
+ 0xce, 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0x91, 0x56, 0xee, 0x8f,
+ 0xf0, 0x12, 0x07, 0x0a, 0x90, 0x94, 0x4d, 0xe0, 0x04, 0xf0, 0xe0,
+ 0xb4, 0x05, 0xad, 0x90, 0x94, 0x4e, 0x12, 0x87, 0x45, 0x12, 0x97,
+ 0xf6, 0xfd, 0x7c, 0x00, 0x90, 0x94, 0x4a, 0xe0, 0xff, 0x90, 0x94,
+ 0x46, 0xe0, 0xfe, 0xa3, 0xe0, 0xa8, 0x07, 0x08, 0x80, 0x05, 0xce,
+ 0xc3, 0x13, 0xce, 0x13, 0xd8, 0xf9, 0x91, 0x56, 0xe0, 0xfc, 0xa3,
+ 0xe0, 0xfd, 0xd3, 0x9f, 0xec, 0x9e, 0x40, 0x08, 0xed, 0x9f, 0xff,
+ 0xec, 0x9e, 0xfe, 0x80, 0x04, 0x7e, 0x00, 0x7f, 0x00, 0x90, 0x94,
+ 0x4b, 0xee, 0xf0, 0xa3, 0xef, 0xf0, 0x90, 0x94, 0x4b, 0xe0, 0xfe,
+ 0xa3, 0xe0, 0xff, 0x90, 0x94, 0x48, 0xe0, 0x12, 0x9f, 0x5f, 0xee,
+ 0xf0, 0xa3, 0xef, 0xf0, 0x22, 0xff, 0x12, 0x03, 0x70, 0x90, 0x94,
+ 0x4b, 0x22, 0x12, 0x97, 0x5a, 0xe0, 0x20, 0xe0, 0x08, 0xc3, 0x13,
+ 0x30, 0xe0, 0x0a, 0x02, 0x97, 0xee, 0x12, 0x97, 0x5a, 0xe0, 0x44,
+ 0x04, 0xf0, 0x22, 0x90, 0x01, 0x94, 0xe0, 0x44, 0x01, 0xf0, 0x90,
+ 0x01, 0xc7, 0xe4, 0xf0, 0x22, 0x90, 0x01, 0x9a, 0xe0, 0x54, 0xc0,
+ 0x44, 0x0b, 0xf0, 0x7f, 0x0a, 0x7e, 0x00, 0x12, 0x7c, 0x9f, 0x90,
+ 0x01, 0x98, 0xe0, 0x54, 0xc0, 0x7f, 0x00, 0xb4, 0x40, 0x02, 0x7f,
+ 0x01, 0x22, 0x90, 0x01, 0x98, 0xe4, 0xf0, 0xa3, 0xf0, 0xa3, 0x74,
+ 0x11, 0xf0, 0xa3, 0xe4, 0xf0, 0x7f, 0x0a, 0xfe, 0x12, 0x7c, 0x9f,
+ 0x90, 0x01, 0x99, 0xe0, 0x54, 0x30, 0xff, 0x64, 0x10, 0x60, 0x04,
+ 0xef, 0xb4, 0x20, 0x03, 0x7f, 0x01, 0x22, 0x7f, 0x00, 0x22, 0x90,
+ 0x01, 0xcf, 0xe0, 0x90, 0x94, 0x51, 0xf0, 0xe0, 0xff, 0x30, 0xe0,
+ 0x07, 0x90, 0x01, 0xcf, 0xe0, 0x54, 0xfe, 0xf0, 0xef, 0x30, 0xe5,
+ 0x23, 0x90, 0x01, 0xcf, 0xe0, 0x54, 0xdf, 0xf0, 0x90, 0x01, 0x34,
+ 0x74, 0x20, 0xf0, 0xe4, 0xf5, 0xa8, 0xf5, 0xe8, 0x12, 0x75, 0xb6,
+ 0x90, 0x00, 0x03, 0xe0, 0x54, 0xfb, 0xfd, 0x7f, 0x03, 0x12, 0x7b,
+ 0x3e, 0x80, 0xfe, 0x22, 0xd3, 0x10, 0xaf, 0x01, 0xc3, 0xc0, 0xd0,
+ 0xe4, 0xfe, 0xfd, 0xef, 0xb4, 0x01, 0x0d, 0xeb, 0xb4, 0x02, 0x03,
+ 0x0d, 0x80, 0x06, 0xeb, 0xb4, 0x01, 0x02, 0x7d, 0x02, 0xaf, 0x06,
+ 0xef, 0xc4, 0x54, 0xf0, 0x4d, 0xff, 0xd0, 0xd0, 0x92, 0xaf, 0x22,
+ 0xe4, 0x90, 0x94, 0x71, 0xf0, 0xa3, 0xf0, 0x7f, 0x83, 0x12, 0x7b,
+ 0x51, 0x90, 0x94, 0x70, 0xef, 0xf0, 0x7f, 0x83, 0x12, 0x7b, 0x51,
+ 0xae, 0x07, 0x90, 0x94, 0x70, 0xe0, 0xff, 0xb5, 0x06, 0x01, 0x22,
+ 0xc3, 0x90, 0x94, 0x72, 0xe0, 0x94, 0x64, 0x90, 0x94, 0x71, 0xe0,
+ 0x94, 0x00, 0x40, 0x0d, 0x90, 0x01, 0xc0, 0xe0, 0x44, 0x40, 0xf0,
+ 0x90, 0x94, 0x70, 0xe0, 0xff, 0x22, 0x90, 0x94, 0x71, 0x12, 0xbd,
+ 0xff, 0x80, 0xc2, 0x90, 0x01, 0xc4, 0x74, 0x72, 0xf0, 0x74, 0xcd,
+ 0xa3, 0xf0, 0x7f, 0x90, 0x12, 0x7b, 0x51, 0xef, 0x20, 0xe0, 0xf7,
+ 0x74, 0x72, 0x04, 0x90, 0x01, 0xc4, 0xf0, 0x74, 0xcd, 0xa3, 0xf0,
+ 0x22, 0x7e, 0x00, 0x7f, 0x01, 0x7d, 0x00, 0x7b, 0x01, 0x7a, 0x85,
+ 0x79, 0xbc, 0x12, 0x06, 0xde, 0x90, 0x85, 0xbc, 0xe0, 0x54, 0xfd,
+ 0xf0, 0xe4, 0xa3, 0xf0, 0xa3, 0xf0, 0xa3, 0xf0, 0xa3, 0x74, 0x0c,
+ 0xf0, 0x22, 0x90, 0x85, 0xbf, 0xe0, 0x64, 0x02, 0x7f, 0x01, 0x60,
+ 0x02, 0x7f, 0x00, 0x22, 0x90, 0x95, 0x0e, 0x12, 0x87, 0x4e, 0x12,
+ 0x71, 0x54, 0x90, 0x85, 0xc5, 0xe0, 0xff, 0x12, 0x60, 0xd0, 0x90,
+ 0x85, 0xc5, 0xe0, 0x60, 0x19, 0x90, 0x95, 0x0e, 0x12, 0x87, 0x45,
+ 0x12, 0x8f, 0x73, 0x54, 0x0f, 0xff, 0x12, 0x8f, 0xf3, 0xfd, 0x12,
+ 0x6a, 0xb8, 0x12, 0xc7, 0x7d, 0x12, 0x51, 0x7d, 0x22, 0xd3, 0x10,
+ 0xaf, 0x01, 0xc3, 0xc0, 0xd0, 0x12, 0x7a, 0x29, 0xef, 0x64, 0x01,
+ 0x60, 0x05, 0x75, 0x10, 0x01, 0x80, 0x71, 0x90, 0x85, 0xc9, 0xe0,
+ 0xff, 0x54, 0x03, 0x60, 0x05, 0x75, 0x10, 0x02, 0x80, 0x63, 0x90,
+ 0x85, 0xc7, 0xe0, 0xfe, 0xe4, 0xc3, 0x9e, 0x50, 0x05, 0x75, 0x10,
+ 0x04, 0x80, 0x54, 0xef, 0x30, 0xe2, 0x05, 0x75, 0x10, 0x08, 0x80,
+ 0x4b, 0x90, 0x85, 0xc9, 0xe0, 0x30, 0xe4, 0x05, 0x75, 0x10, 0x10,
+ 0x80, 0x3f, 0x90, 0x85, 0xc2, 0xe0, 0x13, 0x13, 0x54, 0x3f, 0x20,
+ 0xe0, 0x05, 0x75, 0x10, 0x20, 0x80, 0x2f, 0x90, 0x86, 0x71, 0xe0,
+ 0x60, 0x05, 0x75, 0x10, 0x80, 0x80, 0x24, 0x90, 0x06, 0x62, 0xe0,
+ 0x30, 0xe1, 0x05, 0x75, 0x10, 0x11, 0x80, 0x18, 0x90, 0x06, 0x62,
+ 0xe0, 0x30, 0xe0, 0x0c, 0xe0, 0x54, 0xfc, 0xff, 0xbf, 0x80, 0x05,
+ 0x75, 0x10, 0x12, 0x80, 0x05, 0x12, 0xbf, 0x73, 0x80, 0x0e, 0x90,
+ 0x01, 0xb9, 0x74, 0x04, 0xf0, 0x90, 0x01, 0xb8, 0xe5, 0x10, 0xf0,
+ 0x7f, 0x00, 0xd0, 0xd0, 0x92, 0xaf, 0x22, 0x90, 0x93, 0x03, 0x74,
+ 0x04, 0xf0, 0x14, 0xf0, 0xa3, 0xf0, 0xa3, 0xe4, 0xf0, 0xa3, 0x74,
+ 0x64, 0xf0, 0xa3, 0x74, 0x05, 0xf0, 0xa3, 0xf0, 0x22, 0xe4, 0x90,
+ 0x94, 0x51, 0xf0, 0xa3, 0xf0, 0xa3, 0xf0, 0x90, 0x92, 0xd2, 0x12,
+ 0x87, 0x2d, 0x90, 0x92, 0xce, 0x12, 0x87, 0x39, 0xc3, 0x12, 0x04,
+ 0xb4, 0x40, 0x49, 0x90, 0x85, 0xc1, 0xe0, 0x90, 0x92, 0xd2, 0x30,
+ 0xe0, 0x10, 0x12, 0xd0, 0xc8, 0x90, 0x85, 0xfb, 0xe0, 0x24, 0x04,
+ 0x2f, 0xff, 0x90, 0x93, 0x03, 0x80, 0x06, 0x12, 0xd0, 0xc8, 0x90,
+ 0x93, 0x04, 0xe0, 0xfe, 0xc3, 0xef, 0x9e, 0x90, 0x94, 0x52, 0xf0,
+ 0x90, 0x94, 0x52, 0xe0, 0xff, 0xc3, 0x94, 0x2d, 0x50, 0x16, 0x74,
+ 0xd6, 0x2f, 0x12, 0xd0, 0x44, 0xe0, 0x04, 0xf0, 0x90, 0x85, 0xdb,
+ 0xe0, 0x04, 0xf0, 0xe0, 0xfd, 0x7f, 0xfe, 0x12, 0x7b, 0x3e, 0x90,
+ 0x85, 0xdb, 0xe0, 0xff, 0xd3, 0x90, 0x93, 0x06, 0xe0, 0x9f, 0x90,
+ 0x93, 0x05, 0xe0, 0x94, 0x00, 0x40, 0x02, 0xe1, 0xe7, 0x12, 0xd1,
+ 0x93, 0x12, 0xd1, 0xa7, 0x50, 0x1e, 0x12, 0xd0, 0xe5, 0xff, 0x90,
+ 0x94, 0x53, 0xe0, 0xd3, 0x9f, 0x40, 0x0a, 0x90, 0x94, 0x51, 0xe0,
+ 0x90, 0x94, 0x54, 0xf0, 0x80, 0x08, 0x90, 0x94, 0x51, 0xe0, 0x04,
+ 0xf0, 0x80, 0xdd, 0x12, 0xd1, 0x93, 0x12, 0xd1, 0xa7, 0x50, 0x2e,
+ 0x12, 0xd0, 0xe5, 0xff, 0xc3, 0x90, 0x93, 0x06, 0xe0, 0x9f, 0xff,
+ 0x90, 0x93, 0x05, 0xe0, 0x94, 0x00, 0xfe, 0x90, 0x94, 0x53, 0xe0,
+ 0xd3, 0x9f, 0xe4, 0x9e, 0x40, 0x0a, 0x90, 0x94, 0x51, 0xe0, 0x90,
+ 0x94, 0x55, 0xf0, 0x80, 0x08, 0x90, 0x94, 0x51, 0xe0, 0x04, 0xf0,
+ 0x80, 0xcd, 0x90, 0x94, 0x54, 0xe0, 0x90, 0x85, 0xe0, 0xf0, 0x90,
+ 0x94, 0x55, 0xe0, 0x90, 0x85, 0xe1, 0x12, 0xd1, 0xc2, 0x94, 0x0a,
+ 0x40, 0x0a, 0xef, 0x24, 0xf6, 0x90, 0x85, 0xd8, 0xf0, 0xe4, 0x80,
+ 0x0a, 0xe4, 0x90, 0x85, 0xd8, 0x12, 0xd1, 0xc2, 0x74, 0x0a, 0x9f,
+ 0x90, 0x85, 0xd7, 0xf0, 0x90, 0x85, 0xe0, 0xe0, 0xff, 0xa3, 0xe0,
+ 0xc3, 0x9f, 0x90, 0x85, 0xde, 0xf0, 0x90, 0x85, 0xc1, 0xe0, 0x30,
+ 0xe0, 0x05, 0x90, 0x93, 0x03, 0x80, 0x03, 0x90, 0x93, 0x04, 0xe0,
+ 0xff, 0x90, 0x85, 0xde, 0xe0, 0x2f, 0x04, 0xf0, 0x90, 0x85, 0xde,
+ 0xe0, 0xc3, 0x94, 0x0a, 0x50, 0x03, 0x74, 0x0a, 0xf0, 0x90, 0x85,
+ 0xde, 0xe0, 0x24, 0x02, 0xf0, 0x12, 0xc7, 0x7d, 0x12, 0x51, 0x7d,
+ 0xe4, 0xff, 0x12, 0x69, 0x33, 0x22, 0x12, 0xc4, 0xcd, 0x40, 0x2f,
+ 0x90, 0x85, 0xdf, 0xe0, 0x04, 0xf0, 0x90, 0x93, 0x08, 0xe0, 0xff,
+ 0x90, 0x85, 0xdf, 0xe0, 0xd3, 0x9f, 0x50, 0x1c, 0x90, 0x85, 0xd7,
+ 0xe0, 0x04, 0xf0, 0x12, 0xa7, 0x19, 0x12, 0xa7, 0x12, 0x90, 0x85,
+ 0xde, 0xf0, 0xfb, 0x90, 0x85, 0xd7, 0xe0, 0xff, 0xa3, 0xe0, 0xfd,
+ 0x12, 0x51, 0x7d, 0x22, 0xe4, 0xfe, 0x74, 0xd6, 0x2e, 0x11, 0x44,
+ 0xe4, 0xf0, 0x0e, 0xee, 0xb4, 0x2d, 0xf4, 0xe4, 0x90, 0x85, 0xdc,
+ 0xf0, 0x90, 0x85, 0xdb, 0xf0, 0x90, 0x85, 0xdf, 0xf0, 0xef, 0xb4,
+ 0x01, 0x07, 0xa3, 0x74, 0x2d, 0xf0, 0xe4, 0xa3, 0xf0, 0x22, 0xf5,
+ 0x82, 0xe4, 0x34, 0x92, 0xf5, 0x83, 0x22, 0x75, 0xf0, 0x1b, 0xa4,
+ 0x24, 0x38, 0xf5, 0x82, 0xe4, 0x34, 0x92, 0xf5, 0x83, 0xe0, 0xfe,
+ 0x54, 0x03, 0xfd, 0xee, 0x13, 0x13, 0x54, 0x07, 0xfb, 0x90, 0x92,
+ 0x0a, 0xe0, 0xfe, 0xc4, 0x54, 0x0f, 0x90, 0x95, 0x04, 0xf0, 0x22,
+ 0x90, 0x94, 0xf2, 0xa3, 0xe0, 0xff, 0x90, 0x95, 0x00, 0x74, 0x03,
+ 0xf0, 0x7b, 0x06, 0x7d, 0x01, 0x12, 0x99, 0x36, 0x90, 0x94, 0xf6,
+ 0xee, 0xf0, 0xfc, 0xa3, 0xef, 0xf0, 0xfd, 0x90, 0x94, 0xf5, 0xe0,
+ 0xff, 0x74, 0x10, 0x2d, 0xf5, 0x82, 0xe4, 0x34, 0xfc, 0xf5, 0x83,
+ 0xef, 0xf0, 0x90, 0x94, 0xf4, 0xe0, 0xff, 0x02, 0x65, 0x61, 0x90,
+ 0x92, 0x0a, 0xe0, 0xff, 0xc3, 0x13, 0xfe, 0xef, 0x54, 0xf1, 0xff,
+ 0xee, 0x04, 0x54, 0x07, 0x25, 0xe0, 0x4f, 0xf0, 0xa3, 0xe0, 0xff,
+ 0x90, 0x92, 0x0a, 0xe0, 0xfe, 0xc3, 0x13, 0x54, 0x07, 0x22, 0x12,
+ 0x87, 0x39, 0x90, 0x92, 0xce, 0x12, 0x87, 0x2d, 0x12, 0x86, 0xb6,
+ 0x78, 0x0a, 0x12, 0x04, 0xc5, 0x90, 0x85, 0xdd, 0xe0, 0xfe, 0xc3,
+ 0x74, 0x0a, 0x9e, 0x2f, 0xff, 0x22, 0x74, 0xd6, 0x2f, 0xf5, 0x82,
+ 0xe4, 0x34, 0x92, 0xf5, 0x83, 0xe0, 0xff, 0x90, 0x94, 0x53, 0xe0,
+ 0x2f, 0xf0, 0x90, 0x93, 0x07, 0xe0, 0x22, 0x90, 0x94, 0x94, 0xee,
+ 0xf0, 0xfc, 0xa3, 0xef, 0xf0, 0xfd, 0x90, 0x94, 0x92, 0xe0, 0xff,
+ 0x12, 0x65, 0x61, 0x90, 0x92, 0x0a, 0xe0, 0x22, 0x75, 0xf0, 0x0e,
+ 0xa4, 0x24, 0x0f, 0xf5, 0x82, 0xe4, 0x34, 0x92, 0x22, 0x90, 0x05,
+ 0x84, 0xef, 0xf0, 0x7d, 0x20, 0xe4, 0xff, 0x02, 0x7b, 0xfd, 0x90,
+ 0x01, 0x34, 0x74, 0x40, 0xf0, 0xfd, 0xe4, 0xff, 0x12, 0x7c, 0xa9,
+ 0x43, 0x5e, 0x08, 0x22, 0xe0, 0x54, 0x03, 0x90, 0x91, 0x0b, 0xf0,
+ 0x7b, 0x01, 0xaf, 0x76, 0x02, 0x27, 0x3d, 0xe5, 0x65, 0x25, 0xe0,
+ 0x24, 0xf5, 0xf5, 0x82, 0xe4, 0x34, 0x82, 0xf5, 0x83, 0x22, 0xe4,
+ 0x90, 0x91, 0x6e, 0xf0, 0xa3, 0x74, 0x03, 0x22, 0xef, 0xc4, 0x54,
+ 0xf0, 0x24, 0x03, 0xf5, 0x82, 0xe4, 0x34, 0x81, 0xf5, 0x83, 0x22,
+ 0xe0, 0x90, 0x01, 0xba, 0xf0, 0x90, 0x85, 0xc7, 0xe0, 0x90, 0x01,
+ 0xbb, 0x22, 0x12, 0x05, 0x28, 0xe0, 0xfc, 0xa3, 0xe0, 0xf5, 0x82,
+ 0x8c, 0x83, 0x22, 0x74, 0xbc, 0x25, 0x63, 0xf5, 0x82, 0xe4, 0x34,
+ 0x8f, 0xf5, 0x83, 0x22, 0xe4, 0x90, 0x94, 0x53, 0xf0, 0x90, 0x94,
+ 0x51, 0xf0, 0x22, 0x90, 0x94, 0xfc, 0xe0, 0xff, 0x90, 0x94, 0xfa,
+ 0xe0, 0x22, 0x90, 0x94, 0x51, 0xe0, 0xff, 0xc3, 0x94, 0x2d, 0x22,
+ 0x90, 0x05, 0x22, 0xe0, 0x90, 0x94, 0x7d, 0xf0, 0x22, 0x90, 0x00,
+ 0x06, 0x12, 0x04, 0x18, 0x2f, 0xff, 0x22, 0xf0, 0x90, 0x85, 0xe0,
+ 0xe0, 0xff, 0xc3, 0x22, 0x25, 0xe0, 0x25, 0xe0, 0xfe, 0xef, 0x4e,
+ 0x22, 0x7d, 0x01, 0xaf, 0x63, 0x02, 0x65, 0xc2, 0xe5, 0x65, 0x90,
+ 0x83, 0x1d, 0x93, 0xff, 0x22, 0x90, 0x00, 0x04, 0x12, 0x04, 0x18,
+ 0x2f, 0x22, 0x90, 0x95, 0x07, 0xe0, 0xff, 0x7d, 0x48, 0x22, 0xff,
+ 0x12, 0x02, 0xf6, 0xfe, 0x54, 0x0f, 0x22, 0x00, 0x69, 0x2a
+};
+
static const uint8_t rtl8192cT[] = {
0xc1, 0x88, 0x02, 0x00, 0x50, 0x00, 0x00, 0x00, 0x12, 0x14, 0x15,
0x52, 0xd4, 0x3e, 0x00, 0x00, 0x25, 0x86, 0x01, 0x00, 0x00, 0x00,
diff --git a/sys/dev/usb/if_urtwn.c b/sys/dev/usb/if_urtwn.c
index 391c8234fb0..f1ab054e27a 100644
--- a/sys/dev/usb/if_urtwn.c
+++ b/sys/dev/usb/if_urtwn.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_urtwn.c,v 1.106 2023/04/27 03:19:45 kevlo Exp $ */
+/* $OpenBSD: if_urtwn.c,v 1.107 2023/04/28 01:24:14 kevlo Exp $ */
/*-
* Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr>
@@ -19,8 +19,8 @@
*/
/*
- * Driver for Realtek RTL8188CE-VAU/RTL8188CUS/RTL8188EU/RTL8188RU/RTL8192CU/
- * RTL8192EU.
+ * Driver for Realtek RTL8188CE-VAU/RTL8188CUS/RTL8188EU/RTL8188FTV/RTL8188RU/
+ * RTL8192CU/RTL8192EU.
*/
#include "bpfilter.h"
@@ -70,7 +70,6 @@
#define R92C_NQ_NPAGES 2
#define R92C_TXPKTBUF_COUNT 256
#define R92C_TX_PAGE_COUNT 248
-#define R92C_TX_PAGE_BOUNDARY (R92C_TX_PAGE_COUNT + 1)
#define R92C_MAX_RX_DMA_SIZE 0x2800
#define R88E_HQ_NPAGES 0
@@ -78,14 +77,19 @@
#define R88E_NQ_NPAGES 0
#define R88E_TXPKTBUF_COUNT 177
#define R88E_TX_PAGE_COUNT 168
-#define R88E_TX_PAGE_BOUNDARY (R88E_TX_PAGE_COUNT + 1)
#define R88E_MAX_RX_DMA_SIZE 0x2400
+#define R88F_HQ_NPAGES 12
+#define R88F_LQ_NPAGES 2
+#define R88F_NQ_NPAGES 2
+#define R88F_TXPKTBUF_COUNT 177
+#define R88F_TX_PAGE_COUNT 247
+#define R88F_MAX_RX_DMA_SIZE 0x3f80
+
#define R92E_HQ_NPAGES 16
#define R92E_LQ_NPAGES 16
#define R92E_NQ_NPAGES 16
#define R92E_TX_PAGE_COUNT 248
-#define R92E_TX_PAGE_BOUNDARY (R92E_TX_PAGE_COUNT + 1)
#define R92E_MAX_RX_DMA_SIZE 0x3fc0
#define R92C_TXDESC_SUMSIZE 32
@@ -234,8 +238,9 @@ int urtwn_debug = 4;
#define URTWN_DEV(v, p, f) \
{ { USB_VENDOR_##v, USB_PRODUCT_##v##_##p }, (f) | RTWN_CHIP_USB }
#define URTWN_DEV_8192CU(v, p) URTWN_DEV(v, p, RTWN_CHIP_92C | RTWN_CHIP_88C)
-#define URTWN_DEV_8188EU(v, p) URTWN_DEV(v, p, RTWN_CHIP_88E)
#define URTWN_DEV_8192EU(v, p) URTWN_DEV(v, p, RTWN_CHIP_92E)
+#define URTWN_DEV_8188EU(v, p) URTWN_DEV(v, p, RTWN_CHIP_88E)
+#define URTWN_DEV_8188F(v, p) URTWN_DEV(v, p, RTWN_CHIP_88F)
static const struct urtwn_type {
struct usb_devno dev;
uint32_t chip;
@@ -332,6 +337,8 @@ static const struct urtwn_type {
URTWN_DEV_8188EU(REALTEK, RTL8188EU),
URTWN_DEV_8188EU(TPLINK, RTL8188EUS),
URTWN_DEV_8188EU(ASUS, RTL8188EUS),
+ /* URTWN_RTL8188FTV */
+ URTWN_DEV_8188F(REALTEK, RTL8188FTV),
/* URTWN_RTL8192EU */
URTWN_DEV_8192EU(DLINK, DWA131E1),
@@ -399,6 +406,7 @@ int urtwn_alloc_buffers(void *);
int urtwn_r92c_power_on(struct urtwn_softc *);
int urtwn_r92e_power_on(struct urtwn_softc *);
int urtwn_r88e_power_on(struct urtwn_softc *);
+int urtwn_r88f_power_on(struct urtwn_softc *);
int urtwn_llt_init(struct urtwn_softc *, int);
int urtwn_fw_loadpage(void *, int, uint8_t *, int);
int urtwn_load_firmware(void *, u_char **, size_t *);
@@ -1188,7 +1196,7 @@ urtwn_rx_frame(struct urtwn_softc *sc, uint8_t *buf, int pktlen,
return;
}
- rate = (sc->sc_sc.chip & RTWN_CHIP_92E) ?
+ rate = (sc->sc_sc.chip & (RTWN_CHIP_88F | RTWN_CHIP_92E)) ?
MS(rxdw3, R92E_RXDW3_RATE) : MS(rxdw3, R92C_RXDW3_RATE);
infosz = MS(rxdw0, R92C_RXDW0_INFOSZ) * 8;
@@ -1346,7 +1354,7 @@ urtwn_rxeof(struct usbd_xfer *xfer, void *priv,
goto resubmit;
}
- } else if (sc->sc_sc.chip & RTWN_CHIP_92E) {
+ } else if (sc->sc_sc.chip & (RTWN_CHIP_88F | RTWN_CHIP_92E)) {
int type;
struct r92e_c2h_tx_rpt *txrpt;
@@ -1372,7 +1380,7 @@ urtwn_rxeof(struct usbd_xfer *xfer, void *priv,
}
}
- align = (sc->sc_sc.chip & RTWN_CHIP_92E ? 7 : 127);
+ align = ((sc->sc_sc.chip & (RTWN_CHIP_88F | RTWN_CHIP_92E)) ? 7 : 127);
/* Process all of them. */
while (npkts-- > 0) {
@@ -1672,7 +1680,7 @@ urtwn_tx(void *cookie, struct mbuf *m, struct ieee80211_node *ni)
/* Fill Tx descriptor. */
txdp = data->buf;
- if (sc->sc_sc.chip & RTWN_CHIP_92E)
+ if (sc->sc_sc.chip & (RTWN_CHIP_88F | RTWN_CHIP_92E))
urtwn_tx_fill_desc_gen2(sc, &txdp, m, wh, k, ni);
else
urtwn_tx_fill_desc(sc, &txdp, m, wh, k, ni);
@@ -1969,6 +1977,66 @@ urtwn_r88e_power_on(struct urtwn_softc *sc)
}
int
+urtwn_r88f_power_on(struct urtwn_softc *sc)
+{
+ uint32_t reg;
+ int ntries;
+
+ /* Enable WL suspend. */
+ urtwn_write_2(sc, R92C_APS_FSMCO,
+ urtwn_read_2(sc, R92C_APS_FSMCO) &
+ ~(R92C_APS_FSMCO_AFSM_HSUS | R92C_APS_FSMCO_AFSM_PCIE));
+ /* Turn off USB APHY LDO under suspend mode. */
+ urtwn_write_1(sc, 0xc4, urtwn_read_1(sc, 0xc4) & ~0x10);
+
+ /* Disable SW LPS. */
+ urtwn_write_2(sc, R92C_APS_FSMCO,
+ urtwn_read_2(sc, R92C_APS_FSMCO) & ~R92C_APS_FSMCO_APFM_RSM);
+ /* Wait for power ready bit. */
+ for (ntries = 0; ntries < 5000; ntries++) {
+ if (urtwn_read_4(sc, R92C_APS_FSMCO) & R92C_APS_FSMCO_SUS_HOST)
+ break;
+ DELAY(10);
+ }
+ if (ntries == 5000) {
+ printf("%s: timeout waiting for chip power up\n",
+ sc->sc_dev.dv_xname);
+ return (ETIMEDOUT);
+ }
+ /* Disable HWPDN. */
+ urtwn_write_2(sc, R92C_APS_FSMCO,
+ urtwn_read_2(sc, R92C_APS_FSMCO) & ~R92C_APS_FSMCO_APDM_HPDN);
+ /* Disable WL suspend. */
+ urtwn_write_2(sc, R92C_APS_FSMCO,
+ urtwn_read_2(sc, R92C_APS_FSMCO) & ~R92C_APS_FSMCO_AFSM_HSUS);
+ /* Auto enable WLAN. */
+ urtwn_write_2(sc, R92C_APS_FSMCO,
+ urtwn_read_2(sc, R92C_APS_FSMCO) | R92C_APS_FSMCO_APFM_ONMAC);
+ for (ntries = 0; ntries < 5000; ntries++) {
+ if (!(urtwn_read_2(sc, R92C_APS_FSMCO) &
+ R92C_APS_FSMCO_APFM_ONMAC))
+ break;
+ DELAY(10);
+ }
+ if (ntries == 5000) {
+ printf("%s: timeout waiting for MAC auto ON\n",
+ sc->sc_dev.dv_xname);
+ return (ETIMEDOUT);
+ }
+ /* Reduce RF noise. */
+ urtwn_write_1(sc, R92C_AFE_LDO_CTRL, 0x35);
+
+ /* Enable MAC DMA/WMAC/SCHEDULE/SEC blocks. */
+ urtwn_write_2(sc, R92C_CR, 0);
+ reg = urtwn_read_2(sc, R92C_CR);
+ reg |= R92C_CR_HCI_TXDMA_EN | R92C_CR_HCI_RXDMA_EN |
+ R92C_CR_TXDMA_EN | R92C_CR_RXDMA_EN | R92C_CR_PROTOCOL_EN |
+ R92C_CR_SCHEDULE_EN | R92C_CR_ENSEC | R92C_CR_CALTMR_EN;
+ urtwn_write_2(sc, R92C_CR, reg);
+ return (0);
+}
+
+int
urtwn_llt_init(struct urtwn_softc *sc, int page_count)
{
int i, error, pktbuf_count;
@@ -2002,8 +2070,8 @@ urtwn_auto_llt_init(struct urtwn_softc *sc)
{
int ntries;
- urtwn_write_4(sc, R92E_AUTO_LLT, urtwn_read_4(sc,
- R92E_AUTO_LLT) | R92E_AUTO_LLT_EN);
+ urtwn_write_4(sc, R92E_AUTO_LLT,
+ urtwn_read_4(sc, R92E_AUTO_LLT) | R92E_AUTO_LLT_EN);
for (ntries = 0; ntries < 1000; ntries++) {
if (!(urtwn_read_4(sc, R92E_AUTO_LLT) & R92E_AUTO_LLT_EN))
return (0);
@@ -2055,6 +2123,8 @@ urtwn_load_firmware(void *cookie, u_char **fw, size_t *len)
name = "urtwn-rtl8192eu";
else if (sc->sc_sc.chip & RTWN_CHIP_88E)
name = "urtwn-rtl8188eu";
+ else if (sc->sc_sc.chip & RTWN_CHIP_88F)
+ name = "urtwn-rtl8188ftv";
else if ((sc->sc_sc.chip & (RTWN_CHIP_UMC_A_CUT | RTWN_CHIP_92C)) ==
RTWN_CHIP_UMC_A_CUT)
name = "urtwn-rtl8192cU";
@@ -2083,30 +2153,33 @@ urtwn_dma_init(void *cookie)
lqpages = R88E_LQ_NPAGES;
nqpages = R88E_NQ_NPAGES;
pagecnt = R88E_TX_PAGE_COUNT;
- boundary = R88E_TX_PAGE_BOUNDARY;
dmasize = R88E_MAX_RX_DMA_SIZE;
+ } else if (sc->sc_sc.chip & RTWN_CHIP_88F) {
+ hqpages = R88F_HQ_NPAGES;
+ lqpages = R88F_LQ_NPAGES;
+ nqpages = R88F_NQ_NPAGES;
+ pagecnt = R88F_TX_PAGE_COUNT;
+ dmasize = R88F_MAX_RX_DMA_SIZE;
} else if (sc->sc_sc.chip & RTWN_CHIP_92E) {
hqpages = R92E_HQ_NPAGES;
lqpages = R92E_LQ_NPAGES;
nqpages = R92E_NQ_NPAGES;
pagecnt = R92E_TX_PAGE_COUNT;
- boundary = R92E_TX_PAGE_BOUNDARY;
dmasize = R92E_MAX_RX_DMA_SIZE;
} else {
hqpages = R92C_HQ_NPAGES;
lqpages = R92C_LQ_NPAGES;
nqpages = R92C_NQ_NPAGES;
pagecnt = R92C_TX_PAGE_COUNT;
- boundary = R92C_TX_PAGE_BOUNDARY;
dmasize = R92C_MAX_RX_DMA_SIZE;
}
+ boundary = pagecnt + 1;
/* Initialize LLT table. */
- if (sc->sc_sc.chip & RTWN_CHIP_92E) {
+ if (sc->sc_sc.chip & (RTWN_CHIP_88F | RTWN_CHIP_92E))
error = urtwn_auto_llt_init(sc);
- } else {
+ else
error = urtwn_llt_init(sc, pagecnt);
- }
if (error != 0)
return (error);
@@ -2163,9 +2236,15 @@ urtwn_dma_init(void *cookie)
if (!(sc->sc_sc.chip & RTWN_CHIP_92E)) {
/* Set Tx/Rx transfer page size. */
- urtwn_write_1(sc, R92C_PBP,
- SM(R92C_PBP_PSRX, R92C_PBP_128) |
- SM(R92C_PBP_PSTX, R92C_PBP_128));
+ if (sc->sc_sc.chip & RTWN_CHIP_88F) {
+ urtwn_write_1(sc, R92C_PBP,
+ SM(R92C_PBP_PSRX, R92C_PBP_256) |
+ SM(R92C_PBP_PSTX, R92C_PBP_256));
+ } else {
+ urtwn_write_1(sc, R92C_PBP,
+ SM(R92C_PBP_PSRX, R92C_PBP_128) |
+ SM(R92C_PBP_PSTX, R92C_PBP_128));
+ }
}
return (error);
}
@@ -2178,10 +2257,14 @@ urtwn_aggr_init(void *cookie)
int dmasize, dmatiming, ndesc;
/* Set burst packet length. */
- if (sc->sc_sc.chip & RTWN_CHIP_92E)
+ if (sc->sc_sc.chip & (RTWN_CHIP_88F | RTWN_CHIP_92E))
urtwn_burstlen_init(sc);
- if (sc->sc_sc.chip & RTWN_CHIP_92E) {
+ if (sc->sc_sc.chip & RTWN_CHIP_88F) {
+ dmasize = 5;
+ dmatiming = 32;
+ ndesc = 6;
+ } else if (sc->sc_sc.chip & RTWN_CHIP_92E) {
dmasize = 6;
dmatiming = 32;
ndesc = 3;
@@ -2195,7 +2278,7 @@ urtwn_aggr_init(void *cookie)
reg = urtwn_read_4(sc, R92C_TDECTRL);
reg = RW(reg, R92C_TDECTRL_BLK_DESC_NUM, ndesc);
urtwn_write_4(sc, R92C_TDECTRL, reg);
- if (sc->sc_sc.chip & RTWN_CHIP_92E)
+ if (sc->sc_sc.chip & (RTWN_CHIP_88F | RTWN_CHIP_92E))
urtwn_write_1(sc, R92E_DWBCN1_CTRL, ndesc << 1);
/* Rx aggregation setting. */
@@ -2208,6 +2291,11 @@ urtwn_aggr_init(void *cookie)
else
urtwn_write_1(sc, R92C_RXDMA_AGG_PG_TH + 1, dmatiming);
+ if (sc->sc_sc.chip & RTWN_CHIP_88F) {
+ urtwn_write_1(sc, R92E_RXDMA_PRO,
+ urtwn_read_1(sc, R92E_RXDMA_PRO) | R92E_RXDMA_PRO_DMA_MODE);
+ }
+
/* Drop incorrect bulk out. */
urtwn_write_4(sc, R92C_TXDMA_OFFSET_CHK,
urtwn_read_4(sc, R92C_TXDMA_OFFSET_CHK) |
@@ -2227,6 +2315,11 @@ urtwn_mac_init(void *cookie)
rtl8188eu_mac[i].val);
}
urtwn_write_1(sc, R92C_MAX_AGGR_NUM, 0x07);
+ } else if (sc->sc_sc.chip & RTWN_CHIP_88F) {
+ for (i = 0; i < nitems(rtl8188ftv_mac); i++) {
+ urtwn_write_1(sc, rtl8188ftv_mac[i].reg,
+ rtl8188ftv_mac[i].val);
+ }
} else if (sc->sc_sc.chip & RTWN_CHIP_92E) {
for (i = 0; i < nitems(rtl8192eu_mac); i++) {
urtwn_write_1(sc, rtl8192eu_mac[i].reg,
@@ -2254,7 +2347,7 @@ urtwn_bb_init(void *cookie)
R92C_SYS_FUNC_EN_BBRSTB | R92C_SYS_FUNC_EN_BB_GLB_RST |
R92C_SYS_FUNC_EN_DIO_RF);
- if (!(sc->sc_sc.chip & (RTWN_CHIP_88E | RTWN_CHIP_92E)))
+ if (!(sc->sc_sc.chip & (RTWN_CHIP_88E | RTWN_CHIP_88F | RTWN_CHIP_92E)))
urtwn_write_2(sc, R92C_AFE_PLL_CTRL, 0xdb83);
urtwn_write_1(sc, R92C_RF_CTRL,
@@ -2263,7 +2356,8 @@ urtwn_bb_init(void *cookie)
R92C_SYS_FUNC_EN_USBA | R92C_SYS_FUNC_EN_USBD |
R92C_SYS_FUNC_EN_BB_GLB_RST | R92C_SYS_FUNC_EN_BBRSTB);
- if (!(sc->sc_sc.chip & (RTWN_CHIP_88E | RTWN_CHIP_92E))) {
+ if (!(sc->sc_sc.chip &
+ (RTWN_CHIP_88E | RTWN_CHIP_88F | RTWN_CHIP_92E))) {
urtwn_write_1(sc, R92C_LDOHCI12_CTRL, 0x0f);
urtwn_write_1(sc, 0x15, 0xe9);
urtwn_write_1(sc, R92C_AFE_XTAL_CTRL + 1, 0x80);
@@ -2272,6 +2366,8 @@ urtwn_bb_init(void *cookie)
/* Select BB programming based on board type. */
if (sc->sc_sc.chip & RTWN_CHIP_88E)
prog = &rtl8188eu_bb_prog;
+ else if (sc->sc_sc.chip & RTWN_CHIP_88F)
+ prog = &rtl8188ftv_bb_prog;
else if (sc->sc_sc.chip & RTWN_CHIP_92E)
prog = &rtl8192eu_bb_prog;
else if (!(sc->sc_sc.chip & RTWN_CHIP_92C)) {
@@ -2339,7 +2435,7 @@ urtwn_bb_init(void *cookie)
DELAY(1);
}
- if (sc->sc_sc.chip & RTWN_CHIP_88E) {
+ if (sc->sc_sc.chip & (RTWN_CHIP_88E | RTWN_CHIP_88F)) {
urtwn_bb_write(sc, R92C_OFDM0_AGCCORE1(0), 0x69553422);
DELAY(1);
urtwn_bb_write(sc, R92C_OFDM0_AGCCORE1(0), 0x69553420);
@@ -2351,7 +2447,7 @@ urtwn_bb_init(void *cookie)
DELAY(1);
}
- if (sc->sc_sc.chip & RTWN_CHIP_88E) {
+ if (sc->sc_sc.chip & (RTWN_CHIP_88E | RTWN_CHIP_88F)) {
xtal = sc->sc_sc.crystal_cap & 0x3f;
reg = urtwn_bb_read(sc, R92C_AFE_XTAL_CTRL);
urtwn_bb_write(sc, R92C_AFE_XTAL_CTRL,
@@ -2383,6 +2479,30 @@ urtwn_burstlen_init(struct urtwn_softc *sc)
urtwn_write_1(sc, R92E_RXDMA_PRO, reg | 0x2e);
break;
}
+
+ if (sc->sc_sc.chip & RTWN_CHIP_88F) {
+ /* Setup AMPDU aggregation. */
+ urtwn_write_1(sc, R88F_HT_SINGLE_AMPDU,
+ urtwn_read_1(sc, R88F_HT_SINGLE_AMPDU) |
+ R88F_HT_SINGLE_AMPDU_EN);
+ urtwn_write_2(sc, R92C_MAX_AGGR_NUM, 0x0c14);
+ urtwn_write_1(sc, R88F_AMPDU_MAX_TIME, 0x70);
+ urtwn_write_4(sc, R92C_AGGLEN_LMT, 0xffffffff);
+
+ /* For VHT packet length 11K */
+ urtwn_write_1(sc, R88F_RX_PKT_LIMIT, 0x18);
+
+ urtwn_write_1(sc, R92C_PIFS, 0);
+ urtwn_write_1(sc, R92C_FWHW_TXQ_CTRL, 0x80);
+ urtwn_write_4(sc, R92C_FAST_EDCA_CTRL, 0x03086666);
+ urtwn_write_1(sc, R92C_USTIME_TSF, 0x28);
+ urtwn_write_1(sc, R88F_USTIME_EDCA, 0x28);
+
+ /* To prevent mac is reseted by bus. */
+ urtwn_write_1(sc, R92C_RSV_CTRL,
+ urtwn_read_1(sc, R92C_RSV_CTRL) |
+ R92C_RSV_CTRL_R_DIS_PRST_0 | R92C_RSV_CTRL_R_DIS_PRST_1);
+ }
}
int
@@ -2392,6 +2512,8 @@ urtwn_power_on(void *cookie)
if (sc->sc_sc.chip & RTWN_CHIP_88E)
return (urtwn_r88e_power_on(sc));
+ else if (sc->sc_sc.chip & RTWN_CHIP_88F)
+ return (urtwn_r88f_power_on(sc));
else if (sc->sc_sc.chip & RTWN_CHIP_92E)
return (urtwn_r92e_power_on(sc));
diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs
index 6393134add1..f2b82c103fd 100644
--- a/sys/dev/usb/usbdevs
+++ b/sys/dev/usb/usbdevs
@@ -1,4 +1,4 @@
-$OpenBSD: usbdevs,v 1.754 2023/04/02 23:55:12 dlg Exp $
+$OpenBSD: usbdevs,v 1.755 2023/04/28 01:24:14 kevlo Exp $
/* $NetBSD: usbdevs,v 1.322 2003/05/10 17:47:14 hamajima Exp $ */
/*
@@ -3809,6 +3809,7 @@ product REALTEK RTL8713 0x8713 RTL8713
product REALTEK RTL8188CU_COMBO 0x8754 RTL8188CU
product REALTEK RTL8723BU 0xb720 RTL8723BU
product REALTEK RTL8192SU 0xc512 RTL8192SU
+product REALTEK RTL8188FTV 0xf179 RTL8188FTV
/* Renesas products */
product RENESAS RX610 0x0053 RX610 RX-Stick