summaryrefslogtreecommitdiff
path: root/kernel/drv/oss_sblive
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2013-05-03 21:08:42 +0400
committerIgor Pashev <pashev.igor@gmail.com>2013-05-03 21:08:42 +0400
commit1058def8e7827e56ce4a70afb4aeacb5dc44148f (patch)
tree4495d23e7b54ab5700e3839081e797c1eafe0db9 /kernel/drv/oss_sblive
downloadoss4-upstream.tar.gz
Imported Upstream version 4.2-build2006upstream/4.2-build2006upstream
Diffstat (limited to 'kernel/drv/oss_sblive')
-rw-r--r--kernel/drv/oss_sblive/.devices7
-rw-r--r--kernel/drv/oss_sblive/.name1
-rw-r--r--kernel/drv/oss_sblive/.params25
-rw-r--r--kernel/drv/oss_sblive/emu10k1_dsp.h989
-rw-r--r--kernel/drv/oss_sblive/emu10k1_dsp_be.h989
-rw-r--r--kernel/drv/oss_sblive/emu10k2_dsp.h989
-rw-r--r--kernel/drv/oss_sblive/emu10k2_dsp_be.h989
-rw-r--r--kernel/drv/oss_sblive/oss_sblive.c3985
-rw-r--r--kernel/drv/oss_sblive/oss_sblive.man226
-rw-r--r--kernel/drv/oss_sblive/sblive.h535
10 files changed, 8735 insertions, 0 deletions
diff --git a/kernel/drv/oss_sblive/.devices b/kernel/drv/oss_sblive/.devices
new file mode 100644
index 0000000..56d10f0
--- /dev/null
+++ b/kernel/drv/oss_sblive/.devices
@@ -0,0 +1,7 @@
+oss_sblive pci1102,2 Creative Sound Blaster Live
+oss_sblive pcs1102,8040 Creative Sound Blaster Live 1024/Platinum
+oss_sblive pcs1102,8061 Creative Sound Blaster Live 5.1/Platinum IR
+oss_sblive pci1102,4 Creative Sound Blaster Audigy/Audigy2
+oss_sblive pcs1102,51 Creative Sound Blaster Audigy Platinum
+oss_sblive pci1102,8 Creative Sound Blaster Audigy2 Value/Audigy4
+oss_sblive pci1102,2001 Creative Sound Blaster Audigy2 ZS PCMCIA
diff --git a/kernel/drv/oss_sblive/.name b/kernel/drv/oss_sblive/.name
new file mode 100644
index 0000000..2bcb686
--- /dev/null
+++ b/kernel/drv/oss_sblive/.name
@@ -0,0 +1 @@
+Creative Sound Blaster Live/Audigy
diff --git a/kernel/drv/oss_sblive/.params b/kernel/drv/oss_sblive/.params
new file mode 100644
index 0000000..7720436
--- /dev/null
+++ b/kernel/drv/oss_sblive/.params
@@ -0,0 +1,25 @@
+int sblive_memlimit = 8;
+/*
+ * Amount of memory allocated to SBLive Synth.
+ * Values: 4-4096 (in megabytes). Default: 8MB
+ */
+
+int sblive_devices = 0;
+/*
+ * Specifies number of audio output engines for SBLive/Audigy.
+ * Changing this setting is not recommanded.
+ * Values: 0, 5-32
+ * Default: 0 (Use device dependent optimum value).
+ */
+
+int sblive_digital_din = 0;
+/*
+ * Sets the SPDIF/Analog combo output to audio or spdif mode
+ * Values: 1 = Digital, 0=Analog Default: 0
+ */
+
+int audigy_digital_din = 1;
+/*
+ * Sets the SPDIF/Analog combo output to analog or spdif mode
+ * Values: 1 = Digital, 0 = Analog Default: 1
+ */
diff --git a/kernel/drv/oss_sblive/emu10k1_dsp.h b/kernel/drv/oss_sblive/emu10k1_dsp.h
new file mode 100644
index 0000000..87b4b3b
--- /dev/null
+++ b/kernel/drv/oss_sblive/emu10k1_dsp.h
@@ -0,0 +1,989 @@
+/*
+ * Purpose: DSP firmware file for Live!
+ */
+/*
+ *
+ * This file is part of Open Sound System.
+ *
+ * Copyright (C) 4Front Technologies 1996-2008.
+ *
+ * This this source file is released under GPL v2 license (no other versions).
+ * See the COPYING file included in the main directory of this source
+ * distribution for the license terms and conditions.
+ *
+ */
+static unsigned char emu10k1_dsp[] = {
+ 0x01, 0x00, 0xe1, 0x00, 0x01, 0x00, 0x00, 0x00, 0x96, 0x01, 0x00, 0x00,
+ 0x44, 0x00, 0x00, 0x00,
+ 0x40, 0x18, 0x44, 0x00, 0x44, 0x04, 0x00, 0x00, 0x40, 0x1c, 0x44, 0x00,
+ 0x02, 0x19, 0x04, 0x00,
+ 0x40, 0x20, 0x04, 0x00, 0x03, 0x1d, 0x04, 0x00, 0x40, 0x24, 0x04, 0x00,
+ 0x44, 0x08, 0x00, 0x00,
+ 0x40, 0x28, 0x44, 0x00, 0x44, 0x0c, 0x00, 0x00, 0x40, 0x2c, 0x44, 0x00,
+ 0x02, 0x29, 0x04, 0x00,
+ 0x40, 0x28, 0x04, 0x00, 0x03, 0x2d, 0x04, 0x00, 0x40, 0x2c, 0x04, 0x00,
+ 0x36, 0x21, 0x04, 0x00,
+ 0x40, 0x30, 0x04, 0x00, 0x36, 0x25, 0x04, 0x00, 0x40, 0x34, 0x04, 0x00,
+ 0x40, 0x30, 0x04, 0x00,
+ 0x0c, 0x41, 0x94, 0x00, 0x10, 0xdd, 0x04, 0x00, 0x37, 0xdd, 0xa4, 0x00,
+ 0x40, 0x34, 0x04, 0x00,
+ 0x0d, 0x41, 0x94, 0x00, 0x10, 0xe1, 0x04, 0x00, 0x38, 0xe1, 0xa4, 0x00,
+ 0x30, 0x49, 0x00, 0x00,
+ 0x0c, 0x31, 0x04, 0x00, 0x30, 0x4d, 0x00, 0x00, 0x0d, 0x35, 0x04, 0x00,
+ 0x30, 0x49, 0x00, 0x00,
+ 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x11, 0x41, 0x94, 0x00,
+ 0x10, 0xc5, 0x04, 0x00,
+ 0x31, 0xc5, 0xa4, 0x00, 0x30, 0x4d, 0x00, 0x00, 0x40, 0x44, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00,
+ 0x11, 0x41, 0x94, 0x00, 0x10, 0xc9, 0x04, 0x00, 0x32, 0xc9, 0xa4, 0x00,
+ 0x33, 0x41, 0x00, 0x00,
+ 0x0c, 0x31, 0x04, 0x00, 0x33, 0x45, 0x00, 0x00, 0x0d, 0x35, 0x04, 0x00,
+ 0x33, 0x41, 0x00, 0x00,
+ 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x11, 0x41, 0x94, 0x00,
+ 0x10, 0xd1, 0x04, 0x00,
+ 0x34, 0xd1, 0xa4, 0x00, 0x33, 0x45, 0x00, 0x00, 0x40, 0x44, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00,
+ 0x11, 0x41, 0x94, 0x00, 0x10, 0xd5, 0x04, 0x00, 0x35, 0xd5, 0xa4, 0x00,
+ 0x2d, 0x59, 0x00, 0x00,
+ 0x0c, 0x31, 0x04, 0x00, 0x2d, 0x5d, 0x00, 0x00, 0x0d, 0x35, 0x04, 0x00,
+ 0x2d, 0x59, 0x00, 0x00,
+ 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x11, 0x41, 0x94, 0x00,
+ 0x10, 0xb9, 0x04, 0x00,
+ 0x2e, 0xb9, 0xa4, 0x00, 0x2d, 0x5d, 0x00, 0x00, 0x40, 0x44, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00,
+ 0x11, 0x41, 0x94, 0x00, 0x10, 0xbd, 0x04, 0x00, 0x2f, 0xbd, 0xa4, 0x00,
+ 0x2d, 0x59, 0x00, 0x00,
+ 0x0c, 0x31, 0x04, 0x00, 0x2d, 0x5d, 0x00, 0x00, 0x0d, 0x35, 0x04, 0x00,
+ 0x39, 0x71, 0x00, 0x00,
+ 0x0c, 0x31, 0x04, 0x00, 0x39, 0x75, 0x00, 0x00, 0x0d, 0x35, 0x04, 0x00,
+ 0x39, 0x71, 0x00, 0x00,
+ 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x11, 0x41, 0x94, 0x00,
+ 0x10, 0xe9, 0x04, 0x00,
+ 0x3a, 0xe9, 0xa4, 0x00, 0x39, 0x75, 0x00, 0x00, 0x40, 0x44, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00,
+ 0x11, 0x41, 0x94, 0x00, 0x10, 0xed, 0x04, 0x00, 0x3b, 0xed, 0xa4, 0x00,
+ 0x04, 0x31, 0x04, 0x00,
+ 0x40, 0x30, 0x04, 0x00, 0x05, 0x35, 0x04, 0x00, 0x40, 0x34, 0x04, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x0c, 0xa5, 0x65, 0x00, 0x40, 0x00, 0x01, 0x00, 0x0c, 0xa1, 0x65, 0x00,
+ 0x16, 0xa5, 0x05, 0x00,
+ 0x40, 0xa4, 0x05, 0x00, 0x6e, 0xa5, 0x05, 0x00, 0x40, 0xa4, 0x05, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x82, 0x0d, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x81, 0x09, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x69, 0x05, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x85, 0x19, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x84, 0x15, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x10, 0x66, 0x00,
+ 0x26, 0x05, 0x06, 0x00,
+ 0x40, 0x10, 0x06, 0x00, 0x27, 0x09, 0x06, 0x00, 0x84, 0x11, 0x06, 0x00,
+ 0x28, 0x15, 0x06, 0x00,
+ 0x84, 0x11, 0x06, 0x00, 0x29, 0x0d, 0x06, 0x00, 0x84, 0x11, 0x06, 0x00,
+ 0x2a, 0x19, 0x06, 0x00,
+ 0x84, 0x11, 0x06, 0x00, 0x6c, 0x11, 0x06, 0x00, 0x40, 0x10, 0x46, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x84, 0xa5, 0x65, 0x00, 0x40, 0x00, 0x01, 0x00, 0x7c, 0xf5, 0x65, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x7b, 0xf1, 0x65, 0x00, 0x40, 0x00, 0x01, 0x00, 0x69, 0xed, 0x65, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x7f, 0x01, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x7e, 0xfd, 0x65, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0xf8, 0x65, 0x00, 0x21, 0xed, 0x05, 0x00, 0x40, 0xf8, 0x05, 0x00,
+ 0x22, 0xf1, 0x05, 0x00,
+ 0x7e, 0xf9, 0x05, 0x00, 0x23, 0xfd, 0x05, 0x00, 0x7e, 0xf9, 0x05, 0x00,
+ 0x24, 0xf5, 0x05, 0x00,
+ 0x7e, 0xf9, 0x05, 0x00, 0x25, 0x01, 0x06, 0x00, 0x7e, 0xf9, 0x05, 0x00,
+ 0x6c, 0xf9, 0x05, 0x00,
+ 0x40, 0xf8, 0x45, 0x00, 0x40, 0x00, 0x01, 0x00, 0x7e, 0xa5, 0x65, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x76, 0xdd, 0x65, 0x00, 0x40, 0x00, 0x01, 0x00, 0x75, 0xd9, 0x65, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x69, 0xd5, 0x65, 0x00, 0x40, 0x00, 0x01, 0x00, 0x79, 0xe9, 0x65, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x78, 0xe5, 0x65, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0xe0, 0x65, 0x00,
+ 0x1c, 0xd5, 0x05, 0x00,
+ 0x40, 0xe0, 0x05, 0x00, 0x1d, 0xd9, 0x05, 0x00, 0x78, 0xe1, 0x05, 0x00,
+ 0x1e, 0xe5, 0x05, 0x00,
+ 0x78, 0xe1, 0x05, 0x00, 0x1f, 0xdd, 0x05, 0x00, 0x78, 0xe1, 0x05, 0x00,
+ 0x20, 0xe9, 0x05, 0x00,
+ 0x78, 0xe1, 0x05, 0x00, 0x6c, 0xe1, 0x05, 0x00, 0x40, 0xe0, 0x45, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x78, 0xa5, 0x65, 0x00, 0x40, 0x00, 0x01, 0x00, 0x70, 0xc5, 0x65, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x6f, 0xc1, 0x65, 0x00, 0x40, 0x00, 0x01, 0x00, 0x69, 0xbd, 0x65, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x73, 0xd1, 0x65, 0x00, 0x40, 0x00, 0x01, 0x00, 0x72, 0xcd, 0x65, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0xc8, 0x65, 0x00, 0x17, 0xbd, 0x05, 0x00, 0x40, 0xc8, 0x05, 0x00,
+ 0x18, 0xc1, 0x05, 0x00,
+ 0x72, 0xc9, 0x05, 0x00, 0x19, 0xcd, 0x05, 0x00, 0x72, 0xc9, 0x05, 0x00,
+ 0x1a, 0xc5, 0x05, 0x00,
+ 0x72, 0xc9, 0x05, 0x00, 0x1b, 0xd1, 0x05, 0x00, 0x72, 0xc9, 0x05, 0x00,
+ 0x6c, 0xc9, 0x05, 0x00,
+ 0x40, 0xc8, 0x45, 0x00, 0x40, 0x00, 0x01, 0x00, 0x72, 0xa5, 0x65, 0x00,
+ 0x6d, 0xa5, 0x05, 0x00,
+ 0x6b, 0xa5, 0x45, 0x00, 0x2c, 0xa5, 0x05, 0x00, 0x40, 0x30, 0x44, 0x00,
+ 0x2b, 0xa1, 0x05, 0x00,
+ 0x0c, 0x31, 0x44, 0x00, 0x40, 0x00, 0x01, 0x00, 0x0d, 0xa5, 0x65, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x0d, 0xa1, 0x65, 0x00, 0x16, 0xa5, 0x05, 0x00, 0x40, 0xa4, 0x05, 0x00,
+ 0x6e, 0xa5, 0x05, 0x00,
+ 0x40, 0xa4, 0x05, 0x00, 0x40, 0x00, 0x01, 0x00, 0x9a, 0x6d, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x99, 0x69, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x69, 0x65, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x9d, 0x79, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x9c, 0x75, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x70, 0x66, 0x00, 0x26, 0x65, 0x06, 0x00, 0x40, 0x70, 0x06, 0x00,
+ 0x27, 0x69, 0x06, 0x00,
+ 0x9c, 0x71, 0x06, 0x00, 0x28, 0x75, 0x06, 0x00, 0x9c, 0x71, 0x06, 0x00,
+ 0x29, 0x6d, 0x06, 0x00,
+ 0x9c, 0x71, 0x06, 0x00, 0x2a, 0x79, 0x06, 0x00, 0x9c, 0x71, 0x06, 0x00,
+ 0x6c, 0x71, 0x06, 0x00,
+ 0x40, 0x70, 0x46, 0x00, 0x40, 0x00, 0x01, 0x00, 0x9c, 0xa5, 0x65, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x94, 0x55, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x93, 0x51, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x69, 0x4d, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x97, 0x61, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x96, 0x5d, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x58, 0x66, 0x00,
+ 0x21, 0x4d, 0x06, 0x00,
+ 0x40, 0x58, 0x06, 0x00, 0x22, 0x51, 0x06, 0x00, 0x96, 0x59, 0x06, 0x00,
+ 0x23, 0x5d, 0x06, 0x00,
+ 0x96, 0x59, 0x06, 0x00, 0x24, 0x55, 0x06, 0x00, 0x96, 0x59, 0x06, 0x00,
+ 0x25, 0x61, 0x06, 0x00,
+ 0x96, 0x59, 0x06, 0x00, 0x6c, 0x59, 0x06, 0x00, 0x40, 0x58, 0x46, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x96, 0xa5, 0x65, 0x00, 0x40, 0x00, 0x01, 0x00, 0x8e, 0x3d, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x8d, 0x39, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x69, 0x35, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x91, 0x49, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x90, 0x45, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x40, 0x66, 0x00, 0x1c, 0x35, 0x06, 0x00, 0x40, 0x40, 0x06, 0x00,
+ 0x1d, 0x39, 0x06, 0x00,
+ 0x90, 0x41, 0x06, 0x00, 0x1e, 0x45, 0x06, 0x00, 0x90, 0x41, 0x06, 0x00,
+ 0x1f, 0x3d, 0x06, 0x00,
+ 0x90, 0x41, 0x06, 0x00, 0x20, 0x49, 0x06, 0x00, 0x90, 0x41, 0x06, 0x00,
+ 0x6c, 0x41, 0x06, 0x00,
+ 0x40, 0x40, 0x46, 0x00, 0x40, 0x00, 0x01, 0x00, 0x90, 0xa5, 0x65, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x88, 0x25, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x87, 0x21, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x69, 0x1d, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x8b, 0x31, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x8a, 0x2d, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x28, 0x66, 0x00,
+ 0x17, 0x1d, 0x06, 0x00,
+ 0x40, 0x28, 0x06, 0x00, 0x18, 0x21, 0x06, 0x00, 0x8a, 0x29, 0x06, 0x00,
+ 0x19, 0x2d, 0x06, 0x00,
+ 0x8a, 0x29, 0x06, 0x00, 0x1a, 0x25, 0x06, 0x00, 0x8a, 0x29, 0x06, 0x00,
+ 0x1b, 0x31, 0x06, 0x00,
+ 0x8a, 0x29, 0x06, 0x00, 0x6c, 0x29, 0x06, 0x00, 0x40, 0x28, 0x46, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x8a, 0xa5, 0x65, 0x00, 0x6d, 0xa5, 0x05, 0x00, 0x6b, 0xa5, 0x45, 0x00,
+ 0x2c, 0xa5, 0x05, 0x00,
+ 0x40, 0x34, 0x44, 0x00, 0x2b, 0xa1, 0x05, 0x00, 0x0d, 0x35, 0x44, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x0c, 0x89, 0x60, 0x00, 0x40, 0x00, 0x01, 0x00, 0x0d, 0x8d, 0x60, 0x00,
+ 0x40, 0x30, 0x04, 0x00,
+ 0x0c, 0x41, 0x94, 0x00, 0x10, 0x99, 0x05, 0x00, 0x66, 0x99, 0xa5, 0x00,
+ 0x40, 0x34, 0x04, 0x00,
+ 0x0d, 0x41, 0x94, 0x00, 0x10, 0x9d, 0x05, 0x00, 0x67, 0x9d, 0xa5, 0x00,
+ 0x3c, 0x31, 0x04, 0x00,
+ 0x40, 0x80, 0x00, 0x00, 0x3d, 0x35, 0x04, 0x00, 0x40, 0x84, 0x00, 0x00,
+ 0x3c, 0x31, 0x04, 0x00,
+ 0x40, 0x98, 0x00, 0x00, 0x3d, 0x35, 0x04, 0x00, 0x40, 0x9c, 0x00, 0x00,
+ 0x3c, 0x31, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x11, 0x41, 0x94, 0x00,
+ 0x10, 0xf9, 0x04, 0x00,
+ 0x3e, 0xf9, 0xa4, 0x00, 0x3d, 0x35, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00,
+ 0x11, 0x41, 0x94, 0x00, 0x10, 0xfd, 0x04, 0x00, 0x3f, 0xfd, 0xa4, 0x00,
+ 0x49, 0x29, 0x04, 0x00,
+ 0x40, 0x28, 0x04, 0x00, 0x49, 0x2d, 0x04, 0x00, 0x40, 0x2c, 0x04, 0x00,
+ 0x40, 0x28, 0x04, 0x00,
+ 0x0a, 0x41, 0x94, 0x00, 0x10, 0x29, 0x05, 0x00, 0x4a, 0x29, 0xa5, 0x00,
+ 0x40, 0x2c, 0x04, 0x00,
+ 0x0b, 0x41, 0x94, 0x00, 0x10, 0x2d, 0x05, 0x00, 0x4b, 0x2d, 0xa5, 0x00,
+ 0x43, 0x49, 0x00, 0x00,
+ 0x0a, 0x29, 0x04, 0x00, 0x43, 0x4d, 0x00, 0x00, 0x0b, 0x2d, 0x04, 0x00,
+ 0x43, 0x49, 0x00, 0x00,
+ 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x11, 0x41, 0x94, 0x00,
+ 0x10, 0x11, 0x05, 0x00,
+ 0x44, 0x11, 0xa5, 0x00, 0x43, 0x4d, 0x00, 0x00, 0x40, 0x44, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00,
+ 0x11, 0x41, 0x94, 0x00, 0x10, 0x15, 0x05, 0x00, 0x45, 0x15, 0xa5, 0x00,
+ 0x46, 0x41, 0x00, 0x00,
+ 0x0a, 0x29, 0x04, 0x00, 0x46, 0x45, 0x00, 0x00, 0x0b, 0x2d, 0x04, 0x00,
+ 0x46, 0x41, 0x00, 0x00,
+ 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x11, 0x41, 0x94, 0x00,
+ 0x10, 0x1d, 0x05, 0x00,
+ 0x47, 0x1d, 0xa5, 0x00, 0x46, 0x45, 0x00, 0x00, 0x40, 0x44, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00,
+ 0x11, 0x41, 0x94, 0x00, 0x10, 0x21, 0x05, 0x00, 0x48, 0x21, 0xa5, 0x00,
+ 0x40, 0x59, 0x00, 0x00,
+ 0x0a, 0x29, 0x04, 0x00, 0x40, 0x5d, 0x00, 0x00, 0x0b, 0x2d, 0x04, 0x00,
+ 0x40, 0x59, 0x00, 0x00,
+ 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x11, 0x41, 0x94, 0x00,
+ 0x10, 0x05, 0x05, 0x00,
+ 0x41, 0x05, 0xa5, 0x00, 0x40, 0x5d, 0x00, 0x00, 0x40, 0x44, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00,
+ 0x11, 0x41, 0x94, 0x00, 0x10, 0x09, 0x05, 0x00, 0x42, 0x09, 0xa5, 0x00,
+ 0x4c, 0x71, 0x00, 0x00,
+ 0x0a, 0x29, 0x04, 0x00, 0x4c, 0x75, 0x00, 0x00, 0x0b, 0x2d, 0x04, 0x00,
+ 0x4c, 0x71, 0x00, 0x00,
+ 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x11, 0x41, 0x94, 0x00,
+ 0x10, 0x35, 0x05, 0x00,
+ 0x4d, 0x35, 0xa5, 0x00, 0x4c, 0x75, 0x00, 0x00, 0x40, 0x44, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00,
+ 0x11, 0x41, 0x94, 0x00, 0x10, 0x39, 0x05, 0x00, 0x4e, 0x39, 0xa5, 0x00,
+ 0x04, 0x29, 0x04, 0x00,
+ 0x40, 0x18, 0x04, 0x00, 0x05, 0x2d, 0x04, 0x00, 0x40, 0x1c, 0x04, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x06, 0xa5, 0x65, 0x00, 0x40, 0x00, 0x01, 0x00, 0x06, 0xa1, 0x65, 0x00,
+ 0x16, 0xa5, 0x05, 0x00,
+ 0x40, 0xa4, 0x05, 0x00, 0x6e, 0xa5, 0x05, 0x00, 0x40, 0xa4, 0x05, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xb2, 0xcd, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0xb1, 0xc9, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x69, 0xc5, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0xb5, 0xd9, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xb4, 0xd5, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0xd0, 0x66, 0x00,
+ 0x26, 0xc5, 0x06, 0x00,
+ 0x40, 0xd0, 0x06, 0x00, 0x27, 0xc9, 0x06, 0x00, 0xb4, 0xd1, 0x06, 0x00,
+ 0x28, 0xd5, 0x06, 0x00,
+ 0xb4, 0xd1, 0x06, 0x00, 0x29, 0xcd, 0x06, 0x00, 0xb4, 0xd1, 0x06, 0x00,
+ 0x2a, 0xd9, 0x06, 0x00,
+ 0xb4, 0xd1, 0x06, 0x00, 0x6c, 0xd1, 0x06, 0x00, 0x40, 0xd0, 0x46, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xb4, 0xa5, 0x65, 0x00, 0x40, 0x00, 0x01, 0x00, 0xac, 0xb5, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xab, 0xb1, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x69, 0xad, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xaf, 0xc1, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0xae, 0xbd, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0xb8, 0x66, 0x00, 0x21, 0xad, 0x06, 0x00, 0x40, 0xb8, 0x06, 0x00,
+ 0x22, 0xb1, 0x06, 0x00,
+ 0xae, 0xb9, 0x06, 0x00, 0x23, 0xbd, 0x06, 0x00, 0xae, 0xb9, 0x06, 0x00,
+ 0x24, 0xb5, 0x06, 0x00,
+ 0xae, 0xb9, 0x06, 0x00, 0x25, 0xc1, 0x06, 0x00, 0xae, 0xb9, 0x06, 0x00,
+ 0x6c, 0xb9, 0x06, 0x00,
+ 0x40, 0xb8, 0x46, 0x00, 0x40, 0x00, 0x01, 0x00, 0xae, 0xa5, 0x65, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xa6, 0x9d, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0xa5, 0x99, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x69, 0x95, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0xa9, 0xa9, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xa8, 0xa5, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0xa0, 0x66, 0x00,
+ 0x1c, 0x95, 0x06, 0x00,
+ 0x40, 0xa0, 0x06, 0x00, 0x1d, 0x99, 0x06, 0x00, 0xa8, 0xa1, 0x06, 0x00,
+ 0x1e, 0xa5, 0x06, 0x00,
+ 0xa8, 0xa1, 0x06, 0x00, 0x1f, 0x9d, 0x06, 0x00, 0xa8, 0xa1, 0x06, 0x00,
+ 0x20, 0xa9, 0x06, 0x00,
+ 0xa8, 0xa1, 0x06, 0x00, 0x6c, 0xa1, 0x06, 0x00, 0x40, 0xa0, 0x46, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xa8, 0xa5, 0x65, 0x00, 0x40, 0x00, 0x01, 0x00, 0xa0, 0x85, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x9f, 0x81, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x69, 0x7d, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xa3, 0x91, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0xa2, 0x8d, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x88, 0x66, 0x00, 0x17, 0x7d, 0x06, 0x00, 0x40, 0x88, 0x06, 0x00,
+ 0x18, 0x81, 0x06, 0x00,
+ 0xa2, 0x89, 0x06, 0x00, 0x19, 0x8d, 0x06, 0x00, 0xa2, 0x89, 0x06, 0x00,
+ 0x1a, 0x85, 0x06, 0x00,
+ 0xa2, 0x89, 0x06, 0x00, 0x1b, 0x91, 0x06, 0x00, 0xa2, 0x89, 0x06, 0x00,
+ 0x6c, 0x89, 0x06, 0x00,
+ 0x40, 0x88, 0x46, 0x00, 0x40, 0x00, 0x01, 0x00, 0xa2, 0xa5, 0x65, 0x00,
+ 0x6d, 0xa5, 0x05, 0x00,
+ 0x6b, 0xa5, 0x45, 0x00, 0x2c, 0xa5, 0x05, 0x00, 0x40, 0x18, 0x44, 0x00,
+ 0x2b, 0xa1, 0x05, 0x00,
+ 0x06, 0x19, 0x44, 0x00, 0x40, 0x00, 0x01, 0x00, 0x07, 0xa5, 0x65, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x07, 0xa1, 0x65, 0x00, 0x16, 0xa5, 0x05, 0x00, 0x40, 0xa4, 0x05, 0x00,
+ 0x6e, 0xa5, 0x05, 0x00,
+ 0x40, 0xa4, 0x05, 0x00, 0x40, 0x00, 0x01, 0x00, 0xca, 0x2d, 0x67, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xc9, 0x29, 0x67, 0x00, 0x40, 0x00, 0x01, 0x00, 0x69, 0x25, 0x67, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xcd, 0x39, 0x67, 0x00, 0x40, 0x00, 0x01, 0x00, 0xcc, 0x35, 0x67, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x30, 0x67, 0x00, 0x26, 0x25, 0x07, 0x00, 0x40, 0x30, 0x07, 0x00,
+ 0x27, 0x29, 0x07, 0x00,
+ 0xcc, 0x31, 0x07, 0x00, 0x28, 0x35, 0x07, 0x00, 0xcc, 0x31, 0x07, 0x00,
+ 0x29, 0x2d, 0x07, 0x00,
+ 0xcc, 0x31, 0x07, 0x00, 0x2a, 0x39, 0x07, 0x00, 0xcc, 0x31, 0x07, 0x00,
+ 0x6c, 0x31, 0x07, 0x00,
+ 0x40, 0x30, 0x47, 0x00, 0x40, 0x00, 0x01, 0x00, 0xcc, 0xa5, 0x65, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xc4, 0x15, 0x67, 0x00, 0x40, 0x00, 0x01, 0x00, 0xc3, 0x11, 0x67, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x69, 0x0d, 0x67, 0x00, 0x40, 0x00, 0x01, 0x00, 0xc7, 0x21, 0x67, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xc6, 0x1d, 0x67, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x18, 0x67, 0x00,
+ 0x21, 0x0d, 0x07, 0x00,
+ 0x40, 0x18, 0x07, 0x00, 0x22, 0x11, 0x07, 0x00, 0xc6, 0x19, 0x07, 0x00,
+ 0x23, 0x1d, 0x07, 0x00,
+ 0xc6, 0x19, 0x07, 0x00, 0x24, 0x15, 0x07, 0x00, 0xc6, 0x19, 0x07, 0x00,
+ 0x25, 0x21, 0x07, 0x00,
+ 0xc6, 0x19, 0x07, 0x00, 0x6c, 0x19, 0x07, 0x00, 0x40, 0x18, 0x47, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xc6, 0xa5, 0x65, 0x00, 0x40, 0x00, 0x01, 0x00, 0xbe, 0xfd, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xbd, 0xf9, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x69, 0xf5, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xc1, 0x09, 0x67, 0x00, 0x40, 0x00, 0x01, 0x00, 0xc0, 0x05, 0x67, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x67, 0x00, 0x1c, 0xf5, 0x06, 0x00, 0x40, 0x00, 0x07, 0x00,
+ 0x1d, 0xf9, 0x06, 0x00,
+ 0xc0, 0x01, 0x07, 0x00, 0x1e, 0x05, 0x07, 0x00, 0xc0, 0x01, 0x07, 0x00,
+ 0x1f, 0xfd, 0x06, 0x00,
+ 0xc0, 0x01, 0x07, 0x00, 0x20, 0x09, 0x07, 0x00, 0xc0, 0x01, 0x07, 0x00,
+ 0x6c, 0x01, 0x07, 0x00,
+ 0x40, 0x00, 0x47, 0x00, 0x40, 0x00, 0x01, 0x00, 0xc0, 0xa5, 0x65, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xb8, 0xe5, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0xb7, 0xe1, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x69, 0xdd, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0xbb, 0xf1, 0x66, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xba, 0xed, 0x66, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0xe8, 0x66, 0x00,
+ 0x17, 0xdd, 0x06, 0x00,
+ 0x40, 0xe8, 0x06, 0x00, 0x18, 0xe1, 0x06, 0x00, 0xba, 0xe9, 0x06, 0x00,
+ 0x19, 0xed, 0x06, 0x00,
+ 0xba, 0xe9, 0x06, 0x00, 0x1a, 0xe5, 0x06, 0x00, 0xba, 0xe9, 0x06, 0x00,
+ 0x1b, 0xf1, 0x06, 0x00,
+ 0xba, 0xe9, 0x06, 0x00, 0x6c, 0xe9, 0x06, 0x00, 0x40, 0xe8, 0x46, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0xba, 0xa5, 0x65, 0x00, 0x6d, 0xa5, 0x05, 0x00, 0x6b, 0xa5, 0x45, 0x00,
+ 0x2c, 0xa5, 0x05, 0x00,
+ 0x40, 0x1c, 0x44, 0x00, 0x2b, 0xa1, 0x05, 0x00, 0x07, 0x1d, 0x44, 0x00,
+ 0x4f, 0x19, 0x04, 0x00,
+ 0x40, 0xa0, 0x00, 0x00, 0x50, 0x1d, 0x04, 0x00, 0x40, 0xa4, 0x00, 0x00,
+ 0x4f, 0x19, 0x04, 0x00,
+ 0x40, 0xb4, 0x00, 0x00, 0x50, 0x1d, 0x04, 0x00, 0x40, 0xb8, 0x00, 0x00,
+ 0x41, 0x10, 0x00, 0x00,
+ 0x40, 0x48, 0x44, 0x00, 0x41, 0x14, 0x00, 0x00, 0x40, 0x4c, 0x44, 0x00,
+ 0x4f, 0x19, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x11, 0x41, 0x94, 0x00,
+ 0x10, 0x45, 0x05, 0x00,
+ 0x51, 0x45, 0xa5, 0x00, 0x50, 0x1d, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00,
+ 0x11, 0x41, 0x94, 0x00, 0x10, 0x49, 0x05, 0x00, 0x52, 0x49, 0xa5, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x12, 0x91, 0x60, 0x00, 0x40, 0x00, 0x01, 0x00, 0x13, 0x95, 0x60, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x12, 0xc5, 0x60, 0x00, 0x40, 0x00, 0x01, 0x00, 0x13, 0xc9, 0x60, 0x00,
+ 0x59, 0x41, 0x00, 0x00,
+ 0x40, 0x18, 0x04, 0x00, 0x59, 0x45, 0x00, 0x00, 0x40, 0x1c, 0x04, 0x00,
+ 0x59, 0x41, 0x00, 0x00,
+ 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x11, 0x41, 0x94, 0x00,
+ 0x10, 0x69, 0x05, 0x00,
+ 0x5a, 0x69, 0xa5, 0x00, 0x59, 0x45, 0x00, 0x00, 0x40, 0x44, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00,
+ 0x11, 0x41, 0x94, 0x00, 0x10, 0x6d, 0x05, 0x00, 0x5b, 0x6d, 0xa5, 0x00,
+ 0x53, 0x59, 0x00, 0x00,
+ 0x06, 0x19, 0x04, 0x00, 0x53, 0x5d, 0x00, 0x00, 0x07, 0x1d, 0x04, 0x00,
+ 0x53, 0x59, 0x00, 0x00,
+ 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x11, 0x41, 0x94, 0x00,
+ 0x10, 0x51, 0x05, 0x00,
+ 0x54, 0x51, 0xa5, 0x00, 0x53, 0x5d, 0x00, 0x00, 0x40, 0x44, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00,
+ 0x11, 0x41, 0x94, 0x00, 0x10, 0x55, 0x05, 0x00, 0x55, 0x55, 0xa5, 0x00,
+ 0x56, 0x49, 0x00, 0x00,
+ 0x06, 0x19, 0x04, 0x00, 0x56, 0x4d, 0x00, 0x00, 0x07, 0x1d, 0x04, 0x00,
+ 0x56, 0x49, 0x00, 0x00,
+ 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x11, 0x41, 0x94, 0x00,
+ 0x10, 0x5d, 0x05, 0x00,
+ 0x57, 0x5d, 0xa5, 0x00, 0x56, 0x4d, 0x00, 0x00, 0x40, 0x44, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00,
+ 0x11, 0x41, 0x94, 0x00, 0x10, 0x61, 0x05, 0x00, 0x58, 0x61, 0xa5, 0x00,
+ 0x5c, 0x21, 0x04, 0x00,
+ 0x06, 0x19, 0x04, 0x00, 0x5c, 0x25, 0x04, 0x00, 0x07, 0x1d, 0x04, 0x00,
+ 0x5c, 0x21, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x11, 0x41, 0x94, 0x00,
+ 0x10, 0x75, 0x05, 0x00,
+ 0x5d, 0x75, 0xa5, 0x00, 0x5c, 0x25, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00,
+ 0x11, 0x41, 0x94, 0x00, 0x10, 0x79, 0x05, 0x00, 0x5e, 0x79, 0xa5, 0x00,
+ 0x5f, 0x71, 0x00, 0x00,
+ 0x06, 0x19, 0x04, 0x00, 0x5f, 0x75, 0x00, 0x00, 0x07, 0x1d, 0x04, 0x00,
+ 0x5f, 0x71, 0x00, 0x00,
+ 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x11, 0x41, 0x94, 0x00,
+ 0x10, 0x81, 0x05, 0x00,
+ 0x60, 0x81, 0xa5, 0x00, 0x5f, 0x75, 0x00, 0x00, 0x40, 0x44, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00,
+ 0x11, 0x41, 0x94, 0x00, 0x10, 0x85, 0x05, 0x00, 0x61, 0x85, 0xa5, 0x00,
+ 0x62, 0x19, 0x04, 0x00,
+ 0x40, 0xa8, 0x00, 0x00, 0x63, 0x1d, 0x04, 0x00, 0x40, 0xac, 0x00, 0x00,
+ 0x62, 0x19, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00, 0x11, 0x41, 0x94, 0x00,
+ 0x10, 0x91, 0x05, 0x00,
+ 0x64, 0x91, 0xa5, 0x00, 0x63, 0x1d, 0x04, 0x00, 0x40, 0x44, 0x04, 0x00,
+ 0x40, 0x44, 0x04, 0x00,
+ 0x11, 0x41, 0x94, 0x00, 0x10, 0x95, 0x05, 0x00, 0x65, 0x95, 0xa5, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x40, 0x00, 0x01, 0x00,
+ 0x40, 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00,
+ 0x30, 0x00, 0x00, 0x00,
+ 0x50, 0x43, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x64, 0x64, 0x00, 0x00,
+ 0x56, 0x4f, 0x4c, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x00, 0x00, 0x00,
+ 0x05, 0x00, 0x00, 0x00, 0x64, 0x64, 0x00, 0x00, 0x45, 0x51, 0x55, 0x41,
+ 0x4c, 0x49, 0x5a, 0x45,
+ 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x50, 0x52, 0x45, 0x53, 0x43, 0x41, 0x4c, 0x45,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
+ 0x64, 0x00, 0x00, 0x00,
+ 0x4c, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x00,
+ 0x4d, 0x49, 0x44, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x1c, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x00, 0x48, 0x49, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x10,
+ 0x80, 0x00, 0x00, 0x00, 0x58, 0x48, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x10,
+ 0x80, 0x00, 0x00, 0x00,
+ 0x42, 0x59, 0x50, 0x41, 0x53, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x2b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x46, 0x52, 0x4f, 0x4e,
+ 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x50, 0x44, 0x49,
+ 0x46, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00,
+ 0x64, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x44, 0x49, 0x47, 0x43, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x31, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x43, 0x39, 0x37,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x50, 0x43, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x36, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x37, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x55, 0x58, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00,
+ 0x64, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x56, 0x4f, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x3c, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x64, 0x64, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3e, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x55, 0x52, 0x52,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x53, 0x50, 0x44, 0x49, 0x46, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x41, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x44, 0x49, 0x47, 0x43,
+ 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x43, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x41, 0x43, 0x39, 0x37, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x47, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x50, 0x43, 0x4d, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x49, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x41, 0x55, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x4d, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x56, 0x4f, 0x4c, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x4f, 0x00, 0x00, 0x00,
+ 0x05, 0x00, 0x00, 0x00, 0x64, 0x64, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x53, 0x50, 0x44, 0x49, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x53, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x54, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x49, 0x47, 0x43,
+ 0x44, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00,
+ 0x64, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x41, 0x43, 0x39, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x59, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x5a, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x43, 0x4d, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x41, 0x55, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x5f, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x60, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x4f, 0x4c, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00,
+ 0x05, 0x00, 0x00, 0x00,
+ 0x64, 0x64, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x05, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
+ 0x6b, 0x00, 0x00, 0x00,
+ 0x2c, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x6d, 0x00, 0x00, 0x00,
+ 0x20, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00
+};
diff --git a/kernel/drv/oss_sblive/emu10k1_dsp_be.h b/kernel/drv/oss_sblive/emu10k1_dsp_be.h
new file mode 100644
index 0000000..ea8769b
--- /dev/null
+++ b/kernel/drv/oss_sblive/emu10k1_dsp_be.h
@@ -0,0 +1,989 @@
+/*
+ * Purpose: DSP firmware file for Live! (big endian machines)
+ */
+/*
+ *
+ * This file is part of Open Sound System.
+ *
+ * Copyright (C) 4Front Technologies 1996-2008.
+ *
+ * This this source file is released under GPL v2 license (no other versions).
+ * See the COPYING file included in the main directory of this source
+ * distribution for the license terms and conditions.
+ *
+ */
+static unsigned char emu10k1_dsp[] = {
+ 0x00, 0xe1, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x96,
+ 0x00, 0x00, 0x00, 0x44,
+ 0x00, 0x44, 0x18, 0x40, 0x00, 0x00, 0x04, 0x44, 0x00, 0x44, 0x1c, 0x40,
+ 0x00, 0x04, 0x19, 0x02,
+ 0x00, 0x04, 0x20, 0x40, 0x00, 0x04, 0x1d, 0x03, 0x00, 0x04, 0x24, 0x40,
+ 0x00, 0x00, 0x08, 0x44,
+ 0x00, 0x44, 0x28, 0x40, 0x00, 0x00, 0x0c, 0x44, 0x00, 0x44, 0x2c, 0x40,
+ 0x00, 0x04, 0x29, 0x02,
+ 0x00, 0x04, 0x28, 0x40, 0x00, 0x04, 0x2d, 0x03, 0x00, 0x04, 0x2c, 0x40,
+ 0x00, 0x04, 0x21, 0x36,
+ 0x00, 0x04, 0x30, 0x40, 0x00, 0x04, 0x25, 0x36, 0x00, 0x04, 0x34, 0x40,
+ 0x00, 0x04, 0x30, 0x40,
+ 0x00, 0x94, 0x41, 0x0c, 0x00, 0x04, 0xdd, 0x10, 0x00, 0xa4, 0xdd, 0x37,
+ 0x00, 0x04, 0x34, 0x40,
+ 0x00, 0x94, 0x41, 0x0d, 0x00, 0x04, 0xe1, 0x10, 0x00, 0xa4, 0xe1, 0x38,
+ 0x00, 0x00, 0x49, 0x30,
+ 0x00, 0x04, 0x31, 0x0c, 0x00, 0x00, 0x4d, 0x30, 0x00, 0x04, 0x35, 0x0d,
+ 0x00, 0x00, 0x49, 0x30,
+ 0x00, 0x04, 0x44, 0x40, 0x00, 0x04, 0x44, 0x40, 0x00, 0x94, 0x41, 0x11,
+ 0x00, 0x04, 0xc5, 0x10,
+ 0x00, 0xa4, 0xc5, 0x31, 0x00, 0x00, 0x4d, 0x30, 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x94, 0x41, 0x11, 0x00, 0x04, 0xc9, 0x10, 0x00, 0xa4, 0xc9, 0x32,
+ 0x00, 0x00, 0x41, 0x33,
+ 0x00, 0x04, 0x31, 0x0c, 0x00, 0x00, 0x45, 0x33, 0x00, 0x04, 0x35, 0x0d,
+ 0x00, 0x00, 0x41, 0x33,
+ 0x00, 0x04, 0x44, 0x40, 0x00, 0x04, 0x44, 0x40, 0x00, 0x94, 0x41, 0x11,
+ 0x00, 0x04, 0xd1, 0x10,
+ 0x00, 0xa4, 0xd1, 0x34, 0x00, 0x00, 0x45, 0x33, 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x94, 0x41, 0x11, 0x00, 0x04, 0xd5, 0x10, 0x00, 0xa4, 0xd5, 0x35,
+ 0x00, 0x00, 0x59, 0x2d,
+ 0x00, 0x04, 0x31, 0x0c, 0x00, 0x00, 0x5d, 0x2d, 0x00, 0x04, 0x35, 0x0d,
+ 0x00, 0x00, 0x59, 0x2d,
+ 0x00, 0x04, 0x44, 0x40, 0x00, 0x04, 0x44, 0x40, 0x00, 0x94, 0x41, 0x11,
+ 0x00, 0x04, 0xb9, 0x10,
+ 0x00, 0xa4, 0xb9, 0x2e, 0x00, 0x00, 0x5d, 0x2d, 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x94, 0x41, 0x11, 0x00, 0x04, 0xbd, 0x10, 0x00, 0xa4, 0xbd, 0x2f,
+ 0x00, 0x00, 0x59, 0x2d,
+ 0x00, 0x04, 0x31, 0x0c, 0x00, 0x00, 0x5d, 0x2d, 0x00, 0x04, 0x35, 0x0d,
+ 0x00, 0x00, 0x71, 0x39,
+ 0x00, 0x04, 0x31, 0x0c, 0x00, 0x00, 0x75, 0x39, 0x00, 0x04, 0x35, 0x0d,
+ 0x00, 0x00, 0x71, 0x39,
+ 0x00, 0x04, 0x44, 0x40, 0x00, 0x04, 0x44, 0x40, 0x00, 0x94, 0x41, 0x11,
+ 0x00, 0x04, 0xe9, 0x10,
+ 0x00, 0xa4, 0xe9, 0x3a, 0x00, 0x00, 0x75, 0x39, 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x94, 0x41, 0x11, 0x00, 0x04, 0xed, 0x10, 0x00, 0xa4, 0xed, 0x3b,
+ 0x00, 0x04, 0x31, 0x04,
+ 0x00, 0x04, 0x30, 0x40, 0x00, 0x04, 0x35, 0x05, 0x00, 0x04, 0x34, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xa5, 0x0c, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xa1, 0x0c,
+ 0x00, 0x05, 0xa5, 0x16,
+ 0x00, 0x05, 0xa4, 0x40, 0x00, 0x05, 0xa5, 0x6e, 0x00, 0x05, 0xa4, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x0d, 0x82, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x09, 0x81,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x05, 0x69, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x19, 0x85,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x15, 0x84, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x10, 0x40,
+ 0x00, 0x06, 0x05, 0x26,
+ 0x00, 0x06, 0x10, 0x40, 0x00, 0x06, 0x09, 0x27, 0x00, 0x06, 0x11, 0x84,
+ 0x00, 0x06, 0x15, 0x28,
+ 0x00, 0x06, 0x11, 0x84, 0x00, 0x06, 0x0d, 0x29, 0x00, 0x06, 0x11, 0x84,
+ 0x00, 0x06, 0x19, 0x2a,
+ 0x00, 0x06, 0x11, 0x84, 0x00, 0x06, 0x11, 0x6c, 0x00, 0x46, 0x10, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xa5, 0x84, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xf5, 0x7c,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xf1, 0x7b, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xed, 0x69,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x01, 0x7f, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xfd, 0x7e,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xf8, 0x40, 0x00, 0x05, 0xed, 0x21, 0x00, 0x05, 0xf8, 0x40,
+ 0x00, 0x05, 0xf1, 0x22,
+ 0x00, 0x05, 0xf9, 0x7e, 0x00, 0x05, 0xfd, 0x23, 0x00, 0x05, 0xf9, 0x7e,
+ 0x00, 0x05, 0xf5, 0x24,
+ 0x00, 0x05, 0xf9, 0x7e, 0x00, 0x06, 0x01, 0x25, 0x00, 0x05, 0xf9, 0x7e,
+ 0x00, 0x05, 0xf9, 0x6c,
+ 0x00, 0x45, 0xf8, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xa5, 0x7e,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xdd, 0x76, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xd9, 0x75,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xd5, 0x69, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xe9, 0x79,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xe5, 0x78, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xe0, 0x40,
+ 0x00, 0x05, 0xd5, 0x1c,
+ 0x00, 0x05, 0xe0, 0x40, 0x00, 0x05, 0xd9, 0x1d, 0x00, 0x05, 0xe1, 0x78,
+ 0x00, 0x05, 0xe5, 0x1e,
+ 0x00, 0x05, 0xe1, 0x78, 0x00, 0x05, 0xdd, 0x1f, 0x00, 0x05, 0xe1, 0x78,
+ 0x00, 0x05, 0xe9, 0x20,
+ 0x00, 0x05, 0xe1, 0x78, 0x00, 0x05, 0xe1, 0x6c, 0x00, 0x45, 0xe0, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xa5, 0x78, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xc5, 0x70,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xc1, 0x6f, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xbd, 0x69,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xd1, 0x73, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xcd, 0x72,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xc8, 0x40, 0x00, 0x05, 0xbd, 0x17, 0x00, 0x05, 0xc8, 0x40,
+ 0x00, 0x05, 0xc1, 0x18,
+ 0x00, 0x05, 0xc9, 0x72, 0x00, 0x05, 0xcd, 0x19, 0x00, 0x05, 0xc9, 0x72,
+ 0x00, 0x05, 0xc5, 0x1a,
+ 0x00, 0x05, 0xc9, 0x72, 0x00, 0x05, 0xd1, 0x1b, 0x00, 0x05, 0xc9, 0x72,
+ 0x00, 0x05, 0xc9, 0x6c,
+ 0x00, 0x45, 0xc8, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xa5, 0x72,
+ 0x00, 0x05, 0xa5, 0x6d,
+ 0x00, 0x45, 0xa5, 0x6b, 0x00, 0x05, 0xa5, 0x2c, 0x00, 0x44, 0x30, 0x40,
+ 0x00, 0x05, 0xa1, 0x2b,
+ 0x00, 0x44, 0x31, 0x0c, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xa5, 0x0d,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xa1, 0x0d, 0x00, 0x05, 0xa5, 0x16, 0x00, 0x05, 0xa4, 0x40,
+ 0x00, 0x05, 0xa5, 0x6e,
+ 0x00, 0x05, 0xa4, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x6d, 0x9a,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x69, 0x99, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x65, 0x69,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x79, 0x9d, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x75, 0x9c,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x70, 0x40, 0x00, 0x06, 0x65, 0x26, 0x00, 0x06, 0x70, 0x40,
+ 0x00, 0x06, 0x69, 0x27,
+ 0x00, 0x06, 0x71, 0x9c, 0x00, 0x06, 0x75, 0x28, 0x00, 0x06, 0x71, 0x9c,
+ 0x00, 0x06, 0x6d, 0x29,
+ 0x00, 0x06, 0x71, 0x9c, 0x00, 0x06, 0x79, 0x2a, 0x00, 0x06, 0x71, 0x9c,
+ 0x00, 0x06, 0x71, 0x6c,
+ 0x00, 0x46, 0x70, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xa5, 0x9c,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x55, 0x94, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x51, 0x93,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x4d, 0x69, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x61, 0x97,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x5d, 0x96, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x58, 0x40,
+ 0x00, 0x06, 0x4d, 0x21,
+ 0x00, 0x06, 0x58, 0x40, 0x00, 0x06, 0x51, 0x22, 0x00, 0x06, 0x59, 0x96,
+ 0x00, 0x06, 0x5d, 0x23,
+ 0x00, 0x06, 0x59, 0x96, 0x00, 0x06, 0x55, 0x24, 0x00, 0x06, 0x59, 0x96,
+ 0x00, 0x06, 0x61, 0x25,
+ 0x00, 0x06, 0x59, 0x96, 0x00, 0x06, 0x59, 0x6c, 0x00, 0x46, 0x58, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xa5, 0x96, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x3d, 0x8e,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x39, 0x8d, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x35, 0x69,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x49, 0x91, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x45, 0x90,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x40, 0x40, 0x00, 0x06, 0x35, 0x1c, 0x00, 0x06, 0x40, 0x40,
+ 0x00, 0x06, 0x39, 0x1d,
+ 0x00, 0x06, 0x41, 0x90, 0x00, 0x06, 0x45, 0x1e, 0x00, 0x06, 0x41, 0x90,
+ 0x00, 0x06, 0x3d, 0x1f,
+ 0x00, 0x06, 0x41, 0x90, 0x00, 0x06, 0x49, 0x20, 0x00, 0x06, 0x41, 0x90,
+ 0x00, 0x06, 0x41, 0x6c,
+ 0x00, 0x46, 0x40, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xa5, 0x90,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x25, 0x88, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x21, 0x87,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x1d, 0x69, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x31, 0x8b,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x2d, 0x8a, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x28, 0x40,
+ 0x00, 0x06, 0x1d, 0x17,
+ 0x00, 0x06, 0x28, 0x40, 0x00, 0x06, 0x21, 0x18, 0x00, 0x06, 0x29, 0x8a,
+ 0x00, 0x06, 0x2d, 0x19,
+ 0x00, 0x06, 0x29, 0x8a, 0x00, 0x06, 0x25, 0x1a, 0x00, 0x06, 0x29, 0x8a,
+ 0x00, 0x06, 0x31, 0x1b,
+ 0x00, 0x06, 0x29, 0x8a, 0x00, 0x06, 0x29, 0x6c, 0x00, 0x46, 0x28, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xa5, 0x8a, 0x00, 0x05, 0xa5, 0x6d, 0x00, 0x45, 0xa5, 0x6b,
+ 0x00, 0x05, 0xa5, 0x2c,
+ 0x00, 0x44, 0x34, 0x40, 0x00, 0x05, 0xa1, 0x2b, 0x00, 0x44, 0x35, 0x0d,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x60, 0x89, 0x0c, 0x00, 0x01, 0x00, 0x40, 0x00, 0x60, 0x8d, 0x0d,
+ 0x00, 0x04, 0x30, 0x40,
+ 0x00, 0x94, 0x41, 0x0c, 0x00, 0x05, 0x99, 0x10, 0x00, 0xa5, 0x99, 0x66,
+ 0x00, 0x04, 0x34, 0x40,
+ 0x00, 0x94, 0x41, 0x0d, 0x00, 0x05, 0x9d, 0x10, 0x00, 0xa5, 0x9d, 0x67,
+ 0x00, 0x04, 0x31, 0x3c,
+ 0x00, 0x00, 0x80, 0x40, 0x00, 0x04, 0x35, 0x3d, 0x00, 0x00, 0x84, 0x40,
+ 0x00, 0x04, 0x31, 0x3c,
+ 0x00, 0x00, 0x98, 0x40, 0x00, 0x04, 0x35, 0x3d, 0x00, 0x00, 0x9c, 0x40,
+ 0x00, 0x04, 0x31, 0x3c,
+ 0x00, 0x04, 0x44, 0x40, 0x00, 0x04, 0x44, 0x40, 0x00, 0x94, 0x41, 0x11,
+ 0x00, 0x04, 0xf9, 0x10,
+ 0x00, 0xa4, 0xf9, 0x3e, 0x00, 0x04, 0x35, 0x3d, 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x94, 0x41, 0x11, 0x00, 0x04, 0xfd, 0x10, 0x00, 0xa4, 0xfd, 0x3f,
+ 0x00, 0x04, 0x29, 0x49,
+ 0x00, 0x04, 0x28, 0x40, 0x00, 0x04, 0x2d, 0x49, 0x00, 0x04, 0x2c, 0x40,
+ 0x00, 0x04, 0x28, 0x40,
+ 0x00, 0x94, 0x41, 0x0a, 0x00, 0x05, 0x29, 0x10, 0x00, 0xa5, 0x29, 0x4a,
+ 0x00, 0x04, 0x2c, 0x40,
+ 0x00, 0x94, 0x41, 0x0b, 0x00, 0x05, 0x2d, 0x10, 0x00, 0xa5, 0x2d, 0x4b,
+ 0x00, 0x00, 0x49, 0x43,
+ 0x00, 0x04, 0x29, 0x0a, 0x00, 0x00, 0x4d, 0x43, 0x00, 0x04, 0x2d, 0x0b,
+ 0x00, 0x00, 0x49, 0x43,
+ 0x00, 0x04, 0x44, 0x40, 0x00, 0x04, 0x44, 0x40, 0x00, 0x94, 0x41, 0x11,
+ 0x00, 0x05, 0x11, 0x10,
+ 0x00, 0xa5, 0x11, 0x44, 0x00, 0x00, 0x4d, 0x43, 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x94, 0x41, 0x11, 0x00, 0x05, 0x15, 0x10, 0x00, 0xa5, 0x15, 0x45,
+ 0x00, 0x00, 0x41, 0x46,
+ 0x00, 0x04, 0x29, 0x0a, 0x00, 0x00, 0x45, 0x46, 0x00, 0x04, 0x2d, 0x0b,
+ 0x00, 0x00, 0x41, 0x46,
+ 0x00, 0x04, 0x44, 0x40, 0x00, 0x04, 0x44, 0x40, 0x00, 0x94, 0x41, 0x11,
+ 0x00, 0x05, 0x1d, 0x10,
+ 0x00, 0xa5, 0x1d, 0x47, 0x00, 0x00, 0x45, 0x46, 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x94, 0x41, 0x11, 0x00, 0x05, 0x21, 0x10, 0x00, 0xa5, 0x21, 0x48,
+ 0x00, 0x00, 0x59, 0x40,
+ 0x00, 0x04, 0x29, 0x0a, 0x00, 0x00, 0x5d, 0x40, 0x00, 0x04, 0x2d, 0x0b,
+ 0x00, 0x00, 0x59, 0x40,
+ 0x00, 0x04, 0x44, 0x40, 0x00, 0x04, 0x44, 0x40, 0x00, 0x94, 0x41, 0x11,
+ 0x00, 0x05, 0x05, 0x10,
+ 0x00, 0xa5, 0x05, 0x41, 0x00, 0x00, 0x5d, 0x40, 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x94, 0x41, 0x11, 0x00, 0x05, 0x09, 0x10, 0x00, 0xa5, 0x09, 0x42,
+ 0x00, 0x00, 0x71, 0x4c,
+ 0x00, 0x04, 0x29, 0x0a, 0x00, 0x00, 0x75, 0x4c, 0x00, 0x04, 0x2d, 0x0b,
+ 0x00, 0x00, 0x71, 0x4c,
+ 0x00, 0x04, 0x44, 0x40, 0x00, 0x04, 0x44, 0x40, 0x00, 0x94, 0x41, 0x11,
+ 0x00, 0x05, 0x35, 0x10,
+ 0x00, 0xa5, 0x35, 0x4d, 0x00, 0x00, 0x75, 0x4c, 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x94, 0x41, 0x11, 0x00, 0x05, 0x39, 0x10, 0x00, 0xa5, 0x39, 0x4e,
+ 0x00, 0x04, 0x29, 0x04,
+ 0x00, 0x04, 0x18, 0x40, 0x00, 0x04, 0x2d, 0x05, 0x00, 0x04, 0x1c, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xa5, 0x06, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xa1, 0x06,
+ 0x00, 0x05, 0xa5, 0x16,
+ 0x00, 0x05, 0xa4, 0x40, 0x00, 0x05, 0xa5, 0x6e, 0x00, 0x05, 0xa4, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0xcd, 0xb2, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0xc9, 0xb1,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0xc5, 0x69, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0xd9, 0xb5,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0xd5, 0xb4, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0xd0, 0x40,
+ 0x00, 0x06, 0xc5, 0x26,
+ 0x00, 0x06, 0xd0, 0x40, 0x00, 0x06, 0xc9, 0x27, 0x00, 0x06, 0xd1, 0xb4,
+ 0x00, 0x06, 0xd5, 0x28,
+ 0x00, 0x06, 0xd1, 0xb4, 0x00, 0x06, 0xcd, 0x29, 0x00, 0x06, 0xd1, 0xb4,
+ 0x00, 0x06, 0xd9, 0x2a,
+ 0x00, 0x06, 0xd1, 0xb4, 0x00, 0x06, 0xd1, 0x6c, 0x00, 0x46, 0xd0, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xa5, 0xb4, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0xb5, 0xac,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0xb1, 0xab, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0xad, 0x69,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0xc1, 0xaf, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0xbd, 0xae,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0xb8, 0x40, 0x00, 0x06, 0xad, 0x21, 0x00, 0x06, 0xb8, 0x40,
+ 0x00, 0x06, 0xb1, 0x22,
+ 0x00, 0x06, 0xb9, 0xae, 0x00, 0x06, 0xbd, 0x23, 0x00, 0x06, 0xb9, 0xae,
+ 0x00, 0x06, 0xb5, 0x24,
+ 0x00, 0x06, 0xb9, 0xae, 0x00, 0x06, 0xc1, 0x25, 0x00, 0x06, 0xb9, 0xae,
+ 0x00, 0x06, 0xb9, 0x6c,
+ 0x00, 0x46, 0xb8, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xa5, 0xae,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x9d, 0xa6, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x99, 0xa5,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x95, 0x69, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0xa9, 0xa9,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0xa5, 0xa8, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0xa0, 0x40,
+ 0x00, 0x06, 0x95, 0x1c,
+ 0x00, 0x06, 0xa0, 0x40, 0x00, 0x06, 0x99, 0x1d, 0x00, 0x06, 0xa1, 0xa8,
+ 0x00, 0x06, 0xa5, 0x1e,
+ 0x00, 0x06, 0xa1, 0xa8, 0x00, 0x06, 0x9d, 0x1f, 0x00, 0x06, 0xa1, 0xa8,
+ 0x00, 0x06, 0xa9, 0x20,
+ 0x00, 0x06, 0xa1, 0xa8, 0x00, 0x06, 0xa1, 0x6c, 0x00, 0x46, 0xa0, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xa5, 0xa8, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x85, 0xa0,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x81, 0x9f, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x7d, 0x69,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x91, 0xa3, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0x8d, 0xa2,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0x88, 0x40, 0x00, 0x06, 0x7d, 0x17, 0x00, 0x06, 0x88, 0x40,
+ 0x00, 0x06, 0x81, 0x18,
+ 0x00, 0x06, 0x89, 0xa2, 0x00, 0x06, 0x8d, 0x19, 0x00, 0x06, 0x89, 0xa2,
+ 0x00, 0x06, 0x85, 0x1a,
+ 0x00, 0x06, 0x89, 0xa2, 0x00, 0x06, 0x91, 0x1b, 0x00, 0x06, 0x89, 0xa2,
+ 0x00, 0x06, 0x89, 0x6c,
+ 0x00, 0x46, 0x88, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xa5, 0xa2,
+ 0x00, 0x05, 0xa5, 0x6d,
+ 0x00, 0x45, 0xa5, 0x6b, 0x00, 0x05, 0xa5, 0x2c, 0x00, 0x44, 0x18, 0x40,
+ 0x00, 0x05, 0xa1, 0x2b,
+ 0x00, 0x44, 0x19, 0x06, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xa5, 0x07,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xa1, 0x07, 0x00, 0x05, 0xa5, 0x16, 0x00, 0x05, 0xa4, 0x40,
+ 0x00, 0x05, 0xa5, 0x6e,
+ 0x00, 0x05, 0xa4, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x67, 0x2d, 0xca,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x67, 0x29, 0xc9, 0x00, 0x01, 0x00, 0x40, 0x00, 0x67, 0x25, 0x69,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x67, 0x39, 0xcd, 0x00, 0x01, 0x00, 0x40, 0x00, 0x67, 0x35, 0xcc,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x67, 0x30, 0x40, 0x00, 0x07, 0x25, 0x26, 0x00, 0x07, 0x30, 0x40,
+ 0x00, 0x07, 0x29, 0x27,
+ 0x00, 0x07, 0x31, 0xcc, 0x00, 0x07, 0x35, 0x28, 0x00, 0x07, 0x31, 0xcc,
+ 0x00, 0x07, 0x2d, 0x29,
+ 0x00, 0x07, 0x31, 0xcc, 0x00, 0x07, 0x39, 0x2a, 0x00, 0x07, 0x31, 0xcc,
+ 0x00, 0x07, 0x31, 0x6c,
+ 0x00, 0x47, 0x30, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xa5, 0xcc,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x67, 0x15, 0xc4, 0x00, 0x01, 0x00, 0x40, 0x00, 0x67, 0x11, 0xc3,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x67, 0x0d, 0x69, 0x00, 0x01, 0x00, 0x40, 0x00, 0x67, 0x21, 0xc7,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x67, 0x1d, 0xc6, 0x00, 0x01, 0x00, 0x40, 0x00, 0x67, 0x18, 0x40,
+ 0x00, 0x07, 0x0d, 0x21,
+ 0x00, 0x07, 0x18, 0x40, 0x00, 0x07, 0x11, 0x22, 0x00, 0x07, 0x19, 0xc6,
+ 0x00, 0x07, 0x1d, 0x23,
+ 0x00, 0x07, 0x19, 0xc6, 0x00, 0x07, 0x15, 0x24, 0x00, 0x07, 0x19, 0xc6,
+ 0x00, 0x07, 0x21, 0x25,
+ 0x00, 0x07, 0x19, 0xc6, 0x00, 0x07, 0x19, 0x6c, 0x00, 0x47, 0x18, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xa5, 0xc6, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0xfd, 0xbe,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0xf9, 0xbd, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0xf5, 0x69,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x67, 0x09, 0xc1, 0x00, 0x01, 0x00, 0x40, 0x00, 0x67, 0x05, 0xc0,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x67, 0x00, 0x40, 0x00, 0x06, 0xf5, 0x1c, 0x00, 0x07, 0x00, 0x40,
+ 0x00, 0x06, 0xf9, 0x1d,
+ 0x00, 0x07, 0x01, 0xc0, 0x00, 0x07, 0x05, 0x1e, 0x00, 0x07, 0x01, 0xc0,
+ 0x00, 0x06, 0xfd, 0x1f,
+ 0x00, 0x07, 0x01, 0xc0, 0x00, 0x07, 0x09, 0x20, 0x00, 0x07, 0x01, 0xc0,
+ 0x00, 0x07, 0x01, 0x6c,
+ 0x00, 0x47, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x65, 0xa5, 0xc0,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0xe5, 0xb8, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0xe1, 0xb7,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0xdd, 0x69, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0xf1, 0xbb,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x66, 0xed, 0xba, 0x00, 0x01, 0x00, 0x40, 0x00, 0x66, 0xe8, 0x40,
+ 0x00, 0x06, 0xdd, 0x17,
+ 0x00, 0x06, 0xe8, 0x40, 0x00, 0x06, 0xe1, 0x18, 0x00, 0x06, 0xe9, 0xba,
+ 0x00, 0x06, 0xed, 0x19,
+ 0x00, 0x06, 0xe9, 0xba, 0x00, 0x06, 0xe5, 0x1a, 0x00, 0x06, 0xe9, 0xba,
+ 0x00, 0x06, 0xf1, 0x1b,
+ 0x00, 0x06, 0xe9, 0xba, 0x00, 0x06, 0xe9, 0x6c, 0x00, 0x46, 0xe8, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x65, 0xa5, 0xba, 0x00, 0x05, 0xa5, 0x6d, 0x00, 0x45, 0xa5, 0x6b,
+ 0x00, 0x05, 0xa5, 0x2c,
+ 0x00, 0x44, 0x1c, 0x40, 0x00, 0x05, 0xa1, 0x2b, 0x00, 0x44, 0x1d, 0x07,
+ 0x00, 0x04, 0x19, 0x4f,
+ 0x00, 0x00, 0xa0, 0x40, 0x00, 0x04, 0x1d, 0x50, 0x00, 0x00, 0xa4, 0x40,
+ 0x00, 0x04, 0x19, 0x4f,
+ 0x00, 0x00, 0xb4, 0x40, 0x00, 0x04, 0x1d, 0x50, 0x00, 0x00, 0xb8, 0x40,
+ 0x00, 0x00, 0x10, 0x41,
+ 0x00, 0x44, 0x48, 0x40, 0x00, 0x00, 0x14, 0x41, 0x00, 0x44, 0x4c, 0x40,
+ 0x00, 0x04, 0x19, 0x4f,
+ 0x00, 0x04, 0x44, 0x40, 0x00, 0x04, 0x44, 0x40, 0x00, 0x94, 0x41, 0x11,
+ 0x00, 0x05, 0x45, 0x10,
+ 0x00, 0xa5, 0x45, 0x51, 0x00, 0x04, 0x1d, 0x50, 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x94, 0x41, 0x11, 0x00, 0x05, 0x49, 0x10, 0x00, 0xa5, 0x49, 0x52,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x60, 0x91, 0x12, 0x00, 0x01, 0x00, 0x40, 0x00, 0x60, 0x95, 0x13,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x60, 0xc5, 0x12, 0x00, 0x01, 0x00, 0x40, 0x00, 0x60, 0xc9, 0x13,
+ 0x00, 0x00, 0x41, 0x59,
+ 0x00, 0x04, 0x18, 0x40, 0x00, 0x00, 0x45, 0x59, 0x00, 0x04, 0x1c, 0x40,
+ 0x00, 0x00, 0x41, 0x59,
+ 0x00, 0x04, 0x44, 0x40, 0x00, 0x04, 0x44, 0x40, 0x00, 0x94, 0x41, 0x11,
+ 0x00, 0x05, 0x69, 0x10,
+ 0x00, 0xa5, 0x69, 0x5a, 0x00, 0x00, 0x45, 0x59, 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x94, 0x41, 0x11, 0x00, 0x05, 0x6d, 0x10, 0x00, 0xa5, 0x6d, 0x5b,
+ 0x00, 0x00, 0x59, 0x53,
+ 0x00, 0x04, 0x19, 0x06, 0x00, 0x00, 0x5d, 0x53, 0x00, 0x04, 0x1d, 0x07,
+ 0x00, 0x00, 0x59, 0x53,
+ 0x00, 0x04, 0x44, 0x40, 0x00, 0x04, 0x44, 0x40, 0x00, 0x94, 0x41, 0x11,
+ 0x00, 0x05, 0x51, 0x10,
+ 0x00, 0xa5, 0x51, 0x54, 0x00, 0x00, 0x5d, 0x53, 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x94, 0x41, 0x11, 0x00, 0x05, 0x55, 0x10, 0x00, 0xa5, 0x55, 0x55,
+ 0x00, 0x00, 0x49, 0x56,
+ 0x00, 0x04, 0x19, 0x06, 0x00, 0x00, 0x4d, 0x56, 0x00, 0x04, 0x1d, 0x07,
+ 0x00, 0x00, 0x49, 0x56,
+ 0x00, 0x04, 0x44, 0x40, 0x00, 0x04, 0x44, 0x40, 0x00, 0x94, 0x41, 0x11,
+ 0x00, 0x05, 0x5d, 0x10,
+ 0x00, 0xa5, 0x5d, 0x57, 0x00, 0x00, 0x4d, 0x56, 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x94, 0x41, 0x11, 0x00, 0x05, 0x61, 0x10, 0x00, 0xa5, 0x61, 0x58,
+ 0x00, 0x04, 0x21, 0x5c,
+ 0x00, 0x04, 0x19, 0x06, 0x00, 0x04, 0x25, 0x5c, 0x00, 0x04, 0x1d, 0x07,
+ 0x00, 0x04, 0x21, 0x5c,
+ 0x00, 0x04, 0x44, 0x40, 0x00, 0x04, 0x44, 0x40, 0x00, 0x94, 0x41, 0x11,
+ 0x00, 0x05, 0x75, 0x10,
+ 0x00, 0xa5, 0x75, 0x5d, 0x00, 0x04, 0x25, 0x5c, 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x94, 0x41, 0x11, 0x00, 0x05, 0x79, 0x10, 0x00, 0xa5, 0x79, 0x5e,
+ 0x00, 0x00, 0x71, 0x5f,
+ 0x00, 0x04, 0x19, 0x06, 0x00, 0x00, 0x75, 0x5f, 0x00, 0x04, 0x1d, 0x07,
+ 0x00, 0x00, 0x71, 0x5f,
+ 0x00, 0x04, 0x44, 0x40, 0x00, 0x04, 0x44, 0x40, 0x00, 0x94, 0x41, 0x11,
+ 0x00, 0x05, 0x81, 0x10,
+ 0x00, 0xa5, 0x81, 0x60, 0x00, 0x00, 0x75, 0x5f, 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x94, 0x41, 0x11, 0x00, 0x05, 0x85, 0x10, 0x00, 0xa5, 0x85, 0x61,
+ 0x00, 0x04, 0x19, 0x62,
+ 0x00, 0x00, 0xa8, 0x40, 0x00, 0x04, 0x1d, 0x63, 0x00, 0x00, 0xac, 0x40,
+ 0x00, 0x04, 0x19, 0x62,
+ 0x00, 0x04, 0x44, 0x40, 0x00, 0x04, 0x44, 0x40, 0x00, 0x94, 0x41, 0x11,
+ 0x00, 0x05, 0x91, 0x10,
+ 0x00, 0xa5, 0x91, 0x64, 0x00, 0x04, 0x1d, 0x63, 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x04, 0x44, 0x40,
+ 0x00, 0x94, 0x41, 0x11, 0x00, 0x05, 0x95, 0x10, 0x00, 0xa5, 0x95, 0x65,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x01, 0x00, 0x40,
+ 0x00, 0x61, 0x00, 0x40, 0x00, 0x01, 0x00, 0x40, 0x00, 0x61, 0x00, 0x40,
+ 0x00, 0x00, 0x00, 0x30,
+ 0x50, 0x43, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x64, 0x64,
+ 0x56, 0x4f, 0x4c, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x64, 0x64, 0x45, 0x51, 0x55, 0x41,
+ 0x4c, 0x49, 0x5a, 0x45,
+ 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x50, 0x52, 0x45, 0x53, 0x43, 0x41, 0x4c, 0x45,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x64,
+ 0x4c, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x17, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
+ 0x4d, 0x49, 0x44, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1c,
+ 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0x48, 0x49, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
+ 0x10, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x80, 0x58, 0x48, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x10, 0x00, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x80,
+ 0x42, 0x59, 0x50, 0x41, 0x53, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
+ 0x46, 0x52, 0x4f, 0x4e,
+ 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x53, 0x50, 0x44, 0x49,
+ 0x46, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d,
+ 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x64, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x44, 0x49, 0x47, 0x43, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x31,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x41, 0x43, 0x39, 0x37,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33,
+ 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x50, 0x43, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x37,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x41, 0x55, 0x58, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39,
+ 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x64, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x56, 0x4f, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x64, 0x64,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3e,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x53, 0x55, 0x52, 0x52,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x53, 0x50, 0x44, 0x49, 0x46, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+ 0x44, 0x49, 0x47, 0x43,
+ 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x43,
+ 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44,
+ 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x41, 0x43, 0x39, 0x37, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+ 0x50, 0x43, 0x4d, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x49,
+ 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a,
+ 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x41, 0x55, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+ 0x56, 0x4f, 0x4c, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x4f,
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x64, 0x64, 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51,
+ 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x53, 0x50, 0x44, 0x49, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x54,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x44, 0x49, 0x47, 0x43,
+ 0x44, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56,
+ 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x64, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x41, 0x43, 0x39, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x5a,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x50, 0x43, 0x4d, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c,
+ 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x41, 0x55, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x60,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x56, 0x4f, 0x4c, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62,
+ 0x00, 0x00, 0x00, 0x05,
+ 0x00, 0x00, 0x64, 0x64, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x10, 0x00,
+ 0x00, 0x00, 0x00, 0x6b,
+ 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x6d,
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x6e, 0x04, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00
+};
diff --git a/kernel/drv/oss_sblive/emu10k2_dsp.h b/kernel/drv/oss_sblive/emu10k2_dsp.h
new file mode 100644
index 0000000..233a7be
--- /dev/null
+++ b/kernel/drv/oss_sblive/emu10k2_dsp.h
@@ -0,0 +1,989 @@
+/*
+ * Purpose: DSP firmware file for Audigy
+ */
+/*
+ *
+ * This file is part of Open Sound System.
+ *
+ * Copyright (C) 4Front Technologies 1996-2008.
+ *
+ * This this source file is released under GPL v2 license (no other versions).
+ * See the COPYING file included in the main directory of this source
+ * distribution for the license terms and conditions.
+ *
+ */
+static unsigned char emu10k2_dsp[] = {
+ 0x02, 0x00, 0xe1, 0x00, 0x02, 0x00, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00,
+ 0xc1, 0x00, 0x00, 0x00,
+ 0xc0, 0x60, 0x40, 0x04, 0xc1, 0x10, 0x00, 0x00, 0xc0, 0x70, 0x40, 0x04,
+ 0x02, 0x64, 0x40, 0x00,
+ 0xc0, 0x80, 0x40, 0x00, 0x03, 0x74, 0x40, 0x00, 0xc0, 0x90, 0x40, 0x00,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x14, 0x60, 0x41, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x15, 0x70, 0x41, 0x06,
+ 0xc0, 0x60, 0x00, 0x00,
+ 0x02, 0xa0, 0x40, 0x06, 0xc0, 0x70, 0x00, 0x00, 0x03, 0xb0, 0x40, 0x06,
+ 0xc1, 0x40, 0x00, 0x00,
+ 0xc0, 0x20, 0x41, 0x04, 0xc1, 0x50, 0x00, 0x00, 0xc0, 0x30, 0x41, 0x04,
+ 0x02, 0xa4, 0x40, 0x00,
+ 0xc0, 0xa0, 0x40, 0x00, 0x03, 0xb4, 0x40, 0x00, 0xc0, 0xb0, 0x40, 0x00,
+ 0x38, 0x84, 0x40, 0x00,
+ 0xc0, 0xc0, 0x40, 0x00, 0x38, 0x94, 0x40, 0x00, 0xc0, 0xd0, 0x40, 0x00,
+ 0xc0, 0xc0, 0x40, 0x00,
+ 0x0c, 0x04, 0x41, 0x09, 0x10, 0x94, 0x43, 0x00, 0x39, 0x94, 0x43, 0x0a,
+ 0xc0, 0xd0, 0x40, 0x00,
+ 0x0d, 0x04, 0x41, 0x09, 0x10, 0xa4, 0x43, 0x00, 0x3a, 0xa4, 0x43, 0x0a,
+ 0x32, 0x24, 0x04, 0x00,
+ 0x0c, 0xc4, 0x40, 0x00, 0x32, 0x34, 0x04, 0x00, 0x0d, 0xd4, 0x40, 0x00,
+ 0x32, 0x24, 0x04, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0x34, 0x43, 0x00,
+ 0x33, 0x34, 0x43, 0x0a, 0x32, 0x34, 0x04, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0x44, 0x43, 0x00, 0x34, 0x44, 0x43, 0x0a,
+ 0x35, 0x04, 0x04, 0x00,
+ 0x0c, 0xc4, 0x40, 0x00, 0x35, 0x14, 0x04, 0x00, 0x0d, 0xd4, 0x40, 0x00,
+ 0x35, 0x04, 0x04, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0x64, 0x43, 0x00,
+ 0x36, 0x64, 0x43, 0x0a, 0x35, 0x14, 0x04, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0x74, 0x43, 0x00, 0x37, 0x74, 0x43, 0x0a,
+ 0x2f, 0x44, 0x04, 0x00,
+ 0x0c, 0xc4, 0x40, 0x00, 0x2f, 0x54, 0x04, 0x00, 0x0d, 0xd4, 0x40, 0x00,
+ 0x2f, 0x44, 0x04, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0x04, 0x43, 0x00,
+ 0x30, 0x04, 0x43, 0x0a, 0x2f, 0x54, 0x04, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0x14, 0x43, 0x00, 0x31, 0x14, 0x43, 0x0a,
+ 0x2f, 0x44, 0x04, 0x00,
+ 0x0c, 0xc4, 0x40, 0x00, 0x2f, 0x54, 0x04, 0x00, 0x0d, 0xd4, 0x40, 0x00,
+ 0x3b, 0xc4, 0x04, 0x00,
+ 0x0c, 0xc4, 0x40, 0x00, 0x3b, 0xd4, 0x04, 0x00, 0x0d, 0xd4, 0x40, 0x00,
+ 0x3b, 0xc4, 0x04, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0xc4, 0x43, 0x00,
+ 0x3c, 0xc4, 0x43, 0x0a, 0x3b, 0xd4, 0x04, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0xd4, 0x43, 0x00, 0x3d, 0xd4, 0x43, 0x0a,
+ 0x04, 0xc4, 0x40, 0x00,
+ 0xc0, 0xc0, 0x40, 0x00, 0x05, 0xd4, 0x40, 0x00, 0xc0, 0xd0, 0x40, 0x00,
+ 0x3e, 0x84, 0x04, 0x00,
+ 0x0e, 0xe4, 0x40, 0x00, 0x3e, 0x94, 0x04, 0x00, 0x0f, 0xf4, 0x40, 0x00,
+ 0x3e, 0x84, 0x04, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0xf4, 0x43, 0x00,
+ 0x3f, 0xf4, 0x43, 0x0a, 0x3e, 0x94, 0x04, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0x04, 0x44, 0x00, 0x40, 0x04, 0x44, 0x0a,
+ 0x04, 0xc4, 0x40, 0x00,
+ 0xc0, 0xe0, 0x40, 0x00, 0x05, 0xd4, 0x40, 0x00, 0xc0, 0xf0, 0x40, 0x00,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x0c, 0x64, 0x47, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x0c, 0x54, 0x47, 0x06,
+ 0x18, 0x64, 0x47, 0x00,
+ 0xc0, 0x60, 0x47, 0x00, 0x7b, 0x64, 0x47, 0x00, 0xc0, 0x60, 0x47, 0x00,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x8f, 0x04, 0x49, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x8e, 0xf4, 0x48, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x76, 0xe4, 0x48, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x92, 0x34, 0x49, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x91, 0x24, 0x49, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x10, 0x49, 0x06,
+ 0x28, 0xe4, 0x48, 0x00,
+ 0xc0, 0x10, 0x49, 0x00, 0x29, 0xf4, 0x48, 0x00, 0x91, 0x14, 0x49, 0x00,
+ 0x2a, 0x24, 0x49, 0x00,
+ 0x91, 0x14, 0x49, 0x00, 0x2b, 0x04, 0x49, 0x00, 0x91, 0x14, 0x49, 0x00,
+ 0x2c, 0x34, 0x49, 0x00,
+ 0x91, 0x14, 0x49, 0x00, 0x79, 0x14, 0x49, 0x00, 0xc0, 0x10, 0x49, 0x04,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x91, 0x64, 0x47, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x89, 0xa4, 0x48, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x88, 0x94, 0x48, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x76, 0x84, 0x48, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x8c, 0xd4, 0x48, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x8b, 0xc4, 0x48, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0xb0, 0x48, 0x06, 0x23, 0x84, 0x48, 0x00, 0xc0, 0xb0, 0x48, 0x00,
+ 0x24, 0x94, 0x48, 0x00,
+ 0x8b, 0xb4, 0x48, 0x00, 0x25, 0xc4, 0x48, 0x00, 0x8b, 0xb4, 0x48, 0x00,
+ 0x26, 0xa4, 0x48, 0x00,
+ 0x8b, 0xb4, 0x48, 0x00, 0x27, 0xd4, 0x48, 0x00, 0x8b, 0xb4, 0x48, 0x00,
+ 0x79, 0xb4, 0x48, 0x00,
+ 0xc0, 0xb0, 0x48, 0x04, 0xc0, 0x00, 0x0c, 0x00, 0x8b, 0x64, 0x47, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x83, 0x44, 0x48, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x82, 0x34, 0x48, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x76, 0x24, 0x48, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x86, 0x74, 0x48, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x85, 0x64, 0x48, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x50, 0x48, 0x06,
+ 0x1e, 0x24, 0x48, 0x00,
+ 0xc0, 0x50, 0x48, 0x00, 0x1f, 0x34, 0x48, 0x00, 0x85, 0x54, 0x48, 0x00,
+ 0x20, 0x64, 0x48, 0x00,
+ 0x85, 0x54, 0x48, 0x00, 0x21, 0x44, 0x48, 0x00, 0x85, 0x54, 0x48, 0x00,
+ 0x22, 0x74, 0x48, 0x00,
+ 0x85, 0x54, 0x48, 0x00, 0x79, 0x54, 0x48, 0x00, 0xc0, 0x50, 0x48, 0x04,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x85, 0x64, 0x47, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x7d, 0xe4, 0x47, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x7c, 0xd4, 0x47, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x76, 0xc4, 0x47, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x80, 0x14, 0x48, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x7f, 0x04, 0x48, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0xf0, 0x47, 0x06, 0x19, 0xc4, 0x47, 0x00, 0xc0, 0xf0, 0x47, 0x00,
+ 0x1a, 0xd4, 0x47, 0x00,
+ 0x7f, 0xf4, 0x47, 0x00, 0x1b, 0x04, 0x48, 0x00, 0x7f, 0xf4, 0x47, 0x00,
+ 0x1c, 0xe4, 0x47, 0x00,
+ 0x7f, 0xf4, 0x47, 0x00, 0x1d, 0x14, 0x48, 0x00, 0x7f, 0xf4, 0x47, 0x00,
+ 0x79, 0xf4, 0x47, 0x00,
+ 0xc0, 0xf0, 0x47, 0x04, 0xc0, 0x00, 0x0c, 0x00, 0x7f, 0x64, 0x47, 0x06,
+ 0x7a, 0x64, 0x47, 0x00,
+ 0x78, 0x64, 0x47, 0x04, 0x2e, 0x64, 0x47, 0x00, 0xc0, 0xc0, 0x40, 0x04,
+ 0x2d, 0x54, 0x47, 0x00,
+ 0x0c, 0xc4, 0x40, 0x04, 0xc0, 0x00, 0x0c, 0x00, 0x0d, 0x64, 0x47, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x0d, 0x54, 0x47, 0x06, 0x18, 0x64, 0x47, 0x00, 0xc0, 0x60, 0x47, 0x00,
+ 0x7b, 0x64, 0x47, 0x00,
+ 0xc0, 0x60, 0x47, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xa7, 0x84, 0x4a, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xa6, 0x74, 0x4a, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x76, 0x64, 0x4a, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xaa, 0xb4, 0x4a, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xa9, 0xa4, 0x4a, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x90, 0x4a, 0x06, 0x28, 0x64, 0x4a, 0x00, 0xc0, 0x90, 0x4a, 0x00,
+ 0x29, 0x74, 0x4a, 0x00,
+ 0xa9, 0x94, 0x4a, 0x00, 0x2a, 0xa4, 0x4a, 0x00, 0xa9, 0x94, 0x4a, 0x00,
+ 0x2b, 0x84, 0x4a, 0x00,
+ 0xa9, 0x94, 0x4a, 0x00, 0x2c, 0xb4, 0x4a, 0x00, 0xa9, 0x94, 0x4a, 0x00,
+ 0x79, 0x94, 0x4a, 0x00,
+ 0xc0, 0x90, 0x4a, 0x04, 0xc0, 0x00, 0x0c, 0x00, 0xa9, 0x64, 0x47, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xa1, 0x24, 0x4a, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xa0, 0x14, 0x4a, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x76, 0x04, 0x4a, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xa4, 0x54, 0x4a, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xa3, 0x44, 0x4a, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x30, 0x4a, 0x06,
+ 0x23, 0x04, 0x4a, 0x00,
+ 0xc0, 0x30, 0x4a, 0x00, 0x24, 0x14, 0x4a, 0x00, 0xa3, 0x34, 0x4a, 0x00,
+ 0x25, 0x44, 0x4a, 0x00,
+ 0xa3, 0x34, 0x4a, 0x00, 0x26, 0x24, 0x4a, 0x00, 0xa3, 0x34, 0x4a, 0x00,
+ 0x27, 0x54, 0x4a, 0x00,
+ 0xa3, 0x34, 0x4a, 0x00, 0x79, 0x34, 0x4a, 0x00, 0xc0, 0x30, 0x4a, 0x04,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xa3, 0x64, 0x47, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x9b, 0xc4, 0x49, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x9a, 0xb4, 0x49, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x76, 0xa4, 0x49, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x9e, 0xf4, 0x49, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x9d, 0xe4, 0x49, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0xd0, 0x49, 0x06, 0x1e, 0xa4, 0x49, 0x00, 0xc0, 0xd0, 0x49, 0x00,
+ 0x1f, 0xb4, 0x49, 0x00,
+ 0x9d, 0xd4, 0x49, 0x00, 0x20, 0xe4, 0x49, 0x00, 0x9d, 0xd4, 0x49, 0x00,
+ 0x21, 0xc4, 0x49, 0x00,
+ 0x9d, 0xd4, 0x49, 0x00, 0x22, 0xf4, 0x49, 0x00, 0x9d, 0xd4, 0x49, 0x00,
+ 0x79, 0xd4, 0x49, 0x00,
+ 0xc0, 0xd0, 0x49, 0x04, 0xc0, 0x00, 0x0c, 0x00, 0x9d, 0x64, 0x47, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x95, 0x64, 0x49, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x94, 0x54, 0x49, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x76, 0x44, 0x49, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x98, 0x94, 0x49, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x97, 0x84, 0x49, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x70, 0x49, 0x06,
+ 0x19, 0x44, 0x49, 0x00,
+ 0xc0, 0x70, 0x49, 0x00, 0x1a, 0x54, 0x49, 0x00, 0x97, 0x74, 0x49, 0x00,
+ 0x1b, 0x84, 0x49, 0x00,
+ 0x97, 0x74, 0x49, 0x00, 0x1c, 0x64, 0x49, 0x00, 0x97, 0x74, 0x49, 0x00,
+ 0x1d, 0x94, 0x49, 0x00,
+ 0x97, 0x74, 0x49, 0x00, 0x79, 0x74, 0x49, 0x00, 0xc0, 0x70, 0x49, 0x04,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x97, 0x64, 0x47, 0x06, 0x7a, 0x64, 0x47, 0x00, 0x78, 0x64, 0x47, 0x04,
+ 0x2e, 0x64, 0x47, 0x00,
+ 0xc0, 0xd0, 0x40, 0x04, 0x2d, 0x54, 0x47, 0x00, 0x0d, 0xd4, 0x40, 0x04,
+ 0x74, 0xc4, 0x40, 0x00,
+ 0xc0, 0x00, 0x06, 0x04, 0x74, 0xd4, 0x40, 0x00, 0xc0, 0x10, 0x06, 0x04,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x16, 0x04, 0x4e, 0x06, 0xc1, 0xc0, 0x4d, 0x00, 0xd7, 0x70, 0x0d, 0x0f,
+ 0xe0, 0x94, 0x0c, 0x00,
+ 0xc0, 0x00, 0x4e, 0x06, 0xc0, 0xd0, 0x4d, 0x00, 0xe0, 0x04, 0x4e, 0x08,
+ 0x73, 0x04, 0x4e, 0x00,
+ 0xc0, 0xe0, 0x4d, 0x04, 0xc1, 0x10, 0x0c, 0x00, 0x73, 0xf4, 0x4d, 0x08,
+ 0xdf, 0xc4, 0x40, 0x00,
+ 0xc0, 0xf0, 0x4d, 0x04, 0xc0, 0xf0, 0x4d, 0x00, 0xde, 0x04, 0x06, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x17, 0x04, 0x4e, 0x06, 0xc1, 0xc0, 0x4d, 0x00, 0xd7, 0x70, 0x0d, 0x0f,
+ 0xe0, 0x94, 0x0c, 0x00,
+ 0xc0, 0x00, 0x4e, 0x06, 0xc0, 0xd0, 0x4d, 0x00, 0xe0, 0x04, 0x4e, 0x08,
+ 0x73, 0x04, 0x4e, 0x00,
+ 0xc0, 0xe0, 0x4d, 0x04, 0xc1, 0x10, 0x0c, 0x00, 0x73, 0xf4, 0x4d, 0x08,
+ 0xdf, 0xd4, 0x40, 0x00,
+ 0xc0, 0xf0, 0x4d, 0x04, 0xc0, 0xf0, 0x4d, 0x00, 0xde, 0x14, 0x06, 0x06,
+ 0xc0, 0xc0, 0x40, 0x00,
+ 0x0c, 0x04, 0x41, 0x09, 0x10, 0x14, 0x47, 0x00, 0x71, 0x14, 0x47, 0x0a,
+ 0xc0, 0xd0, 0x40, 0x00,
+ 0x0d, 0x04, 0x41, 0x09, 0x10, 0x24, 0x47, 0x00, 0x72, 0x24, 0x47, 0x0a,
+ 0x41, 0xc4, 0x40, 0x00,
+ 0xc0, 0x80, 0x06, 0x00, 0x42, 0xd4, 0x40, 0x00, 0xc0, 0x90, 0x06, 0x00,
+ 0x41, 0xc4, 0x40, 0x00,
+ 0xc0, 0x40, 0x06, 0x00, 0x42, 0xd4, 0x40, 0x00, 0xc0, 0x50, 0x06, 0x00,
+ 0x41, 0xc4, 0x40, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0x34, 0x44, 0x00,
+ 0x43, 0x34, 0x44, 0x0a, 0x42, 0xd4, 0x40, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0x44, 0x44, 0x00, 0x44, 0x44, 0x44, 0x0a,
+ 0x4e, 0xa4, 0x40, 0x00,
+ 0xc0, 0xa0, 0x40, 0x00, 0x4e, 0xb4, 0x40, 0x00, 0xc0, 0xb0, 0x40, 0x00,
+ 0xc0, 0xa0, 0x40, 0x00,
+ 0x0a, 0x04, 0x41, 0x09, 0x10, 0xf4, 0x44, 0x00, 0x4f, 0xf4, 0x44, 0x0a,
+ 0xc0, 0xb0, 0x40, 0x00,
+ 0x0b, 0x04, 0x41, 0x09, 0x10, 0x04, 0x45, 0x00, 0x50, 0x04, 0x45, 0x0a,
+ 0x48, 0x24, 0x04, 0x00,
+ 0x0a, 0xa4, 0x40, 0x00, 0x48, 0x34, 0x04, 0x00, 0x0b, 0xb4, 0x40, 0x00,
+ 0x48, 0x24, 0x04, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0x94, 0x44, 0x00,
+ 0x49, 0x94, 0x44, 0x0a, 0x48, 0x34, 0x04, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0xa4, 0x44, 0x00, 0x4a, 0xa4, 0x44, 0x0a,
+ 0x4b, 0x04, 0x04, 0x00,
+ 0x0a, 0xa4, 0x40, 0x00, 0x4b, 0x14, 0x04, 0x00, 0x0b, 0xb4, 0x40, 0x00,
+ 0x4b, 0x04, 0x04, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0xc4, 0x44, 0x00,
+ 0x4c, 0xc4, 0x44, 0x0a, 0x4b, 0x14, 0x04, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0xd4, 0x44, 0x00, 0x4d, 0xd4, 0x44, 0x0a,
+ 0x45, 0x44, 0x04, 0x00,
+ 0x0a, 0xa4, 0x40, 0x00, 0x45, 0x54, 0x04, 0x00, 0x0b, 0xb4, 0x40, 0x00,
+ 0x45, 0x44, 0x04, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0x64, 0x44, 0x00,
+ 0x46, 0x64, 0x44, 0x0a, 0x45, 0x54, 0x04, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0x74, 0x44, 0x00, 0x47, 0x74, 0x44, 0x0a,
+ 0x51, 0xc4, 0x04, 0x00,
+ 0x0a, 0xa4, 0x40, 0x00, 0x51, 0xd4, 0x04, 0x00, 0x0b, 0xb4, 0x40, 0x00,
+ 0x51, 0xc4, 0x04, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0x24, 0x45, 0x00,
+ 0x52, 0x24, 0x45, 0x0a, 0x51, 0xd4, 0x04, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0x34, 0x45, 0x00, 0x53, 0x34, 0x45, 0x0a,
+ 0x54, 0x84, 0x04, 0x00,
+ 0x0a, 0xa4, 0x40, 0x00, 0x54, 0x94, 0x04, 0x00, 0x0b, 0xb4, 0x40, 0x00,
+ 0x54, 0x84, 0x04, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0x54, 0x45, 0x00,
+ 0x55, 0x54, 0x45, 0x0a, 0x54, 0x94, 0x04, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0x64, 0x45, 0x00, 0x56, 0x64, 0x45, 0x0a,
+ 0x04, 0xa4, 0x40, 0x00,
+ 0xc0, 0x60, 0x40, 0x00, 0x05, 0xb4, 0x40, 0x00, 0xc0, 0x70, 0x40, 0x00,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x06, 0x64, 0x47, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x06, 0x54, 0x47, 0x06,
+ 0x18, 0x64, 0x47, 0x00,
+ 0xc0, 0x60, 0x47, 0x00, 0x7b, 0x64, 0x47, 0x00, 0xc0, 0x60, 0x47, 0x00,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xbf, 0x04, 0x4c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xbe, 0xf4, 0x4b, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x76, 0xe4, 0x4b, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc2, 0x34, 0x4c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc1, 0x24, 0x4c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x10, 0x4c, 0x06,
+ 0x28, 0xe4, 0x4b, 0x00,
+ 0xc0, 0x10, 0x4c, 0x00, 0x29, 0xf4, 0x4b, 0x00, 0xc1, 0x14, 0x4c, 0x00,
+ 0x2a, 0x24, 0x4c, 0x00,
+ 0xc1, 0x14, 0x4c, 0x00, 0x2b, 0x04, 0x4c, 0x00, 0xc1, 0x14, 0x4c, 0x00,
+ 0x2c, 0x34, 0x4c, 0x00,
+ 0xc1, 0x14, 0x4c, 0x00, 0x79, 0x14, 0x4c, 0x00, 0xc0, 0x10, 0x4c, 0x04,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc1, 0x64, 0x47, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xb9, 0xa4, 0x4b, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xb8, 0x94, 0x4b, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x76, 0x84, 0x4b, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xbc, 0xd4, 0x4b, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xbb, 0xc4, 0x4b, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0xb0, 0x4b, 0x06, 0x23, 0x84, 0x4b, 0x00, 0xc0, 0xb0, 0x4b, 0x00,
+ 0x24, 0x94, 0x4b, 0x00,
+ 0xbb, 0xb4, 0x4b, 0x00, 0x25, 0xc4, 0x4b, 0x00, 0xbb, 0xb4, 0x4b, 0x00,
+ 0x26, 0xa4, 0x4b, 0x00,
+ 0xbb, 0xb4, 0x4b, 0x00, 0x27, 0xd4, 0x4b, 0x00, 0xbb, 0xb4, 0x4b, 0x00,
+ 0x79, 0xb4, 0x4b, 0x00,
+ 0xc0, 0xb0, 0x4b, 0x04, 0xc0, 0x00, 0x0c, 0x00, 0xbb, 0x64, 0x47, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xb3, 0x44, 0x4b, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xb2, 0x34, 0x4b, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x76, 0x24, 0x4b, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xb6, 0x74, 0x4b, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xb5, 0x64, 0x4b, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x50, 0x4b, 0x06,
+ 0x1e, 0x24, 0x4b, 0x00,
+ 0xc0, 0x50, 0x4b, 0x00, 0x1f, 0x34, 0x4b, 0x00, 0xb5, 0x54, 0x4b, 0x00,
+ 0x20, 0x64, 0x4b, 0x00,
+ 0xb5, 0x54, 0x4b, 0x00, 0x21, 0x44, 0x4b, 0x00, 0xb5, 0x54, 0x4b, 0x00,
+ 0x22, 0x74, 0x4b, 0x00,
+ 0xb5, 0x54, 0x4b, 0x00, 0x79, 0x54, 0x4b, 0x00, 0xc0, 0x50, 0x4b, 0x04,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xb5, 0x64, 0x47, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xad, 0xe4, 0x4a, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xac, 0xd4, 0x4a, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x76, 0xc4, 0x4a, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xb0, 0x14, 0x4b, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xaf, 0x04, 0x4b, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0xf0, 0x4a, 0x06, 0x19, 0xc4, 0x4a, 0x00, 0xc0, 0xf0, 0x4a, 0x00,
+ 0x1a, 0xd4, 0x4a, 0x00,
+ 0xaf, 0xf4, 0x4a, 0x00, 0x1b, 0x04, 0x4b, 0x00, 0xaf, 0xf4, 0x4a, 0x00,
+ 0x1c, 0xe4, 0x4a, 0x00,
+ 0xaf, 0xf4, 0x4a, 0x00, 0x1d, 0x14, 0x4b, 0x00, 0xaf, 0xf4, 0x4a, 0x00,
+ 0x79, 0xf4, 0x4a, 0x00,
+ 0xc0, 0xf0, 0x4a, 0x04, 0xc0, 0x00, 0x0c, 0x00, 0xaf, 0x64, 0x47, 0x06,
+ 0x7a, 0x64, 0x47, 0x00,
+ 0x78, 0x64, 0x47, 0x04, 0x2e, 0x64, 0x47, 0x00, 0xc0, 0x60, 0x40, 0x04,
+ 0x2d, 0x54, 0x47, 0x00,
+ 0x06, 0x64, 0x40, 0x04, 0xc0, 0x00, 0x0c, 0x00, 0x07, 0x64, 0x47, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x07, 0x54, 0x47, 0x06, 0x18, 0x64, 0x47, 0x00, 0xc0, 0x60, 0x47, 0x00,
+ 0x7b, 0x64, 0x47, 0x00,
+ 0xc0, 0x60, 0x47, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xd7, 0x84, 0x4d, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xd6, 0x74, 0x4d, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x76, 0x64, 0x4d, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xda, 0xb4, 0x4d, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xd9, 0xa4, 0x4d, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x90, 0x4d, 0x06, 0x28, 0x64, 0x4d, 0x00, 0xc0, 0x90, 0x4d, 0x00,
+ 0x29, 0x74, 0x4d, 0x00,
+ 0xd9, 0x94, 0x4d, 0x00, 0x2a, 0xa4, 0x4d, 0x00, 0xd9, 0x94, 0x4d, 0x00,
+ 0x2b, 0x84, 0x4d, 0x00,
+ 0xd9, 0x94, 0x4d, 0x00, 0x2c, 0xb4, 0x4d, 0x00, 0xd9, 0x94, 0x4d, 0x00,
+ 0x79, 0x94, 0x4d, 0x00,
+ 0xc0, 0x90, 0x4d, 0x04, 0xc0, 0x00, 0x0c, 0x00, 0xd9, 0x64, 0x47, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xd1, 0x24, 0x4d, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xd0, 0x14, 0x4d, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x76, 0x04, 0x4d, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xd4, 0x54, 0x4d, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xd3, 0x44, 0x4d, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x30, 0x4d, 0x06,
+ 0x23, 0x04, 0x4d, 0x00,
+ 0xc0, 0x30, 0x4d, 0x00, 0x24, 0x14, 0x4d, 0x00, 0xd3, 0x34, 0x4d, 0x00,
+ 0x25, 0x44, 0x4d, 0x00,
+ 0xd3, 0x34, 0x4d, 0x00, 0x26, 0x24, 0x4d, 0x00, 0xd3, 0x34, 0x4d, 0x00,
+ 0x27, 0x54, 0x4d, 0x00,
+ 0xd3, 0x34, 0x4d, 0x00, 0x79, 0x34, 0x4d, 0x00, 0xc0, 0x30, 0x4d, 0x04,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xd3, 0x64, 0x47, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xcb, 0xc4, 0x4c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xca, 0xb4, 0x4c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x76, 0xa4, 0x4c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xce, 0xf4, 0x4c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xcd, 0xe4, 0x4c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0xd0, 0x4c, 0x06, 0x1e, 0xa4, 0x4c, 0x00, 0xc0, 0xd0, 0x4c, 0x00,
+ 0x1f, 0xb4, 0x4c, 0x00,
+ 0xcd, 0xd4, 0x4c, 0x00, 0x20, 0xe4, 0x4c, 0x00, 0xcd, 0xd4, 0x4c, 0x00,
+ 0x21, 0xc4, 0x4c, 0x00,
+ 0xcd, 0xd4, 0x4c, 0x00, 0x22, 0xf4, 0x4c, 0x00, 0xcd, 0xd4, 0x4c, 0x00,
+ 0x79, 0xd4, 0x4c, 0x00,
+ 0xc0, 0xd0, 0x4c, 0x04, 0xc0, 0x00, 0x0c, 0x00, 0xcd, 0x64, 0x47, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc5, 0x64, 0x4c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc4, 0x54, 0x4c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x76, 0x44, 0x4c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc8, 0x94, 0x4c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc7, 0x84, 0x4c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x70, 0x4c, 0x06,
+ 0x19, 0x44, 0x4c, 0x00,
+ 0xc0, 0x70, 0x4c, 0x00, 0x1a, 0x54, 0x4c, 0x00, 0xc7, 0x74, 0x4c, 0x00,
+ 0x1b, 0x84, 0x4c, 0x00,
+ 0xc7, 0x74, 0x4c, 0x00, 0x1c, 0x64, 0x4c, 0x00, 0xc7, 0x74, 0x4c, 0x00,
+ 0x1d, 0x94, 0x4c, 0x00,
+ 0xc7, 0x74, 0x4c, 0x00, 0x79, 0x74, 0x4c, 0x00, 0xc0, 0x70, 0x4c, 0x04,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc7, 0x64, 0x47, 0x06, 0x7a, 0x64, 0x47, 0x00, 0x78, 0x64, 0x47, 0x04,
+ 0x2e, 0x64, 0x47, 0x00,
+ 0xc0, 0x70, 0x40, 0x04, 0x2d, 0x54, 0x47, 0x00, 0x07, 0x74, 0x40, 0x04,
+ 0x57, 0x64, 0x40, 0x00,
+ 0xc0, 0xe0, 0x06, 0x00, 0x58, 0x74, 0x40, 0x00, 0xc0, 0xf0, 0x06, 0x00,
+ 0x57, 0x64, 0x40, 0x00,
+ 0xc0, 0x60, 0x06, 0x00, 0x58, 0x74, 0x40, 0x00, 0xc0, 0x70, 0x06, 0x00,
+ 0x57, 0x64, 0x40, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0x94, 0x45, 0x00,
+ 0x59, 0x94, 0x45, 0x0a, 0x58, 0x74, 0x40, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0xa4, 0x45, 0x00, 0x5a, 0xa4, 0x45, 0x0a,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x12, 0x24, 0x06, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x13, 0x34, 0x06, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0x12, 0xa4, 0x06, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0x13, 0xb4, 0x06, 0x06,
+ 0x61, 0x04, 0x04, 0x00,
+ 0xc0, 0x60, 0x40, 0x00, 0x61, 0x14, 0x04, 0x00, 0xc0, 0x70, 0x40, 0x00,
+ 0x61, 0x04, 0x04, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0x24, 0x46, 0x00,
+ 0x62, 0x24, 0x46, 0x0a, 0x61, 0x14, 0x04, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0x34, 0x46, 0x00, 0x63, 0x34, 0x46, 0x0a,
+ 0x5b, 0x44, 0x04, 0x00,
+ 0x06, 0x64, 0x40, 0x00, 0x5b, 0x54, 0x04, 0x00, 0x07, 0x74, 0x40, 0x00,
+ 0x5b, 0x44, 0x04, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0xc4, 0x45, 0x00,
+ 0x5c, 0xc4, 0x45, 0x0a, 0x5b, 0x54, 0x04, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0xd4, 0x45, 0x00, 0x5d, 0xd4, 0x45, 0x0a,
+ 0x5e, 0x24, 0x04, 0x00,
+ 0x06, 0x64, 0x40, 0x00, 0x5e, 0x34, 0x04, 0x00, 0x07, 0x74, 0x40, 0x00,
+ 0x5e, 0x24, 0x04, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0xf4, 0x45, 0x00,
+ 0x5f, 0xf4, 0x45, 0x0a, 0x5e, 0x34, 0x04, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0x04, 0x46, 0x00, 0x60, 0x04, 0x46, 0x0a,
+ 0x64, 0x84, 0x40, 0x00,
+ 0x06, 0x64, 0x40, 0x00, 0x64, 0x94, 0x40, 0x00, 0x07, 0x74, 0x40, 0x00,
+ 0x64, 0x84, 0x40, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0x54, 0x46, 0x00,
+ 0x65, 0x54, 0x46, 0x0a, 0x64, 0x94, 0x40, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0x64, 0x46, 0x00, 0x66, 0x64, 0x46, 0x0a,
+ 0x67, 0xc4, 0x04, 0x00,
+ 0x06, 0x64, 0x40, 0x00, 0x67, 0xd4, 0x04, 0x00, 0x07, 0x74, 0x40, 0x00,
+ 0x67, 0xc4, 0x04, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0x84, 0x46, 0x00,
+ 0x68, 0x84, 0x46, 0x0a, 0x67, 0xd4, 0x04, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0x94, 0x46, 0x00, 0x69, 0x94, 0x46, 0x0a,
+ 0x6a, 0x84, 0x04, 0x00,
+ 0x06, 0x64, 0x40, 0x00, 0x6a, 0x94, 0x04, 0x00, 0x07, 0x74, 0x40, 0x00,
+ 0x6a, 0x84, 0x04, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0xb4, 0x46, 0x00,
+ 0x6b, 0xb4, 0x46, 0x0a, 0x6a, 0x94, 0x04, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0xc4, 0x46, 0x00, 0x6c, 0xc4, 0x46, 0x0a,
+ 0x6d, 0x64, 0x40, 0x00,
+ 0xc0, 0x60, 0x07, 0x00, 0x6e, 0x74, 0x40, 0x00, 0xc0, 0x70, 0x07, 0x00,
+ 0x6d, 0x64, 0x40, 0x00,
+ 0xc0, 0x10, 0x41, 0x00, 0xc0, 0x10, 0x41, 0x00, 0x11, 0x04, 0x41, 0x09,
+ 0x10, 0xf4, 0x46, 0x00,
+ 0x6f, 0xf4, 0x46, 0x0a, 0x6e, 0x74, 0x40, 0x00, 0xc0, 0x10, 0x41, 0x00,
+ 0xc0, 0x10, 0x41, 0x00,
+ 0x11, 0x04, 0x41, 0x09, 0x10, 0x04, 0x47, 0x00, 0x70, 0x04, 0x47, 0x0a,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0xc0, 0x00, 0x0c, 0x00,
+ 0xc0, 0x00, 0x0c, 0x06, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x06,
+ 0x37, 0x00, 0x00, 0x00,
+ 0x50, 0x43, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x64, 0x64, 0x00, 0x00,
+ 0x56, 0x4f, 0x4c, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x00, 0x00, 0x00,
+ 0x05, 0x00, 0x00, 0x00, 0x64, 0x64, 0x00, 0x00, 0x45, 0x51, 0x55, 0x41,
+ 0x4c, 0x49, 0x5a, 0x45,
+ 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x50, 0x52, 0x45, 0x53, 0x43, 0x41, 0x4c, 0x45,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
+ 0x64, 0x00, 0x00, 0x00,
+ 0x4c, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x00,
+ 0x4d, 0x49, 0x44, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x1e, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x00, 0x48, 0x49, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x10,
+ 0x80, 0x00, 0x00, 0x00, 0x58, 0x48, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x10,
+ 0x80, 0x00, 0x00, 0x00,
+ 0x42, 0x59, 0x50, 0x41, 0x53, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x46, 0x52, 0x4f, 0x4e,
+ 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x50, 0x44, 0x49,
+ 0x46, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00,
+ 0x64, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x44, 0x49, 0x47, 0x43, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x32, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x33, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x43, 0x39, 0x37,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x50, 0x43, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x38, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x39, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x55, 0x58, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00,
+ 0x64, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x4d, 0x49, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x3e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3f, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x4f, 0x4c, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00,
+ 0x05, 0x00, 0x00, 0x00,
+ 0x64, 0x64, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x53, 0x55, 0x52, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x53, 0x50, 0x44, 0x49,
+ 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x45, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x44, 0x49, 0x47, 0x43, 0x44, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x49, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x41, 0x43, 0x39, 0x37,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x4b, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x50, 0x43, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
+ 0x64, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x4f, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x41, 0x55, 0x58, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x51, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x4d, 0x49, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
+ 0x64, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x55, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x56, 0x4f, 0x4c, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x57, 0x00, 0x00, 0x00,
+ 0x05, 0x00, 0x00, 0x00, 0x64, 0x64, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x53, 0x50, 0x44, 0x49, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x5b, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x5c, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x49, 0x47, 0x43,
+ 0x44, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00,
+ 0x64, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x41, 0x43, 0x39, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x61, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x62, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x43, 0x4d, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x41, 0x55, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x67, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x68, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x49, 0x43, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00,
+ 0x11, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x56, 0x4f, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x6d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x64, 0x64, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x6f, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x50, 0x41, 0x53,
+ 0x53, 0x54, 0x48, 0x52,
+ 0x4f, 0x55, 0x47, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x07, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
+ 0x78, 0x00, 0x00, 0x00,
+ 0x2c, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x7a, 0x00, 0x00, 0x00,
+ 0x20, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
+ 0xdc, 0x00, 0x00, 0x00,
+ 0x08, 0x10, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00
+};
diff --git a/kernel/drv/oss_sblive/emu10k2_dsp_be.h b/kernel/drv/oss_sblive/emu10k2_dsp_be.h
new file mode 100644
index 0000000..95447fa
--- /dev/null
+++ b/kernel/drv/oss_sblive/emu10k2_dsp_be.h
@@ -0,0 +1,989 @@
+/*
+ * Purpose: DSP firmware file for Audigy (big endian machines)
+ */
+/*
+ *
+ * This file is part of Open Sound System.
+ *
+ * Copyright (C) 4Front Technologies 1996-2008.
+ *
+ * This this source file is released under GPL v2 license (no other versions).
+ * See the COPYING file included in the main directory of this source
+ * distribution for the license terms and conditions.
+ *
+ */
+static unsigned char emu10k2_dsp[] = {
+ 0x00, 0xe1, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0xc2,
+ 0x00, 0x00, 0x00, 0xc1,
+ 0x04, 0x40, 0x60, 0xc0, 0x00, 0x00, 0x10, 0xc1, 0x04, 0x40, 0x70, 0xc0,
+ 0x00, 0x40, 0x64, 0x02,
+ 0x00, 0x40, 0x80, 0xc0, 0x00, 0x40, 0x74, 0x03, 0x00, 0x40, 0x90, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x41, 0x60, 0x14, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x41, 0x70, 0x15,
+ 0x00, 0x00, 0x60, 0xc0,
+ 0x06, 0x40, 0xa0, 0x02, 0x00, 0x00, 0x70, 0xc0, 0x06, 0x40, 0xb0, 0x03,
+ 0x00, 0x00, 0x40, 0xc1,
+ 0x04, 0x41, 0x20, 0xc0, 0x00, 0x00, 0x50, 0xc1, 0x04, 0x41, 0x30, 0xc0,
+ 0x00, 0x40, 0xa4, 0x02,
+ 0x00, 0x40, 0xa0, 0xc0, 0x00, 0x40, 0xb4, 0x03, 0x00, 0x40, 0xb0, 0xc0,
+ 0x00, 0x40, 0x84, 0x38,
+ 0x00, 0x40, 0xc0, 0xc0, 0x00, 0x40, 0x94, 0x38, 0x00, 0x40, 0xd0, 0xc0,
+ 0x00, 0x40, 0xc0, 0xc0,
+ 0x09, 0x41, 0x04, 0x0c, 0x00, 0x43, 0x94, 0x10, 0x0a, 0x43, 0x94, 0x39,
+ 0x00, 0x40, 0xd0, 0xc0,
+ 0x09, 0x41, 0x04, 0x0d, 0x00, 0x43, 0xa4, 0x10, 0x0a, 0x43, 0xa4, 0x3a,
+ 0x00, 0x04, 0x24, 0x32,
+ 0x00, 0x40, 0xc4, 0x0c, 0x00, 0x04, 0x34, 0x32, 0x00, 0x40, 0xd4, 0x0d,
+ 0x00, 0x04, 0x24, 0x32,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x43, 0x34, 0x10,
+ 0x0a, 0x43, 0x34, 0x33, 0x00, 0x04, 0x34, 0x32, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x43, 0x44, 0x10, 0x0a, 0x43, 0x44, 0x34,
+ 0x00, 0x04, 0x04, 0x35,
+ 0x00, 0x40, 0xc4, 0x0c, 0x00, 0x04, 0x14, 0x35, 0x00, 0x40, 0xd4, 0x0d,
+ 0x00, 0x04, 0x04, 0x35,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x43, 0x64, 0x10,
+ 0x0a, 0x43, 0x64, 0x36, 0x00, 0x04, 0x14, 0x35, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x43, 0x74, 0x10, 0x0a, 0x43, 0x74, 0x37,
+ 0x00, 0x04, 0x44, 0x2f,
+ 0x00, 0x40, 0xc4, 0x0c, 0x00, 0x04, 0x54, 0x2f, 0x00, 0x40, 0xd4, 0x0d,
+ 0x00, 0x04, 0x44, 0x2f,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x43, 0x04, 0x10,
+ 0x0a, 0x43, 0x04, 0x30, 0x00, 0x04, 0x54, 0x2f, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x43, 0x14, 0x10, 0x0a, 0x43, 0x14, 0x31,
+ 0x00, 0x04, 0x44, 0x2f,
+ 0x00, 0x40, 0xc4, 0x0c, 0x00, 0x04, 0x54, 0x2f, 0x00, 0x40, 0xd4, 0x0d,
+ 0x00, 0x04, 0xc4, 0x3b,
+ 0x00, 0x40, 0xc4, 0x0c, 0x00, 0x04, 0xd4, 0x3b, 0x00, 0x40, 0xd4, 0x0d,
+ 0x00, 0x04, 0xc4, 0x3b,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x43, 0xc4, 0x10,
+ 0x0a, 0x43, 0xc4, 0x3c, 0x00, 0x04, 0xd4, 0x3b, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x43, 0xd4, 0x10, 0x0a, 0x43, 0xd4, 0x3d,
+ 0x00, 0x40, 0xc4, 0x04,
+ 0x00, 0x40, 0xc0, 0xc0, 0x00, 0x40, 0xd4, 0x05, 0x00, 0x40, 0xd0, 0xc0,
+ 0x00, 0x04, 0x84, 0x3e,
+ 0x00, 0x40, 0xe4, 0x0e, 0x00, 0x04, 0x94, 0x3e, 0x00, 0x40, 0xf4, 0x0f,
+ 0x00, 0x04, 0x84, 0x3e,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x43, 0xf4, 0x10,
+ 0x0a, 0x43, 0xf4, 0x3f, 0x00, 0x04, 0x94, 0x3e, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x44, 0x04, 0x10, 0x0a, 0x44, 0x04, 0x40,
+ 0x00, 0x40, 0xc4, 0x04,
+ 0x00, 0x40, 0xe0, 0xc0, 0x00, 0x40, 0xd4, 0x05, 0x00, 0x40, 0xf0, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x47, 0x64, 0x0c, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x47, 0x54, 0x0c,
+ 0x00, 0x47, 0x64, 0x18,
+ 0x00, 0x47, 0x60, 0xc0, 0x00, 0x47, 0x64, 0x7b, 0x00, 0x47, 0x60, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x49, 0x04, 0x8f, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x48, 0xf4, 0x8e,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x48, 0xe4, 0x76, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x49, 0x34, 0x92,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x49, 0x24, 0x91, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x49, 0x10, 0xc0,
+ 0x00, 0x48, 0xe4, 0x28,
+ 0x00, 0x49, 0x10, 0xc0, 0x00, 0x48, 0xf4, 0x29, 0x00, 0x49, 0x14, 0x91,
+ 0x00, 0x49, 0x24, 0x2a,
+ 0x00, 0x49, 0x14, 0x91, 0x00, 0x49, 0x04, 0x2b, 0x00, 0x49, 0x14, 0x91,
+ 0x00, 0x49, 0x34, 0x2c,
+ 0x00, 0x49, 0x14, 0x91, 0x00, 0x49, 0x14, 0x79, 0x04, 0x49, 0x10, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x47, 0x64, 0x91, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x48, 0xa4, 0x89,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x48, 0x94, 0x88, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x48, 0x84, 0x76,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x48, 0xd4, 0x8c, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x48, 0xc4, 0x8b,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x48, 0xb0, 0xc0, 0x00, 0x48, 0x84, 0x23, 0x00, 0x48, 0xb0, 0xc0,
+ 0x00, 0x48, 0x94, 0x24,
+ 0x00, 0x48, 0xb4, 0x8b, 0x00, 0x48, 0xc4, 0x25, 0x00, 0x48, 0xb4, 0x8b,
+ 0x00, 0x48, 0xa4, 0x26,
+ 0x00, 0x48, 0xb4, 0x8b, 0x00, 0x48, 0xd4, 0x27, 0x00, 0x48, 0xb4, 0x8b,
+ 0x00, 0x48, 0xb4, 0x79,
+ 0x04, 0x48, 0xb0, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x47, 0x64, 0x8b,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x48, 0x44, 0x83, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x48, 0x34, 0x82,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x48, 0x24, 0x76, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x48, 0x74, 0x86,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x48, 0x64, 0x85, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x48, 0x50, 0xc0,
+ 0x00, 0x48, 0x24, 0x1e,
+ 0x00, 0x48, 0x50, 0xc0, 0x00, 0x48, 0x34, 0x1f, 0x00, 0x48, 0x54, 0x85,
+ 0x00, 0x48, 0x64, 0x20,
+ 0x00, 0x48, 0x54, 0x85, 0x00, 0x48, 0x44, 0x21, 0x00, 0x48, 0x54, 0x85,
+ 0x00, 0x48, 0x74, 0x22,
+ 0x00, 0x48, 0x54, 0x85, 0x00, 0x48, 0x54, 0x79, 0x04, 0x48, 0x50, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x47, 0x64, 0x85, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x47, 0xe4, 0x7d,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x47, 0xd4, 0x7c, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x47, 0xc4, 0x76,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x48, 0x14, 0x80, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x48, 0x04, 0x7f,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x47, 0xf0, 0xc0, 0x00, 0x47, 0xc4, 0x19, 0x00, 0x47, 0xf0, 0xc0,
+ 0x00, 0x47, 0xd4, 0x1a,
+ 0x00, 0x47, 0xf4, 0x7f, 0x00, 0x48, 0x04, 0x1b, 0x00, 0x47, 0xf4, 0x7f,
+ 0x00, 0x47, 0xe4, 0x1c,
+ 0x00, 0x47, 0xf4, 0x7f, 0x00, 0x48, 0x14, 0x1d, 0x00, 0x47, 0xf4, 0x7f,
+ 0x00, 0x47, 0xf4, 0x79,
+ 0x04, 0x47, 0xf0, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x47, 0x64, 0x7f,
+ 0x00, 0x47, 0x64, 0x7a,
+ 0x04, 0x47, 0x64, 0x78, 0x00, 0x47, 0x64, 0x2e, 0x04, 0x40, 0xc0, 0xc0,
+ 0x00, 0x47, 0x54, 0x2d,
+ 0x04, 0x40, 0xc4, 0x0c, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x47, 0x64, 0x0d,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x47, 0x54, 0x0d, 0x00, 0x47, 0x64, 0x18, 0x00, 0x47, 0x60, 0xc0,
+ 0x00, 0x47, 0x64, 0x7b,
+ 0x00, 0x47, 0x60, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4a, 0x84, 0xa7,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4a, 0x74, 0xa6, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4a, 0x64, 0x76,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4a, 0xb4, 0xaa, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4a, 0xa4, 0xa9,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4a, 0x90, 0xc0, 0x00, 0x4a, 0x64, 0x28, 0x00, 0x4a, 0x90, 0xc0,
+ 0x00, 0x4a, 0x74, 0x29,
+ 0x00, 0x4a, 0x94, 0xa9, 0x00, 0x4a, 0xa4, 0x2a, 0x00, 0x4a, 0x94, 0xa9,
+ 0x00, 0x4a, 0x84, 0x2b,
+ 0x00, 0x4a, 0x94, 0xa9, 0x00, 0x4a, 0xb4, 0x2c, 0x00, 0x4a, 0x94, 0xa9,
+ 0x00, 0x4a, 0x94, 0x79,
+ 0x04, 0x4a, 0x90, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x47, 0x64, 0xa9,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4a, 0x24, 0xa1, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4a, 0x14, 0xa0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4a, 0x04, 0x76, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4a, 0x54, 0xa4,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4a, 0x44, 0xa3, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4a, 0x30, 0xc0,
+ 0x00, 0x4a, 0x04, 0x23,
+ 0x00, 0x4a, 0x30, 0xc0, 0x00, 0x4a, 0x14, 0x24, 0x00, 0x4a, 0x34, 0xa3,
+ 0x00, 0x4a, 0x44, 0x25,
+ 0x00, 0x4a, 0x34, 0xa3, 0x00, 0x4a, 0x24, 0x26, 0x00, 0x4a, 0x34, 0xa3,
+ 0x00, 0x4a, 0x54, 0x27,
+ 0x00, 0x4a, 0x34, 0xa3, 0x00, 0x4a, 0x34, 0x79, 0x04, 0x4a, 0x30, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x47, 0x64, 0xa3, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x49, 0xc4, 0x9b,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x49, 0xb4, 0x9a, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x49, 0xa4, 0x76,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x49, 0xf4, 0x9e, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x49, 0xe4, 0x9d,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x49, 0xd0, 0xc0, 0x00, 0x49, 0xa4, 0x1e, 0x00, 0x49, 0xd0, 0xc0,
+ 0x00, 0x49, 0xb4, 0x1f,
+ 0x00, 0x49, 0xd4, 0x9d, 0x00, 0x49, 0xe4, 0x20, 0x00, 0x49, 0xd4, 0x9d,
+ 0x00, 0x49, 0xc4, 0x21,
+ 0x00, 0x49, 0xd4, 0x9d, 0x00, 0x49, 0xf4, 0x22, 0x00, 0x49, 0xd4, 0x9d,
+ 0x00, 0x49, 0xd4, 0x79,
+ 0x04, 0x49, 0xd0, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x47, 0x64, 0x9d,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x49, 0x64, 0x95, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x49, 0x54, 0x94,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x49, 0x44, 0x76, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x49, 0x94, 0x98,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x49, 0x84, 0x97, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x49, 0x70, 0xc0,
+ 0x00, 0x49, 0x44, 0x19,
+ 0x00, 0x49, 0x70, 0xc0, 0x00, 0x49, 0x54, 0x1a, 0x00, 0x49, 0x74, 0x97,
+ 0x00, 0x49, 0x84, 0x1b,
+ 0x00, 0x49, 0x74, 0x97, 0x00, 0x49, 0x64, 0x1c, 0x00, 0x49, 0x74, 0x97,
+ 0x00, 0x49, 0x94, 0x1d,
+ 0x00, 0x49, 0x74, 0x97, 0x00, 0x49, 0x74, 0x79, 0x04, 0x49, 0x70, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x47, 0x64, 0x97, 0x00, 0x47, 0x64, 0x7a, 0x04, 0x47, 0x64, 0x78,
+ 0x00, 0x47, 0x64, 0x2e,
+ 0x04, 0x40, 0xd0, 0xc0, 0x00, 0x47, 0x54, 0x2d, 0x04, 0x40, 0xd4, 0x0d,
+ 0x00, 0x40, 0xc4, 0x74,
+ 0x04, 0x06, 0x00, 0xc0, 0x00, 0x40, 0xd4, 0x74, 0x04, 0x06, 0x10, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4e, 0x04, 0x16, 0x00, 0x4d, 0xc0, 0xc1, 0x0f, 0x0d, 0x70, 0xd7,
+ 0x00, 0x0c, 0x94, 0xe0,
+ 0x06, 0x4e, 0x00, 0xc0, 0x00, 0x4d, 0xd0, 0xc0, 0x08, 0x4e, 0x04, 0xe0,
+ 0x00, 0x4e, 0x04, 0x73,
+ 0x04, 0x4d, 0xe0, 0xc0, 0x00, 0x0c, 0x10, 0xc1, 0x08, 0x4d, 0xf4, 0x73,
+ 0x00, 0x40, 0xc4, 0xdf,
+ 0x04, 0x4d, 0xf0, 0xc0, 0x00, 0x4d, 0xf0, 0xc0, 0x06, 0x06, 0x04, 0xde,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4e, 0x04, 0x17, 0x00, 0x4d, 0xc0, 0xc1, 0x0f, 0x0d, 0x70, 0xd7,
+ 0x00, 0x0c, 0x94, 0xe0,
+ 0x06, 0x4e, 0x00, 0xc0, 0x00, 0x4d, 0xd0, 0xc0, 0x08, 0x4e, 0x04, 0xe0,
+ 0x00, 0x4e, 0x04, 0x73,
+ 0x04, 0x4d, 0xe0, 0xc0, 0x00, 0x0c, 0x10, 0xc1, 0x08, 0x4d, 0xf4, 0x73,
+ 0x00, 0x40, 0xd4, 0xdf,
+ 0x04, 0x4d, 0xf0, 0xc0, 0x00, 0x4d, 0xf0, 0xc0, 0x06, 0x06, 0x14, 0xde,
+ 0x00, 0x40, 0xc0, 0xc0,
+ 0x09, 0x41, 0x04, 0x0c, 0x00, 0x47, 0x14, 0x10, 0x0a, 0x47, 0x14, 0x71,
+ 0x00, 0x40, 0xd0, 0xc0,
+ 0x09, 0x41, 0x04, 0x0d, 0x00, 0x47, 0x24, 0x10, 0x0a, 0x47, 0x24, 0x72,
+ 0x00, 0x40, 0xc4, 0x41,
+ 0x00, 0x06, 0x80, 0xc0, 0x00, 0x40, 0xd4, 0x42, 0x00, 0x06, 0x90, 0xc0,
+ 0x00, 0x40, 0xc4, 0x41,
+ 0x00, 0x06, 0x40, 0xc0, 0x00, 0x40, 0xd4, 0x42, 0x00, 0x06, 0x50, 0xc0,
+ 0x00, 0x40, 0xc4, 0x41,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x44, 0x34, 0x10,
+ 0x0a, 0x44, 0x34, 0x43, 0x00, 0x40, 0xd4, 0x42, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x44, 0x44, 0x10, 0x0a, 0x44, 0x44, 0x44,
+ 0x00, 0x40, 0xa4, 0x4e,
+ 0x00, 0x40, 0xa0, 0xc0, 0x00, 0x40, 0xb4, 0x4e, 0x00, 0x40, 0xb0, 0xc0,
+ 0x00, 0x40, 0xa0, 0xc0,
+ 0x09, 0x41, 0x04, 0x0a, 0x00, 0x44, 0xf4, 0x10, 0x0a, 0x44, 0xf4, 0x4f,
+ 0x00, 0x40, 0xb0, 0xc0,
+ 0x09, 0x41, 0x04, 0x0b, 0x00, 0x45, 0x04, 0x10, 0x0a, 0x45, 0x04, 0x50,
+ 0x00, 0x04, 0x24, 0x48,
+ 0x00, 0x40, 0xa4, 0x0a, 0x00, 0x04, 0x34, 0x48, 0x00, 0x40, 0xb4, 0x0b,
+ 0x00, 0x04, 0x24, 0x48,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x44, 0x94, 0x10,
+ 0x0a, 0x44, 0x94, 0x49, 0x00, 0x04, 0x34, 0x48, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x44, 0xa4, 0x10, 0x0a, 0x44, 0xa4, 0x4a,
+ 0x00, 0x04, 0x04, 0x4b,
+ 0x00, 0x40, 0xa4, 0x0a, 0x00, 0x04, 0x14, 0x4b, 0x00, 0x40, 0xb4, 0x0b,
+ 0x00, 0x04, 0x04, 0x4b,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x44, 0xc4, 0x10,
+ 0x0a, 0x44, 0xc4, 0x4c, 0x00, 0x04, 0x14, 0x4b, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x44, 0xd4, 0x10, 0x0a, 0x44, 0xd4, 0x4d,
+ 0x00, 0x04, 0x44, 0x45,
+ 0x00, 0x40, 0xa4, 0x0a, 0x00, 0x04, 0x54, 0x45, 0x00, 0x40, 0xb4, 0x0b,
+ 0x00, 0x04, 0x44, 0x45,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x44, 0x64, 0x10,
+ 0x0a, 0x44, 0x64, 0x46, 0x00, 0x04, 0x54, 0x45, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x44, 0x74, 0x10, 0x0a, 0x44, 0x74, 0x47,
+ 0x00, 0x04, 0xc4, 0x51,
+ 0x00, 0x40, 0xa4, 0x0a, 0x00, 0x04, 0xd4, 0x51, 0x00, 0x40, 0xb4, 0x0b,
+ 0x00, 0x04, 0xc4, 0x51,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x45, 0x24, 0x10,
+ 0x0a, 0x45, 0x24, 0x52, 0x00, 0x04, 0xd4, 0x51, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x45, 0x34, 0x10, 0x0a, 0x45, 0x34, 0x53,
+ 0x00, 0x04, 0x84, 0x54,
+ 0x00, 0x40, 0xa4, 0x0a, 0x00, 0x04, 0x94, 0x54, 0x00, 0x40, 0xb4, 0x0b,
+ 0x00, 0x04, 0x84, 0x54,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x45, 0x54, 0x10,
+ 0x0a, 0x45, 0x54, 0x55, 0x00, 0x04, 0x94, 0x54, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x45, 0x64, 0x10, 0x0a, 0x45, 0x64, 0x56,
+ 0x00, 0x40, 0xa4, 0x04,
+ 0x00, 0x40, 0x60, 0xc0, 0x00, 0x40, 0xb4, 0x05, 0x00, 0x40, 0x70, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x47, 0x64, 0x06, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x47, 0x54, 0x06,
+ 0x00, 0x47, 0x64, 0x18,
+ 0x00, 0x47, 0x60, 0xc0, 0x00, 0x47, 0x64, 0x7b, 0x00, 0x47, 0x60, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4c, 0x04, 0xbf, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4b, 0xf4, 0xbe,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4b, 0xe4, 0x76, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4c, 0x34, 0xc2,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4c, 0x24, 0xc1, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4c, 0x10, 0xc0,
+ 0x00, 0x4b, 0xe4, 0x28,
+ 0x00, 0x4c, 0x10, 0xc0, 0x00, 0x4b, 0xf4, 0x29, 0x00, 0x4c, 0x14, 0xc1,
+ 0x00, 0x4c, 0x24, 0x2a,
+ 0x00, 0x4c, 0x14, 0xc1, 0x00, 0x4c, 0x04, 0x2b, 0x00, 0x4c, 0x14, 0xc1,
+ 0x00, 0x4c, 0x34, 0x2c,
+ 0x00, 0x4c, 0x14, 0xc1, 0x00, 0x4c, 0x14, 0x79, 0x04, 0x4c, 0x10, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x47, 0x64, 0xc1, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4b, 0xa4, 0xb9,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4b, 0x94, 0xb8, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4b, 0x84, 0x76,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4b, 0xd4, 0xbc, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4b, 0xc4, 0xbb,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4b, 0xb0, 0xc0, 0x00, 0x4b, 0x84, 0x23, 0x00, 0x4b, 0xb0, 0xc0,
+ 0x00, 0x4b, 0x94, 0x24,
+ 0x00, 0x4b, 0xb4, 0xbb, 0x00, 0x4b, 0xc4, 0x25, 0x00, 0x4b, 0xb4, 0xbb,
+ 0x00, 0x4b, 0xa4, 0x26,
+ 0x00, 0x4b, 0xb4, 0xbb, 0x00, 0x4b, 0xd4, 0x27, 0x00, 0x4b, 0xb4, 0xbb,
+ 0x00, 0x4b, 0xb4, 0x79,
+ 0x04, 0x4b, 0xb0, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x47, 0x64, 0xbb,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4b, 0x44, 0xb3, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4b, 0x34, 0xb2,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4b, 0x24, 0x76, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4b, 0x74, 0xb6,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4b, 0x64, 0xb5, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4b, 0x50, 0xc0,
+ 0x00, 0x4b, 0x24, 0x1e,
+ 0x00, 0x4b, 0x50, 0xc0, 0x00, 0x4b, 0x34, 0x1f, 0x00, 0x4b, 0x54, 0xb5,
+ 0x00, 0x4b, 0x64, 0x20,
+ 0x00, 0x4b, 0x54, 0xb5, 0x00, 0x4b, 0x44, 0x21, 0x00, 0x4b, 0x54, 0xb5,
+ 0x00, 0x4b, 0x74, 0x22,
+ 0x00, 0x4b, 0x54, 0xb5, 0x00, 0x4b, 0x54, 0x79, 0x04, 0x4b, 0x50, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x47, 0x64, 0xb5, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4a, 0xe4, 0xad,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4a, 0xd4, 0xac, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4a, 0xc4, 0x76,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4b, 0x14, 0xb0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4b, 0x04, 0xaf,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4a, 0xf0, 0xc0, 0x00, 0x4a, 0xc4, 0x19, 0x00, 0x4a, 0xf0, 0xc0,
+ 0x00, 0x4a, 0xd4, 0x1a,
+ 0x00, 0x4a, 0xf4, 0xaf, 0x00, 0x4b, 0x04, 0x1b, 0x00, 0x4a, 0xf4, 0xaf,
+ 0x00, 0x4a, 0xe4, 0x1c,
+ 0x00, 0x4a, 0xf4, 0xaf, 0x00, 0x4b, 0x14, 0x1d, 0x00, 0x4a, 0xf4, 0xaf,
+ 0x00, 0x4a, 0xf4, 0x79,
+ 0x04, 0x4a, 0xf0, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x47, 0x64, 0xaf,
+ 0x00, 0x47, 0x64, 0x7a,
+ 0x04, 0x47, 0x64, 0x78, 0x00, 0x47, 0x64, 0x2e, 0x04, 0x40, 0x60, 0xc0,
+ 0x00, 0x47, 0x54, 0x2d,
+ 0x04, 0x40, 0x64, 0x06, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x47, 0x64, 0x07,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x47, 0x54, 0x07, 0x00, 0x47, 0x64, 0x18, 0x00, 0x47, 0x60, 0xc0,
+ 0x00, 0x47, 0x64, 0x7b,
+ 0x00, 0x47, 0x60, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4d, 0x84, 0xd7,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4d, 0x74, 0xd6, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4d, 0x64, 0x76,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4d, 0xb4, 0xda, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4d, 0xa4, 0xd9,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4d, 0x90, 0xc0, 0x00, 0x4d, 0x64, 0x28, 0x00, 0x4d, 0x90, 0xc0,
+ 0x00, 0x4d, 0x74, 0x29,
+ 0x00, 0x4d, 0x94, 0xd9, 0x00, 0x4d, 0xa4, 0x2a, 0x00, 0x4d, 0x94, 0xd9,
+ 0x00, 0x4d, 0x84, 0x2b,
+ 0x00, 0x4d, 0x94, 0xd9, 0x00, 0x4d, 0xb4, 0x2c, 0x00, 0x4d, 0x94, 0xd9,
+ 0x00, 0x4d, 0x94, 0x79,
+ 0x04, 0x4d, 0x90, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x47, 0x64, 0xd9,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4d, 0x24, 0xd1, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4d, 0x14, 0xd0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4d, 0x04, 0x76, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4d, 0x54, 0xd4,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4d, 0x44, 0xd3, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4d, 0x30, 0xc0,
+ 0x00, 0x4d, 0x04, 0x23,
+ 0x00, 0x4d, 0x30, 0xc0, 0x00, 0x4d, 0x14, 0x24, 0x00, 0x4d, 0x34, 0xd3,
+ 0x00, 0x4d, 0x44, 0x25,
+ 0x00, 0x4d, 0x34, 0xd3, 0x00, 0x4d, 0x24, 0x26, 0x00, 0x4d, 0x34, 0xd3,
+ 0x00, 0x4d, 0x54, 0x27,
+ 0x00, 0x4d, 0x34, 0xd3, 0x00, 0x4d, 0x34, 0x79, 0x04, 0x4d, 0x30, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x47, 0x64, 0xd3, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4c, 0xc4, 0xcb,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4c, 0xb4, 0xca, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4c, 0xa4, 0x76,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4c, 0xf4, 0xce, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4c, 0xe4, 0xcd,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4c, 0xd0, 0xc0, 0x00, 0x4c, 0xa4, 0x1e, 0x00, 0x4c, 0xd0, 0xc0,
+ 0x00, 0x4c, 0xb4, 0x1f,
+ 0x00, 0x4c, 0xd4, 0xcd, 0x00, 0x4c, 0xe4, 0x20, 0x00, 0x4c, 0xd4, 0xcd,
+ 0x00, 0x4c, 0xc4, 0x21,
+ 0x00, 0x4c, 0xd4, 0xcd, 0x00, 0x4c, 0xf4, 0x22, 0x00, 0x4c, 0xd4, 0xcd,
+ 0x00, 0x4c, 0xd4, 0x79,
+ 0x04, 0x4c, 0xd0, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x47, 0x64, 0xcd,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4c, 0x64, 0xc5, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4c, 0x54, 0xc4,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4c, 0x44, 0x76, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4c, 0x94, 0xc8,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x4c, 0x84, 0xc7, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x4c, 0x70, 0xc0,
+ 0x00, 0x4c, 0x44, 0x19,
+ 0x00, 0x4c, 0x70, 0xc0, 0x00, 0x4c, 0x54, 0x1a, 0x00, 0x4c, 0x74, 0xc7,
+ 0x00, 0x4c, 0x84, 0x1b,
+ 0x00, 0x4c, 0x74, 0xc7, 0x00, 0x4c, 0x64, 0x1c, 0x00, 0x4c, 0x74, 0xc7,
+ 0x00, 0x4c, 0x94, 0x1d,
+ 0x00, 0x4c, 0x74, 0xc7, 0x00, 0x4c, 0x74, 0x79, 0x04, 0x4c, 0x70, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x47, 0x64, 0xc7, 0x00, 0x47, 0x64, 0x7a, 0x04, 0x47, 0x64, 0x78,
+ 0x00, 0x47, 0x64, 0x2e,
+ 0x04, 0x40, 0x70, 0xc0, 0x00, 0x47, 0x54, 0x2d, 0x04, 0x40, 0x74, 0x07,
+ 0x00, 0x40, 0x64, 0x57,
+ 0x00, 0x06, 0xe0, 0xc0, 0x00, 0x40, 0x74, 0x58, 0x00, 0x06, 0xf0, 0xc0,
+ 0x00, 0x40, 0x64, 0x57,
+ 0x00, 0x06, 0x60, 0xc0, 0x00, 0x40, 0x74, 0x58, 0x00, 0x06, 0x70, 0xc0,
+ 0x00, 0x40, 0x64, 0x57,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x45, 0x94, 0x10,
+ 0x0a, 0x45, 0x94, 0x59, 0x00, 0x40, 0x74, 0x58, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x45, 0xa4, 0x10, 0x0a, 0x45, 0xa4, 0x5a,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x06, 0x24, 0x12, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x06, 0x34, 0x13,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x06, 0xa4, 0x12, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x06, 0xb4, 0x13,
+ 0x00, 0x04, 0x04, 0x61,
+ 0x00, 0x40, 0x60, 0xc0, 0x00, 0x04, 0x14, 0x61, 0x00, 0x40, 0x70, 0xc0,
+ 0x00, 0x04, 0x04, 0x61,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x46, 0x24, 0x10,
+ 0x0a, 0x46, 0x24, 0x62, 0x00, 0x04, 0x14, 0x61, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x46, 0x34, 0x10, 0x0a, 0x46, 0x34, 0x63,
+ 0x00, 0x04, 0x44, 0x5b,
+ 0x00, 0x40, 0x64, 0x06, 0x00, 0x04, 0x54, 0x5b, 0x00, 0x40, 0x74, 0x07,
+ 0x00, 0x04, 0x44, 0x5b,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x45, 0xc4, 0x10,
+ 0x0a, 0x45, 0xc4, 0x5c, 0x00, 0x04, 0x54, 0x5b, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x45, 0xd4, 0x10, 0x0a, 0x45, 0xd4, 0x5d,
+ 0x00, 0x04, 0x24, 0x5e,
+ 0x00, 0x40, 0x64, 0x06, 0x00, 0x04, 0x34, 0x5e, 0x00, 0x40, 0x74, 0x07,
+ 0x00, 0x04, 0x24, 0x5e,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x45, 0xf4, 0x10,
+ 0x0a, 0x45, 0xf4, 0x5f, 0x00, 0x04, 0x34, 0x5e, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x46, 0x04, 0x10, 0x0a, 0x46, 0x04, 0x60,
+ 0x00, 0x40, 0x84, 0x64,
+ 0x00, 0x40, 0x64, 0x06, 0x00, 0x40, 0x94, 0x64, 0x00, 0x40, 0x74, 0x07,
+ 0x00, 0x40, 0x84, 0x64,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x46, 0x54, 0x10,
+ 0x0a, 0x46, 0x54, 0x65, 0x00, 0x40, 0x94, 0x64, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x46, 0x64, 0x10, 0x0a, 0x46, 0x64, 0x66,
+ 0x00, 0x04, 0xc4, 0x67,
+ 0x00, 0x40, 0x64, 0x06, 0x00, 0x04, 0xd4, 0x67, 0x00, 0x40, 0x74, 0x07,
+ 0x00, 0x04, 0xc4, 0x67,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x46, 0x84, 0x10,
+ 0x0a, 0x46, 0x84, 0x68, 0x00, 0x04, 0xd4, 0x67, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x46, 0x94, 0x10, 0x0a, 0x46, 0x94, 0x69,
+ 0x00, 0x04, 0x84, 0x6a,
+ 0x00, 0x40, 0x64, 0x06, 0x00, 0x04, 0x94, 0x6a, 0x00, 0x40, 0x74, 0x07,
+ 0x00, 0x04, 0x84, 0x6a,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x46, 0xb4, 0x10,
+ 0x0a, 0x46, 0xb4, 0x6b, 0x00, 0x04, 0x94, 0x6a, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x46, 0xc4, 0x10, 0x0a, 0x46, 0xc4, 0x6c,
+ 0x00, 0x40, 0x64, 0x6d,
+ 0x00, 0x07, 0x60, 0xc0, 0x00, 0x40, 0x74, 0x6e, 0x00, 0x07, 0x70, 0xc0,
+ 0x00, 0x40, 0x64, 0x6d,
+ 0x00, 0x41, 0x10, 0xc0, 0x00, 0x41, 0x10, 0xc0, 0x09, 0x41, 0x04, 0x11,
+ 0x00, 0x46, 0xf4, 0x10,
+ 0x0a, 0x46, 0xf4, 0x6f, 0x00, 0x40, 0x74, 0x6e, 0x00, 0x41, 0x10, 0xc0,
+ 0x00, 0x41, 0x10, 0xc0,
+ 0x09, 0x41, 0x04, 0x11, 0x00, 0x47, 0x04, 0x10, 0x0a, 0x47, 0x04, 0x70,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x0c, 0x00, 0xc0,
+ 0x06, 0x0c, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xc0, 0x06, 0x0c, 0x00, 0xc0,
+ 0x00, 0x00, 0x00, 0x37,
+ 0x50, 0x43, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x64, 0x64,
+ 0x56, 0x4f, 0x4c, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x64, 0x64, 0x45, 0x51, 0x55, 0x41,
+ 0x4c, 0x49, 0x5a, 0x45,
+ 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x50, 0x52, 0x45, 0x53, 0x43, 0x41, 0x4c, 0x45,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x64,
+ 0x4c, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x19, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
+ 0x4d, 0x49, 0x44, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1e,
+ 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0x48, 0x49, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23,
+ 0x10, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x80, 0x58, 0x48, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x10, 0x00, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x80,
+ 0x42, 0x59, 0x50, 0x41, 0x53, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
+ 0x46, 0x52, 0x4f, 0x4e,
+ 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x53, 0x50, 0x44, 0x49,
+ 0x46, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f,
+ 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x64, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x44, 0x49, 0x47, 0x43, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x33,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x41, 0x43, 0x39, 0x37,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35,
+ 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x50, 0x43, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x39,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x41, 0x55, 0x58, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b,
+ 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x64, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x4d, 0x49, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x3f,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x56, 0x4f, 0x4c, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41,
+ 0x00, 0x00, 0x00, 0x05,
+ 0x00, 0x00, 0x64, 0x64, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x53, 0x55, 0x52, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x53, 0x50, 0x44, 0x49,
+ 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x45,
+ 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46,
+ 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x44, 0x49, 0x47, 0x43, 0x44, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+ 0x41, 0x43, 0x39, 0x37,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x4b,
+ 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c,
+ 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x50, 0x43, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x64,
+ 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+ 0x41, 0x55, 0x58, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x51,
+ 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52,
+ 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x4d, 0x49, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x64,
+ 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+ 0x56, 0x4f, 0x4c, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x57,
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x64, 0x64, 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59,
+ 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x53, 0x50, 0x44, 0x49, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x5c,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x44, 0x49, 0x47, 0x43,
+ 0x44, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e,
+ 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x64, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x41, 0x43, 0x39, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x62,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x50, 0x43, 0x4d, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64,
+ 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x41, 0x55, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x68,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x49, 0x43, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a,
+ 0x00, 0x00, 0x00, 0x11,
+ 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x56, 0x4f, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x64, 0x64,
+ 0x2d, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x6f,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x50, 0x41, 0x53,
+ 0x53, 0x54, 0x48, 0x52,
+ 0x4f, 0x55, 0x47, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73,
+ 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x10, 0x00,
+ 0x00, 0x00, 0x00, 0x78,
+ 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x7a,
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x7b, 0x04, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xdc,
+ 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x00, 0xdd, 0xff, 0xff, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00
+};
diff --git a/kernel/drv/oss_sblive/oss_sblive.c b/kernel/drv/oss_sblive/oss_sblive.c
new file mode 100644
index 0000000..b516746
--- /dev/null
+++ b/kernel/drv/oss_sblive/oss_sblive.c
@@ -0,0 +1,3985 @@
+/*
+ * Purpose: Driver for Creative SB Live/Audigy/2/4. Audio, MIDI and mixer services.
+ */
+/*
+ *
+ * This file is part of Open Sound System.
+ *
+ * Copyright (C) 4Front Technologies 1996-2008.
+ *
+ * This this source file is released under GPL v2 license (no other versions).
+ * See the COPYING file included in the main directory of this source
+ * distribution for the license terms and conditions.
+ *
+ */
+
+#include "oss_sblive_cfg.h"
+#include "midi_core.h"
+#include "oss_pci.h"
+#include "remux.h"
+
+/*
+ * Include the DSP files for emu10k1 (Live!) and emu10k2 (Audigy)
+ * These headers have been generated using the emu10k tools (by 4Front).
+ * The _be.h files have been generated in a big endian system and the others
+ * in a litle endian (intel) system.
+ */
+#ifdef OSS_BIG_ENDIAN
+# include "emu10k1_dsp_be.h"
+# include "emu10k2_dsp_be.h"
+#else
+# include "emu10k1_dsp.h"
+# include "emu10k2_dsp.h"
+#endif
+
+#define NO_EMU10K1_SYNTH
+#undef TEST_3D
+
+#define BOGUS_MIXER_CONTROLS ( \
+ SOUND_MASK_SPEAKER | \
+ SOUND_MASK_ALTPCM | \
+ SOUND_MASK_VIDEO | \
+ SOUND_MASK_DEPTH | \
+ SOUND_MASK_MONO \
+ )
+
+#ifndef linux
+#define NO_EMU10K1_SYNTH
+#endif
+
+#include "ac97.h"
+#include "sblive.h"
+#include "eq1.h"
+
+#define MAX_SENDS 4
+
+#define SEND_L 0
+#define SEND_R 1
+#define SEND_SL 2
+#define SEND_SR 3
+#define SEND_C 4
+#define SEND_W 5
+#define SEND_RL 6
+#define SEND_RR 7
+
+#define SPDIF_L 20
+#define SPDIF_R 21
+
+static unsigned char default_routing[MAX_SENDS] =
+ { SEND_L, SEND_R, SEND_SL, SEND_SR };
+static unsigned char front_routing[MAX_SENDS] =
+ { SEND_L, SEND_R, 0x3f, 0x3f };
+static unsigned char surr_routing[MAX_SENDS] =
+ { SEND_SL, SEND_SR, 0x3f, 0x3f };
+static unsigned char center_lfe_routing[MAX_SENDS] =
+ { SEND_C, SEND_W, 0x3f, 0x3f };
+static unsigned char rear_routing[MAX_SENDS] =
+ { SEND_RL, SEND_RR, 0x3f, 0x3f };
+static unsigned char spdif_routing[MAX_SENDS] =
+ { SPDIF_L, SPDIF_R, 0x3f, 0x3f };
+
+typedef struct
+{
+ int speed;
+ int pitch;
+ int recbits;
+ int audigy_recbits;
+ int rom;
+}
+speed_ent;
+
+/* Note! with audigy speedsel=7 means 12 kHz */
+
+static speed_ent speed_tab[] = {
+ {8000, 0xb6a41b, 7, 8, ROM7},
+ {11025, 0xbe0b64, 6, 6, ROM6},
+ {16000, 0xc6a41b, 5, 5, ROM5},
+ {22050, 0xce0b64, 4, 3, ROM4},
+ {24000, 0xd00000, 3, 3, ROM3},
+ {32000, 0xd6a41b, 2, 2, ROM2},
+ {44100, 0xde0b64, 1, 1, ROM1},
+ {48000, 0xe00000, 0, 0, ROM0},
+ {0}
+};
+
+#define PCI_VENDOR_ID_CREATIVE 0x1102
+#define PCI_DEVICE_ID_SBLIVE 0x0002
+#define PCI_DEVICE_ID_AUDIGY 0x0004
+#define PCI_DEVICE_ID_AUDIGYVALUE 0x0008
+#define PCI_DEVICE_ID_AUDIGY_CARDBUS 0x2001
+
+#define LEFT_CH 0
+#define RIGHT_CH 1
+
+void sblive_init_voice (sblive_devc * devc, int chn);
+static void audigyuartintr (sblive_devc * devc);
+
+static int
+ac97_read (void *devc_, int wAddr)
+{
+ sblive_devc *devc = devc_;
+ int dtemp = 0, i;
+
+ oss_native_word flags;
+
+ MUTEX_ENTER_IRQDISABLE (devc->low_mutex, flags);
+ OUTB (devc->osdev, wAddr, devc->base + 0x1e);
+ for (i = 0; i < 10000; i++)
+ if (INB (devc->osdev, devc->base + 0x1e) & 0x80)
+ break;
+ if (i == 1000)
+ {
+ MUTEX_EXIT_IRQRESTORE (devc->low_mutex, flags);
+ return OSS_EIO; /* Timeout */
+ }
+ dtemp = INW (devc->osdev, devc->base + 0x1c);
+ MUTEX_EXIT_IRQRESTORE (devc->low_mutex, flags);
+
+ return dtemp & 0xffff;
+}
+
+static int
+ac97_write (void *devc_, int wAddr, int wData)
+{
+ sblive_devc *devc = devc_;
+ oss_native_word flags;
+ int i;
+
+ MUTEX_ENTER_IRQDISABLE (devc->low_mutex, flags);
+ OUTB (devc->osdev, wAddr, devc->base + 0x1e);
+ for (i = 0; i < 10000; i++)
+ if (INB (devc->osdev, devc->base + 0x1e) & 0x80)
+ break;
+ OUTW (devc->osdev, wData, devc->base + 0x1c);
+ MUTEX_EXIT_IRQRESTORE (devc->low_mutex, flags);
+
+ return 0;
+}
+
+unsigned int
+sblive_read_reg (sblive_devc * devc, int reg, int chn)
+{
+ oss_native_word flags;
+ unsigned int ptr, ptr_addr_mask, val, mask, size, offset;
+
+ MUTEX_ENTER_IRQDISABLE (devc->low_mutex, flags);
+ ptr_addr_mask = (devc->feature_mask & SB_AUDIGY) ? 0x0fff0000 : 0x07ff0000;
+ ptr = ((reg << 16) & ptr_addr_mask) | (chn & 0x3f);
+ OUTL (devc->osdev, ptr, devc->base + 0x00); /* Pointer */
+ val = INL (devc->osdev, devc->base + 0x04); /* Data */
+ if (reg & 0xff000000)
+ {
+ size = (reg >> 24) & 0x3f;
+ offset = (reg >> 16) & 0x1f;
+ mask = ((1 << size) - 1) << offset;
+ val &= mask;
+ val >>= offset;
+ }
+ MUTEX_EXIT_IRQRESTORE (devc->low_mutex, flags);
+
+ return val;
+}
+
+void
+sblive_write_reg (sblive_devc * devc, int reg, int chn, unsigned int value)
+{
+ oss_native_word flags;
+ unsigned int ptr, ptr_addr_mask, mask, size, offset;
+
+ MUTEX_ENTER_IRQDISABLE (devc->low_mutex, flags);
+ ptr_addr_mask = (devc->feature_mask & SB_AUDIGY) ? 0x0fff0000 : 0x07ff0000;
+ ptr = ((reg << 16) & ptr_addr_mask) | (chn & 0x3f);
+ OUTL (devc->osdev, ptr, devc->base + 0x00); /* Pointer */
+ if (reg & 0xff000000)
+ {
+ size = (reg >> 24) & 0x3f;
+ offset = (reg >> 16) & 0x1f;
+ mask = ((1 << size) - 1) << offset;
+ value <<= offset;
+ value &= mask;
+ value |= INL (devc->osdev, devc->base + 0x04) & ~mask; /* data */
+ }
+ OUTL (devc->osdev, value, devc->base + 0x04); /* Data */
+ MUTEX_EXIT_IRQRESTORE (devc->low_mutex, flags);
+}
+
+static void
+write_efx (sblive_devc * devc, int reg, unsigned int value)
+{
+ sblive_write_reg (devc, reg, 0, value);
+}
+
+static void
+update_vu (sblive_devc * devc, sblive_portc * portc, dmap_p dmap, int frag)
+{
+ int left = 0, right = 0;
+ int i, l;
+
+ frag %= dmap->nfrags;
+ l = dmap->fragment_size / 2;
+
+ if (portc->format == AFMT_AC3) /* Raw S/PDIF mode */
+ {
+ if (devc->vu_tmp2 == 0)
+ devc->vu_tmp2 = 2;
+
+ portc->vu_left = devc->vu_tmp;
+ portc->vu_right = 144 - devc->vu_tmp;
+ devc->vu_tmp = devc->vu_tmp + devc->vu_tmp2;
+
+ if (devc->vu_tmp >= 144)
+ {
+ devc->vu_tmp2 = -2;
+ devc->vu_tmp = 144;
+ }
+
+ if (devc->vu_tmp <= 0)
+ {
+ devc->vu_tmp2 = 2;
+ devc->vu_tmp = 0;
+ }
+
+ return;
+ }
+
+ if (portc->format == AFMT_U8)
+ {
+ unsigned char *p;
+ int v;
+
+ p = dmap->dmabuf + (frag * dmap->fragment_size);
+
+ if (dmap->dmabuf != NULL)
+ for (i = 0; i < l; i++)
+ {
+ v = *p;
+ p++;
+ v -= 128;
+ if (v < 0)
+ v = -v;
+ if (v > left)
+ left = v;
+
+ v = *p;
+ p++;
+ v -= 128;
+ if (v < 0)
+ v = -v;
+ if (v > right)
+ right = v;
+ }
+ }
+ else
+ {
+ short *p;
+ int v;
+
+ l /= 2;
+ p = (short *) (dmap->dmabuf + (frag * dmap->fragment_size));
+
+ if (dmap->dmabuf != NULL)
+ for (i = 0; i < l; i++)
+ {
+ v = SSWAP (*p++) >> 8;
+ if (v < 0)
+ v = -v;
+ if (v > left)
+ left = v;
+
+ v = *p++ >> 8;
+ if (v < 0)
+ v = -v;
+ if (v > right)
+ right = v;
+ }
+ }
+
+ if (portc->channels == 1) /* Mono */
+ {
+ if (right > left)
+ left = right;
+ right = left;
+ }
+
+ if (left > portc->vu_left)
+ portc->vu_left = left;
+ if (right > portc->vu_right)
+ portc->vu_right = right;
+}
+
+static int
+sbliveintr (oss_device_t * osdev)
+{
+ int p;
+ unsigned int status;
+#ifndef NO_EMU10K1_SYNTH
+ extern int sblive_synth_enable;
+#endif
+
+ sblive_devc *devc = osdev->devc;
+
+ /*
+ * TODO: Fix mutexes and move the inputintr/outputintr calls outside the
+ * mutex block.
+ */
+ /* oss_native_word flags; */
+ /* MUTEX_ENTER (devc->mutex, flags); */
+
+ status = INL (devc->osdev, devc->base + 0x08);
+
+#if !defined(sparc)
+ if (status == 0)
+ {
+ /* MUTEX_EXIT (devc->mutex, flags); */
+ return 0;
+ }
+#endif
+
+ if (status & 0x00000080) /* MIDI RX interrupt */
+ {
+ if (devc->feature_mask & SB_AUDIGY)
+ audigyuartintr (devc);
+ else
+ uart401_irq (&devc->uart401devc);
+ }
+
+ if (status & 0x00008000) /* ADC buffer full intr */
+ {
+ /* Force the starting position to match this moment */
+ unsigned int pos;
+ pos = (INL (devc->osdev, devc->base + 0x10) >> 6) & 0xfffff;
+ devc->portc[0].rec_starttime = pos;
+ }
+
+ if (status & 0x00000240) /* Interval timer or channel loop interrupt */
+ {
+ for (p = 0; p < devc->n_audiodevs; p++)
+ {
+ sblive_portc *portc = &devc->portc[p];
+
+ if (portc->audiodev >= 0 && portc->audiodev < num_audio_engines
+ && portc->trigger_bits & PCM_ENABLE_OUTPUT)
+ {
+ int pos, n;
+ dmap_t *dmap = audio_engines[portc->audiodev]->dmap_out;
+
+ pos = sblive_read_reg (devc, QKBCA, portc->voice_chn) & 0x00ffffff; /* Curr pos */
+ pos <<= portc->out_sz;
+ pos -= dmap->driver_use_value;
+
+ if (dmap->fragment_size == 0)
+ {
+ cmn_err (CE_WARN, "dmap->fragment_size == 0\n");
+ continue;
+ }
+
+ pos /= dmap->fragment_size;
+ if (pos < 0 || pos >= dmap->nfrags)
+ pos = 0;
+
+ /*
+ * If this was a full/half loop interrupt then use forced pointer
+ */
+ if (sblive_get_voice_loopintr (devc, portc->voice_chn))
+ pos = 0; /* Full loop boundary */
+ else if (sblive_get_voice_halfloopintr (devc, portc->voice_chn))
+ pos = dmap->nfrags / 2; /* Half loop boundary */
+
+ n = 0;
+ while (dmap_get_qhead (dmap) != pos && n++ < dmap->nfrags)
+ {
+ update_vu (devc, portc, dmap, dmap_get_qhead (dmap));
+ oss_audio_outputintr (portc->audiodev, 0);
+ }
+ }
+
+ if (num_audio_engines > 0 && portc->audiodev < num_audio_engines
+ && portc->trigger_bits & PCM_ENABLE_INPUT)
+ {
+ int n;
+ unsigned int pos;
+
+ dmap_t *dmap = audio_engines[portc->audiodev]->dmap_in;
+
+ /* Compute current pos based on the wall clock register */
+ pos = (INL (devc->osdev, devc->base + 0x10) >> 6) & 0xfffff;
+ if (pos > portc->rec_starttime)
+ pos = pos - portc->rec_starttime;
+ else
+ pos = 0xfffff - (portc->rec_starttime - pos);
+ pos = (pos * (portc->speed / 25)) / (48000 / 25);
+ pos *= 2; /* 16 bit->bytes */
+ pos *= portc->channels;
+ pos = pos % dmap->bytes_in_use;
+ if (dmap->fragment_size == 0)
+ cmn_err (CE_WARN, "dmap->fragment_size==0\n");
+ else
+ {
+ pos /= dmap->fragment_size;
+ if (pos >= dmap->nfrags)
+ pos = 0;
+ n = 0;
+ while (dmap_get_qtail (dmap) != pos && n++ < dmap->nfrags)
+ {
+ oss_audio_inputintr (devc->recording_dev, 0);
+ }
+ }
+ }
+ }
+
+#ifndef NO_EMU10K1_SYNTH
+ if (sblive_synth_enable)
+ sblive_synth_interrupt (devc);
+#endif
+ }
+
+ OUTL (devc->osdev, status, devc->base + 0x08); /* Acknowledge them */
+
+ /* MUTEX_EXIT (devc->mutex, flags); */
+
+ return 1;
+}
+
+static int
+setup_passthrough (sblive_devc * devc, sblive_portc * portc, int pass)
+{
+ int ctrl = devc->passthrough_gpr;
+
+ if (ctrl < 0)
+ return 0;
+
+ if (pass == portc->uses_spdif)
+ return 1;
+
+ if (pass && devc->spdif_busy)
+ return 0;
+
+ portc->uses_spdif = pass;
+
+ sblive_write_reg (devc, ctrl + GPR0, 0, pass);
+ sblive_write_reg (devc, ctrl + GPR0 + 1, 0, !pass);
+ if (pass)
+ {
+ devc->spdif_busy = 1;
+ }
+ else
+ {
+ devc->spdif_busy = 0;
+ }
+
+ return 1;
+}
+
+static int
+sblive_audio_set_rate (int dev, int arg)
+{
+ sblive_portc *portc = audio_engines[dev]->portc;
+ int i, n = -1, dif, best = -1, bestdif = 0x7fffffff;
+
+ if (arg == 0)
+ return portc->speed;
+
+ for (i = 0; speed_tab[i].speed != 0 && n == -1; i++)
+ {
+ if (speed_tab[i].speed == arg) /* Exact match */
+ {
+ n = i;
+ break;
+ }
+
+ dif = arg - speed_tab[i].speed;
+ if (dif < 0)
+ dif = -dif;
+
+ if (dif < bestdif)
+ {
+ best = i;
+ bestdif = dif;
+ }
+ }
+
+ if (n == -1)
+ n = best;
+
+ if (n == -1)
+ n = 0;
+
+ portc->speed = speed_tab[n].speed;
+ portc->speedsel = n;
+
+ return portc->speed;
+}
+
+static short
+sblive_audio_set_channels (int dev, short arg)
+{
+ sblive_portc *portc = audio_engines[dev]->portc;
+
+ if ((arg != 1) && (arg != 2))
+ return portc->channels;
+ portc->channels = arg;
+
+ return portc->channels;
+}
+
+static unsigned int
+sblive_audio_set_format (int dev, unsigned int arg)
+{
+ sblive_devc *devc = audio_engines[dev]->devc;
+ sblive_portc *portc = audio_engines[dev]->portc;
+
+ if (arg == 0)
+ return portc->format;
+
+ if (portc->mode & OPEN_READ)
+ arg = AFMT_S16_LE;
+
+ if (arg != AFMT_U8 && arg != AFMT_S16_LE && arg != AFMT_AC3)
+ return portc->format;
+
+ /* Enforce stereo mode with AC3 */
+ if (arg == AFMT_AC3)
+ {
+ if (!setup_passthrough (devc, portc, 1))
+ return portc->format;
+ portc->channels = 2;
+ portc->speed = 48000;
+ }
+ else
+ if (portc->input_type != ITYPE_SPDIF && portc->uses_spdif
+ && arg != AFMT_AC3)
+ {
+ setup_passthrough (devc, portc, 0);
+ }
+
+ portc->format = arg;
+
+ return portc->format;
+}
+
+static int mixer_ext_init (int dev);
+static int create_efx_mixer (int dev);
+static int sblive_set_gpr (int dev, int ctrl, unsigned int cmd, int value);
+
+static int
+is_special_gpr (int gpr)
+{
+ if (gpr >= NEXT_FREE_GPR)
+ return 0;
+
+ if (SPECIAL_GPRS & (1 << gpr))
+ {
+ return 1;
+ }
+
+ if (gpr > 0)
+ if (SPECIAL_GPRS & (1 << (gpr - 1)))
+ {
+ return 1;
+ }
+ return 0;
+}
+
+static void update_output_device (sblive_devc * devc, sblive_portc * portc);
+
+static int
+sblive_audio_ioctl (int dev, unsigned int cmd, ioctl_arg arg)
+{
+ sblive_devc *devc = audio_engines[dev]->devc;
+ sblive_portc *portc = audio_engines[dev]->portc;
+ sblive_reg *reg = (sblive_reg *) arg;
+ gpr_info *gpr = (gpr_info *) arg;
+ const_info *consts = (const_info *) arg;
+ unsigned int *code = (unsigned int *) arg;
+ int i;
+
+ switch (cmd)
+ {
+ case SNDCTL_DSP_GETCHANNELMASK:
+ return *arg =
+ DSP_BIND_FRONT | DSP_BIND_REAR | DSP_BIND_SURR | DSP_BIND_CENTER_LFE;
+ break;
+
+ case SNDCTL_DSP_BIND_CHANNEL:
+ {
+ int val;
+
+ val = *arg;
+ portc->speaker_mode = SMODE_BIND;
+ portc->binding = val;
+ return *arg = val;
+ }
+ break;
+
+ case SNDCTL_DSP_SETPLAYVOL:
+ {
+ int left, right, val;
+
+ val = *arg;
+
+ left = val & 0xff;
+ right = (val >> 8) & 0xff;
+ if (left < 0)
+ left = 0;
+ if (right < 0)
+ right = 0;
+ if (left > 100)
+ left = 100;
+ if (right > 100)
+ right = 100;
+
+#if 0
+ if (right > left)
+ left = right;
+#endif
+ portc->playvol = left;
+ update_output_device (devc, portc);
+
+ return *arg = left | (left << 8);
+ }
+ break;
+
+ case SNDCTL_DSP_GETPLAYVOL:
+ {
+ int vol;
+ vol = (portc->playvol << 8) | portc->playvol;
+ return *arg = vol;
+ }
+ break;
+
+ case SBLIVE_READREG:
+#ifdef GET_PROCESS_UID
+ if (GET_PROCESS_UID () != 0) /* Not root */
+ return OSS_EINVAL;
+#endif
+ reg->value = sblive_read_reg (devc, reg->reg, reg->chn);
+ return 0;
+ break;
+
+ case SBLIVE_WRITEREG:
+#ifdef GET_PROCESS_UID
+ if (GET_PROCESS_UID () != 0) /* Not root */
+ return OSS_EINVAL;
+#endif
+ sblive_write_reg (devc, reg->reg, reg->chn, reg->value);
+ return 0;
+ break;
+
+ case SBLIVE_READGPIO:
+#ifdef GET_PROCESS_UID
+ if (GET_PROCESS_UID () != 0) /* Not root */
+ return OSS_EINVAL;
+#endif
+ return *arg = INW (devc->osdev, devc->base + 0x18);
+ break;
+
+ case SBLIVE_WRITEGPIO:
+ {
+ int val;
+ val = *arg;
+
+#ifdef GET_PROCESS_UID
+ if (GET_PROCESS_UID () != 0) /* Not root */
+ return OSS_EINVAL;
+#endif
+ OUTW (devc->osdev, val, devc->base + 0x18);
+
+ }
+ return 0;
+
+ case SBLIVE_WRITEPARMS:
+ {
+
+#ifdef GET_PROCESS_UID
+ if (GET_PROCESS_UID () != 0) /* Not root */
+ return OSS_EINVAL;
+#endif
+ if (gpr->ngpr >= MAX_GPR_PARMS)
+ return OSS_EIO;
+
+ for (i = 0; i < gpr->ngpr; i++)
+ {
+ gpr->gpr[i].name[GPR_NAME_SIZE - 1] = 0; /* Overflow protection */
+ if (strlen (gpr->gpr[i].name) >= 32) /* Name may be bad */
+ {
+ return OSS_EIO;
+ }
+
+ if (gpr->gpr[i].num >= MAX_GPR)
+ {
+ return OSS_EIO;
+ }
+
+/* cmn_err(CE_CONT, "Gpr %d = %s (vol %x) type=%x\n", gpr->gpr[i].num, gpr->gpr[i].name, gpr->gpr[i].def, gpr->gpr[i].type); */
+ if (gpr->gpr[i].type != MIXT_GROUP)
+ {
+ if (is_special_gpr (gpr->gpr[i].num))
+ sblive_set_gpr (devc->mixer_dev, gpr->gpr[i].num,
+ SNDCTL_MIX_WRITE,
+ devc->gpr_values[gpr->gpr[i].num]);
+ else
+ sblive_set_gpr (devc->mixer_dev, gpr->gpr[i].num,
+ SNDCTL_MIX_WRITE, gpr->gpr[i].def);
+ }
+ }
+
+
+ if (devc->gpr == NULL)
+ {
+ devc->gpr = PMALLOC (devc->osdev, sizeof (gpr_info));
+ if (devc->gpr == NULL)
+ {
+ cmn_err (CE_WARN, "Out of memory (gpr)\n");
+ return OSS_ENOSPC;
+ }
+ memset (devc->gpr, 0, sizeof (gpr_info));
+ }
+ memcpy (devc->gpr, gpr, sizeof (gpr_info));
+ create_efx_mixer (devc->mixer_dev);
+ }
+ return 0;
+ break;
+
+ case SBLIVE_WRITECONST:
+ {
+
+#ifdef GET_PROCESS_UID
+ if (GET_PROCESS_UID () != 0) /* Not root */
+ return OSS_EINVAL;
+#endif
+ if (consts->nconst >= MAX_CONST_PARMS)
+ return OSS_EIO;
+
+ for (i = 0; i < consts->nconst; i++)
+ {
+ if (consts->consts[i].gpr >= MAX_GPR)
+ {
+ return OSS_EIO;
+ }
+
+ sblive_write_reg (devc, consts->consts[i].gpr + GPR0, 0,
+ consts->consts[i].value);
+ }
+
+ }
+ return 0;
+ break;
+
+ case SBLIVE_WRITECODE1:
+ {
+ int pc;
+
+#ifdef GET_PROCESS_UID
+ if (GET_PROCESS_UID () != 0) /* Not root */
+ return OSS_EINVAL;
+#endif
+ for (pc = 0; pc < 512; pc++)
+ {
+ write_efx (devc, UC0 + pc, code[pc]);
+ }
+
+ }
+ sblive_write_reg (devc, DBG, 0, 0);
+ return 0;
+ break;
+
+ case SBLIVE_WRITECODE2:
+ {
+ int pc;
+
+#ifdef GET_PROCESS_UID
+ if (GET_PROCESS_UID () != 0) /* Not root */
+ return OSS_EINVAL;
+#endif
+ for (pc = 0; pc < 512; pc++)
+ {
+ write_efx (devc, UC0 + 512 + pc, code[pc]);
+ }
+ }
+ sblive_write_reg (devc, DBG, 0, 0);
+ return 0;
+ break;
+
+ case SBLIVE_GETCHIPTYPE:
+#ifdef GET_PROCESS_UID
+ if (GET_PROCESS_UID () != 0) /* Not root */
+ return OSS_EINVAL;
+#endif
+ return *arg = devc->feature_mask & ~SB_AUDIGY2;
+ break;
+
+ }
+ return OSS_EINVAL;
+}
+
+static void sblive_audio_trigger (int dev, int state);
+
+static void
+sblive_audio_reset (int dev)
+{
+ sblive_audio_trigger (dev, 0);
+}
+
+static void
+sblive_audio_reset_input (int dev)
+{
+ sblive_portc *portc = audio_engines[dev]->portc;
+ sblive_audio_trigger (dev, portc->trigger_bits & ~PCM_ENABLE_INPUT);
+}
+
+static void
+sblive_audio_reset_output (int dev)
+{
+ sblive_portc *portc = audio_engines[dev]->portc;
+ sblive_audio_trigger (dev, portc->trigger_bits & ~PCM_ENABLE_OUTPUT);
+}
+
+static int sblive_set_vol (int dev, int ctrl, unsigned int cmd, int value);
+
+static void
+reset_portc_volume (sblive_devc * devc, sblive_portc * portc)
+{
+ int v;
+#ifdef TEST_3D
+ v = 100 | (50 << 8) | (0 << 16); /* vol=100, dist=50, angle=0 */
+#else
+ v = 100 | (100 < 8);
+#endif
+ sblive_set_vol (devc->mixer_dev, portc->port_number, SNDCTL_MIX_WRITE, v);
+}
+
+#if MAX_ADEV == 2
+static const unsigned int binding_map[MAX_ADEV] =
+ { DSP_BIND_FRONT, DSP_BIND_SURR };
+#else
+static const unsigned int binding_map[MAX_ADEV] = {
+ DSP_BIND_FRONT,
+ DSP_BIND_FRONT,
+ DSP_BIND_SURR,
+ DSP_BIND_CENTER_LFE,
+ DSP_BIND_REAR
+};
+#endif
+
+/*ARGSUSED*/
+static int
+sblive_audio_open (int dev, int mode, int open_flags)
+{
+ sblive_devc *devc = audio_engines[dev]->devc;
+ sblive_portc *portc = audio_engines[dev]->portc;
+ oss_native_word flags;
+
+ MUTEX_ENTER_IRQDISABLE (devc->mutex, flags);
+ if (portc->mode)
+ {
+ MUTEX_EXIT_IRQRESTORE (devc->mutex, flags);
+ return OSS_EBUSY;
+ }
+
+ portc->mode = mode;
+ portc->audio_active &= ~mode;
+
+ portc->resetvol = 0;
+
+ portc->speaker_mode = devc->speaker_mode;
+ portc->binding = binding_map[portc->port_number];
+ if (portc->binding == 0)
+ portc->binding = DSP_BIND_FRONT;
+ mixer_devs[devc->mixer_dev]->modify_counter++; /* Force update of mixer */
+
+ audio_engines[dev]->flags &= ~ADEV_FIXEDRATE;
+ MUTEX_EXIT_IRQRESTORE (devc->mutex, flags);
+
+ if (devc->autoreset || portc->resetvol)
+ reset_portc_volume (devc, portc);
+
+ if (portc->input_type == ITYPE_SPDIF)
+ {
+ if (!setup_passthrough (devc, portc, 1))
+ {
+ portc->mode = 0;
+ return OSS_EBUSY;
+ }
+ }
+ else
+ {
+ /* Enable AC3 format if possible */
+ if (!devc->spdif_busy)
+ audio_engines[dev]->oformat_mask |= AFMT_AC3;
+ else
+ audio_engines[dev]->oformat_mask &= ~AFMT_AC3;
+ }
+ return 0;
+}
+
+static void
+sblive_audio_close (int dev, int mode)
+{
+ sblive_devc *devc = audio_engines[dev]->devc;
+ sblive_portc *portc = audio_engines[dev]->portc;
+
+ sblive_audio_reset (dev);
+ portc->mode = 0;
+ portc->audio_active &= ~mode;
+ mixer_devs[devc->mixer_dev]->modify_counter++;
+ setup_passthrough (devc, portc, 0);
+ audio_engines[dev]->oformat_mask |= AFMT_AC3;
+}
+
+#ifdef TEST_3D
+/* Sin table for Q1 (*10000) */
+static const int sincos[] = {
+ 0, 174, 348, 523, 697, 871, 1045, 1218, 1391, 1564,
+ 1736, 1908, 2079, 2249, 2419, 2588, 2756, 2923, 3090, 3255,
+ 3420, 3583, 3746, 3907, 4067, 4226, 4383, 4539, 4694, 4848,
+ 5000, 5150, 5299, 5446, 5591, 5735, 5877, 6018, 6156, 6293,
+ 6427, 6560, 6691, 6819, 6946, 7071, 7193, 7313, 7431, 7547,
+ 7660, 7771, 7880, 7986, 8090, 8191, 8290, 8386, 8480, 8571,
+ 8660, 8746, 8829, 8910, 8987, 9063, 9135, 9205, 9271, 9335,
+ 9396, 9455, 9510, 9563, 9612, 9659, 9702, 9743, 9781, 9816,
+ 9848, 9876, 9902, 9925, 9945, 9961, 9975, 9986, 9993, 9998,
+ 10000,
+};
+
+static __inline__ int
+oss_sin (int angle)
+{
+ int a;
+ int f;
+
+ a = angle % 90;
+
+ if ((angle / 90) & 1)
+ a = 90 - a;
+
+ f = sincos[a];
+ if (angle >= 180)
+ f = -f;
+ return f;
+}
+
+static __inline__ int
+oss_cos (int angle)
+{
+ int a, q;
+ int f;
+
+ a = angle % 90;
+ q = angle / 90;
+
+ if (!(q & 1))
+ a = 90 - a;
+
+ f = sincos[a];
+ if (angle >= 90 && angle < 270)
+ f = -f;
+ return f;
+}
+
+static void
+compute_3d (sblive_devc * devc, sblive_portc * portc, int voice, int chn,
+ int *send)
+{
+ int angle = portc->playangle;
+ int dist, opening = 45;
+ int i;
+
+ /* left, right, rear_right, rear_left */
+ static int spk_angles[4] = { 315, 45, 135, 225 };
+ int gain = 50, leak = 0;
+ int v[4];
+
+ dist = portc->playdist;
+
+ if (dist < 0)
+ dist = 0;
+ if (dist > 100)
+ dist = 100;
+ portc->playdist = dist;
+
+ dist = 100 - dist; /* Invert distance */
+ opening = (90 * dist) / 100;
+
+ if (dist < 50)
+ { /* Attenuate distant sounds */
+ gain = dist;
+ }
+ else
+ {
+ /* "Expand" close sounds by leaking signal to silent channels */
+ leak = dist - 50;
+ }
+
+ if (portc->channels == 2)
+ {
+ if (chn == LEFT_CH)
+ angle -= opening;
+ else
+ angle += opening;
+ }
+
+ if (angle < 0)
+ angle += 360;
+
+ angle %= 360;
+
+ for (i = 0; i < 4; i++)
+ v[i] = (gain * portc->playvol * 255 + 25) / 50;
+
+ for (i = 0; i < 4; i++)
+ {
+ int a = spk_angles[i] - angle;
+
+ if (a < 0)
+ a = -a; /* ABS */
+ if (a > 180)
+ a = 360 - a;
+
+ if (a >= 90) /* Too far */
+ {
+ v[i] = 0; /* Muted speaker */
+ continue;
+ }
+ else
+ v[i] = ((v[i] * oss_cos (a) + 5000) / 10000) / 100;
+ }
+
+ if (leak > 0)
+ {
+ leak = (255 * portc->playvol * leak + 2500) / 5000;
+
+ for (i = 0; i < 4; i++)
+ if (v[i] < leak)
+ v[i] = leak;
+ }
+
+ send[0] = v[0]; /* Left */
+ send[1] = v[1]; /* Right */
+ send[2] = v[3]; /* Rear left */
+ send[3] = v[2]; /* Rear right */
+}
+#endif
+
+static void
+write_routing (sblive_devc * devc, int voice, unsigned char *routing)
+{
+ int i;
+
+ if (routing == NULL)
+ routing = default_routing;
+
+ if (devc->feature_mask & SB_AUDIGY)
+ {
+ unsigned int srda = 0;
+
+ for (i = 0; i < 4; i++)
+ srda |= routing[i] << (i * 8);
+
+ sblive_write_reg (devc, SRDA, voice, srda);
+ }
+ else
+ {
+ int fxrt = 0;
+
+ for (i = 0; i < 4; i++)
+ fxrt |= routing[i] << ((i * 4) + 16);
+ sblive_write_reg (devc, FXRT, voice, fxrt);
+ }
+}
+
+/*ARGSUSED*/
+static void
+compute_bind (sblive_devc * devc, sblive_portc * portc, unsigned char *send,
+ int chn)
+{
+ memset (send, 0, MAX_SENDS);
+
+ if (chn == LEFT_CH)
+ send[0] = (0xff * portc->playvol + 50) / 100;
+ else
+ send[1] = (0xff * portc->playvol + 50) / 100;
+
+ switch (portc->binding)
+ {
+ case DSP_BIND_FRONT:
+ portc->routing = front_routing;
+ break;
+ case DSP_BIND_SURR:
+ portc->routing = surr_routing;
+ break;
+ case DSP_BIND_CENTER_LFE:
+ portc->routing = center_lfe_routing;
+ break;
+ case DSP_BIND_REAR:
+ portc->routing = rear_routing;
+ break;
+ default:
+ portc->routing = default_routing;
+ }
+}
+
+static void
+update_output_volume (int dev, int voice, int chn)
+{
+ sblive_devc *devc = audio_engines[dev]->devc;
+ sblive_portc *portc = audio_engines[dev]->portc;
+ oss_native_word flags;
+ int left, right;
+ unsigned int loop_start, loop_end, tmp;
+ unsigned char send[MAX_SENDS];
+
+ send[0] = 0xff; /* Max */
+ send[1] = 0xff; /* Max */
+ send[2] = 0xff; /* Max */
+ send[3] = 0xff; /* Max */
+
+ if (portc->input_type == ITYPE_SPDIF || portc->format == AFMT_AC3)
+ {
+ /* Digital voice */
+ send[2] = 0; /* Muted */
+ send[3] = 0; /* Muted */
+
+ /* sends are revered between Audigy2 and Audigy */
+ left = (devc->feature_mask & SB_AUDIGY2) ? 1 : 0;
+ right = !left;
+
+ if (portc->channels > 1)
+ {
+ if (chn == LEFT_CH)
+ {
+ send[left] = 0;
+ }
+ else
+ {
+ send[right] = 0;
+ }
+ }
+ }
+ else
+ {
+ /* Analog voice */
+
+ if (portc->channels > 1)
+ {
+ if (chn == LEFT_CH)
+ {
+ send[1] = 0;
+ }
+ else
+ {
+ send[0] = 0;
+ }
+ }
+ send[2] = send[0];
+ send[3] = send[1];
+
+#ifdef TEST_3D
+ if (portc->speaker_mode == SMODE_3D)
+ compute_3d (devc, portc, voice, chn, send);
+ else
+#endif
+ {
+ send[0] = (send[0] * portc->playvol + 50) / 100;
+ send[1] = (send[1] * portc->playvol + 50) / 100;
+ send[2] = (send[2] * portc->playvol + 50) / 100;
+ send[3] = (send[3] * portc->playvol + 50) / 100;
+
+ switch (portc->speaker_mode)
+ {
+ case SMODE_FRONT:
+ send[2] = send[3] = 0;
+ break;
+
+ case SMODE_SURR:
+ send[0] = send[1] = 0;
+ break;
+
+ case SMODE_FRONTREAR:
+ break;
+
+ case SMODE_BIND:
+ compute_bind (devc, portc, send, chn);
+ break;
+ }
+ }
+
+ /* Analog voice */
+ }
+
+ MUTEX_ENTER_IRQDISABLE (devc->mutex, flags);
+ loop_end = sblive_read_reg (devc, SDL, voice) & 0xffffff;
+ sblive_write_reg (devc, SDL, voice, loop_end | (send[3] << 24));
+ loop_start = sblive_read_reg (devc, SCSA, voice) & 0xffffff;
+ sblive_write_reg (devc, SCSA, voice, loop_start | (send[2] << 24));
+ tmp = sblive_read_reg (devc, PTAB, voice) & 0xffff0000;
+ sblive_write_reg (devc, PTAB, voice, tmp | (send[0] << 8) | send[1]);
+ write_routing (devc, voice, portc->routing);
+ MUTEX_EXIT_IRQRESTORE (devc->mutex, flags);
+}
+
+static void
+setup_audio_voice (int dev, int voice, int chn)
+{
+ sblive_devc *devc = audio_engines[dev]->devc;
+ sblive_portc *portc = audio_engines[dev]->portc;
+ dmap_t *dmap = audio_engines[dev]->dmap_out;
+ unsigned int nCRA = 0;
+
+ unsigned int loop_start, loop_end;
+
+ int sz = 1;
+ int start_pos;
+
+ sblive_write_reg (devc, VEDS, voice, 0x0); /* OFF */
+ sblive_write_reg (devc, VTFT, voice, 0xffff);
+ sblive_write_reg (devc, CVCF, voice, 0xffff);
+
+ if (devc->feature_mask & SB_AUDIGY)
+ sblive_write_reg (devc, SRDA, voice, 0x03020100);
+ else
+ sblive_write_reg (devc, FXRT, voice, 0x32100000);
+
+
+ sz =
+ (((portc->format == AFMT_S16_LE
+ || portc->format == AFMT_AC3)) ? 1 : 0) + ((portc->channels ==
+ 2) ? 1 : 0);
+
+ loop_start = dmap->driver_use_value >> sz;
+ loop_end = (dmap->driver_use_value + dmap->bytes_in_use) >> sz;
+
+ /* set mono/stereo */
+ sblive_write_reg (devc, CPF, voice, (portc->channels > 1) ? 0x8000 : 0);
+
+ nCRA = (portc->channels > 1) ? 28 : 30;
+ nCRA *= (portc->format == AFMT_S16_LE || portc->format == AFMT_AC3) ? 1 : 2;
+ start_pos = loop_start + nCRA;
+
+ /* SDL, ST, CA */
+ portc->out_sz = sz;
+
+ sblive_write_reg (devc, SDL, voice, loop_end);
+ sblive_write_reg (devc, SCSA, voice, loop_start);
+ sblive_write_reg (devc, PTAB, voice, 0);
+
+ update_output_volume (dev, voice, chn); /* Set volume */
+
+ if (portc->format == AFMT_S16_LE || portc->format == AFMT_AC3)
+ sblive_write_reg (devc, QKBCA, voice, start_pos);
+ else
+ sblive_write_reg (devc, QKBCA, voice, start_pos | BYTESIZE);
+
+ sblive_write_reg (devc, Z1, voice, 0);
+ sblive_write_reg (devc, Z2, voice, 0);
+
+ sblive_write_reg (devc, MAPA, voice, 0x1fff | (devc->silent_page_phys << 1)); /* This is really a physical address */
+ sblive_write_reg (devc, MAPB, voice, 0x1fff | (devc->silent_page_phys << 1)); /* This is really a physical address */
+
+ sblive_write_reg (devc, VTFT, voice, 0x0000ffff);
+ sblive_write_reg (devc, CVCF, voice, 0x0000ffff);
+ sblive_write_reg (devc, MEHA, voice, 0);
+ sblive_write_reg (devc, MEDS, voice, 0x7f);
+ sblive_write_reg (devc, MLV, voice, 0x8000);
+ sblive_write_reg (devc, VLV, voice, 0x8000);
+ sblive_write_reg (devc, VFM, voice, 0);
+ sblive_write_reg (devc, TMFQ, voice, 0);
+ sblive_write_reg (devc, VVFQ, voice, 0);
+ sblive_write_reg (devc, MEV, voice, 0x8000);
+ sblive_write_reg (devc, VEHA, voice, 0x7f7f); /* OK */
+ sblive_write_reg (devc, VEV, voice, 0x8000); /* No volume envelope delay (OK) */
+ sblive_write_reg (devc, PEFE_FILTERAMOUNT, voice, 0x7f);
+ sblive_write_reg (devc, PEFE_PITCHAMOUNT, voice, 0x00);
+}
+
+/*ARGSUSED*/
+static void
+update_output_device (sblive_devc * devc, sblive_portc * portc)
+{
+ int voiceL = portc->voice_chn, voiceR = portc->voice_chn + 1;
+
+ if (!(portc->audio_active & PCM_ENABLE_OUTPUT))
+ return;
+
+ update_output_volume (portc->audiodev, voiceL, LEFT_CH);
+ update_output_volume (portc->audiodev, voiceR, RIGHT_CH);
+}
+
+
+/*ARGSUSED*/
+static void
+sblive_audio_output_block (int dev, oss_native_word buf, int count,
+ int fragsize, int intrflag)
+{
+ sblive_portc *portc = audio_engines[dev]->portc;
+
+ portc->audio_active |= PCM_ENABLE_OUTPUT;
+ portc->trigger_bits &= ~PCM_ENABLE_OUTPUT;
+}
+
+/*ARGSUSED*/
+static void
+sblive_audio_start_input (int dev, oss_native_word buf, int count,
+ int fragsize, int intrflag)
+{
+ sblive_portc *portc = audio_engines[dev]->portc;
+
+ portc->audio_active |= PCM_ENABLE_INPUT;
+ portc->trigger_bits &= ~PCM_ENABLE_INPUT;
+}
+
+void
+sblive_set_loop_stop (sblive_devc * devc, int voice, int s)
+{
+ unsigned int tmp;
+ int offs, bit;
+
+ offs = voice / 32;
+ bit = voice % 32;
+ s = !!s;
+
+ tmp = sblive_read_reg (devc, SOLL + offs, 0);
+ tmp &= ~(1 << bit);
+
+ if (s)
+ tmp |= (1 << bit);
+ sblive_write_reg (devc, SOLL + offs, 0, tmp);
+}
+
+int
+sblive_get_voice_loopintr (sblive_devc * devc, int voice)
+{
+ unsigned int tmp;
+ int offs, bit;
+
+ offs = voice / 32;
+ bit = voice % 32;
+
+ tmp = sblive_read_reg (devc, CLIPL + offs, 0);
+ tmp &= 1 << bit;
+ sblive_write_reg (devc, CLIPL + offs, 0, tmp); /* Ack the interrupt */
+
+ return !!tmp;
+}
+
+int
+sblive_get_voice_halfloopintr (sblive_devc * devc, int voice)
+{
+ unsigned int tmp;
+ int offs, bit;
+
+ offs = voice / 32;
+ bit = voice % 32;
+
+ tmp = sblive_read_reg (devc, HLIPL + offs, 0);
+ tmp &= 1 << bit;
+ sblive_write_reg (devc, HLIPL + offs, 0, tmp); /* Ack the interrupt */
+
+ return !!tmp;
+}
+
+void
+sblive_set_voice_intr (sblive_devc * devc, int voice, int s)
+{
+ unsigned int tmp;
+ int offs, bit;
+
+ offs = voice / 32;
+ bit = voice % 32;
+ s = !!s;
+
+ tmp = sblive_read_reg (devc, CLIEL + offs, 0);
+ tmp &= ~(1 << bit);
+ if (s)
+ tmp |= (1 << bit);
+ sblive_write_reg (devc, CLIEL + offs, 0, tmp);
+ sblive_write_reg (devc, HLIEL + offs, 0, tmp);
+}
+
+static unsigned int
+emu_rate_to_pitch (unsigned int rate)
+{
+ static unsigned int logMagTable[128] = {
+ 0x00000, 0x02dfc, 0x05b9e, 0x088e6, 0x0b5d6, 0x0e26f, 0x10eb3, 0x13aa2,
+ 0x1663f, 0x1918a, 0x1bc84, 0x1e72e, 0x2118b, 0x23b9a, 0x2655d, 0x28ed5,
+ 0x2b803, 0x2e0e8, 0x30985, 0x331db, 0x359eb, 0x381b6, 0x3a93d, 0x3d081,
+ 0x3f782, 0x41e42, 0x444c1, 0x46b01, 0x49101, 0x4b6c4, 0x4dc49, 0x50191,
+ 0x5269e, 0x54b6f, 0x57006, 0x59463, 0x5b888, 0x5dc74, 0x60029, 0x623a7,
+ 0x646ee, 0x66a00, 0x68cdd, 0x6af86, 0x6d1fa, 0x6f43c, 0x7164b, 0x73829,
+ 0x759d4, 0x77b4f, 0x79c9a, 0x7bdb5, 0x7dea1, 0x7ff5e, 0x81fed, 0x8404e,
+ 0x86082, 0x88089, 0x8a064, 0x8c014, 0x8df98, 0x8fef1, 0x91e20, 0x93d26,
+ 0x95c01, 0x97ab4, 0x9993e, 0x9b79f, 0x9d5d9, 0x9f3ec, 0xa11d8, 0xa2f9d,
+ 0xa4d3c, 0xa6ab5, 0xa8808, 0xaa537, 0xac241, 0xadf26, 0xafbe7, 0xb1885,
+ 0xb3500, 0xb5157, 0xb6d8c, 0xb899f, 0xba58f, 0xbc15e, 0xbdd0c, 0xbf899,
+ 0xc1404, 0xc2f50, 0xc4a7b, 0xc6587, 0xc8073, 0xc9b3f, 0xcb5ed, 0xcd07c,
+ 0xceaec, 0xd053f, 0xd1f73, 0xd398a, 0xd5384, 0xd6d60, 0xd8720, 0xda0c3,
+ 0xdba4a, 0xdd3b4, 0xded03, 0xe0636, 0xe1f4e, 0xe384a, 0xe512c, 0xe69f3,
+ 0xe829f, 0xe9b31, 0xeb3a9, 0xecc08, 0xee44c, 0xefc78, 0xf148a, 0xf2c83,
+ 0xf4463, 0xf5c2a, 0xf73da, 0xf8b71, 0xfa2f0, 0xfba57, 0xfd1a7, 0xfe8df
+ };
+ static char logSlopeTable[128] = {
+ 0x5c, 0x5c, 0x5b, 0x5a, 0x5a, 0x59, 0x58, 0x58,
+ 0x57, 0x56, 0x56, 0x55, 0x55, 0x54, 0x53, 0x53,
+ 0x52, 0x52, 0x51, 0x51, 0x50, 0x50, 0x4f, 0x4f,
+ 0x4e, 0x4d, 0x4d, 0x4d, 0x4c, 0x4c, 0x4b, 0x4b,
+ 0x4a, 0x4a, 0x49, 0x49, 0x48, 0x48, 0x47, 0x47,
+ 0x47, 0x46, 0x46, 0x45, 0x45, 0x45, 0x44, 0x44,
+ 0x43, 0x43, 0x43, 0x42, 0x42, 0x42, 0x41, 0x41,
+ 0x41, 0x40, 0x40, 0x40, 0x3f, 0x3f, 0x3f, 0x3e,
+ 0x3e, 0x3e, 0x3d, 0x3d, 0x3d, 0x3c, 0x3c, 0x3c,
+ 0x3b, 0x3b, 0x3b, 0x3b, 0x3a, 0x3a, 0x3a, 0x39,
+ 0x39, 0x39, 0x39, 0x38, 0x38, 0x38, 0x38, 0x37,
+ 0x37, 0x37, 0x37, 0x36, 0x36, 0x36, 0x36, 0x35,
+ 0x35, 0x35, 0x35, 0x34, 0x34, 0x34, 0x34, 0x34,
+ 0x33, 0x33, 0x33, 0x33, 0x32, 0x32, 0x32, 0x32,
+ 0x32, 0x31, 0x31, 0x31, 0x31, 0x31, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f
+ };
+ int i;
+
+ if (rate == 0)
+ return 0; /* Bail out if no leading "1" */
+ rate *= 11185; /* Scale 48000 to 0x20002380 */
+ for (i = 31; i > 0; i--)
+ {
+ if (rate & 0x80000000)
+ { /* Detect leading "1" */
+ return (((unsigned int) (i - 15) << 20) +
+ logMagTable[0x7f & (rate >> 24)] +
+ (0x7f & (rate >> 17)) * logSlopeTable[0x7f & (rate >> 24)]);
+ }
+ rate <<= 1;
+ }
+
+ return 0; /* Should never reach this point */
+}
+
+static unsigned int
+emu_rate_to_linearpitch (unsigned int rate)
+{
+ rate = (rate << 8) / 375;
+ return (rate >> 1) + (rate & 1);
+}
+
+static void
+start_audio_voice (int dev, int voice, int chn)
+{
+ sblive_devc *devc = audio_engines[dev]->devc;
+ sblive_portc *portc = audio_engines[dev]->portc;
+ unsigned int sample, initial_pitch, pitch_target;
+ unsigned int cra, cs, ccis, i;
+
+ /* setup CCR regs */
+ cra = 64;
+ cs = (portc->channels > 1) ? 4 : 2;
+ ccis = (portc->channels > 1) ? 28 : 30;
+ ccis *= (portc->format == AFMT_S16_LE || portc->format == AFMT_AC3) ? 1 : 2;
+ sample = (portc->format == AFMT_S16_LE
+ || portc->format == AFMT_AC3) ? 0x00000000 : 0x80808080;
+
+ for (i = 0; i < cs; i++)
+ sblive_write_reg (devc, CD0 + i, voice, sample);
+
+ sblive_write_reg (devc, CCR_CACHEINVALIDSIZE, voice, 0);
+ sblive_write_reg (devc, CCR_READADDRESS, voice, cra);
+ sblive_write_reg (devc, CCR_CACHEINVALIDSIZE, voice, ccis);
+
+ /* Set current pitch */
+ sblive_write_reg (devc, IFA, voice, 0xff00);
+ sblive_write_reg (devc, VTFT, voice, 0xffffffff);
+ sblive_write_reg (devc, CVCF, voice, 0xffffffff);
+ sblive_set_loop_stop (devc, voice, 0);
+
+ pitch_target = emu_rate_to_linearpitch (portc->speed);
+ initial_pitch = emu_rate_to_pitch (portc->speed) >> 8;
+ sblive_write_reg (devc, PTRX_PITCHTARGET, voice, pitch_target);
+ sblive_write_reg (devc, CPF_CURRENTPITCH, voice, pitch_target);
+ sblive_write_reg (devc, IP, voice, initial_pitch);
+
+ if (chn == LEFT_CH)
+ {
+ sblive_get_voice_loopintr (devc, voice);
+ sblive_get_voice_halfloopintr (devc, voice);
+ sblive_set_voice_intr (devc, voice, 1);
+ }
+ sblive_write_reg (devc, VEDS, voice, /*0x80 | */ 0x7f7f); /* Trigger (OK) */
+}
+
+/*ARGSUSED*/
+static void
+stop_audio_voice (int dev, int voice, int chn)
+{
+ sblive_devc *devc = audio_engines[dev]->devc;
+
+ sblive_write_reg (devc, IFA, voice, 0xffff);
+ sblive_write_reg (devc, VTFT, voice, 0xffff);
+ sblive_write_reg (devc, PTRX_PITCHTARGET, voice, 0);
+ sblive_write_reg (devc, CPF_CURRENTPITCH, voice, 0);
+ sblive_write_reg (devc, IP, voice, 0);
+ sblive_set_loop_stop (devc, voice, 1);
+ sblive_set_voice_intr (devc, voice, 0);
+}
+
+static void
+sblive_audio_trigger (int dev, int state)
+{
+ sblive_portc *portc = audio_engines[dev]->portc;
+ sblive_devc *devc = audio_engines[dev]->devc;
+ int voiceL = portc->voice_chn, voiceR = portc->voice_chn + 1;
+
+ if (portc->mode & OPEN_WRITE)
+ {
+ if (state & PCM_ENABLE_OUTPUT)
+ {
+ if ((portc->audio_active & PCM_ENABLE_OUTPUT) &&
+ !(portc->trigger_bits & PCM_ENABLE_OUTPUT))
+ {
+ start_audio_voice (dev, voiceL, LEFT_CH);
+ /* sblive_dump_regs(devc, voiceL); */
+ if (portc->channels > 1)
+ start_audio_voice (dev, voiceR, RIGHT_CH);
+ portc->trigger_bits |= PCM_ENABLE_OUTPUT;
+ }
+ }
+ else
+ {
+ if ((portc->audio_active & PCM_ENABLE_OUTPUT) &&
+ (portc->trigger_bits & PCM_ENABLE_OUTPUT))
+ {
+ portc->trigger_bits &= ~PCM_ENABLE_OUTPUT;
+ portc->audio_active &= ~PCM_ENABLE_OUTPUT;
+ stop_audio_voice (dev, voiceL, LEFT_CH);
+ stop_audio_voice (dev, voiceR, RIGHT_CH);
+ }
+ }
+ }
+
+ if (portc->mode & OPEN_READ && !(audio_engines[dev]->flags & ADEV_NOINPUT))
+ {
+ if (state & PCM_ENABLE_INPUT)
+ {
+ if ((portc->audio_active & PCM_ENABLE_INPUT) &&
+ !(portc->trigger_bits & PCM_ENABLE_INPUT))
+ {
+ int tmp = sblive_read_reg (devc, ADCSR, 0);
+ unsigned int pos;
+
+ if (portc->input_type == ITYPE_SPDIF)
+ {
+ /* Start recording from S/PDIF input A */
+ sblive_write_reg (devc, SPRC, 0, portc->in_szbits | 0x00);
+ }
+ else
+ {
+ if (devc->feature_mask & SB_AUDIGY)
+ {
+ tmp |= 0x10; /* Left channel enable */
+ if (portc->channels > 1)
+ tmp |= 0x20; /* Right channel enable */
+ }
+ else
+ {
+ tmp |= 0x08; /* Left channel enable */
+ if (portc->channels > 1)
+ tmp |= 0x10; /* Right channel enable */
+ }
+ sblive_write_reg (devc, ADCBS, 0, portc->in_szbits);
+ sblive_write_reg (devc, ADCSR, 0, tmp); /* GO */
+ }
+
+ pos = (INL (devc->osdev, devc->base + 0x10) >> 6) & 0xfffff;
+ portc->rec_starttime = pos;
+ portc->trigger_bits |= PCM_ENABLE_INPUT;
+ }
+ }
+ else
+ {
+ if ((portc->audio_active & PCM_ENABLE_INPUT) &&
+ (portc->trigger_bits & PCM_ENABLE_INPUT))
+ {
+ if (portc->input_type == ITYPE_SPDIF)
+ sblive_write_reg (devc, SPRC, 0, 0);
+ else
+ sblive_write_reg (devc, ADCSR, 0, 0);
+ portc->trigger_bits &= ~PCM_ENABLE_INPUT;
+ portc->audio_active &= ~PCM_ENABLE_INPUT;
+ }
+ }
+ }
+
+}
+
+/*ARGSUSED*/
+static int
+sblive_audio_prepare_for_input (int dev, int bsize, int bcount)
+{
+ sblive_devc *devc = audio_engines[dev]->devc;
+ sblive_portc *portc = audio_engines[dev]->portc;
+ dmap_t *dmap = audio_engines[dev]->dmap_in;
+ int sz = -1;
+
+ if (audio_engines[dev]->flags & ADEV_NOINPUT)
+ {
+ cmn_err (CE_WARN, "Audio device %d is output only\n", dev);
+ return OSS_EIO;
+ }
+
+ if (dmap->buffsize > 65536)
+ {
+ cmn_err (CE_WARN, "Recording buffer bigger than 64k\n");
+ dmap->buffsize = 65536;
+ }
+
+#ifdef sun1
+ if (dmap->buffsize == 36864)
+ {
+ dmap->buffsize = 32768;
+ }
+#endif
+
+ switch (dmap->buffsize)
+ {
+ case 4096:
+ sz = 15;
+ break;
+ case 8192:
+ sz = 19;
+ break;
+ case 16384:
+ sz = 23;
+ break;
+ case 32768:
+ sz = 27;
+ break;
+ case 65536:
+ sz = 31;
+ break;
+
+ default:
+ cmn_err (CE_WARN, "Unsupported input buffer size %d\n", dmap->buffsize);
+ return OSS_ENOSPC;
+ }
+
+ if (portc->input_type == ITYPE_SPDIF)
+ {
+ sblive_write_reg (devc, SPRA, 0, dmap->dmabuf_phys);
+ sblive_write_reg (devc, SPRC, 0, 0);
+ }
+ else
+ {
+ sblive_write_reg (devc, ADCBA, 0, dmap->dmabuf_phys);
+ sblive_write_reg (devc, ADCBS, 0, 0);
+ }
+ portc->in_szbits = sz;
+
+ sblive_write_reg (devc, ADCSR, 0, 0x0);
+
+ if (portc->input_type == ITYPE_ANALOG)
+ {
+ if (devc->feature_mask & SB_AUDIGY)
+ sblive_write_reg (devc, ADCSR, 0,
+ speed_tab[portc->speedsel].audigy_recbits);
+ else
+ sblive_write_reg (devc, ADCSR, 0, speed_tab[portc->speedsel].recbits);
+ }
+
+ devc->recording_dev = dev;
+
+ portc->audio_active |= PCM_ENABLE_INPUT;
+ portc->trigger_bits &= ~PCM_ENABLE_INPUT;
+
+ return 0;
+}
+
+/*ARGSUSED*/
+static int
+sblive_audio_prepare_for_output (int dev, int bsize, int bcount)
+{
+ sblive_devc *devc = audio_engines[dev]->devc;
+ sblive_portc *portc = audio_engines[dev]->portc;
+
+ int voiceL = portc->voice_chn, voiceR = portc->voice_chn + 1;
+
+ if (audio_engines[dev]->flags & ADEV_NOOUTPUT)
+ return OSS_EIO;
+
+ /* AC3 needs stereo too */
+ if (portc->format == AFMT_AC3 || portc->input_type == ITYPE_SPDIF)
+ {
+ portc->channels = 2;
+ portc->speed = 48000;
+ portc->routing = spdif_routing;
+ }
+ else
+ portc->routing = default_routing;
+
+ /* Left channel */
+ sblive_write_reg (devc, IFA, voiceL, 0xffff); /* Intial filter cutoff and attenuation */
+ sblive_write_reg (devc, VEDS, voiceL, 0x0); /* Volume envelope decay and sustain */
+ sblive_write_reg (devc, VTFT, voiceL, 0xffff); /* Volume target and Filter cutoff target */
+ sblive_write_reg (devc, PTAB, voiceL, 0x0); /* Pitch target and sends A and B */
+ /* The same for right channel */
+ sblive_write_reg (devc, IFA, voiceR, 0xffff);
+ sblive_write_reg (devc, VEDS, voiceR, 0x0);
+ sblive_write_reg (devc, VTFT, voiceR, 0xffff);
+ sblive_write_reg (devc, PTAB, voiceR, 0x0);
+
+ /* now setup the voices and go! */
+ setup_audio_voice (dev, voiceL, LEFT_CH);
+ if (portc->channels == 2)
+ setup_audio_voice (dev, voiceR, RIGHT_CH);
+
+ portc->audio_active |= PCM_ENABLE_OUTPUT;
+ portc->trigger_bits &= ~PCM_ENABLE_OUTPUT;
+
+ if (portc->uses_spdif)
+ {
+ if (portc->format == AFMT_AC3)
+ {
+ sblive_write_reg (devc, SCS0, 0, 0x2109206);
+ }
+ else
+ {
+ sblive_write_reg (devc, SCS0, 0, 0x2108504);
+ }
+ }
+ return 0;
+}
+
+static int
+sblive_alloc_buffer (int dev, dmap_t * dmap, int direction)
+{
+ int err, i, n;
+ sblive_devc *devc = audio_engines[dev]->devc;
+ sblive_portc *portc = audio_engines[dev]->portc;
+
+ if (dmap->dmabuf != NULL)
+ return 0;
+
+ if ((err = oss_alloc_dmabuf (dev, dmap, direction)) < 0)
+ {
+ cmn_err (CE_WARN, "Cannot allocate DMA buffer\n");
+ return err;
+ }
+
+ if (dmap->buffsize > DMABUF_SIZE)
+ {
+ cmn_err (CE_NOTE, "DMA buffer was too large - truncated\n");
+ dmap->buffsize = DMABUF_SIZE;
+ }
+
+ if (devc->feature_mask & SB_LIVE)
+ if (dmap->dmabuf_phys & 0x80000000)
+ {
+ cmn_err (CE_CONT, "Got DMA buffer address beyond 2G limit.\n");
+ oss_free_dmabuf (dev, dmap);
+ dmap->dmabuf = NULL;
+
+ return OSS_ENOSPC;
+ }
+
+ if (direction == PCM_ENABLE_OUTPUT)
+ {
+ dmap->driver_use_value = portc->memptr;
+ n = portc->memptr / 4096;
+
+/*
+ * Fill the page table
+ */
+ for (i = 0; i < dmap->buffsize / 4096; i++)
+ {
+ FILL_PAGE_MAP_ENTRY (n + i, dmap->dmabuf_phys + i * 4096);
+ }
+ }
+
+ return 0;
+}
+
+/*ARGSUSED*/
+static int
+sblive_free_buffer (int dev, dmap_t * dmap, int direction)
+{
+ if (dmap->dmabuf == NULL)
+ return 0;
+ oss_free_dmabuf (dev, dmap);
+
+ dmap->dmabuf = NULL;
+ return 0;
+}
+
+/*ARGSUSED*/
+static int
+sblive_get_buffer_pointer (int dev, dmap_t * dmap, int direction)
+{
+ sblive_devc *devc = audio_engines[dev]->devc;
+ sblive_portc *portc = audio_engines[dev]->portc;
+ int pos;
+
+ if (!(portc->trigger_bits & direction))
+ return 0;
+
+ if (direction == OPEN_WRITE)
+ {
+ pos = sblive_read_reg (devc, QKBCA, portc->voice_chn) & 0x00ffffff; /* Curr pos */
+ pos <<= portc->out_sz;
+ pos -= dmap->driver_use_value;
+ }
+ else
+ {
+ /* Compute current pos based on the wall clock register */
+ pos = (INL (devc->osdev, devc->base + 0x10) >> 6) & 0xfffff;
+ if (pos > portc->rec_starttime)
+ pos = pos - portc->rec_starttime;
+ else
+ pos = 0xfffff - (portc->rec_starttime - pos);
+ pos = (pos * (portc->speed / 25)) / (48000 / 25);
+ pos *= 2; /* 16 bit->bytes */
+ pos *= portc->channels;
+ pos = pos % dmap->bytes_in_use;
+ }
+
+ if (pos < 0)
+ pos = 0;
+
+ return pos;
+}
+
+static audiodrv_t sblive_audio_driver = {
+ sblive_audio_open,
+ sblive_audio_close,
+ sblive_audio_output_block,
+ sblive_audio_start_input,
+ sblive_audio_ioctl,
+ sblive_audio_prepare_for_input,
+ sblive_audio_prepare_for_output,
+ sblive_audio_reset,
+ NULL,
+ NULL,
+ sblive_audio_reset_input,
+ sblive_audio_reset_output,
+ sblive_audio_trigger,
+ sblive_audio_set_rate,
+ sblive_audio_set_format,
+ sblive_audio_set_channels,
+ NULL,
+ NULL,
+ NULL, /* sblive_check_input, */
+ NULL, /* sblive_check_output, */
+ sblive_alloc_buffer,
+ sblive_free_buffer,
+ NULL,
+ NULL,
+ sblive_get_buffer_pointer,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ sblive_audio_ioctl /* bind */
+};
+
+#define DATAPORT (devc->base)
+#define COMDPORT (devc->base+1)
+#define STATPORT (devc->base+1)
+
+static __inline__ int
+audigyuart_status (sblive_devc * devc)
+{
+ return sblive_read_reg (devc, MUASTAT, 0);
+}
+
+#define input_avail(devc) (!(audigyuart_status(devc)&INPUT_AVAIL))
+#define output_ready(devc) (!(audigyuart_status(devc)&OUTPUT_READY))
+static void
+audigyuart_cmd (sblive_devc * devc, unsigned char cmd)
+{
+ sblive_write_reg (devc, MUACMD, 0, cmd);
+}
+
+static __inline__ int
+audigyuart_read (sblive_devc * devc)
+{
+ return sblive_read_reg (devc, MUADAT, 0);
+}
+
+static __inline__ void
+audigyuart_write (sblive_devc * devc, unsigned char byte)
+{
+ sblive_write_reg (devc, MUADAT, 0, byte);
+}
+
+#define OUTPUT_READY 0x40
+#define INPUT_AVAIL 0x80
+#define MPU_ACK 0xFE
+#define MPU_RESET 0xFF
+#define UART_MODE_ON 0x3F
+
+static int reset_audigyuart (sblive_devc * devc);
+static void enter_uart_mode (sblive_devc * devc);
+
+typedef struct
+{
+ int keycode;
+ int action;
+ int local_action;
+} ir_code_t;
+
+static void
+sblive_key_action (sblive_devc * devc, ir_code_t * code)
+{
+ int value, left, right, dev;
+
+ dev = devc->mixer_dev;
+
+ switch (code->local_action)
+ {
+ case 1: /* Volume- */
+ value = sblive_set_gpr (dev, GPR_VOLUME, SNDCTL_MIX_READ, 0);
+ left = value & 0xff;
+ right = (value >> 8) & 0xff;
+ left -= 5;
+ if (left < 0)
+ left = 0;
+ right -= 5;
+ if (right < 0)
+ right = 0;
+ value = left | (right << 8);
+ sblive_set_gpr (dev, GPR_VOLUME, SNDCTL_MIX_WRITE, value);
+ mixer_devs[dev]->modify_counter++;
+ return;
+ break;
+
+ case 2: /* Volume+ */
+ value = sblive_set_gpr (dev, GPR_VOLUME, SNDCTL_MIX_READ, 0);
+ left = value & 0xff;
+ right = (value >> 8) & 0xff;
+ left += 5;
+ if (left > 100)
+ left = 100;
+ right += 5;
+ if (right > 100)
+ right = 100;
+ value = left | (right << 8);
+ sblive_set_gpr (dev, GPR_VOLUME, SNDCTL_MIX_WRITE, value);
+ mixer_devs[dev]->modify_counter++;
+ return;
+ break;
+ }
+}
+
+static void
+sblive_handle_ir (sblive_devc * devc, unsigned char c)
+{
+/*
+ * Receive a MIDI SysEx message and check if it's an IR remote command
+ */
+#if 1
+
+/*
+ * Sysex code sent by the Live!DRIVE IR unit
+ */
+ static unsigned char remote_id[] =
+ { 0xf0, 0x00, 0x20, 0x21, 0x60, 0x00, 0x02, 0x00, 0xf7 };
+
+ static ir_code_t codes[] = {
+ /* Creative RM-900B remote control unit */
+ {0x09017e}, /* 0 */
+ {0x0a512e}, /* 1 */
+ {0x0a710e}, /* 2 */
+ {0x090976}, /* 3 */
+ {0x09512e}, /* 4 */
+ {0x09215e}, /* 5 */
+ {0x091e61}, /* 6 */
+ {0x0a116e}, /* 7 */
+ {0x0a413e}, /* 8 */
+ {0x0a6e11}, /* 9 */
+ {0x0a1e61}, /* Play/Pause */
+ {0x0a215e}, /* Stop/Eject */
+ {0x0a3e41}, /* Slow */
+ {0x0a7e01}, /* Prev */
+ {0x095e21}, /* Next */
+ {0x097e01}, /* Step */
+ {0x097609}, /* Mute */
+ {0x0a4639, 0, 1}, /* Vol- */
+ {0x094639, 0, 2}, /* Vol+ */
+ /* Speaker ??? */
+ {0x09314e}, /* EAX */
+ {0x09413e}, /* Options */
+ {0x096e11}, /* Display */
+ {0x09710e}, /* Return */
+ {0x09116e}, /* Start */
+ {0x093e41}, /* Cancel */
+ {0x0a5e21}, /* Up */
+ {0x0a611e}, /* << */
+ {0x0a017e}, /* Select/OK */
+ {0x0a2e51}, /* >> */
+ {0x0a314e}, /* Down */
+
+/* Creative RM-1000 remote control unit */
+ {0x0a0679}, /* Power */
+ {0x0a0e71}, /* CMSS */
+ {0x0a4e31}, /* Rec */
+
+/* Creative Inspire 5.1 Digital 5700 remote */
+ {0x0a0778}, /* Power */
+ {0x097708}, /* Mute */
+ {0x0a7708}, /* Test */
+ {0x0a4738}, /* Vol- */
+ {0x094738}, /* Vol+ */
+ {0x0a0f70}, /* Effect */
+ {0x0a5728}, /* Analog */
+ {0x0a2758}, /* Pro logic */
+ {0x094f30}, /* Dynamic mode */
+ {0x093748}, /* Digital/PCM audio */
+ {0}
+ };
+#endif
+ if (c == 0xf0) /* Sysex start */
+ {
+ devc->sysex_buf[0] = c;
+ devc->sysex_p = 1;
+ return;
+ }
+
+ if (devc->sysex_p <= 0)
+ return;
+
+ if (devc->sysex_p >= 20) /* Too long */
+ {
+ devc->sysex_p = 0;
+ return;
+ }
+
+ if (c == 0xf7) /* Sysex end */
+ {
+ int i, l, v;
+ unsigned char *buf;
+
+ devc->sysex_buf[devc->sysex_p] = c;
+ devc->sysex_p++;
+ l = devc->sysex_p;
+
+ devc->sysex_p = 0;
+ buf = devc->sysex_buf;
+
+ if (l == 9)
+ {
+ int ok = 1;
+
+ for (i = 0; i < sizeof (remote_id); i++)
+ if (buf[i] != remote_id[i])
+ ok = 0;
+
+ if (ok)
+ {
+ /* cmn_err (CE_CONT, "Live!DRIVE IR detected\n"); */
+ return;
+ }
+
+ return;
+ }
+
+ if (l != 13) /* Wrong length */
+ return;
+
+ if (buf[0] != 0xf0 || buf[12] != 0xf7) /* Not sysex */
+ return;
+
+ /* Verify that this is an IR receiver sysex */
+ if (buf[1] != 0x00 || buf[2] != 0x20 || buf[3] != 0x21)
+ return;
+ if (buf[4] != 0x60 || buf[5] != 0x00 || buf[6] != 0x01)
+ return;
+#if 0
+ if (buf[7] != 0x09 && buf[7] != 0x0a) /* Remote ID */
+ return;
+#endif
+ if (buf[8] != 0x41 || buf[9] != 0x44)
+ return;
+
+ v = (buf[7] << 16) | (buf[10] << 8) | buf[11];
+
+ for (i = 0; codes[i].keycode != 0; i++)
+ if (codes[i].keycode == v)
+ {
+ sblive_key_action (devc, &codes[i]);
+ return;
+ }
+
+ return;
+ }
+
+ /* Ordinary byte */
+ devc->sysex_buf[devc->sysex_p] = c;
+ devc->sysex_p++;
+}
+
+static void
+sblive_ir_callback (int dev, unsigned char c)
+{
+ sblive_devc *devc;
+ oss_device_t *osdev = midi_devs[dev]->osdev;
+ devc = osdev->devc;
+
+ if (devc->midi_dev != dev)
+ return;
+
+ sblive_handle_ir (devc, c);
+}
+
+static void
+audigyuart_input_loop (sblive_devc * devc)
+{
+ int t = 0;
+
+ while (input_avail (devc) && t++ < 1000)
+ {
+ unsigned char c = audigyuart_read (devc);
+
+ sblive_handle_ir (devc, c);
+
+ if (c == MPU_ACK)
+ devc->input_byte = c;
+ else if (devc->midi_opened & OPEN_READ && devc->midi_input_intr)
+ devc->midi_input_intr (devc->midi_dev, c);
+ }
+}
+
+static void
+audigyuartintr (sblive_devc * devc)
+{
+ oss_native_word flags;
+
+ MUTEX_ENTER_IRQDISABLE (devc->mutex, flags);
+ audigyuart_input_loop (devc);
+ MUTEX_EXIT_IRQRESTORE (devc->mutex, flags);
+}
+
+/*ARGSUSED*/
+static int
+audigyuart_open (int dev, int mode, oss_midi_inputbyte_t inputbyte,
+ oss_midi_inputbuf_t inputbuf,
+ oss_midi_outputintr_t outputintr)
+{
+ sblive_devc *devc = (sblive_devc *) midi_devs[dev]->devc;
+
+ if (devc->midi_opened)
+ {
+ return OSS_EBUSY;
+ }
+
+ while (input_avail (devc))
+ audigyuart_read (devc);
+
+ devc->midi_input_intr = inputbyte;
+ devc->midi_opened = mode;
+ enter_uart_mode (devc);
+ devc->midi_disabled = 0;
+
+ return 0;
+}
+
+/*ARGSUSED*/
+static void
+audigyuart_close (int dev, int mode)
+{
+ sblive_devc *devc = (sblive_devc *) midi_devs[dev]->devc;
+
+ reset_audigyuart (devc);
+ oss_udelay (10);
+ enter_uart_mode (devc);
+ reset_audigyuart (devc);
+ devc->midi_opened = 0;
+}
+
+static int
+audigyuart_out (int dev, unsigned char midi_byte)
+{
+ sblive_devc *devc = (sblive_devc *) midi_devs[dev]->devc;
+
+ if (devc->midi_disabled)
+ return 1;
+
+ if (!output_ready (devc))
+ {
+ return 0;
+ }
+
+ audigyuart_write (devc, midi_byte);
+ return 1;
+}
+
+/*ARGSUSED*/
+static int
+audigyuart_ioctl (int dev, unsigned cmd, ioctl_arg arg)
+{
+ return OSS_EINVAL;
+}
+
+static midi_driver_t audigy_midi_driver = {
+ audigyuart_open,
+ audigyuart_close,
+ audigyuart_ioctl,
+ audigyuart_out
+};
+
+static void
+enter_uart_mode (sblive_devc * devc)
+{
+ int ok, timeout;
+ oss_native_word flags;
+
+ MUTEX_ENTER_IRQDISABLE (devc->mutex, flags);
+ for (timeout = 30000; timeout > 0 && !output_ready (devc); timeout--);
+
+ devc->input_byte = 0;
+ audigyuart_cmd (devc, UART_MODE_ON);
+
+ ok = 0;
+ for (timeout = 50000; timeout > 0 && !ok; timeout--)
+ if (devc->input_byte == MPU_ACK)
+ ok = 1;
+ else if (input_avail (devc))
+ if (audigyuart_read (devc) == MPU_ACK)
+ ok = 1;
+
+ MUTEX_EXIT_IRQRESTORE (devc->mutex, flags);
+}
+
+void
+attach_audigyuart (sblive_devc * devc)
+{
+ enter_uart_mode (devc);
+
+ devc->midi_dev = oss_install_mididev (OSS_MIDI_DRIVER_VERSION, "AUDIGY", "Audigy UART", &audigy_midi_driver, sizeof (midi_driver_t),
+ 0, devc, devc->osdev);
+ devc->midi_opened = 0;
+}
+
+static int
+reset_audigyuart (sblive_devc * devc)
+{
+ int ok, timeout, n;
+ oss_native_word flags;
+
+ /*
+ * Send the RESET command. Try again if no success at the first time.
+ */
+
+ ok = 0;
+ MUTEX_ENTER_IRQDISABLE (devc->mutex, flags);
+
+ for (n = 0; n < 2 && !ok; n++)
+ {
+ for (timeout = 30000; timeout > 0 && !output_ready (devc); timeout--);
+
+ devc->input_byte = 0;
+ audigyuart_cmd (devc, MPU_RESET);
+
+ /*
+ * Wait at least 25 msec. This method is not accurate so let's make the
+ * loop bit longer. Cannot sleep since this is called during boot.
+ */
+
+ for (timeout = 50000; timeout > 0 && !ok; timeout--)
+ if (devc->input_byte == MPU_ACK) /* Interrupt */
+ ok = 1;
+ else if (input_avail (devc))
+ if (audigyuart_read (devc) == MPU_ACK)
+ ok = 1;
+
+ }
+
+
+
+ if (ok)
+ audigyuart_input_loop (devc); /*
+ * Flush input before enabling interrupts
+ */
+
+ MUTEX_EXIT_IRQRESTORE (devc->mutex, flags);
+ return ok;
+}
+
+int
+probe_audigyuart (sblive_devc * devc)
+{
+ int ok = 0;
+
+ DDB (cmn_err (CE_CONT, "Entered probe_audigyuart\n"));
+
+ devc->midi_input_intr = NULL;
+ devc->midi_opened = 0;
+ devc->input_byte = 0;
+
+ ok = reset_audigyuart (devc);
+
+ if (ok)
+ {
+ DDB (cmn_err (CE_CONT, "Reset UART401 OK\n"));
+ }
+ else
+ {
+ DDB (cmn_err
+ (CE_CONT, "Reset UART401 failed (no hardware present?).\n"));
+ DDB (cmn_err
+ (CE_CONT, "mpu401 status %02x\n", audigyuart_status (devc)));
+ }
+
+ DDB (cmn_err (CE_CONT, "audigyuart detected OK\n"));
+ return ok;
+}
+
+void
+unload_audigyuart (sblive_devc * devc)
+{
+ reset_audigyuart (devc);
+}
+
+static void
+attach_mpu (sblive_devc * devc)
+{
+ char tmp[128];
+ int ndevs = num_mididevs;
+ oss_native_word flags;
+
+ sprintf (tmp, "%s external MIDI", devc->card_name);
+
+ if (devc->feature_mask & SB_AUDIGY)
+ {
+ if (!probe_audigyuart (devc))
+ {
+ cmn_err (CE_NOTE, "MIDI UART was not detected\n");
+ return;
+ }
+ DDB (cmn_err (CE_CONT, "SB Audigy: MIDI UART detected - Good\n"));
+ devc->mpu_attached = 1;
+ attach_audigyuart (devc);
+ }
+ else
+ {
+ MUTEX_ENTER (devc->mutex, flags);
+ if (uart401_init (&devc->uart401devc, devc->osdev, devc->base + 0x18,
+ tmp) >= 0)
+ devc->mpu_attached = 1;
+ MUTEX_EXIT (devc->mutex, flags);
+
+ if (ndevs != num_mididevs)
+ {
+ devc->midi_dev = ndevs;
+ midi_devs[ndevs]->input_callback = sblive_ir_callback;
+ }
+ }
+}
+
+static void
+load_dsp (sblive_devc * devc, unsigned char *buf, int len)
+{
+ emu10k1_file *code;
+ int pc, i;
+
+ if (len != sizeof (*code))
+ {
+ cmn_err (CE_NOTE, "DSP file size mismatch\n");
+ return;
+ }
+
+ code = (emu10k1_file *) buf;
+
+ for (pc = 0; pc < 1024; pc++)
+ {
+ write_efx (devc, UC0 + pc, code->code[pc]);
+ }
+
+ if (code->parms.ngpr < MAX_GPR_PARMS)
+ for (i = 0; i < code->parms.ngpr; i++)
+ {
+ code->parms.gpr[i].name[GPR_NAME_SIZE - 1] = 0; /* Overflow protection */
+ if (strlen (code->parms.gpr[i].name) >= 32) /* Name may be bad */
+ {
+ return;
+ }
+
+/* cmn_err(CE_CONT, "Gpr %d = %s (vol %x) type=%x\n", gpr->gpr[i].num, gpr->gpr[i].name, gpr->gpr[i].def, gpr->gpr[i].type); */
+ if (code->parms.gpr[i].num < MAX_GPR)
+ if (code->parms.gpr[i].type != MIXT_GROUP)
+ {
+ if (is_special_gpr (code->parms.gpr[i].num))
+ sblive_set_gpr (devc->mixer_dev, code->parms.gpr[i].num,
+ SNDCTL_MIX_WRITE,
+ devc->gpr_values[code->parms.gpr[i].num]);
+ else
+ sblive_set_gpr (devc->mixer_dev, code->parms.gpr[i].num,
+ SNDCTL_MIX_WRITE, code->parms.gpr[i].def);
+ }
+ }
+
+
+ if (devc->gpr == NULL)
+ {
+ devc->gpr = PMALLOC (devc->osdev, sizeof (gpr_info));
+ if (devc->gpr == NULL)
+ {
+ cmn_err (CE_WARN, "Out of memory (gpr)\n");
+ return;
+ }
+ memset (devc->gpr, 0, sizeof (gpr_info));
+ }
+ memcpy (devc->gpr, &code->parms, sizeof (gpr_info));
+ create_efx_mixer (devc->mixer_dev);
+
+ if (code->consts.nconst >= MAX_CONST_PARMS)
+ return;
+
+ for (i = 0; i < code->consts.nconst; i++)
+ {
+ if (code->consts.consts[i].gpr >= MAX_GPR)
+ {
+ return;
+ }
+
+ sblive_write_reg (devc, code->consts.consts[i].gpr + GPR0, 0,
+ code->consts.consts[i].value);
+ }
+}
+
+#define LIVE_NOP() \
+ write_efx(devc, UC0+(pc*2), 0x10040); \
+ write_efx(devc, UC0+(pc*2+1), 0x610040);pc++
+#define LIVE_ACC3(r, a, x, y) /* z=w+x+y */ \
+ write_efx(devc, UC0+(pc*2), (x << 10) | y); \
+ write_efx(devc, UC0+(pc*2+1), (6 << 20) | (r << 10) | a);pc++
+
+#define AUDIGY_ACC3(r, a, x, y) /* z=w+x+y */ \
+ write_efx(devc, UC0+(pc*2), (x << 12) | y); \
+ write_efx(devc, UC0+(pc*2+1), (6 << 24) | (r << 12) | a);pc++
+#define AUDIGY_NOP() AUDIGY_ACC3(0xc0, 0xc0, 0xc0, 0xc0)
+
+static int
+init_effects (sblive_devc * devc)
+{
+ int i;
+ unsigned short pc;
+
+ if (devc->feature_mask & SB_AUDIGY)
+ {
+ pc = 0;
+ for (i = 0; i < 512; i++)
+ {
+ AUDIGY_NOP ();
+ }
+
+ for (i = 0; i < 256; i++)
+ write_efx (devc, GPR0 + i, 0);
+ sblive_write_reg (devc, AUDIGY_DBG, 0, 0);
+ load_dsp (devc, emu10k2_dsp, sizeof (emu10k2_dsp));
+ }
+ else
+ {
+ pc = 0;
+ for (i = 0; i < 512; i++)
+ {
+ LIVE_NOP ();
+ }
+
+ for (i = 0; i < 256; i++)
+ write_efx (devc, GPR0 + i, 0);
+ sblive_write_reg (devc, DBG, 0, 0);
+ load_dsp (devc, emu10k1_dsp, sizeof (emu10k1_dsp));
+ }
+
+ return 1;
+}
+
+static void
+init_emu10k1 (sblive_devc * devc)
+{
+ unsigned int tmp, i;
+ extern int sblive_memlimit;
+#ifndef NO_EMU10K1_SYNTH
+ extern int sblive_synth_enable;
+#endif
+ int xmem_mode = 0;
+ unsigned int reg, val;
+ extern int sblive_digital_din;
+ extern int audigy_digital_din;
+ oss_native_word phaddr;
+ unsigned int memlimit = MEMLIMIT_31BITS;
+
+ OUTL (devc->osdev, 0x00000000, devc->base + 0x0c); /* Intr disable */
+ OUTL (devc->osdev,
+ HCFG_LOCKSOUNDCACHE | HCFG_LOCKTANKCACHE_MASK | HCFG_MUTEBUTTONENABLE,
+ devc->base + 0x14);
+
+ sblive_write_reg (devc, MBS, 0, 0x0);
+ sblive_write_reg (devc, MBA, 0, 0x0);
+ sblive_write_reg (devc, FXBS, 0, 0x0);
+ sblive_write_reg (devc, FXBA, 0, 0x0);
+ sblive_write_reg (devc, ADCBS, 0, 0x0);
+ sblive_write_reg (devc, ADCBA, 0, 0x0);
+
+ sblive_write_reg (devc, CLIEL, 0, 0x0);
+ sblive_write_reg (devc, CLIEH, 0, 0x0);
+ sblive_write_reg (devc, SOLL, 0, 0xffffffff);
+ sblive_write_reg (devc, SOLH, 0, 0xffffffff);
+
+
+ if (devc->feature_mask & SB_AUDIGY)
+ {
+ memlimit=MEMLIMIT_32BITS;
+ sblive_write_reg (devc, 0x5e, 0, 0xf00); /* ?? */
+ sblive_write_reg (devc, 0x5f, 0, 0x3); /* ?? */
+ }
+
+#ifndef NO_EMU10K1_SYNTH
+ if (!sblive_synth_enable)
+ sblive_memlimit = 0;
+#endif
+
+ if (sblive_memlimit < 4096) /* Given in megabytes */
+ sblive_memlimit *= (1024 * 1024);
+
+ devc->max_mem = sblive_memlimit;
+ if (devc->max_mem < 1024 * 1024)
+ devc->max_mem = 1024 * 1024;
+
+ devc->max_mem += AUDIO_MEMSIZE;
+
+ /* SB Live/Audigy supports at most 32M of memory) */
+ if (devc->max_mem > 32 * 1024 * 1024)
+ devc->max_mem = 32 * 1024 * 1024;
+
+ devc->max_pages = devc->max_mem / 4096;
+ if (devc->max_pages < 1024)
+ devc->max_pages = 1024;
+ devc->page_map =
+ (int *) CONTIG_MALLOC (devc->osdev, devc->max_pages * 4, memlimit,
+ &phaddr, devc->page_map_dma_handle);
+ devc->vpage_map =
+ KERNEL_MALLOC (devc->max_pages * sizeof (unsigned char *));
+ if (devc->page_map == NULL || devc->vpage_map == NULL)
+ {
+ cmn_err (CE_WARN, "Can't allocate the PTBA table\n");
+ return;
+ }
+ memset (devc->vpage_map, 0, devc->max_pages * 4);
+
+ tmp = phaddr;
+ if (devc->feature_mask & SB_LIVE)
+ {
+ if (tmp & 0x80000000)
+ {
+ cmn_err (CE_CONT,
+ "SB Live Error: Page table is beyond the 2G limit\n");
+ }
+ }
+ else
+ {
+ if (tmp & 0x80000000)
+ {
+ DDB (cmn_err (CE_CONT, "Audigy: Using 4G PCI addressing mode\n"));
+ xmem_mode = 1;
+ devc->emu_page_shift = 0;
+ if (devc->max_mem > 16 * 1024 * 1034)
+ {
+ devc->max_mem = 16 * 1024 * 1024;
+
+ DDB (cmn_err
+ (CE_NOTE,
+ "Max memory dropped to 16M due to need for extended PCI address mode.\n"));
+ }
+ }
+ }
+
+ devc->synth_memlimit = devc->max_mem - AUDIO_MEMSIZE;
+ devc->synth_membase = SYNTH_MEMBASE;
+ devc->synth_memtop = devc->synth_membase;
+ devc->synth_memptr = devc->synth_membase;
+
+ devc->silent_page =
+ (int *) CONTIG_MALLOC (devc->osdev, 4096, memlimit, &phaddr, devc->silent_page_dma_handle);
+ if (devc->silent_page == NULL)
+ {
+ cmn_err (CE_WARN, "Can't allocate a silent page\n");
+ return;
+ }
+
+ devc->silent_page_phys = phaddr;
+ if (devc->feature_mask & SB_LIVE)
+ if (devc->silent_page_phys & 0x80000000)
+ {
+ cmn_err (CE_CONT,
+ "SB Live warning: Silent page is beyond the 2G limit\n");
+ }
+
+ devc->audio_memptr = 4096; /* Skip the silence page */
+ memset (devc->silent_page, 0, 4096);
+
+ for (i = 0; i < devc->max_pages; i++)
+ {
+ FILL_PAGE_MAP_ENTRY (i, devc->silent_page_phys);
+ devc->vpage_map[i] = NULL;
+ }
+
+ for (i = 0; i < 64; i++)
+ sblive_init_voice (devc, i);
+
+ if (devc->feature_mask & SB_AUDIGY)
+ {
+ sblive_write_reg (devc, SCS0, 0, 0x2108504);
+ sblive_write_reg (devc, SCS1, 0, 0x2108504);
+ sblive_write_reg (devc, SCS2, 0, 0x2108504);
+ }
+ else
+ {
+ sblive_write_reg (devc, SCS0, 0, 0x2109204);
+ sblive_write_reg (devc, SCS1, 0, 0x2109204);
+ sblive_write_reg (devc, SCS2, 0, 0x2109204);
+ }
+
+ sblive_write_reg (devc, PTBA, 0, tmp);
+ tmp = sblive_read_reg (devc, PTBA, 0);
+
+ sblive_write_reg (devc, TCBA, 0, 0x0);
+ sblive_write_reg (devc, TCBS, 0, 0x4);
+
+ OUTL (devc->osdev, IE_RXA | IE_AB | IE_IT, devc->base + IE); /* Intr enable */
+
+/*
+ * SB Live 5.1 support. Turn on S/PDIF output
+ */
+ if (devc->subvendor == 0x80611102) /* Live 5.1 */
+ {
+ tmp = INL (devc->osdev, devc->base + 0x14);
+ tmp |= 0x00001000; /* Turn GPO0 pin on to enable S/PDIF outputs */
+ OUTL (devc->osdev, tmp, devc->base + 0x14);
+ }
+
+ if (devc->subvendor == 0x80661102)
+ {
+ sblive_write_reg (devc, AC97SLOT, 0,
+ AC97SLOT_CENTER | AC97SLOT_LFE | AC97SLOT_REAR_LEFT |
+ AC97SLOT_REAR_RIGHT);
+ }
+
+ if (devc->feature_mask & SB_AUDIGY2)
+ {
+ /* Enable analog outputs on Audigy2 */
+ int tmp;
+
+ /* Setup SRCMulti_I2S SamplingRate */
+ tmp = sblive_read_reg (devc, EHC, 0);
+ tmp &= 0xfffff1ff;
+ tmp |= (0x2 << 9);
+ sblive_write_reg (devc, EHC, 0, tmp);
+ /* sblive_write_reg (devc, SOC, 0, 0x00000000); */
+
+ /* Setup SRCSel (Enable Spdif,I2S SRCMulti) */
+ OUTL (devc->osdev, 0x600000, devc->base + 0x20);
+ OUTL (devc->osdev, 0x14, devc->base + 0x24);
+
+ /* Setup SRCMulti Input Audio Enable */
+ /* Setup SRCMulti Input Audio Enable */
+ if (devc->feature_mask & SB_AUDIGY2VAL)
+ OUTL (devc->osdev, 0x7B0000, devc->base + 0x20);
+ else
+ OUTL (devc->osdev, 0x6E0000, devc->base + 0x20);
+
+ OUTL (devc->osdev, 0xFF00FF00, devc->base + 0x24);
+
+ /* Setup I2S ASRC Enable (HC register) */
+ tmp = INL (devc->osdev, devc->base + 0x14);
+ tmp |= 0x00000070;
+ OUTL (devc->osdev, tmp, devc->base + 0x14);
+
+ /*
+ * Unmute Analog now. Set GPO6 to 1 for Apollo.
+ * This has to be done after init ALice3 I2SOut beyond 48KHz.
+ * So, sequence is important
+ */
+ tmp = INL (devc->osdev, devc->base + 0x18);
+ tmp |= 0x0040;
+ if (devc->feature_mask & SB_AUDIGY2VAL)
+ tmp |= 0x0060;
+
+ OUTL (devc->osdev, tmp, devc->base + 0x18);
+ }
+
+ sblive_write_reg (devc, SOLL, 0, 0xffffffff);
+ sblive_write_reg (devc, SOLH, 0, 0xffffffff);
+
+ if (devc->feature_mask & SB_AUDIGY)
+ {
+ unsigned int mode = 0;
+
+ if (devc->feature_mask & SB_AUDIGY2)
+ mode |= HCFG_AC3ENABLE_GPSPDIF | HCFG_AC3ENABLE_CDSPDIF;
+ if (xmem_mode)
+ {
+ OUTL (devc->osdev,
+ HCFG_AUDIOENABLE | HCFG_AUTOMUTE | HCFG_JOYENABLE |
+ A_HCFG_VMUTE | A_HCFG_AUTOMUTE | A_HCFG_XM | mode,
+ devc->base + 0x14);
+ }
+ else
+ OUTL (devc->osdev,
+ HCFG_AUDIOENABLE | HCFG_AUTOMUTE | HCFG_JOYENABLE | A_HCFG_VMUTE
+ | A_HCFG_AUTOMUTE | mode, devc->base + 0x14);
+
+ OUTL (devc->osdev, INL (devc->osdev, devc->base + 0x18) | 0x0004, devc->base + 0x18); /* GPIO (S/PDIF enable) */
+
+
+ /* enable IR port */
+ tmp = INL (devc->osdev, devc->base + 0x18);
+ OUTL (devc->osdev, tmp | A_IOCFG_GPOUT2, devc->base + 0x18);
+ oss_udelay (500);
+ OUTL (devc->osdev, tmp | A_IOCFG_GPOUT1 | A_IOCFG_GPOUT2,
+ devc->base + 0x18);
+ oss_udelay (100);
+ OUTL (devc->osdev, tmp, devc->base + 0x18);
+ }
+ else
+ OUTL (devc->osdev,
+ HCFG_AUDIOENABLE | HCFG_LOCKTANKCACHE_MASK | HCFG_AUTOMUTE |
+ HCFG_JOYENABLE, devc->base + 0x14);
+
+
+ /* enable IR port */
+ tmp = INL (devc->osdev, devc->base + 0x14);
+ OUTL (devc->osdev, tmp | HCFG_GPOUT2, devc->base + 0x14);
+ oss_udelay (500);
+ OUTL (devc->osdev, tmp | HCFG_GPOUT1 | HCFG_GPOUT2, devc->base + 0x14);
+ oss_udelay (100);
+ OUTL (devc->osdev, tmp, devc->base + 0x14);
+
+ /* Switch the shared SPDIF/OUT3 to DIGITAL or ANALOG mode */
+ /* depending on whether the port is SPDIF or analog */
+
+ if ((devc->feature_mask == SB_AUDIGY) ||
+ ((devc->feature_mask & SB_AUDIGY2) && (audigy_digital_din == 0)))
+ {
+ reg = INL (devc->osdev, devc->base + 0x18) & ~A_IOCFG_GPOUT0;
+ val = (audigy_digital_din) ? 0x4 : 0;
+ reg |= val;
+ OUTL (devc->osdev, reg, devc->base + 0x18);
+ }
+ if (devc->feature_mask & SB_LIVE) /* SBLIVE */
+ {
+ reg = INL (devc->osdev, devc->base + 0x14) & ~HCFG_GPOUT0;
+ val = (sblive_digital_din) ? HCFG_GPOUT0 : 0;
+ reg |= val;
+ OUTL (devc->osdev, reg, devc->base + 0x14);
+ }
+
+}
+
+void
+sblive_init_voice (sblive_devc * devc, int voice)
+{
+ sblive_set_loop_stop (devc, voice, 1);
+
+ sblive_write_reg (devc, VEDS, voice, 0x0);
+ sblive_write_reg (devc, IP, voice, 0x0);
+ sblive_write_reg (devc, VTFT, voice, 0xffff);
+ sblive_write_reg (devc, CVCF, voice, 0xffff);
+ sblive_write_reg (devc, PTAB, voice, 0x0);
+ sblive_write_reg (devc, CPF, voice, 0x0);
+ sblive_write_reg (devc, CCR, voice, 0x0);
+ sblive_write_reg (devc, SCSA, voice, 0x0);
+ sblive_write_reg (devc, SDL, voice, 0x10);
+ sblive_write_reg (devc, QKBCA, voice, 0x0);
+ sblive_write_reg (devc, Z1, voice, 0x0);
+ sblive_write_reg (devc, Z2, voice, 0x0);
+
+ if (devc->feature_mask & SB_AUDIGY)
+ sblive_write_reg (devc, SRDA, voice, 0x03020100);
+ sblive_write_reg (devc, FXRT, voice, 0x32100000);
+
+ sblive_write_reg (devc, MEHA, voice, 0x0);
+ sblive_write_reg (devc, MEDS, voice, 0x0);
+ sblive_write_reg (devc, IFA, voice, 0xffff);
+ sblive_write_reg (devc, PEFE, voice, 0x0);
+ sblive_write_reg (devc, VFM, voice, 0x0);
+ sblive_write_reg (devc, TMFQ, voice, 24);
+ sblive_write_reg (devc, VVFQ, voice, 24);
+ sblive_write_reg (devc, TMPE, voice, 0x0);
+ sblive_write_reg (devc, VLV, voice, 0x0);
+ sblive_write_reg (devc, MLV, voice, 0x0);
+ sblive_write_reg (devc, VEHA, voice, 0x0);
+ sblive_write_reg (devc, VEV, voice, 0x0);
+ sblive_write_reg (devc, MEV, voice, 0x0);
+
+ if (devc->feature_mask & SB_AUDIGY)
+ {
+ sblive_write_reg (devc, CSBA, voice, 0x0);
+ sblive_write_reg (devc, CSDC, voice, 0x0);
+ sblive_write_reg (devc, CSFE, voice, 0x0);
+ sblive_write_reg (devc, CSHG, voice, 0x0);
+ sblive_write_reg (devc, SRHE, voice, 0x3f3f3f3f);
+ }
+}
+
+#ifndef NO_EMU10K1_SYNTH
+extern void sblive_install_synth (sblive_devc * devc);
+extern void sblive_remove_synth (sblive_devc * devc);
+#endif
+
+static const unsigned char peak_cnv[256] = {
+ 0, 18, 29, 36, 42, 47, 51, 54, 57, 60, 62, 65, 67, 69, 71, 72,
+ 74, 75, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 88, 89, 89, 90,
+ 91, 92, 93, 93, 94, 95, 95, 96, 97, 97, 98, 99, 99, 100, 100, 101,
+ 101, 102, 102, 103, 103, 104, 104, 105, 105, 106, 106, 107, 107, 108, 108,
+ 108,
+ 109, 109, 110, 110, 110, 111, 111, 111, 112, 112, 113, 113, 113, 114, 114,
+ 114,
+ 115, 115, 115, 115, 116, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119,
+ 119,
+ 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 123,
+ 123,
+ 123, 123, 124, 124, 124, 124, 125, 125, 125, 125, 125, 126, 126, 126, 126,
+ 126,
+ 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129,
+ 130,
+ 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 132, 132, 132, 132,
+ 132,
+ 132, 133, 133, 133, 133, 133, 133, 134, 134, 134, 134, 134, 134, 134, 135,
+ 135,
+ 135, 135, 135, 135, 135, 136, 136, 136, 136, 136, 136, 136, 137, 137, 137,
+ 137,
+ 137, 137, 137, 138, 138, 138, 138, 138, 138, 138, 138, 139, 139, 139, 139,
+ 139,
+ 139, 139, 139, 140, 140, 140, 140, 140, 140, 140, 140, 141, 141, 141, 141,
+ 141,
+ 141, 141, 141, 141, 142, 142, 142, 142, 142, 142, 142, 142, 142, 143, 143,
+ 143,
+ 143, 143, 143, 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 144, 144,
+ 144,
+};
+
+static void
+set_equalizer (sblive_devc * devc, int ctrl, int band, int value)
+{
+ const unsigned int *row;
+ int i;
+
+ switch (band)
+ {
+ case 0:
+ row = (unsigned int *) &eq_band1_data[value][0];
+ break;
+ case 1:
+ row = (unsigned int *) &eq_band2_data[value][0];
+ break;
+ case 2:
+ row = (unsigned int *) &eq_band3_data[value][0];
+ break;
+ case 3:
+ row = (unsigned int *) &eq_band4_data[value][0];
+ break;
+
+ default:
+ cmn_err (CE_CONT, "%s: bad equalizer band %d\n", devc->card_name, band);
+ return;
+ }
+
+ for (i = 0; i < 5; i++)
+ {
+ sblive_write_reg (devc, ctrl + GPR0 + i, 0, row[i]);
+ }
+}
+
+static const int db2lin_101[101] = { 0x00000000,
+ 0x0024B53A, 0x002750CA, 0x002A1BC6, 0x002D198D, 0x00304DBA, 0x0033BC2A,
+ 0x00376901, 0x003B58AF, 0x003F8FF1, 0x004413DF, 0x0048E9EA, 0x004E17E9,
+ 0x0053A419, 0x0059952C, 0x005FF24E, 0x0066C32A, 0x006E0FFB, 0x0075E18D,
+ 0x007E414F, 0x0087395B, 0x0090D482, 0x009B1E5B, 0x00A6234F, 0x00B1F0A7,
+ 0x00BE94A1, 0x00CC1E7C, 0x00DA9E8D, 0x00EA2650, 0x00FAC881, 0x010C9931,
+ 0x011FADDC, 0x01341D87, 0x014A00D8, 0x01617235, 0x017A8DE6, 0x01957233,
+ 0x01B23F8D, 0x01D118B1, 0x01F222D4, 0x021585D1, 0x023B6C57, 0x0264041D,
+ 0x028F7E19, 0x02BE0EBD, 0x02EFEE33, 0x032558A2, 0x035E8E7A, 0x039BD4BC,
+ 0x03DD7551, 0x0423BF61, 0x046F07B5, 0x04BFA91B, 0x051604D5, 0x0572830D,
+ 0x05D59354, 0x063FAD27, 0x06B15080, 0x072B0673, 0x07AD61CD, 0x0838FFCA,
+ 0x08CE88D3, 0x096EB147, 0x0A1A3A53, 0x0AD1F2E0, 0x0B96B889, 0x0C6978A5,
+ 0x0D4B316A, 0x0E3CF31B, 0x0F3FE155, 0x10553469, 0x117E3AD9, 0x12BC5AEA,
+ 0x14111457, 0x157E0219, 0x1704DC5E, 0x18A77A97, 0x1A67D5B6, 0x1C480A87,
+ 0x1E4A5C45, 0x2071374D, 0x22BF3412, 0x25371A37, 0x27DBE3EF, 0x2AB0C18F,
+ 0x2DB91D6F, 0x30F89FFD, 0x34733433, 0x382D0C46, 0x3C2AA6BD, 0x4070D3D9,
+ 0x4504BB66, 0x49EBE2F1, 0x4F2C346F, 0x54CC0565, 0x5AD21E86, 0x6145C3E7,
+ 0x682EBDBD, 0x6F9561C4, 0x77829D4D,
+ 0x7fffffff
+};
+
+static __inline__ int
+convert_fixpoint (int val)
+{
+ if (val < 0)
+ val = 0;
+ if (val > 100)
+ val = 100;
+ return db2lin_101[val];
+}
+
+static int
+sblive_set_gpr (int dev, int ctrl, unsigned int cmd, int value)
+{
+ sblive_devc *devc = mixer_devs[dev]->hw_devc;
+ int typ, i;
+
+ if (devc == NULL)
+ return 0;
+
+ if (devc->gpr == NULL)
+ {
+ int left, right;
+
+ if (ctrl >= NEXT_FREE_GPR)
+ return 0;
+
+ if (cmd != SNDCTL_MIX_WRITE)
+ return 0;
+
+ left = value & 0xff;
+ right = (value >> 8) & 0xff;
+
+ if (left < 0)
+ left = 0;
+ if (left > 100)
+ left = 100;
+ if (right < 0)
+ right = 0;
+ if (right > 100)
+ right = 100;
+ value = left | (right << 8);
+ devc->gpr_values[ctrl] = value;
+
+ left = convert_fixpoint (left);
+ sblive_write_reg (devc, ctrl + GPR0, 0, left);
+ right = convert_fixpoint (right);
+ sblive_write_reg (devc, ctrl + GPR0 + 1, 0, right);
+ return value;
+ }
+
+ if (ctrl < 0 || ctrl >= MAX_GPR)
+ return OSS_EIO;
+
+ typ = MIXT_SLIDER;
+ for (i = 0; i < devc->gpr->ngpr; i++)
+ if (devc->gpr->gpr[i].num == ctrl && devc->gpr->gpr[i].type != MIXT_GROUP)
+ typ = devc->gpr->gpr[i].type;
+
+ if (typ == MIXT_GROUP)
+ {
+ return OSS_EIO;
+ }
+
+ if (cmd == SNDCTL_MIX_READ)
+ {
+ if (typ == MIXT_STEREOPEAK || typ == MIXT_STEREOVU)
+ {
+ int v, l, r;
+
+ /* Get the sample values and scale them to 0-144 dB range */
+ v = sblive_read_reg (devc, ctrl + GPR0, 0);
+ l = v >> 23;
+
+ v = sblive_read_reg (devc, ctrl + GPR0 + 1, 0);
+ r = v >> 23;
+
+ if (l < 0)
+ l = -l;
+ if (r < 0)
+ r = -r;
+ l = peak_cnv[l];
+ r = peak_cnv[r];
+
+ /* Reset values back to 0 */
+ sblive_write_reg (devc, ctrl + GPR0, 0, 0);
+ sblive_write_reg (devc, ctrl + GPR0 + 1, 0, 0);
+
+ return l | (r << 8);
+ }
+ return devc->gpr_values[ctrl];
+ }
+
+ if (cmd == SNDCTL_MIX_WRITE)
+ {
+ switch (typ)
+ {
+ case MIXT_STEREOSLIDER:
+ {
+ int left, right;
+
+ left = value & 0xff;
+ right = (value >> 8) & 0xff;
+
+ if (left < 0)
+ left = 0;
+ if (left > 100)
+ left = 100;
+ if (right < 0)
+ right = 0;
+ if (right > 100)
+ right = 100;
+ value = left | (right << 8);
+ devc->gpr_values[ctrl] = value;
+
+ left = convert_fixpoint (left);
+ sblive_write_reg (devc, ctrl + GPR0, 0, left);
+ right = convert_fixpoint (right);
+ sblive_write_reg (devc, ctrl + GPR0 + 1, 0, right);
+ }
+ break;
+
+ case MIXT_ONOFF:
+ {
+ value = !!value;
+ devc->gpr_values[ctrl] = value;
+
+ sblive_write_reg (devc, ctrl + GPR0, 0, value);
+ sblive_write_reg (devc, ctrl + GPR0 + 1, 0, !value);
+ }
+ break;
+
+ case EMU_MIXT_EQ1:
+ case EMU_MIXT_EQ2:
+ case EMU_MIXT_EQ3:
+ case EMU_MIXT_EQ4:
+ {
+ int band;
+
+ band = typ & 3;
+ value = value & 0xff;
+ set_equalizer (devc, ctrl, band, value);
+ devc->gpr_values[ctrl] = value;
+ }
+ break;
+
+ default:
+ {
+ int tmp;
+
+ value = value & 0xff;
+ if (value > 100)
+ value = 100;
+
+ devc->gpr_values[ctrl] = value;
+
+ tmp = convert_fixpoint (value);
+ sblive_write_reg (devc, ctrl + GPR0, 0, tmp);
+ }
+ }
+
+ return value;
+ }
+
+ return OSS_EINVAL;
+}
+
+static int
+sblive_set_vol (int dev, int ctrl, unsigned int cmd, int value)
+{
+ sblive_devc *devc = mixer_devs[dev]->hw_devc;
+ sblive_portc *portc;
+
+ if (ctrl < 0 || ctrl >= devc->n_audiodevs)
+ return OSS_EINVAL;
+
+ portc = &devc->portc[ctrl];
+
+ if (portc->input_type == ITYPE_SPDIF)
+ {
+ mixer_devs[dev]->modify_counter++;
+ return 100 | (100 << 8);
+ }
+
+ if (cmd == SNDCTL_MIX_READ)
+ {
+#ifdef TEST_3D
+ return (devc->portc[ctrl].playvol & 0x00ff) |
+ ((devc->portc[ctrl].playangle & 0xffff) << 16) |
+ ((devc->portc[ctrl].playdist & 0xff) << 8);
+#else
+ return devc->portc[ctrl].playvol & 0xff;
+#endif
+ }
+
+ if (cmd == SNDCTL_MIX_WRITE)
+ {
+#ifdef TEST_3D
+ int angle, dist;
+ angle = (value >> 16) & 0xffff; /* Rotation angle */
+ dist = (value >> 8) & 0xff; /* Distance */
+ value &= 0x00ff; /* Volume */
+
+ if (value < 0)
+ value = 0;
+ if (value > 100)
+ value = 100;
+
+ switch (portc->speaker_mode)
+ {
+ case SMODE_FRONT:
+ angle = 0;
+ dist = 50;
+ break;
+
+ case SMODE_SURR:
+ angle = 180;
+ dist = 50;
+ break;
+
+ case SMODE_FRONTREAR:
+ angle = 0;
+ dist = 50;
+ break;
+
+ case SMODE_3D:
+ break;
+ }
+ devc->portc[ctrl].playvol = value;
+ devc->portc[ctrl].playdist = dist;
+ devc->portc[ctrl].playangle = angle;
+
+ update_output_device (devc, &devc->portc[ctrl]);
+ return (value & 0x00ff) | (angle << 16) | ((dist & 0xff) << 8);
+#else
+ value &= 0xff; /* Only left channel */
+
+ if (value < 0)
+ value = 0;
+ if (value > 100)
+ value = 100;
+ devc->portc[ctrl].playvol = value;
+
+ update_output_device (devc, &devc->portc[ctrl]);
+ return value;
+
+#endif
+ }
+
+ return OSS_EINVAL;
+}
+
+/*ARGSUSED*/
+static int
+sblive_get_peak (int dev, int ctrl, unsigned int cmd, int value)
+{
+ sblive_devc *devc = mixer_devs[dev]->hw_devc;
+
+ if (ctrl < 0 || ctrl >= devc->n_audiodevs)
+ return OSS_EINVAL;
+
+ if (cmd == SNDCTL_MIX_READ)
+ {
+ int l, r, vol;
+
+ l = devc->portc[ctrl].vu_left & 0xff;
+ r = devc->portc[ctrl].vu_right & 0xff;
+#if 1
+ vol = devc->portc[ctrl].playvol;
+ /* if (vol<1) vol=5; */
+ l = (l * vol + 50) / 100;
+ r = (r * vol + 50) / 100;
+#endif
+ devc->portc[ctrl].vu_left = 0;
+ devc->portc[ctrl].vu_right = 0;
+
+ return peak_cnv[l] | (peak_cnv[r] << 8);
+ }
+
+ return OSS_EINVAL;
+}
+
+static int
+sblive_set_parm (int dev, int ctrl, unsigned int cmd, int value)
+{
+ sblive_devc *devc = mixer_devs[dev]->hw_devc;
+
+ if (cmd == SNDCTL_MIX_READ)
+ {
+ switch (ctrl)
+ {
+ case 1:
+ return devc->autoreset;
+ case 2:
+ return devc->speaker_mode;
+ }
+ }
+
+ if (cmd == SNDCTL_MIX_WRITE)
+ {
+ switch (ctrl)
+ {
+ case 1:
+ return devc->autoreset = !!(value);
+ case 2:
+ if (devc->speaker_mode != value)
+ {
+ int i;
+ for (i = 0; i < devc->n_audiodevs; i++)
+ devc->portc[i].resetvol = 1;
+ }
+ return devc->speaker_mode = value;
+ break;
+
+ }
+ }
+
+ return OSS_EINVAL;
+}
+
+static int
+create_soft_mixer (int dev)
+{
+ sblive_devc *devc = mixer_devs[dev]->hw_devc;
+ int group = 0, err, i, n;
+ char tmp[100];
+
+ if ((err = mixer_ext_create_control (dev, 0,
+ 1,
+ sblive_set_parm,
+ MIXT_ONOFF,
+ "SBLIVE_AUTORESET",
+ 2,
+ MIXF_READABLE | MIXF_WRITEABLE)) < 0)
+ return err;
+
+#ifdef TEST_3D
+ n = 5;
+#else
+ n = 4;
+#endif
+ if ((err = mixer_ext_create_control (dev, 0,
+ 2,
+ sblive_set_parm,
+ MIXT_ENUM,
+ "SBLIVE_SPKMODE",
+ n,
+ MIXF_READABLE | MIXF_WRITEABLE)) < 0)
+ return err;
+ for (i = 0; i < devc->n_audiodevs; i++)
+ {
+ if (devc->n_audiodevs > devc->min_audiodevs)
+ {
+ /*
+ * Use the traditional dspN naming system for sliders.
+ */
+ if ((i % 8) == 0)
+ if ((group = mixer_ext_create_group (dev, 0, "/dev")) < 0)
+ return group;
+
+ sprintf (tmp, "@pcm%d", devc->portc[i].audiodev);
+ }
+ else
+ {
+ /*
+ * Use front/rear/etc naming style
+ */
+ if ((i % 8) == 0)
+ if ((group = mixer_ext_create_group (dev, 0, "pcm")) < 0)
+ return group;
+
+ switch (i)
+ {
+ case 0:
+ strcpy (tmp, "main");
+ break; /* Duplex device */
+ case 1:
+ strcpy (tmp, "front");
+ break;
+ case 2:
+ strcpy (tmp, "side");
+ break;
+ case 3:
+ strcpy (tmp, "C/L");
+ break;
+ case 4:
+ strcpy (tmp, "rear");
+ break;
+ }
+ }
+
+
+ if ((err = mixer_ext_create_control (dev, group, i, sblive_set_vol,
+#ifdef TEST_3D
+ MIXT_3D,
+#else
+ MIXT_SLIDER,
+#endif
+ tmp,
+ 100,
+ MIXF_PCMVOL | MIXF_READABLE | MIXF_WRITEABLE)) <
+ 0)
+ return err;
+ if ((err = mixer_ext_create_control (dev, group,
+ i,
+ sblive_get_peak,
+ MIXT_STEREOPEAK,
+ "-", 144, MIXF_READABLE)) < 0)
+ return err;
+ }
+
+ return 0;
+}
+
+static int
+create_efx_mixer (int dev)
+{
+ sblive_devc *devc = mixer_devs[dev]->hw_devc;
+ int group = 0, err = 0, i, mode;
+ int group_created = 0;
+ int typ, maxval;
+
+ if (!devc->extinfo_loaded)
+ {
+ return 0;
+ }
+
+ if (devc->gpr == NULL)
+ {
+ return 0;
+ }
+
+ if (devc->mixer_group >= 0)
+ mixer_ext_truncate (dev, devc->mixer_group);
+ devc->mixer_group = -1;
+
+ if (devc->gpr->ngpr >= MAX_GPR_PARMS)
+ return OSS_EINVAL;
+
+ for (i = 0; i < devc->gpr->ngpr; i++)
+ {
+ if (devc->gpr->gpr[i].num >= MAX_GPR)
+ continue;
+
+ typ = devc->gpr->gpr[i].type;
+
+ if (typ == MIXT_GROUP)
+ {
+ if ((group =
+ mixer_ext_create_group (dev, 0, devc->gpr->gpr[i].name)) < 0)
+ return group;
+
+ if (!group_created)
+ devc->mixer_group = group;
+ group_created = 1;
+ continue;
+ }
+
+#if 0
+ if (!group_created)
+ {
+ cmn_err (CE_WARN, "Mixer initialization sequence error\n");
+ return OSS_EINVAL;
+ }
+#endif
+ mode = MIXF_READABLE;
+ maxval = 144;
+
+ switch (typ)
+ {
+ case EMU_MIXT_EQ1:
+ case EMU_MIXT_EQ2:
+ case EMU_MIXT_EQ3:
+ case EMU_MIXT_EQ4:
+ {
+ mode |= MIXF_WRITEABLE;
+ maxval = 255;
+ typ = MIXT_SLIDER;
+ }
+ break;
+
+ case MIXT_STEREOSLIDER:
+ case MIXT_SLIDER:
+ case MIXT_MONOSLIDER:
+ {
+ mode |= MIXF_WRITEABLE;
+ maxval = 100;
+ }
+ break;
+
+ case MIXT_STEREOVU:
+ typ = MIXT_STEREOPEAK;
+ break;
+
+ case MIXT_ONOFF:
+ {
+ mode |= MIXF_WRITEABLE;
+ maxval = 1;
+ }
+ break;
+ }
+
+ if (devc->gpr->gpr[i].name[0] == '_')
+ {
+ /* Hidden control */
+ if (strcmp (devc->gpr->gpr[i].name, "_PASSTHROUGH") == 0)
+ {
+ int ctrl = devc->gpr->gpr[i].num;
+ devc->passthrough_gpr = ctrl;
+
+ sblive_write_reg (devc, ctrl + GPR0, 0, 1);
+ sblive_write_reg (devc, ctrl + GPR0 + 1, 0, 0);
+ }
+ }
+ else
+ {
+ /* Visible control */
+ if ((err = mixer_ext_create_control (dev, group,
+ devc->gpr->gpr[i].num,
+ sblive_set_gpr, typ,
+ devc->gpr->gpr[i].name,
+ maxval, mode)) < 0)
+ return err;
+ }
+
+ if (!group_created)
+ devc->mixer_group = err;
+ group_created = 1;
+
+ if (is_special_gpr (devc->gpr->gpr[i].num))
+ {
+ sblive_set_gpr (dev, devc->gpr->gpr[i].num, SNDCTL_MIX_WRITE,
+ devc->gpr_values[devc->gpr->gpr[i].num]);
+ }
+ else
+ {
+ sblive_set_gpr (dev, devc->gpr->gpr[i].num, SNDCTL_MIX_WRITE,
+ devc->gpr->gpr[i].def);
+ }
+ }
+ return 0;
+}
+
+static int
+mixer_ext_init (int dev)
+{
+ sblive_devc *devc = mixer_devs[dev]->hw_devc;
+
+ devc->extinfo_loaded = 1;
+ create_soft_mixer (dev);
+ create_efx_mixer (dev);
+ return 0;
+}
+
+static int
+mixer_override (int dev, int audiodev, unsigned int cmd, int val)
+{
+ sblive_devc *devc = mixer_devs[dev]->hw_devc;
+ switch (cmd)
+ {
+ case SOUND_MIXER_READ_VOLUME:
+ return sblive_set_gpr (dev, GPR_VOLUME, SNDCTL_MIX_READ, 0);
+ break;
+
+ case SOUND_MIXER_WRITE_VOLUME:
+ return sblive_set_gpr (dev, GPR_VOLUME, SNDCTL_MIX_WRITE, val);
+ break;
+
+ case SOUND_MIXER_READ_PCM:
+ if (audiodev >= 0 && audiodev < num_audio_engines)
+ {
+ sblive_portc *portc = NULL;
+ int i;
+
+ for (i = 0; i < devc->n_audiodevs && portc == NULL; i++)
+ if (devc->portc[i].audiodev == audiodev)
+ portc = &devc->portc[i];
+
+ if (portc == NULL)
+ return OSS_EIO;
+
+ return portc->playvol | (portc->playvol << 8);
+ }
+ return sblive_set_gpr (dev, GPR_PCM, SNDCTL_MIX_READ, 0);
+ break;
+
+ case SOUND_MIXER_WRITE_PCM:
+ if (audiodev >= 0 && audiodev < num_audio_engines)
+ {
+ sblive_portc *portc = NULL;
+ int i, left, right;
+
+ for (i = 0; i < devc->n_audiodevs && portc == NULL; i++)
+ if (devc->portc[i].audiodev == audiodev)
+ portc = &devc->portc[i];
+
+ if (portc == NULL)
+ return OSS_EIO;
+
+ left = val & 0xff;
+ right = (val >> 8) & 0xff;
+
+ if (left < 0)
+ left = 0;
+ if (right < 0)
+ right = 0;
+ if (left > 100)
+ left = 100;
+ if (right > 100)
+ right = 100;
+
+ if (right > left)
+ left = right;
+ portc->playvol = left;
+ mixer_devs[devc->mixer_dev]->modify_counter++; /* Force update of mixer */
+ update_output_device (devc, portc);
+
+ return portc->playvol | (portc->playvol << 8);
+ }
+ return sblive_set_gpr (dev, GPR_PCM, SNDCTL_MIX_WRITE, val);
+ break;
+ }
+
+ return 0;
+}
+
+static const char *port_names[] =
+ { "front out", "side out", "center/lfe out", "rear out" };
+
+static const __inline__ char *
+get_port_name (sblive_devc * devc, int n)
+{
+ int max_names = 3;
+
+ if (devc->feature_mask & SB_AUDIGY)
+ max_names = 3;
+ if (devc->feature_mask & SB_LIVE)
+ max_names = 2;
+
+ n = n - 1;
+
+ if (n > max_names)
+ return "extra out";
+
+ return port_names[n];
+}
+
+static void
+unload_mpu (sblive_devc * devc)
+{
+ if (devc == NULL)
+ return;
+
+ if (devc->feature_mask & SB_AUDIGY)
+ unload_audigyuart (devc);
+ else
+ uart401_disable (&devc->uart401devc);
+}
+
+int
+oss_sblive_attach (oss_device_t * osdev)
+{
+ sblive_devc *devc;
+ int i, err;
+ int frontdev = -1, ndevs = 0;
+ int first_dev = -1;
+ unsigned char pci_irq_line, pci_revision /*, pci_latency */ ;
+ unsigned short pci_command, vendor, device;
+ unsigned int pci_ioaddr;
+ unsigned int subvendor;
+ adev_p adev;
+ extern int sblive_devices;
+
+ int audiodevs_to_create = sblive_devices;
+
+ char tmp[64];
+
+ DDB (cmn_err (CE_CONT, "sblive_attach entered\n"));
+
+ pci_read_config_word (osdev, PCI_VENDOR_ID, &vendor);
+ pci_read_config_word (osdev, PCI_DEVICE_ID, &device);
+
+ if (vendor != PCI_VENDOR_ID_CREATIVE)
+ {
+ cmn_err (CE_WARN, "Unrecognized SB live vendor %x\n", vendor);
+ return 0;
+ }
+
+ if (device != PCI_DEVICE_ID_SBLIVE
+ && device != PCI_DEVICE_ID_AUDIGY
+ && device != PCI_DEVICE_ID_AUDIGY_CARDBUS
+ && device != PCI_DEVICE_ID_AUDIGYVALUE)
+ {
+ cmn_err (CE_WARN, "Unrecognized SB live device %x:%x\n", vendor,
+ device);
+ return 0;
+ }
+
+#ifdef AUDIGY_ONLY
+ if (device == PCI_DEVICE_ID_SBLIVE)
+ {
+ cmn_err (CE_CONT,
+ "Error: Due to hardware limitations SB Live is not\n");
+ cmn_err (CE_CONT, "supported under this hardware architecture.\n");
+ cmn_err (CE_CONT,
+ "Consider upgrading to SB Audigy which is supported.\n");
+ return 0;
+ }
+#endif
+
+ pci_read_config_dword (osdev, 0x2c, &subvendor);
+ pci_read_config_byte (osdev, PCI_REVISION_ID, &pci_revision);
+ pci_read_config_word (osdev, PCI_COMMAND, &pci_command);
+ pci_read_config_irq (osdev, PCI_INTERRUPT_LINE, &pci_irq_line);
+ pci_read_config_dword (osdev, PCI_BASE_ADDRESS_0, &pci_ioaddr);
+
+ pci_command |= PCI_COMMAND_MASTER | PCI_COMMAND_IO;
+ pci_command &= ~(PCI_COMMAND_SERR | PCI_COMMAND_PARITY);
+ pci_write_config_word (osdev, PCI_COMMAND, pci_command);
+
+
+ if (pci_ioaddr == 0)
+ {
+ cmn_err (CE_WARN, "I/O address not assigned by BIOS.\n");
+ return 0;
+ }
+
+ if (pci_irq_line == 0)
+ {
+ cmn_err (CE_WARN, "IRQ not assigned by BIOS.\n");
+ return 0;
+ }
+
+ if ((devc = PMALLOC (osdev, sizeof (*devc))) == NULL)
+ {
+ cmn_err (CE_WARN, "Out of memory\n");
+ return 0;
+ }
+
+ memset (devc, 0, sizeof (*devc));
+ devc->osdev = osdev;
+ osdev->devc = devc;
+ MUTEX_INIT (osdev, devc->mutex, MH_DRV);
+ MUTEX_INIT (osdev, devc->low_mutex, MH_DRV + 1);
+
+ devc->emu_page_shift = 1; /* Default page shift */
+
+ devc->card_name = "Generic SB Live!";
+ devc->subvendor = subvendor;
+
+ devc->min_audiodevs = 5; /* Audigy supports 7.1 */
+
+ if (device == PCI_DEVICE_ID_AUDIGYVALUE)
+ {
+ /* SOLWAY subvendor id is 0x10211103 */
+ if ((devc->subvendor == 0x10211102) || (devc->subvendor == 0x10211103))
+ devc->card_name = "SB Audigy4";
+ else
+ devc->card_name = "SB Audigy2 Value";
+ devc->feature_mask = SB_AUDIGY | SB_AUDIGY2 | SB_AUDIGY2VAL;
+ }
+ else if (device == PCI_DEVICE_ID_AUDIGY)
+ {
+ if (devc->subvendor >= 0x10021102 && devc->subvendor <= 0x20051102)
+ {
+ devc->card_name = "SB Audigy2";
+ devc->feature_mask = SB_AUDIGY | SB_AUDIGY2;
+ }
+ else
+ {
+ devc->card_name = "SB Audigy";
+ devc->feature_mask = SB_AUDIGY;
+ }
+ }
+ else if (device == PCI_DEVICE_ID_AUDIGY_CARDBUS)
+ {
+ if (devc->subvendor >= 0x10021102 && devc->subvendor <= 0x20051102)
+ {
+ devc->card_name = "SB Audigy2 ZS Notebook";
+ devc->feature_mask = SB_AUDIGY | SB_AUDIGY2;
+ }
+ else
+ {
+ devc->card_name = "SB Audigy";
+ devc->feature_mask = SB_AUDIGY;
+ }
+ DDB (cmn_err (CE_CONT,
+ "emu10k2 chip rev %d, pcb rev %d\n", pci_revision,
+ sblive_read_reg (devc, 0x5f, 0)));
+ }
+ else
+ {
+ devc->card_name = "SB Live";
+ devc->feature_mask = SB_LIVE;
+ devc->min_audiodevs = 4; /* Just 5.1 */
+ }
+
+ if (audiodevs_to_create < devc->min_audiodevs)
+ audiodevs_to_create = devc->min_audiodevs;
+ if (audiodevs_to_create > MAX_ADEV)
+ audiodevs_to_create = MAX_ADEV;
+
+ devc->base = MAP_PCI_IOADDR (devc->osdev, 0, pci_ioaddr);
+ devc->base &= ~0x3;
+
+ devc->gpr = NULL;
+ oss_register_device (osdev, devc->card_name);
+
+ devc->irq = pci_irq_line;
+
+ devc->page_map = NULL;
+ devc->vpage_map = NULL;
+ devc->nr_pages = 0;
+ devc->max_pages = 0;
+ devc->max_mem = 0;
+ devc->silent_page = NULL;
+ devc->subvendor = subvendor;
+ devc->passthrough_gpr = -1;
+
+ if ((err = oss_register_interrupts (devc->osdev, 0, sbliveintr, NULL)) < 0)
+ {
+ cmn_err (CE_WARN, "Can't register interrupt handler, err=%d\n", err);
+ return 0;
+ }
+
+ devc->mixer_group = -1;
+ devc->extinfo_loaded = 0;
+ devc->autoreset = 1;
+ devc->speaker_mode = SMODE_FRONTREAR;
+
+/*
+ * Init mixer
+ */
+ devc->mixer_dev =
+ ac97_install (&devc->ac97devc, devc->card_name, ac97_read, ac97_write,
+ devc, devc->osdev);
+ if (devc->mixer_dev < 0)
+ {
+ cmn_err (CE_WARN, "Mixer install failed - cannot continue\n");
+ return 0;
+ }
+
+ devc->ac97devc.mixer_ext = 0;
+ devc->ac97devc.spdifout_support = 0;
+ devc->ac97devc.spdifin_support = 0;
+ if (ac97_init_ext
+ (devc->mixer_dev, &devc->ac97devc, mixer_ext_init, 100) < 0)
+ {
+ cmn_err (CE_WARN, "Mixer ext install failed\n");
+ }
+
+ /* first set the AC97 PCM to max - otherwise sound is too low */
+ ac97_mixer_set (&devc->ac97devc, SOUND_MIXER_PCM, 100 | (100 << 8));
+
+ ac97_remove_control (&devc->ac97devc, BOGUS_MIXER_CONTROLS, 0);
+ ac97_override_control (&devc->ac97devc, SOUND_MIXER_VOLUME,
+ mixer_override, 100 | (100 << 8));
+ ac97_override_control (&devc->ac97devc, SOUND_MIXER_PCM,
+ mixer_override, 100 | (100 << 8));
+
+ attach_mpu (devc);
+
+/*
+ * Audio initialization
+ */
+ init_emu10k1 (devc);
+
+ for (i = 0; i < audiodevs_to_create; i++)
+ {
+ sblive_portc *portc = &devc->portc[i];
+ int caps = ADEV_AUTOMODE;
+ int fmts = 0;
+ devc->n_audiodevs = i + 1;
+
+ portc->memptr = devc->audio_memptr;
+ devc->audio_memptr += (DMABUF_SIZE + 4095) & ~4095;
+
+ if (devc->audio_memptr > AUDIO_MEMSIZE)
+ {
+ cmn_err (CE_WARN, "Audio memory block exhausted (%d/%d)\n",
+ devc->audio_memptr, AUDIO_MEMSIZE);
+ return OSS_ENOSPC;
+ }
+
+ if (i == 0)
+ {
+ strcpy (tmp, devc->card_name);
+ sprintf (tmp, "%s main", devc->card_name);
+ caps |= ADEV_DUPLEX;
+ }
+ else
+ {
+ sprintf (tmp, "%s %s", devc->card_name, get_port_name (devc, i));
+ caps |= ADEV_NOINPUT;
+#if 0
+ if (i >= devc->min_audiodevs)
+ caps |= ADEV_HWMIX;
+#endif
+ if (i >= devc->min_audiodevs + 1)
+ caps |= ADEV_SHADOW;
+ }
+ if ((devc->feature_mask & SB_AUDIGY) && i == audiodevs_to_create - 1)
+ {
+ sprintf (tmp, "%s raw S/PDIF (output only)", devc->card_name);
+ caps &= ~(ADEV_SHADOW /* | ADEV_HWMIX*/);
+ caps |= ADEV_SPECIAL;
+ fmts |= AFMT_AC3;
+ }
+#if 0
+ if (devc->feature_mask & SB_AUDIGY)
+ caps |= ADEV_COLD;
+#endif
+ if ((portc->audiodev =
+ oss_install_audiodev (OSS_AUDIO_DRIVER_VERSION,
+ devc->osdev,
+ devc->osdev,
+ tmp,
+ &sblive_audio_driver,
+ sizeof (audiodrv_t), caps,
+ fmts | AFMT_U8 | AFMT_S16_LE, devc, -1)) < 0)
+ {
+ portc->audiodev = -1;
+ return (i > 0);
+ }
+ else
+ {
+ int x;
+
+ adev = audio_engines[portc->audiodev];
+ adev->nrates=0;
+ for (x = 0; speed_tab[x].speed != 0; x++)
+ adev->rates[adev->nrates++] = speed_tab[x].speed;
+
+ if (i == 0)
+ first_dev = portc->audiodev;
+ adev->devc = devc;
+ adev->portc = portc;
+ adev->rate_source = first_dev;
+ adev->mixer_dev = devc->mixer_dev;
+ adev->min_rate = 8000;
+ adev->max_rate = 48000;
+
+ if (!(devc->feature_mask & SB_AUDIGY))
+ {
+ /*
+ * SB Live supports only 31 PCI address bits
+ */
+ adev->dmabuf_maxaddr = MEMLIMIT_31BITS;
+ }
+
+ portc->mode = 0;
+ adev->oformat_mask |= AFMT_AC3;
+ portc->input_type = ITYPE_ANALOG;
+ if ((devc->feature_mask & SB_AUDIGY) && i == audiodevs_to_create - 1)
+ portc->input_type = ITYPE_SPDIF;
+ if (i == 1)
+ frontdev = portc->audiodev;
+ if (i > 0)
+ ndevs++;
+
+ portc->playvol = 100;
+ portc->playangle = 0;
+ portc->playdist = 50;
+ portc->vu_left = 0;
+ portc->vu_right = 0;
+ portc->audio_active = 0;
+ portc->voice_chn = i * 2;
+ portc->port_number = i;
+ devc->voice_busy[i * 2] = 1;
+ devc->voice_busy[i * 2 + 1] = 1;
+ portc->resetvol = 0;
+ if (devc->feature_mask & SB_LIVE)
+ {
+/*
+ * Do not enable vmix by default on Live! It would cause enormous
+ * latencies because emu10k1 doesn't have working full/half buffer DMA
+ * interrupts.
+ */
+ adev->vmix_flags = VMIX_MULTIFRAG;
+ adev->max_intrate = 50;
+ adev->min_block = 4096;
+ }
+ else
+ {
+ adev->max_fragments = 2;
+ }
+
+ /*
+ * Hide vmix main volume control and peak meters if no
+ * real HW mixing devices are enabled.
+ */
+#if 0
+ if (audiodevs_to_create <= devc->min_audiodevs)
+ adev->vmix_flags |= VMIX_NOMAINVOL;
+#endif
+ adev->iformat_mask = AFMT_S16_LE; /* No 8 bit recording */
+
+ if (i == 0)
+ {
+ if (devc->feature_mask & SB_LIVE)
+ adev->magic = EMU10K1_MAGIC;
+ else
+ adev->magic = EMU10K2_MAGIC;
+ }
+#ifdef CONFIG_OSS_VMIX
+ if (i == 0)
+ vmix_attach_audiodev(devc->osdev, first_dev, -1, 0);
+#endif
+ }
+ adev->mixer_dev = devc->mixer_dev;
+ }
+
+#ifdef USE_REMUX
+ /* Install Remux (only 5.1 support for the time being) */
+ sprintf (tmp, "%s 5.1 output device", devc->card_name);
+ if (frontdev > 0 && ndevs >= 3) /* Have enough devices for 5.1 */
+ remux_install (tmp, devc->osdev, frontdev, frontdev + 1, frontdev + 2,
+ -1);
+#endif
+
+#ifndef NO_EMU10K1_SYNTH
+ sblive_install_synth (devc);
+#endif
+
+ touch_mixer (devc->mixer_dev);
+ init_effects (devc);
+
+ return 1;
+}
+
+int
+oss_sblive_detach (oss_device_t * osdev)
+{
+ sblive_devc *devc;
+
+ if (oss_disable_device (osdev) < 0)
+ return 0;
+
+ devc = osdev->devc;
+
+ OUTL (devc->osdev, 0, devc->base + 0x0c); /* Intr enable (all off) */
+ OUTL (devc->osdev,
+ HCFG_LOCKSOUNDCACHE | HCFG_LOCKTANKCACHE_MASK |
+ HCFG_MUTEBUTTONENABLE, devc->base + 0x14);
+
+ sblive_write_reg (devc, ADCSR, 0, 0x0);
+ sblive_write_reg (devc, ADCBA, 0, 0x0);
+ sblive_write_reg (devc, ADCBA, 0, 0x0);
+
+ sblive_write_reg (devc, PTBA, 0, 0);
+
+#ifndef NO_EMU10K1_SYNTH
+ sblive_remove_synth (devc);
+#endif
+ if (devc->page_map != NULL)
+ CONTIG_FREE (devc->osdev, devc->page_map, devc->max_pages * 4, devc->page_map_dma_handle);
+ if (devc->vpage_map != NULL)
+ KERNEL_FREE (devc->vpage_map);
+ if (devc->silent_page != NULL)
+ CONTIG_FREE (devc->osdev, devc->silent_page, 4096, devc->silent_page_dma_handle);
+ devc->max_pages = 0;
+ devc->max_mem = 0;
+ devc->page_map = NULL;
+ devc->vpage_map = NULL;
+ devc->silent_page = NULL;
+ unload_mpu (devc);
+
+ oss_unregister_interrupts (devc->osdev);
+
+ MUTEX_CLEANUP (devc->mutex);
+ MUTEX_CLEANUP (devc->low_mutex);
+ UNMAP_PCI_IOADDR (devc->osdev, 0);
+ oss_unregister_device (osdev);
+
+ return 1;
+}
diff --git a/kernel/drv/oss_sblive/oss_sblive.man b/kernel/drv/oss_sblive/oss_sblive.man
new file mode 100644
index 0000000..067a341
--- /dev/null
+++ b/kernel/drv/oss_sblive/oss_sblive.man
@@ -0,0 +1,226 @@
+NAME
+ oss_sblive - Creative Labs Sound Blaster Live/Audigy family driver.
+
+DESCRIPTION
+ Open Sound System driver for Creative Labs Sound Blaster Live!, Audigy,
+ Audigy2, Audigy2-Value and sound cards.
+
+ The sblive driver supports:
+
+ o 8-48Khz Playback/Recording
+ o 8 or 16 bits
+ o SPDIF digital output and Input
+ o Multi channel 5.1 (Live!) and 7.1 (Audigy) output.
+
+ AC3 passthrough is only supported on Audigy series of the soundcards.
+
+OTHER SIMILAR CARDS
+There are several Sound Blaster cards that are also called as Live or
+Audigy. However these cards are based on entirely different hardware design
+and they are not compatible with this driver.
+
+o Sound Blaster Live 5.1 card is used in some Dell machines but it's
+ driven by the emu10k1x driver.
+o Sound Blaster AudigyLS and Live 7.1 models are driven by the audigyls
+ driver of OSS.
+
+ SBLIVE COMBO SPDIF AND AUDIO JACKS
+Most models of Live! and Audigy cards have an orange combo jack that is
+used both for the analog center/LFE output and for digital DIN (S/PDIF)
+output. The output mode is selected by a driver configuration option
+(seel below) which should be set to proper value depending on the actual
+speaker configuration.
+
+o Noisy analog center/LFE output. The orange combo jack at the rear plate
+ of the Live/Audigy card is shared between the digital DIN and the analog
+ center/LFE outputs. In digital DIN mode (default) you will hear very noisy
+ output from the speakers connected to this output jack. If you have analog
+ center/LFE (subwoofer) speakers connected then you need to turn off the
+ sblive_digital_din (or audigy_digital_din) option.
+
+o There is a new configuration option to enable/disable the "digital DIN"
+ output. By default the digital DIN interface is enabled which disables the
+ center/LFE analog output (uses the same combo jack). By setting the
+ sblive_digital_din (or audigy_digital_din) option to 0 you can enable the
+ analog C/LFE output feature. When digital DIN is disabled you can still get
+ S/PDIF (or AC3) output from the digital (optical/coax) outputs of the
+ optional livedrive unit.
+
+ SBLIVE MIXER
+SB Live cards have actually two mixer chips. In OSS both of them are
+controlled together. However only limited set of features can be controlled
+using ordinary mixer programs (such as the mixer applet included in OSS).
+Majority of features can only be accessed using the ossmix and ossxmix
+programs included in OSS.
+
+The AC97 mixer is used to control volumes of the back bracket inputs (mic and
+line in) and the _analog_ CD input connector on the soundcard. The 'mic'
+volume controls the level of the rear bracket microphone input sent directly
+to the front (only front) speakers. The 'line' and 'cd' controls do the same
+for the back bracket line in connector and the on board analog CD input
+connector. It's usually recommended to set these volumes to 0.
+
+Another function of the AC97 mixer is selecting the signal that is passed to
+the master mixer (for example for recording). One of the 'mic', 'line' or
+'cd' signals can be routed to the master mixer by selecting that device as
+the recording source in the AC97 mixer. The 'rec' volume control slider can
+be used to adjust the signal strength. The 'igain' control doesn't usually
+have any effect but some hardware revisions may use it for controlling the
+microphone recording level.
+
+
+ SBLIVE MASTER MIXER
+Other mixer functions are handled by the DSP engine of the EMU 10k1 chip.
+Most input signals (including all digital signals and LiveDrive inputs).
+
+There are only two master mixer settings that can be controlled using all
+mixer programs. The 'vol' setting is the master output volume that affects
+both the front and rear speakers and the headphone output (digital output
+volumes are not affected). The 'pcm' setting controls volumes of all PCM
+playback channels (/dev/dsp#).
+
+In addition to volume sliders most inputs have a stereo VU meter pair
+(only in ossxmix) that can be used to monitor the input and to adjust the
+input levels properly.
+
+The master mixer consists of several sections that are:
+
+o Primary section: This section has two settings. The "spkmode" setting
+ selects how front/rear speakers are used for PCM playback (outputs from
+ programs using /dev/dsp#). The possible settings are FRONT, REAR and
+ FRONT+REAR. The default is FRONT+REAR. Change this setting if you like to
+ get PCM playback only from front or rear speakers. The "autoreset" flag is
+ used to control the "/dev" section.
+
+o "/dev" section: This section controls the volumes of each /dev/dsp# device
+ file supported by the device (there are 8 of them at this moment). These
+ volumes will return back to maximum every time the device is opened. However
+ this can be disabled by setting the 'autoreset' option to OFF. The ossxmix
+ program has special ability to show the application using the particular
+ /dev/dsp device (for layout reasons only the first 4 characters of the
+ program name are shown).
+
+o The equalizer section: This section controls the graphic equalizer for
+ front speakers only.
+
+o The front rear, and record sections: These three identical sections control
+ the levels of external inputs and PCM playback (/dev/dsp# devices) to be
+ sent to the front/rear speakers and to the recording device.
+ The CD Analog audio will only be heard from the FRONT speakers.
+
+ SBLIVE RECORDING
+Before recording anything you need to set the volumes in the recording
+section properly. To enable recording from the AC97 connected inputs
+(mic, line in and analog CD) use the AC97 mixer to select the desired input
+and then tune the input level using the rec (and igain) setting.
+
+Finally set the 'ac97' slider in the record section of the master mixer so
+that the recording level is suitable.
+
+The OSS drivers permit recording any application that's currently playing.
+
+To record audio that's playing on any of the SB Live channels:
+
+o Turn down the AC97 control in the "record" section. This prevents any audio
+ being fed to the soundcard from MIC/Line-in/CD-in from getting mixed with
+ the audio produced by the application that's currently playing.
+
+o Type ossrecord -s<sampling rate> -b<bits/sample> -c<channels> test.wav
+
+o To stop recording press <Ctrl-c> and then you can play back the test.wav
+ file using ossplay command.
+
+
+ RECORDING ISSUES:
+In most cases noise is caused by the microphone input or some other
+(unused) input. Use the ossxmix program to turn off all unused inputs and
+finally save the current mixer settings (see below).
+
+Hint: Look at the VU meter panels of ossxmix. It's usually very easy to
+locate the noise source by looking which input has some signal coming from
+it.
+
+WARNING! If you turn off some of the signals in recording section or the
+AC97 mixer section this affects all subsequent recordings. Remember
+to raise the volume prior doing any recording. After that decrease
+the volumes again if necessary.
+
+
+ SBLIVE HARDWARE MIXING
+You can use /dev/oss/oss_sblive0/ pcm0-pcm7 to play multiple audio programs
+using the hardware mixing.
+Simply specify the device name with the application. A simple test is
+to do the following:
+ ossplay -d/dev/oss/oss_sblive0/pcm0 <file1.wav> &
+ ossplay -d/dev/oss/oss_sblive0/pcm1 <file2.wav> &
+ ossplay -d/dev/oss/oss_sblive0/pcm2 <file3.wav> &
+
+You should hear all three wav files playing simultaneously.
+
+NOTE: Some apps may desire the old /dev/dspN names. e.g. /dev/dsp0 - /dev/dsp7.
+
+NOTE: You can increase the number of output devices from the standard 8 devices
+to 32 device. For this, run soundconf, select Set configuration options and
+look for the entry "sblive_device", now type any number between 1 and 32
+for the number of channels you wish. You can also do this manually by editing
+oss_sblive.conf and inserting sblive_devices=XX entry,
+ e.g.: sblive_devices=27
+
+ CDROM CONNNECTIONS
+There are two alternative ways to connect audio signal from a CD-ROM drive tor
+the SB Live soundcard. You can use a (three wire) analog cable or a (2 wire)
+digital cable. OSS now supports both of these choices. Note that there are
+separate mixer settings for both of these connections.
+
+The analog CD-ROM wire is connected to the AC97 code chip and this method
+works in most cases. To route the analog CD -input to the (front) speakers
+you need to raise the volume of the 'cd' control in mixer. However if you
+like to hear the analog CD input both from the front and rears speakers you
+need to do this in slightly different way (please read the description of
+the mixer above).
+
+The digital connection works only with CD-ROM drives that has support for it.
+Note that some CD-ROM drives having this digital output connector use a
+different signal level than the one required by SB Live. This means that the
+digital connection doesn't work with all CD-ROM drives (no sound). If you
+have problems with the digital connection you should use the analog one.
+When using the the digital CD input you may need to adjust the 'digcd'
+volumes using ossxmix (or ossmix).
+
+It should be noted that SB Live works internally at 48 kHz. This means that
+all S/PDIF input signals are automatically sample rate converted to 48 kHz.
+If you record from a 44.1 kHz (CD-ROM) and save the result to a 44.1 kHz
+file the signal will be sample rate converted twice. First from the 44.1 kHz
+input to internal 48 kHz and then back to 44.1 kHz. While the sample rate
+converter of SB Live is very precise this will cause some change. This should
+not be any problem when doing audio recordings but it may cause unwanted
+results when transferring digital data (such as AC3/DTS) using the S/PDIF
+the interface.
+
+CONFIGURATION OPTIONS
+o sblive_digital_din=<0|1> - This option is to enable/disable the "digital DIN"
+ output of SB Live. By default the digital DIN interface is disabled which
+ enables the center/LFE analog output (uses the same combo jack). By
+ setting the sblive_digital_din option to 0 you can enable the analog
+ Center/LFE output feature. When digital DIN is disabled you can still
+ get S/PDIF (or AC3) output from the digital (optical/coax) outputs of the
+ optional livedrive unit. Default: 0=analog output.
+
+o audigy_digital_din=<0|1> - same as "sblive_digital_din" option except for
+ the Audigy soundcards. Default: 1=digital output.
+
+o sblive_devices=<1..32> - Number of audio devices to be configured.
+
+
+LIMITATION
+o SB Live! devices will not work in Sparc systems due to PCI addressing
+ limitations. Only Audigy/Audigy2 models work under Sparc.
+o EMU Wavetable MIDI synthesizer is not supported
+o AC3 passthrough only supported on Audigy/Audigy but not on SB Live! devices.
+
+FILES
+CONFIGFILEPATH/oss_sblive.conf Device configuration file
+
+AUTHOR
+ 4Front Technologies
+
diff --git a/kernel/drv/oss_sblive/sblive.h b/kernel/drv/oss_sblive/sblive.h
new file mode 100644
index 0000000..a6a2ca7
--- /dev/null
+++ b/kernel/drv/oss_sblive/sblive.h
@@ -0,0 +1,535 @@
+/*
+ * Purpose: Global definitions for the SB Live/Audigy driver
+ */
+/*
+ *
+ * This file is part of Open Sound System.
+ *
+ * Copyright (C) 4Front Technologies 1996-2008.
+ *
+ * This this source file is released under GPL v2 license (no other versions).
+ * See the COPYING file included in the main directory of this source
+ * distribution for the license terms and conditions.
+ *
+ */
+
+#ifndef USERLAND
+#include "uart401.h"
+#endif
+
+#define EMU10K1_MAGIC 0xe10001
+#define EMU10K2_MAGIC 0xe10002
+
+/* Audio */
+
+#if defined(OSR5) || defined(__bsdi__)
+#define MAX_ADEV 2
+#else
+#define MAX_ADEV 32 /* How many devices */
+#endif
+
+#define DMABUF_SIZE (64*1024) /* Maximum DMA buffer size supported */
+#define AUDIO_MAXVOICE (2*MAX_ADEV)
+#define AUDIO_MEMSIZE (MAX_ADEV*DMABUF_SIZE+4096) /* Audio buffer + silent page */
+#define SYNTH_MEMBASE AUDIO_MEMSIZE
+
+/* Synth */
+#define MAX_PATCH 256
+#define MAX_SAMPLE 512
+#define MAX_VOICE 64
+
+#define SYNTH_FIRSTVOICE AUDIO_MAXVOICE
+#define SYNTH_LASTVOICE (MAX_VOICE-1)
+
+/* Synth memory allocation */
+#define SBLIVE_MEMBLOCK_SIZE (128*1024) /* Default synth mem alloc chunk size */
+#define MIN_BLOCK_SIZE (8*1024)
+#define SBLIVE_MAX_MEMBLOCKS 1024 /* Max number of mem chunks to allocate */
+
+/* Hardware config register */
+
+#define HCFG_CODECFORMAT_MASK 0x00070000 /* CODEC format */
+#define HCFG_CODECFORMAT_AC97 0x00000000 /* AC97 CODEC format -- Primary Output */
+#define HCFG_CODECFORMAT_I2S 0x00010000 /* I2S CODEC format -- Secondary (Rear) Output */
+#define HCFG_GPINPUT0 0x00004000 /* External pin112 */
+#define HCFG_GPINPUT1 0x00002000 /* External pin110 */
+#define HCFG_GPOUTPUT_MASK 0x00001c00 /* External pins which may be controlled */
+#define HCFG_GPOUT0 0x00001000 /* set to enable digital out on 5.1 cards */
+#define HCFG_GPOUT1 0x00000800 /* IR */
+#define HCFG_GPOUT2 0x00000400 /* IR */
+#define HCFG_JOYENABLE 0x00000200 /* Internal joystick enable */
+#define HCFG_PHASETRACKENABLE 0x00000100 /* Phase tracking enable */
+ /* 1 = Force all 3 async digital inputs to use */
+ /* the same async sample rate tracker (ZVIDEO) */
+#define HCFG_AC3ENABLE_MASK 0x0x0000e0 /* AC3 async input control - Not implemented */
+#define HCFG_AC3ENABLE_ZVIDEO 0x00000080 /* Channels 0 and 1 replace ZVIDEO */
+#define HCFG_AC3ENABLE_CDSPDIF 0x00000040 /* Channels 0 and 1 replace CDSPDIF */
+#define HCFG_AC3ENABLE_GPSPDIF 0x00000020 /* Channels 0 and 1 replace GPSPDIF */
+#define HCFG_AUTOMUTE 0x00000010 /* When set, the async sample rate convertors */
+ /* will automatically mute their output when */
+ /* they are not rate-locked to the external */
+ /* async audio source */
+#define HCFG_LOCKSOUNDCACHE 0x00000008 /* 1 = Cancel bustmaster accesses to soundcache */
+ /* NOTE: This should generally never be used. */
+#define HCFG_LOCKTANKCACHE_MASK 0x00000004 /* 1 = Cancel bustmaster accesses to tankcache */
+ /* NOTE: This should generally never be used. */
+#define HCFG_LOCKTANKCACHE 0x01020014
+#define HCFG_MUTEBUTTONENABLE 0x00000002 /* 1 = Master mute button sets AUDIOENABLE = 0. */
+ /* NOTE: This is a 'cheap' way to implement a */
+ /* master mute function on the mute button, and */
+ /* in general should not be used unless a more */
+ /* sophisticated master mute function has not */
+ /* been written. */
+#define HCFG_AUDIOENABLE 0x00000001 /* 0 = CODECs transmit zero-valued samples */
+ /* Should be set to 1 when the EMU10K1 is */
+ /* completely initialized. */
+#define A_HCFG_VMUTE 0x00004000
+#define A_HCFG_AUTOMUTE 0x00008000
+#define A_HCFG_XM 0x00040000 /* Xtended address mode */
+
+/*
+ * GPIO bit definitions (global register 0x18) for Audigy.
+ */
+
+#define A_IOCFG_GPOUT0 0x0044 /* analog/digital? */
+#define A_IOCFG_GPOUT1 0x0002 /* IR */
+#define A_IOCFG_GPOUT2 0x0001 /* IR */
+
+/* Status bits (read only) */
+#define GPIO_VERSAPLUGGED 0x2000 /* Center/LFE/digital */
+#define GPIO_FRONTPLUGGED 0x4000
+#define GPIO_REARPLUGGED 0x8000
+#define GPIO_HEADPHPLUGGED 0x0100
+#define GPIO_ANALOG_MUTE 0x0040
+#define GPIO_DIGITAL_ENABLE 0x0004 /* Center/lfe (0) or digital (1) switch */
+
+#define FILL_PAGE_MAP_ENTRY(e, v) devc->page_map[e] = LSWAP (((v) << devc->emu_page_shift) | (e));
+/*
+ * Audio block registers
+ */
+
+#define CPF 0x000 /* DW:cnl Current pitch and fraction */
+#define CPF_CURRENTPITCH_MASK 0xffff0000 /* Current pitch (linear, 0x4000 == unity pitch shift) */
+#define CPF_CURRENTPITCH 0x10100000
+#define CPF_STEREO_MASK 0x00008000 /* 1 = Even channel interleave, odd channel locked */
+#define CPF_STOP_MASK 0x00004000 /* 1 = Current pitch forced to 0 */
+#define CPF_FRACADDRESS_MASK 0x00003fff /* Linear fractional address of the current channel */
+
+
+#define PTAB 0x001 /* DW:cnl Pitch target and sends A and B */
+#define PTRX_PITCHTARGET_MASK 0xffff0000 /* Pitch target of specified channel */
+#define PTRX_PITCHTARGET 0x10100001
+#define PTRX_FXSENDAMOUNT_A_MASK 0x0000ff00 /* Linear level of channel output sent to FX send bus A */
+#define PTRX_FXSENDAMOUNT_A 0x08080001
+#define PTRX_FXSENDAMOUNT_B_MASK 0x000000ff /* Linear level of channel output sent to FX send bus B */
+#define PTRX_FXSENDAMOUNT_B 0x08000001
+
+
+#define CVCF 0x002 /* DW:cnl Curr vol and curr filter cutoff */
+#define VTFT 0x003 /* DW:cnl Volume tgt and filter cutoff tgt */
+#define Z2 0x004 /* DW:cnl Filter delay memory 2 */
+#define Z1 0x005 /* DW:cnl Filter delay memory 1 */
+#define SCSA 0x006 /* DW:cnl Send C and Start addr */
+#define SDL 0x007 /* DW:cnl Send D and Loop addr */
+#define QKBCA 0x008 /* DW:cnl Filter Q, ROM, etc */
+#undef CCR
+#define CCR 0x009
+#define CCR_CACHEINVALIDSIZE 0x07190009
+#define CCR_CACHEINVALIDSIZE_MASK 0xfe000000 /* Number of invalid samples cache for this channel */
+#define CCR_CACHELOOPFLAG 0x01000000 /* 1 = Cache has a loop service pending */
+#define CCR_INTERLEAVEDSAMPLES 0x00800000 /* 1 = A cache service will fetch interleaved samples */
+#define CCR_WORDSIZEDSAMPLES 0x00400000 /* 1 = A cache service will fetch word sized samples */
+#define CCR_READADDRESS 0x06100009
+#define CCR_READADDRESS_MASK 0x003f0000 /* Location of cache just beyond current cache service */
+#define CCR_LOOPINVALSIZE 0x0000fe00 /* Number of invalid samples in cache prior to loop */
+ /* NOTE: This is valid only if CACHELOOPFLAG is set */
+#define CCR_LOOPFLAG 0x00000100 /* Set for a single sample period when a loop occurs */
+#define CCR_CACHELOOPADDRHI 0x000000ff /* DSL_LOOPSTARTADDR's hi byte if CACHELOOPFLAG is set */
+
+#define CLP 0x00a
+#define SRHE 0x07c
+#define STHE 0x07d
+#define SRDA 0x07e
+#define STDA 0x07f
+#define L_FXRT 0x00b
+#define FXRT ((devc->feature_mask&SB_AUDIGY)? 0x7d:0x00b) /* W:cnl */
+#define MAPA 0x00c
+#define MAPB 0x00d
+#define VEV 0x010 /* W:cnl */
+#define VEHA 0x011 /* W:cnl */
+#define VEDS 0x012 /* W:cnl */
+#define MLV 0x013 /* W:cnl */
+#define MEV 0x014 /* W:cnl */
+#define MEHA 0x015 /* W:cnl */
+#define MEDS 0x016 /* W:cnl */
+#define VLV 0x017 /* W:cnl */
+#define IP 0x018 /* W:cnl */
+#define IFA 0x019 /* W:cnl */
+#define PEFE 0x01a /* W:cnl */
+#define PEFE_PITCHAMOUNT_MASK 0x0000ff00 /* Pitch envlope amount */
+#define PEFE_PITCHAMOUNT 0x0808001a
+#define PEFE_FILTERAMOUNT_MASK 0x000000ff /* Filter envlope amount */
+#define PEFE_FILTERAMOUNT 0x0800001a
+
+#define VFM 0x01b /* W:cnl */
+#define TMFQ 0x01c /* W:cnl */
+#define VVFQ 0x01d /* W:cnl */
+#define TMPE 0x01e /* W:cnl */
+#define CD0 0x020 /* DW:cnl (16 registers) */
+#define PTBA 0x040 /* DW:nocnl */
+#define TCBA 0x041 /* DW:nocnl */
+#define ADCSR 0x042 /* B:nocnl */
+#define FXWC 0x043 /* DW:nocnl */
+#define TCBS 0x044 /* B:nocnl */
+#define MBA 0x045 /* DW:nocnl */
+#define ADCBA 0x046 /* DW:nocnl */
+#define FXBA 0x047 /* DW:nocnl */
+
+#define MBS 0x049 /* B:nocnl */
+#define ADCBS 0x04a /* B:nocnl */
+#define FXBS 0x04b /* B:nocnl */
+#define CSBA 0x4c
+#define CSDC 0x4d
+#define CSFE 0x4e
+#define CSHG 0x4f
+#define CDCS 0x050 /* DW:nocnl */
+#define GPSCS 0x051 /* DW:nocnl */
+#define DBG 0x052 /* DW:nocnl */
+#define AUDIGY_DBG 0x053 /* DW:nocnl */
+#define SCS0 0x054 /* DW:nocnl */
+#define SCS1 0x055 /* DW:nocnl */
+#define SCS2 0x056 /* DW:nocnl */
+#define CLIEL 0x058 /* DW:nocnl */
+#define CLIEH 0x059 /* DW:nocnl */
+#define CLIPL 0x05a /* DW:nocnl */
+#define CLIPH 0x05b /* DW:nocnl */
+#define SOLL 0x05c /* DW:nocnl */
+#define SOLH 0x05d /* DW:nocnl */
+#define SOC 0x05e /* DW:nocnl */
+#define AC97SLOT 0x05f
+#define AC97SLOT_REAR_RIGHT 0x01
+#define AC97SLOT_REAR_LEFT 0x02
+#define AC97SLOT_CENTER 0x10
+#define AC97SLOT_LFE 0x20
+#define CDSRCS 0x060 /* DW:nocnl */
+#define GPSRCS 0x061 /* DW:nocnl */
+#define ZVSRCS 0x062 /* DW:nocnl */
+#define ADCIDX 0x063 /* W:nocnl */
+#define MIDX 0x064 /* W:nocnl */
+#define FXIDX 0x065 /* W:nocnl */
+
+/* Half loop interrupt registers (audigy only) */
+#define HLIEL 0x066 /* DW:nocnl */
+#define HLIEH 0x067 /* DW:nocnl */
+#define HLIPL 0x068 /* DW:nocnl */
+#define HLIPH 0x069 /* DW:nocnl */
+#define GPR0 ((devc->feature_mask&SB_LIVE)? 0x100:0x400) /* DW:nocnl */
+#define TMA0 0x300 /* Tank memory */
+#define UC0 ((devc->feature_mask&SB_LIVE) ? 0x400:0x600) /* DSM microcode memory */
+
+/* Interrupt enable register */
+#define IE 0x0c
+# define IE_RXA 0x00000001
+# define IE_IT 0x00000004
+# define IE_AB 0x00000040
+
+/* EMU10K2 MIDI UART */
+#define MUADAT 0x070
+#define MUACMD 0x071
+#define MUASTAT MUACMD
+
+/* EMU10K2 S/PDIF recording buffer */
+#define SPRI 0x6a
+#define SPRA 0x6b
+#define SPRC 0x6c
+
+#define EHC 0x76 /* Audigy 2 */
+
+#define SRHE 0x07c
+#define STHE 0x07d
+#define SRDA 0x07e
+
+#define HCFG_GPOUT0 0x00001000 /* set to enable digital out on 5.1 cards */
+#define HCFG_GPOUT1 0x00000800 /* IR on SBLive */
+#define HCFG_GPOUT2 0x00000400 /* IR on SBLive */
+#define HCFG_JOYENABLE 0x00000200 /* Internal joystick enable */
+
+#define A_IOCFG_GPOUT0 0x0044 /* analog/digital? */
+#define A_IOCFG_GPOUT1 0x0002 /* IR on Audigy */
+#define A_IOCFG_GPOUT2 0x0001 /* IR on Audigy */
+
+#define ROM0 0x00000000 /* interpolation ROM 0 */
+#define ROM1 0x02000000 /* interpolation ROM 1 */
+#define ROM2 0x04000000 /* interpolation ROM 2 */
+#define ROM3 0x06000000 /* interpolation ROM 3 */
+#define ROM4 0x08000000 /* interpolation ROM 4 */
+#define ROM5 0x0A000000 /* interpolation ROM 5 */
+#define ROM6 0x0C000000 /* interpolation ROM 6 */
+#define ROM7 0x0E000000 /* interpolation ROM 7 */
+#define BYTESIZE 0x01000000 /* byte sound memory */
+
+#define MAX_GPR 256
+#define MAX_GPR_PARMS 60
+#define MAX_CONST_PARMS 128
+#define GPR_NAME_SIZE 32
+typedef struct
+{
+ char name[GPR_NAME_SIZE];
+ unsigned int num;
+ int type;
+ int def;
+}
+gpr_t;
+
+typedef struct
+{
+ unsigned int gpr;
+ int value;
+}
+const_t;
+
+typedef struct
+{
+ unsigned int ngpr;
+
+ gpr_t gpr[MAX_GPR_PARMS];
+}
+gpr_info;
+
+typedef struct
+{
+ unsigned int nconst;
+
+ const_t consts[MAX_CONST_PARMS];
+}
+const_info;
+
+typedef struct sblive_portc
+{
+ int audiodev;
+ int mode;
+ int input_type;
+#define ITYPE_ANALOG 0
+#define ITYPE_SPDIF 1
+ int uses_spdif; /* This device uses the S/PDIF passthrough channel */
+ int audio_active;
+ volatile int trigger_bits;
+ int format, speed, channels;
+ int speedsel;
+
+ int voice_chn;
+ int port_number;
+ int out_sz; /* Output sample size */
+ int in_szbits;
+ unsigned long rec_starttime;
+
+ /* 3D soft mixer */
+ int playvol, playangle, playdist;
+ int vu_left, vu_right;
+ int speaker_mode;
+#define SMODE_FRONT 0 /* Front speakers only */
+#define SMODE_SURR 1 /* Rear speakers only */
+#define SMODE_FRONTREAR 2 /* Front and rear speakers */
+#define SMODE_BIND 3 /* Use channel bindings */
+#define SMODE_3D 4 /* 3D positioning */
+ int binding;
+ unsigned char *routing;
+ int resetvol;
+ int memptr;
+}
+sblive_portc;
+
+typedef struct
+{
+ int active;
+ int program;
+ int sample;
+ int note_num, note_freq, orig_freq;
+ int velosity;
+ struct patch_info *patch;
+ int sample_ptr;
+ int fixed_pitch;
+ int main_vol, expression_vol, panning, frontrear, bender, bender_range;
+}
+sblive_voice_t;
+
+typedef struct sblive_devc
+{
+ oss_native_word base;
+ int irq;
+ oss_mutex_t mutex;
+ oss_mutex_t low_mutex;
+ oss_device_t *osdev;
+ char *card_name;
+
+ /*
+ * Device feature mask tells which kind of features are suported by the
+ * hardware. Audigy2/2val have multiple bits set while Live! has just
+ * the SB_LIVE bits. So Features of Audigy will be reported by Audigy2/val
+ * too.
+ */
+ int feature_mask;
+#define SB_LIVE 1
+#define SB_AUDIGY 2
+#define SB_AUDIGY2 4
+#define SB_AUDIGY2VAL 8
+ int mpu_attached;
+
+ int *page_map; /* Table for up to 8k pointers to pages of 4k */
+ unsigned char **vpage_map; /* Virtual address map */
+ oss_dma_handle_t page_map_dma_handle;
+ int emu_page_shift;
+ int max_mem, max_pages, nr_pages;
+ unsigned int subvendor;
+/*
+ * Mixer
+ */
+ int mixer_dev;
+ ac97_devc ac97devc;
+ int input_routing_pc;
+ int input_sel; /* 0=AC97 */
+ gpr_info *gpr;
+ int mixer_group;
+ int gpr_values[MAX_GPR];
+ int extinfo_loaded;
+ int passthrough_gpr;
+ int vu_tmp, vu_tmp2;
+
+/*
+ * Audio
+ */
+
+ int n_audiodevs;
+ int min_audiodevs;
+ int audio_memptr;
+ int *silent_page;
+ oss_dma_handle_t silent_page_dma_handle;
+ oss_native_word silent_page_phys;
+
+ sblive_portc portc[MAX_ADEV + 2];
+ int recording_dev;
+ int spdif_busy;
+
+ int autoreset;
+ int speaker_mode;
+
+/*
+ * Wave table RAM alloc structures
+ */
+ int memblock_size; /* Size of blocks to be allocated */
+ int num_memblocks;
+ void *memblocks[SBLIVE_MAX_MEMBLOCKS];
+ int memblock_sizes[SBLIVE_MAX_MEMBLOCKS];
+ int total_memblock_size;
+
+/*
+ * Audigy UART
+ */
+ oss_midi_inputbyte_t midi_input_intr;
+ int midi_opened, midi_disabled;
+ volatile unsigned char input_byte;
+ int midi_dev;
+ int sysex_p;
+ unsigned char sysex_buf[20];
+ uart401_devc uart401devc;
+
+/*
+ * Wave table
+ */
+
+ int synthdev;
+ int synth_open;
+ int synth_membase, synth_memlimit, synth_memptr, synth_memtop;
+ unsigned int voice_busy[2];
+ int free_sample;
+ struct patch_info *samples;
+ long sample_ptrs[MAX_SAMPLE + 1];
+ int programs[MAX_PATCH];
+
+ sblive_voice_t voices[MAX_VOICE];
+
+}
+sblive_devc;
+
+/*
+ * Private ioctl() interface
+ */
+
+typedef struct
+{
+ unsigned int reg;
+ unsigned int chn;
+ unsigned int value;
+}
+sblive_reg;
+
+typedef struct
+{
+ int magic;
+ int feature_mask;
+ int size; /* # of instructions */
+ unsigned int code[1024];
+ gpr_info parms;
+ const_info consts;
+}
+emu10k1_file;
+
+typedef unsigned int sblive_code[512];
+
+#define SBLIVE_READREG __SIOWR('L', 1, sblive_reg)
+#define SBLIVE_WRITEREG __SIOW ('L', 2, sblive_reg)
+#define SBLIVE_WRITECODE1 __SIOW ('L', 3, sblive_code)
+#define SBLIVE_WRITECODE2 __SIOW ('L', 4, sblive_code)
+#define SBLIVE_WRITEPARMS __SIOW ('L', 5, gpr_info)
+#define SBLIVE_WRITECONST __SIOW ('L', 6, const_info)
+#define SBLIVE_GETCHIPTYPE __SIOR ('L', 7, int)
+#define SBLIVE_WRITEGPIO __SIOW ('L', 8, int)
+#define SBLIVE_READGPIO __SIOR ('L', 9, int)
+
+#define EMU_MIXT_EQ1 0x10000000
+#define EMU_MIXT_EQ2 0x10000001
+#define EMU_MIXT_EQ3 0x10000002
+#define EMU_MIXT_EQ4 0x10000003
+
+/*
+ * Overridden mixer controls (GPR registers)
+ * Note that these definitions heve to be kept in sync with
+ * init_compiler() routine of sndkit/sblive/asm10k1.c and the
+ * mixer_override() routine of sblive.c.
+ */
+#define GPR_DUMMY 0 /* 2 locations reserved for NULL control */
+#define GPR_PCM 2 /* 2 locations required for stereo slider */
+#define GPR_VOLUME 4 /* 2 locations required for stereo slider */
+#define NEXT_FREE_GPR 6 /* Needs to be 32 or below so that SPECIAL_GPRS works */
+#define SPECIAL_GPRS ((1<<GPR_PCM) | (1<<GPR_VOLUME))
+
+#ifdef OSS_BIG_ENDIAN
+static __inline__ unsigned int
+swap_int (unsigned int x)
+{
+ return ((x & 0x000000ff) << 24) |
+ ((x & 0x0000ff00) << 8) |
+ ((x & 0x00ff0000) >> 8) | ((x & 0xff000000) >> 24);
+}
+
+static __inline__ unsigned short
+swap_short (unsigned short x)
+{
+ return ((x | 0xff) << 8) | ((x >> 8) & 0xff);
+}
+
+#define LSWAP(x) swap_int(x)
+#define SSWAP(x) swap_short(x)
+#else
+#define LSWAP(x) x
+#define SSWAP(x) x
+#endif
+extern void sblive_set_loop_stop (sblive_devc * devc, int voice, int s);
+extern void sblive_set_voice_intr (sblive_devc * devc, int voice, int s);
+extern void sblive_write_reg (sblive_devc * devc, int reg, int chn,
+ unsigned int value);
+extern unsigned int sblive_read_reg (sblive_devc * devc, int reg, int chn);
+extern void sblive_init_voice (sblive_devc * devc, int chn);
+extern void sblive_synth_interrupt (sblive_devc * devc);
+extern int sblive_get_voice_loopintr (sblive_devc * devc, int voice);
+extern int sblive_get_voice_halfloopintr (sblive_devc * devc, int voice);