diff options
author | Karl Kurbjun <kkurbjun@gmail.com> | 2009-02-26 21:23:10 +0000 |
---|---|---|
committer | Karl Kurbjun <kkurbjun@gmail.com> | 2009-02-26 21:23:10 +0000 |
commit | 1e3f52992110d75f1df8c2256d7d6759e9f997fd (patch) | |
tree | 40b2f77ffea1ef6c2884f5515c7a30d40b15639a /firmware/target/arm/tms320dm320/dsp | |
parent | 38436038a9e50e8314967672fb5e7b9a5009a4be (diff) | |
download | rockbox-1e3f52992110d75f1df8c2256d7d6759e9f997fd.tar.gz rockbox-1e3f52992110d75f1df8c2256d7d6759e9f997fd.zip |
Get the M:Robe 500 main build booting again, fix a bug and commit the rest of Cat's work to get sound working. The code is messy right now, but it plays a file (test.raw) in a normal build when you go into the debug ports screen. Take 2.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20116 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/tms320dm320/dsp')
-rw-r--r-- | firmware/target/arm/tms320dm320/dsp/Makefile | 15 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/dsp/dsp-image.h | 102 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/dsp/ipc.h | 2 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/dsp/main.c | 34 | ||||
-rw-r--r-- | firmware/target/arm/tms320dm320/dsp/xml2h.py | 193 |
5 files changed, 308 insertions, 38 deletions
diff --git a/firmware/target/arm/tms320dm320/dsp/Makefile b/firmware/target/arm/tms320dm320/dsp/Makefile index 8f016378fd..8cc1bd98c0 100644 --- a/firmware/target/arm/tms320dm320/dsp/Makefile +++ b/firmware/target/arm/tms320dm320/dsp/Makefile | |||
@@ -10,10 +10,12 @@ | |||
10 | # http://daniel.haxx.se/blog/2007/11/18/free-to-use-compiler-from-ti/ | 10 | # http://daniel.haxx.se/blog/2007/11/18/free-to-use-compiler-from-ti/ |
11 | CC = cl500 | 11 | CC = cl500 |
12 | LD = lnk500 | 12 | LD = lnk500 |
13 | CFLAGS = $(BUILDDATE) | 13 | CFLAGS = |
14 | # There's more in linker.cmd. | 14 | # There's more in linker.cmd. |
15 | LDFLAGS = -w | 15 | LDFLAGS = -w |
16 | 16 | ||
17 | OBJDIR=./build | ||
18 | |||
17 | OBJS = arm.obj main.obj vectors.obj dma.obj | 19 | OBJS = arm.obj main.obj vectors.obj dma.obj |
18 | 20 | ||
19 | ifeq ($(findstring -DCREATIVE_ZV,$(TARGET)), -DCREATIVE_ZV) | 21 | ifeq ($(findstring -DCREATIVE_ZV,$(TARGET)), -DCREATIVE_ZV) |
@@ -24,14 +26,15 @@ endif | |||
24 | 26 | ||
25 | OBJS := $(patsubst %.obj, $(OBJDIR)/%.obj, $(OBJS)) | 27 | OBJS := $(patsubst %.obj, $(OBJDIR)/%.obj, $(OBJS)) |
26 | 28 | ||
27 | all: $(BUILDDIR)/dsp-image.h | 29 | all: dsp-image.h |
28 | 30 | ||
29 | clean: | 31 | clean: |
30 | $(call PRINTS,cleaning DSP firmware)rm -f $(OBJS) $(OBJDIR)/dsp-image.out $(OBJDIR)/dsp-image.xml | 32 | $(call PRINTS,cleaning DSP firmware)rm -f $(OBJS) $(OBJDIR)/dsp-image.out $(OBJDIR)/dsp-image.xml |
33 | rmdir $(OBJDIR) | ||
31 | 34 | ||
32 | $(BUILDDIR)/dsp-image.h: $(OBJS) linker.cmd | 35 | dsp-image.h: $(OBJS) linker.cmd |
33 | $(call PRINTS,LNK500 dsp-image.out)lnk500 $(LDFLAGS) -o $(OBJDIR)/dsp-image.out $^ | 36 | $(call PRINTS,LNK500 dsp-image.out)lnk500 $(LDFLAGS) -o $(OBJDIR)/dsp-image.out $^ |
34 | $(call PRINTS,OFD500+XML2H $(@F))ofd500 -x -o /dev/stdout $(OBJDIR)/dsp-image.out | python $(TOOLSDIR)/xml2h.py $(OBJDIR)/dsp-image.xml > $@ | 37 | $(call PRINTS,OFD500+XML2H $(@F))ofd500 -x -o /dev/stdout $(OBJDIR)/dsp-image.out | python xml2h.py $(OBJDIR)/dsp-image.xml > $@ |
35 | 38 | ||
36 | $(OBJDIR)/%.obj: %.asm | 39 | $(OBJDIR)/%.obj: %.asm |
37 | $(SILENT)mkdir -p $(dir $@) | 40 | $(SILENT)mkdir -p $(dir $@) |
@@ -51,5 +54,3 @@ $(OBJDIR)/tsc2100.obj: tsc2100.c audio.h registers.h | |||
51 | 54 | ||
52 | $(OBJDIR)/dma.obj: dma.c dma.h registers.h ipc.h | 55 | $(OBJDIR)/dma.obj: dma.c dma.h registers.h ipc.h |
53 | 56 | ||
54 | # For PRINTS. | ||
55 | include $(TOOLSDIR)/make.inc | ||
diff --git a/firmware/target/arm/tms320dm320/dsp/dsp-image.h b/firmware/target/arm/tms320dm320/dsp/dsp-image.h new file mode 100644 index 0000000000..1cbe1e5c3e --- /dev/null +++ b/firmware/target/arm/tms320dm320/dsp/dsp-image.h | |||
@@ -0,0 +1,102 @@ | |||
1 | #ifndef DSP_IMAGE | ||
2 | #define DSP_IMAGE | ||
3 | /* | ||
4 | * Automatically generated by xml2h.py from ./build/dsp-image.out. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or | ||
7 | * modify it under the terms of the GNU General Public License as | ||
8 | * published by the Free Software Foundation; either version 2 of | ||
9 | * the License, or (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||
19 | * MA 02111-1307 USA | ||
20 | * | ||
21 | */ | ||
22 | static const unsigned short _section_text[] = { | ||
23 | 0xe808, 0x75f8, 0x0008, 0x0280, 0xfc00, 0x4a11, 0x4a07, 0x4a1d, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d, 0xfffc, 0x7711, 0x0001, 0x7681, 0x0001, 0x76f8, 0x27db, 0x0001, 0x8a1d, 0x8a07, 0x8a11, 0xf4eb, 0xeefb, 0x4818, 0xf000, 0x0006, 0x76f8, 0x278a, 0x0002, 0x8004, 0x7600, 0x0051, 0x1006, 0x8001, 0x1004, 0x8002, 0xf274, 0x0293, 0xf020, 0x278b, 0x76f8, 0x27db, 0x0000, 0xf074, 0x0080, 0x10f8, 0x27db, 0xf844, 0x00bd, 0xf4e1, 0xf495, 0x10f8, 0x27db, 0xf845, 0x00b7, 0xee05, 0x76f8, 0x27db, 0x0002, 0xfc00, 0x4a11, 0x7711, 0x0026, 0x7712, 0x0001, 0x7681, 0x0010, 0x7713, 0x0001, 0x7711, 0x0000, 0xeefe, 0x7681, 0xffff, 0xe501, 0xf495, 0xf6bb, 0xf074, 0x01c1, 0xf074, 0x0192, 0xf074, 0x01ec, 0x7600, 0x2ba3, 0xf074, 0x009c, 0xf4e1, 0xf495, 0xf073, 0x00dd, 0xe808, 0x75f8, 0x0008, 0x0280, 0xfc00, 0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a10, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17, 0x4a17, 0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b, 0x4a1c, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d, 0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001, 0x4a08, 0x7681, 0x0040, 0x7711, 0x0055, 0x7681, 0x0000, 0x7711, 0x0057, 0x6f81, 0x0c41, 0xeefb, 0xf030, 0x4000, 0x8002, 0xf020, 0x4000, 0x1c02, 0x76f8, 0x278a, 0x0003, 0x8003, 0x7102, 0x278b, 0xf074, 0x00e1, 0x12f8, 0x27dc, 0xf1ef, 0xf6b8, 0xf3e1, 0x12f8, 0x27dd, 0xf2a0, 0x0003, 0x4e00, 0xf020, 0xffff, 0x5700, 0xf280, 0x75f8, 0x0008, 0x8000, 0x5600, 0xf0f0, 0x75f8, 0x0008, 0x8001, 0xf020, 0x8000, 0x6f03, 0x0c1f, 0x75f8, 0x0008, 0x8002, 0xe800, 0x75f8, 0x0008, 0x8003, 0xf020, 0x4000, 0x75f8, 0x0008, 0x8004, 0xe800, 0x75f8, 0x0008, 0x8005, 0x74f8, 0x278c, 0x8006, 0x74f8, 0x278d, 0x8001, 0x74f8, 0x278e, 0x8000, 0x74f8, 0x278f, 0x8003, 0xee05, 0xe801, 0x74f8, 0x2790, 0x8002, 0x8a18, 0x75f8, 0x0008, 0x8006, 0x8a1c, 0x8a1b, 0x8a1d, 0x8a1a, 0x8a07, 0x8a06, 0x8a0e, 0x8a19, 0x8a17, 0x8a17, 0x8a16, 0x8a15, 0x8a14, 0x8a13, 0x8a12, 0x8a11, 0x8a10, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0a, 0x8a09, 0x8a08, 0xf4eb, 0x4a11, 0x4a07, 0x4a1d, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d, 0xfffc, 0x7711, 0x0001, 0x7681, 0x0800, 0x8a1d, 0x8a07, 0x8a11, 0xf4eb, 0x4a11, 0x7711, 0x0055, 0x7681, 0x0003, 0x7711, 0x0057, 0x7681, 0x2800, 0x7711, 0x0055, 0x7681, 0x0004, 0x7711, 0x0057, 0x7681, 0x7141, 0x7711, 0x0055, 0x7681, 0x0000, 0x7711, 0x0057, 0x7681, 0x8000, 0x7711, 0x0055, 0x7681, 0x0001, 0x7711, 0x0057, 0x7681, 0x0022, 0x7711, 0x0055, 0x7681, 0x0002, 0x7711, 0x0057, 0x7681, 0x4000, 0x7711, 0x0054, 0x7681, 0x0081, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0000, 0x7711, 0x0039, 0x7681, 0x0000, 0x7711, 0x0038, 0x7681, 0x0001, 0x7711, 0x0039, 0x7681, 0x0030, 0x7711, 0x0038, 0x7681, 0x000e, 0x7711, 0x0039, 0x7681, 0x0002, 0x7711, 0x0038, 0x7681, 0x0004, 0x7711, 0x0039, 0x7681, 0x00a0, 0x7711, 0x0038, 0x7681, 0x0005, 0x7711, 0x0039, 0x7681, 0x0000, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0001, 0x7711, 0x0039, 0x6981, 0x0001, 0x8a11, 0xfc00, 0xf7be, 0xf6b9, 0xf4a0, 0xf6b7, 0xf6b5, 0xf6b6, 0xf7b8, 0x7718, 0x178a, 0x6bf8, 0x0018, 0x0fff, 0x68f8, 0x0018, 0xfffe, 0xf020, 0x2cb1, 0xf100, 0x0001, 0xf84d, 0x0223, 0xf6b8, 0xf495, 0xf020, 0x2cb1, 0xf073, 0x021d, 0x7ef8, 0x0012, 0xf000, 0x0001, 0x47f8, 0x0011, 0x7e92, 0x00f8, 0x0011, 0xf000, 0x0001, 0x7ef8, 0x0011, 0xf000, 0x0001, 0x6c89, 0x0212, 0xf7b8, 0xeefc, 0xf020, 0xffff, 0xf100, 0x0001, 0xf84d, 0x023b, 0xf6b8, 0xf495, 0xf020, 0xffff, 0xf273, 0x0235, 0x4e02, 0xf495, 0xf5e3, 0x5602, 0x7e00, 0x1100, 0xfa4c, 0x0233, 0x6b03, 0x0001, 0xf6b8, 0xee04, 0xf074, 0x0e85, 0xf074, 0x0241, 0x4a11, 0x4a16, 0xeeff, 0x10f8, 0x2801, 0xf4e3, 0x7211, 0x27de, 0x10f8, 0x0011, 0xf845, 0x0259, 0x4811, 0xf000, 0x27df, 0x8816, 0xf495, 0xf495, 0x10ee, 0xffff, 0xf4e3, 0x6ce9, 0xffff, 0x0253, 0x10f8, 0x2800, 0xf845, 0x0260, 0x10f8, 0x2800, 0xf4e3, 0x10f8, 0x27ff, 0xf845, 0x0267, 0x10f8, 0x27ff, 0xf4e3, 0x10f8, 0x2802, 0xf4e3, 0xf074, 0x0290, 0xf073, 0x026c, 0x4a11, 0x8811, 0x10f8, 0x2801, 0xf4e3, 0xf7b8, 0x10f8, 0x27de, 0xf468, 0xf478, 0xf010, 0x0020, 0xf843, 0x0282, 0x10f8, 0x2802, 0xf4e3, 0xe801, 0xf073, 0x028e, 0x7212, 0x27de, 0x10f8, 0x2802, 0x6bf8, 0x27de, 0x0001, 0x70e2, 0x27df, 0x0011, 0xf4e3, 0xe800, 0x8a11, 0xfc00, 0xf495, 0xf073, 0x0291, 0x4a11, 0xeef8, 0xf495, 0x710b, 0x0012, 0x110c, 0x710a, 0x0011, 0x7004, 0x0012, 0x8005, 0x7006, 0x0011, 0x4818, 0x7607, 0x0000, 0xf000, 0x0005, 0x8100, 0x8001, 0x7602, 0x02ba, 0x4818, 0x7603, 0x02d1, 0xf274, 0x0316, 0xf000, 0x0004, 0x4911, 0xf84d, 0x02b7, 0x7105, 0x0011, 0x7681, 0x0000, 0xee08, 0x8a11, 0xfc00, 0x4a11, 0xf495, 0x7102, 0x0011, 0x71e1, 0x0001, 0x0010, 0x71e1, 0x0002, 0x0012, 0xf5aa, 0xf820, 0x02cc, 0x7181, 0x0012, 0x8082, 0x6b81, 0x0001, 0x6be1, 0x0002, 0x0001, 0x8a11, 0xfc00, 0x4a11, 0xf110, 0x0001, 0x4a16, 0x8812, 0x4a17, 0x8913, 0xeefe, 0x7716, 0xffff, 0x7106, 0x0011, 0x11eb, 0x0001, 0xfa4c, 0x02dd, 0xf495, 0x6d96, 0x11e1, 0x0001, 0x8910, 0xf495, 0x71e1, 0x0002, 0x0013, 0xf5ab, 0xf820, 0x0304, 0x4813, 0xf520, 0x8910, 0xf495, 0xf495, 0xf6ae, 0xf820, 0x02f9, 0xf273, 0x02fa, 0xf495, 0x8917, 0xe767, 0x7000, 0x0012, 0x7001, 0x0017, 0x1081, 0xf074, 0x142a, 0x4817, 0x0081, 0x8081, 0x4816, 0x00e1, 0x0002, 0xee02, 0x80e1, 0x0002, 0x8a17, 0x4816, 0x8a16, 0x8a11, 0xfc00, 0xfc00, 0x80f8, 0x2801, 0xfc00, 0x80f8, 0x2802, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xeef4, 0x8816, 0x1013, 0x8009, 0x1186, 0xf210, 0x0001, 0x8813, 0xf495, 0x7712, 0xffff, 0x7111, 0x0017, 0x7112, 0x0011, 0x10eb, 0x0001, 0xfa44, 0x0328, 0xf495, 0x6d92, 0x6ff8, 0x0012, 0x0e00, 0x800a, 0x4812, 0xfa45, 0x0410, 0x7604, 0x0000, 0x7605, 0x0000, 0x7606, 0x0000, 0x7607, 0xffff, 0xe925, 0x7608, 0x0000, 0x7186, 0x0012, 0x7182, 0x0012, 0x10f8, 0x0012, 0x08f8, 0x000b, 0xf845, 0x0362, 0x10f8, 0x0012, 0xf845, 0x0410, 0x1086, 0xf000, 0x0001, 0x4911, 0x8086, 0x8812, 0x7000, 0x0017, 0x10e2, 0xffff, 0xf5e3, 0x6b04, 0x0001, 0x7186, 0x0012, 0x7182, 0x0012, 0x6ce2, 0xffdb, 0x034a, 0x6b86, 0x0001, 0x4818, 0x7000, 0x0016, 0xf274, 0x0416, 0xf000, 0x0005, 0x4818, 0x7000, 0x0016, 0xf000, 0x0010, 0x8001, 0x4818, 0xf274, 0x0468, 0xf000, 0x0005, 0x7186, 0x0012, 0x1182, 0x7713, 0x004c, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x03a7, 0x7713, 0x0068, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x03a3, 0x7713, 0x006c, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf844, 0x03b0, 0x4812, 0xf000, 0x0001, 0x8812, 0x7086, 0x0012, 0x6082, 0x006c, 0xf830, 0x039f, 0xf273, 0x03af, 0x6905, 0x0040, 0xf273, 0x03a9, 0x6905, 0x0100, 0xf273, 0x03a9, 0x6905, 0x0020, 0x6905, 0x0080, 0x1086, 0xf000, 0x0001, 0x8812, 0xf495, 0x8086, 0x1182, 0x7712, 0x006e, 0x10f8, 0x000b, 0x8108, 0x08f8, 0x0012, 0xfa45, 0x03ed, 0x6b86, 0x0001, 0x7712, 0x0073, 0x10f8, 0x000b, 0x08f8, 0x0012, 0xf845, 0x03da, 0x10f8, 0x2801, 0xf4e3, 0x4818, 0xf000, 0x0010, 0x8000, 0x4818, 0xf274, 0x0637, 0xf000, 0x0005, 0x7000, 0x0017, 0x1109, 0xf5e3, 0x0004, 0x8004, 0x10f8, 0x2802, 0xf4e3, 0xf073, 0x0409, 0x4818, 0x7000, 0x0017, 0xf000, 0x0010, 0x8001, 0x4818, 0xf000, 0x0004, 0x8002, 0x1009, 0x8003, 0x4818, 0xf274, 0x052f, 0xf000, 0x0005, 0xf073, 0x0409, 0xf020, 0x0160, 0x1805, 0x8812, 0xf495, 0xf495, 0x6ce2, 0xffc0, 0x0401, 0x6b10, 0x0001, 0x7110, 0x0012, 0xf7b8, 0x7182, 0x0012, 0xf273, 0x0409, 0x1004, 0x4e82, 0x6b10, 0x0001, 0x7110, 0x0012, 0x1004, 0x7182, 0x0012, 0x8082, 0x710a, 0x0010, 0x7186, 0x0012, 0xf5aa, 0xf830, 0x0337, 0x1004, 0xee0c, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x8812, 0xf273, 0x0430, 0x7102, 0x0011, 0xf273, 0x042e, 0x6982, 0x0010, 0xf273, 0x042e, 0x6982, 0x0001, 0xf273, 0x042e, 0x6982, 0x0002, 0xf273, 0x042e, 0x6982, 0x0008, 0x6982, 0x0004, 0x6b81, 0x0001, 0x7181, 0x0013, 0xf7b8, 0x1183, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x002b, 0xf846, 0x0456, 0x7713, 0x002b, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x0424, 0x7713, 0x0020, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x042c, 0x7713, 0x0023, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x0428, 0xf073, 0x0466, 0x7713, 0x002d, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x0420, 0x7713, 0x0030, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x041c, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xeef6, 0xf495, 0x710e, 0x0011, 0x7181, 0x0012, 0x8816, 0x6082, 0x002a, 0xfa20, 0x0496, 0x710f, 0x0017, 0x1087, 0xf000, 0x0001, 0x8812, 0xf7b8, 0x8087, 0x1082, 0x80e6, 0x0001, 0x10e6, 0x0001, 0xf842, 0x048a, 0xf484, 0x80e6, 0x0001, 0x6986, 0x0001, 0x1081, 0xf000, 0x0001, 0x8812, 0xf495, 0x8081, 0x6082, 0x002e, 0xf830, 0x04db, 0xf073, 0x052a, 0xe782, 0x4812, 0xf010, 0x0001, 0x8813, 0xf495, 0xec09, 0x769b, 0x0000, 0x7181, 0x0013, 0xf7b8, 0x1183, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x0030, 0xf843, 0x04c3, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x003a, 0xf842, 0x04c3, 0x8192, 0x1081, 0xf000, 0x0001, 0x8813, 0xf495, 0x8081, 0x1183, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x0030, 0xf842, 0x04ab, 0x1000, 0xf844, 0x04d0, 0x7712, 0x002e, 0x10f8, 0x000b, 0x08f8, 0x0012, 0xf845, 0x04db, 0xf073, 0x052a, 0x4818, 0xf074, 0x0e9c, 0x80e6, 0x0001, 0x7181, 0x0012, 0x6082, 0x002e, 0xf820, 0x052a, 0x1081, 0xf000, 0x0001, 0x8812, 0xf495, 0x8081, 0x6082, 0x002a, 0xf830, 0x051f, 0xe782, 0x4812, 0xf010, 0x0001, 0x8813, 0xf495, 0xec09, 0x769b, 0x0000, 0x7181, 0x0013, 0xf7b8, 0x1183, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x0030, 0xf843, 0x0512, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x003a, 0xf842, 0x0512, 0x8192, 0x1081, 0xf000, 0x0001, 0x8813, 0xf495, 0x8081, 0x1183, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x0030, 0xf842, 0x04fa, 0x1000, 0xf845, 0x051a, 0x4818, 0xf074, 0x0e9c, 0xf073, 0x051b, 0xe800, 0xf273, 0x052a, 0x80e6, 0x0002, 0x1087, 0xf000, 0x0001, 0x8812, 0xf495, 0x8087, 0x1082, 0x80e6, 0x0002, 0x6b81, 0x0001, 0xee0a, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xeefa, 0xf495, 0x8002, 0x100d, 0x710b, 0x0011, 0x8003, 0x710c, 0x0012, 0x1081, 0x710a, 0x0017, 0xf000, 0x0001, 0x8081, 0x8811, 0xf495, 0xf495, 0x1281, 0x8004, 0xf845, 0x062c, 0x7102, 0x0011, 0xf7b8, 0x71e1, 0x0002, 0x0011, 0x10f8, 0x0011, 0xf843, 0x0574, 0x1004, 0xf010, 0x0001, 0x8813, 0xf495, 0x7710, 0xffff, 0x10eb, 0x0001, 0xfa44, 0x0559, 0xf495, 0x6d90, 0xf5a9, 0xf820, 0x0574, 0x7005, 0x0011, 0x7102, 0x0011, 0x11e1, 0x0001, 0x10f8, 0x000b, 0xf468, 0x7105, 0x0011, 0xf478, 0x08f8, 0x0011, 0xf847, 0x058f, 0xf073, 0x0593, 0x1004, 0xf010, 0x0001, 0x8811, 0xf495, 0x7713, 0xffff, 0x10e9, 0x0001, 0xfa44, 0x057b, 0xf495, 0x6d93, 0x7102, 0x0011, 0x7005, 0x0013, 0x11e1, 0x0001, 0x10f8, 0x000b, 0xf468, 0xf478, 0x08f8, 0x0013, 0xf846, 0x0593, 0xf273, 0x0595, 0x7105, 0x0011, 0x8911, 0xf495, 0x4811, 0x0082, 0x8082, 0x4811, 0xf274, 0x14ca, 0xf000, 0x0001, 0x8816, 0x4808, 0xf845, 0x0632, 0xf7b8, 0xf495, 0x1105, 0xf768, 0xf778, 0x09f8, 0x0011, 0xe762, 0xf84a, 0x05c8, 0x7102, 0x0013, 0x961f, 0xf830, 0x05c8, 0x7105, 0x0010, 0x4916, 0xf4a9, 0xf310, 0x0001, 0x8913, 0xf830, 0x05c3, 0x4911, 0x0905, 0xf310, 0x0001, 0x891a, 0xf495, 0xf072, 0x05c2, 0x769b, 0x0020, 0x4911, 0x4812, 0x0905, 0xf600, 0x8812, 0x1105, 0xf640, 0x10f8, 0x0008, 0xf845, 0x05f7, 0x4812, 0xf010, 0x0001, 0x8813, 0x1004, 0xf010, 0x0001, 0x8814, 0xf640, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x05e5, 0x10ec, 0x0001, 0x809b, 0x10f8, 0x0008, 0xf845, 0x05e6, 0xf310, 0x0001, 0x8914, 0xf495, 0x7710, 0x0001, 0xf6ac, 0xfa20, 0x05f7, 0xf310, 0x0001, 0xf310, 0x0001, 0x891a, 0xf495, 0xf072, 0x05f6, 0x769b, 0x0000, 0x1105, 0x4812, 0xf600, 0xf768, 0xf778, 0x09f8, 0x0011, 0xf84a, 0x0618, 0x7102, 0x0013, 0x961f, 0xf820, 0x0618, 0x7105, 0x0010, 0xf4a9, 0xf010, 0x0001, 0x8812, 0xf830, 0x0618, 0x4910, 0x4811, 0xf620, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x0617, 0x769a, 0x0020, 0x4911, 0x4816, 0xf600, 0x8811, 0xf495, 0xf495, 0x7681, 0x0000, 0x7000, 0x0017, 0x1103, 0xf7e3, 0xf495, 0x4816, 0xf274, 0x1625, 0xf495, 0x4816, 0xf073, 0x0632, 0x7000, 0x0017, 0x1103, 0xf7e3, 0xf020, 0x2a5e, 0xee06, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0xf120, 0x2803, 0x8811, 0x4a16, 0x4a17, 0x6fe1, 0x0001, 0x0e00, 0xeef6, 0x8817, 0xf495, 0x710e, 0x0013, 0xf200, 0x018f, 0x8004, 0xf210, 0x0001, 0x8812, 0x7605, 0x0000, 0x8006, 0xf070, 0x018f, 0x769a, 0x0020, 0x7104, 0x0012, 0x7682, 0x0000, 0xf120, 0x2803, 0x1004, 0xf7b8, 0xf010, 0x0001, 0x8107, 0x8004, 0x71e1, 0x0003, 0x0014, 0x11f8, 0x0014, 0xf768, 0xf778, 0xf310, 0x0064, 0x8812, 0xf84e, 0x06a4, 0xf495, 0x7715, 0x0064, 0x11f8, 0x0014, 0x09f8, 0x0015, 0xf84d, 0x06e7, 0x11f8, 0x0014, 0xf768, 0xf778, 0xf310, 0x0047, 0xf84e, 0x0692, 0xe947, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x06f7, 0xe925, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x06d5, 0xe945, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x06f7, 0xf073, 0x0712, 0x7715, 0x0058, 0x11f8, 0x0014, 0x09f8, 0x0015, 0xf84d, 0x06e7, 0x7715, 0x0063, 0x11f8, 0x0014, 0x09f8, 0x0015, 0xf84d, 0x0707, 0xf073, 0x0712, 0x10f8, 0x0014, 0xf468, 0xf478, 0xf010, 0x0070, 0xf846, 0x06c5, 0x10f8, 0x0014, 0xf468, 0xf478, 0xf010, 0x006f, 0xf842, 0x06e7, 0xe742, 0x7710, 0x0002, 0x6dea, 0xff9b, 0xf6aa, 0xf820, 0x06f7, 0xe969, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x06e7, 0xf073, 0x0712, 0xe975, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x06e7, 0xe978, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x06e7, 0xf073, 0x0712, 0x7713, 0x2a65, 0x7107, 0x0012, 0xe510, 0x1183, 0x4812, 0xf84d, 0x07ef, 0x71eb, 0x0001, 0x0011, 0x6e81, 0x06de, 0x709a, 0x0011, 0xf073, 0x07ef, 0x4818, 0xf000, 0x0005, 0x8000, 0x4818, 0xf000, 0x0004, 0x8001, 0x7002, 0x0013, 0xf274, 0x0c3b, 0xf495, 0x4811, 0xf073, 0x0712, 0x4818, 0xf000, 0x0005, 0x8000, 0x4818, 0xf000, 0x0004, 0x8001, 0x7002, 0x0013, 0xf274, 0x07f4, 0xf495, 0x4811, 0xf073, 0x0712, 0x1183, 0xf300, 0x0001, 0x8183, 0x8913, 0xf010, 0x0001, 0xe510, 0x8004, 0x6881, 0xfffd, 0x7181, 0x0012, 0x61f8, 0x0012, 0x0002, 0xfa20, 0x073f, 0x7716, 0x0000, 0x10e1, 0x0003, 0x7713, 0x0075, 0x11f8, 0x0008, 0x09f8, 0x0013, 0xf84d, 0x073f, 0x7713, 0x006f, 0x11f8, 0x0008, 0x09f8, 0x0013, 0xf84d, 0x073f, 0x7713, 0x0078, 0x11f8, 0x0008, 0x09f8, 0x0013, 0xf84d, 0x073f, 0x7713, 0x0058, 0x11f8, 0x0008, 0x09f8, 0x0013, 0xf84d, 0x073f, 0x7716, 0x0001, 0x1005, 0xf844, 0x0750, 0x10f8, 0x0016, 0xf845, 0x0758, 0x7104, 0x0012, 0x7682, 0x002b, 0x6b04, 0xffff, 0xf273, 0x075b, 0x7181, 0x0012, 0x7104, 0x0012, 0x7682, 0x002d, 0x6b04, 0xffff, 0x7181, 0x0012, 0x1005, 0xf844, 0x076a, 0x6c86, 0x076a, 0x61f8, 0x0012, 0x0004, 0xf820, 0x076a, 0x7104, 0x0012, 0x7682, 0x0020, 0x6b04, 0xffff, 0x7181, 0x0012, 0x61f8, 0x0012, 0x0001, 0xf830, 0x0782, 0x1007, 0x0804, 0xf7b8, 0xf000, 0x018f, 0x11f8, 0x0008, 0xf768, 0xf778, 0x09e1, 0x0001, 0xf84e, 0x0782, 0x4917, 0xf520, 0xf273, 0x0783, 0xf200, 0x0001, 0x1007, 0x8008, 0x1004, 0xf000, 0x0001, 0x8000, 0x7601, 0x0000, 0x7602, 0x0190, 0x1008, 0xf074, 0x140a, 0x8812, 0xf495, 0xe770, 0xf6aa, 0x8004, 0xf830, 0x07aa, 0xf010, 0x0002, 0x8812, 0x4817, 0x0804, 0xf000, 0x0001, 0x4808, 0xf845, 0x07a8, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x07a7, 0x769a, 0x0020, 0x7687, 0x0000, 0xe712, 0x960b, 0xf830, 0x07c4, 0x1107, 0x1008, 0xf620, 0xf010, 0x0001, 0x8812, 0xf495, 0x7710, 0xffff, 0xf4aa, 0xfa30, 0x07ee, 0x7106, 0x0011, 0x7312, 0x001a, 0xf072, 0x07c1, 0x7699, 0x0020, 0xf073, 0x07ee, 0x7107, 0x0010, 0x7108, 0x0013, 0xf4ab, 0xfa30, 0x07d8, 0x7106, 0x0012, 0x4910, 0x4813, 0xf620, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x07d7, 0x769a, 0x0030, 0x4816, 0x1a05, 0x8816, 0xf495, 0xf495, 0x6c86, 0x07e3, 0xe712, 0x960d, 0xf820, 0x07ee, 0xe731, 0xf4a9, 0xf830, 0x07ee, 0x7712, 0x2803, 0xe510, 0x7681, 0x0030, 0x7007, 0x0012, 0x1007, 0xee0a, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x8812, 0xeefe, 0xf495, 0x7106, 0x0014, 0x1184, 0xf693, 0xf030, 0x0001, 0x7105, 0x0015, 0xf600, 0x7104, 0x0013, 0xf000, 0x0001, 0x8811, 0x7084, 0x0011, 0xf000, 0x0001, 0x5781, 0x8084, 0x56f8, 0x2a88, 0x4e00, 0xf274, 0x1008, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xfa42, 0x081c, 0x7711, 0x0000, 0x7711, 0x0001, 0x10f8, 0x0011, 0xfa45, 0x0827, 0x7083, 0x0011, 0xf274, 0x11e7, 0xf495, 0xf640, 0xf540, 0xf7b8, 0x71e2, 0x0003, 0x0011, 0x10f8, 0x0011, 0xf468, 0xf478, 0xf010, 0x0065, 0xf846, 0x084d, 0x7713, 0x0065, 0x10f8, 0x0011, 0x08f8, 0x0013, 0xf845, 0x0871, 0x7713, 0x0045, 0x10f8, 0x0011, 0x08f8, 0x0013, 0xf845, 0x0871, 0x7713, 0x0047, 0x10f8, 0x0011, 0x08f8, 0x0013, 0xf845, 0x085d, 0xf073, 0x0879, 0x7713, 0x0066, 0x10f8, 0x0011, 0x08f8, 0x0013, 0xf845, 0x0867, 0x7713, 0x0067, 0x10f8, 0x0011, 0x08f8, 0x0013, 0xf844, 0x0879, 0x7000, 0x0012, 0x7001, 0x0015, 0xf274, 0x09e2, 0xf495, 0xf640, 0xf073, 0x0879, 0x7000, 0x0012, 0x7001, 0x0015, 0xf274, 0x087c, 0xf495, 0xf640, 0xf073, 0x0879, 0x7000, 0x0012, 0x7001, 0x0015, 0xf274, 0x08e4, 0xf495, 0xf640, 0xee02, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0x6bf8, 0x0018, 0xfe68, 0xf495, 0xf7b8, 0xe787, 0x11e7, 0x019c, 0x8912, 0x81e7, 0x0196, 0x11e2, 0x0002, 0x71e7, 0x019d, 0x0011, 0xf84a, 0x0895, 0x76e2, 0x0002, 0x0006, 0xe906, 0x8100, 0x4918, 0xf300, 0x0004, 0x8101, 0x4918, 0xf300, 0x0005, 0x8102, 0xf074, 0x11f5, 0xe783, 0x8814, 0x6deb, 0x0006, 0x1084, 0x8083, 0x10f8, 0x0008, 0xf845, 0x08b1, 0x71ec, 0x0001, 0x0012, 0x6e82, 0x08aa, 0x709b, 0x0012, 0x1004, 0x7181, 0x0016, 0x8000, 0x7601, 0x0001, 0x71e7, 0x0196, 0x0012, 0x10e2, 0x0002, 0x8002, 0x4818, 0x7003, 0x0011, 0xf274, 0x0a93, 0xf000, 0x0006, 0x7181, 0x0010, 0xf7ae, 0xe801, 0xf830, 0x08d1, 0x71e7, 0x0196, 0x0012, 0x960c, 0xf830, 0x08d1, 0xe800, 0x1104, 0x8100, 0x8001, 0x4818, 0x7002, 0x0011, 0xf274, 0x0bc0, 0xf000, 0x0006, 0x6bf8, 0x0018, 0x0198, 0xf495, 0xf495, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0xf7b8, 0x4a17, 0xee96, 0xf540, 0x716e, 0x0011, 0x71e1, 0x0002, 0x0012, 0x10f8, 0x0012, 0xfa42, 0x08fa, 0x716f, 0x0017, 0x7712, 0x0006, 0x76e1, 0x0002, 0x0006, 0x56f8, 0x2a8a, 0x7716, 0x0000, 0x4e00, 0xf274, 0x1008, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x0952, 0x56f8, 0x2a8c, 0x4e00, 0xf274, 0x1008, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf847, 0x092e, 0x56f8, 0x2a88, 0x4e00, 0xf274, 0x1008, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf845, 0x0968, 0x56f8, 0x2a8e, 0x4e00, 0xf274, 0x1008, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf843, 0x0930, 0xf073, 0x0944, 0x57f8, 0x2a8c, 0x56f8, 0x2a90, 0x4e00, 0xf274, 0x1174, 0x6d8e, 0xf640, 0xf540, 0x56f8, 0x2a8e, 0x4e00, 0xf274, 0x1008, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf843, 0x0930, 0x56f8, 0x2a90, 0x4e00, 0xf274, 0x1008, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x0954, 0xf073, 0x0968, 0x57f8, 0x2a8a, 0x56f8, 0x2a90, 0x4e00, 0xf274, 0x1028, 0x6d96, 0xf640, 0xf540, 0x56f8, 0x2a90, 0x4e00, 0xf274, 0x1008, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x0954, 0x4818, 0x7000, 0x0012, 0xf000, 0x0004, 0x8001, 0x4818, 0xf000, 0x0005, 0x8002, 0xf274, 0x11f5, 0xf495, 0xf640, 0xe783, 0x8814, 0x6deb, 0x0006, 0x1084, 0x8083, 0x10f8, 0x0008, 0xf845, 0x0987, 0x71ec, 0x0001, 0x0012, 0x6e82, 0x0980, 0x709b, 0x0012, 0x6004, 0x0002, 0xf820, 0x09a2, 0xe782, 0xf6b8, 0x6b04, 0xffff, 0x6dea, 0x0005, 0xf120, 0xffff, 0x10ea, 0x0001, 0xfa44, 0x0993, 0xf300, 0x0001, 0x4818, 0xf000, 0x0005, 0xf600, 0x8812, 0xf495, 0x6d96, 0x7682, 0x0000, 0x10e1, 0x0003, 0x8000, 0x7001, 0x0017, 0xf274, 0x0b6c, 0xf495, 0x4816, 0x1004, 0x8000, 0x7601, 0x0001, 0x10e1, 0x0002, 0x8002, 0x4818, 0x7003, 0x0017, 0xf274, 0x0a93, 0xf000, 0x0006, 0xe782, 0xf6b8, 0x6dea, 0x0005, 0xf120, 0xffff, 0x10ea, 0x0001, 0xfa44, 0x09bf, 0xf300, 0x0001, 0x1004, 0x08f8, 0x000b, 0xfa44, 0x09d2, 0x7713, 0x0001, 0xe712, 0x960c, 0xf830, 0x09d2, 0x7713, 0x0000, 0x1004, 0x8000, 0x7001, 0x0013, 0x4818, 0x7002, 0x0017, 0xf274, 0x0bc0, 0xf000, 0x0006, 0xee6a, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xee96, 0x7711, 0x0000, 0x716e, 0x0016, 0x71e6, 0x0002, 0x0012, 0x11f8, 0x0012, 0xfa4d, 0x09ff, 0x716f, 0x0017, 0xf7b8, 0x11f8, 0x0012, 0xf84a, 0x0a04, 0x76e6, 0x0002, 0x0006, 0xf273, 0x0a04, 0x7712, 0x0006, 0x7712, 0x0001, 0x76e6, 0x0002, 0x0001, 0x4918, 0x7000, 0x0012, 0xf300, 0x0005, 0x8101, 0x4918, 0xf300, 0x0004, 0x8102, 0xf074, 0x0ef3, 0xe783, 0x8814, 0x6deb, 0x0006, 0x1084, 0x8083, 0x10f8, 0x0008, 0xf845, 0x0a21, 0x71ec, 0x0001, 0x0012, 0x6e82, 0x0a1a, 0x709b, 0x0012, 0xf7b8, 0xf495, 0x1005, 0xf468, 0xf478, 0xf010, 0xfffd, 0xf843, 0x0a47, 0x11e6, 0x0002, 0x10f8, 0x000b, 0xf468, 0xf478, 0x0805, 0xf842, 0x0a60, 0x1005, 0xf468, 0xf478, 0xf010, 0x0002, 0xf843, 0x0a47, 0x1005, 0xf010, 0x0001, 0x8005, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x0002, 0x6d91, 0xf842, 0x0a3a, 0x1005, 0xf846, 0x0a53, 0x1005, 0xf000, 0x0001, 0x8005, 0x10f8, 0x0008, 0x6d89, 0xf847, 0x0a4a, 0x10e6, 0x0003, 0xf000, 0xfffe, 0x8000, 0x7001, 0x0017, 0xf274, 0x0b6c, 0xf495, 0x4811, 0x11e6, 0x0002, 0x1005, 0x7187, 0x0011, 0x8000, 0x1286, 0xf47d, 0xf030, 0x0001, 0x8001, 0x8102, 0x4818, 0x7003, 0x0017, 0xf274, 0x0a93, 0xf000, 0x0006, 0x1005, 0x8000, 0x7187, 0x0010, 0xf4a9, 0x7712, 0x0000, 0xe900, 0xf830, 0x0a7c, 0xe901, 0xe808, 0x1886, 0xf2a0, 0x10f8, 0x0008, 0xf845, 0x0a85, 0x7712, 0x0001, 0x7001, 0x0012, 0x4818, 0x7002, 0x0017, 0xf274, 0x0bc0, 0xf000, 0x0006, 0xee6a, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0xeeff, 0xf495, 0x1103, 0x8100, 0xf110, 0x0001, 0x8913, 0xf495, 0x7711, 0xffff, 0x7104, 0x0015, 0x7105, 0x0014, 0x7106, 0x0010, 0xe732, 0x11ea, 0x0001, 0xfa4c, 0x0aa5, 0xf495, 0x6d91, 0x4911, 0xf500, 0xf7b8, 0xf210, 0x0001, 0x8812, 0x4814, 0x10f8, 0x0008, 0xf847, 0x0ada, 0x4814, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x0ad9, 0xf6b8, 0xe731, 0xf120, 0xffff, 0x10e9, 0x0001, 0xfa44, 0x0ac1, 0xf300, 0x0001, 0xf7b8, 0xf495, 0x1000, 0xf468, 0xf478, 0x08f8, 0x000b, 0xf847, 0x0ada, 0x10f8, 0x0015, 0xf845, 0x0ada, 0x7180, 0x0011, 0x7681, 0x0030, 0x6b80, 0xffff, 0xf6b8, 0xe731, 0xf120, 0xffff, 0x10e9, 0x0001, 0xfa44, 0x0ade, 0xf300, 0x0001, 0xf7b8, 0xf495, 0x1000, 0xf468, 0xf478, 0x08f8, 0x000b, 0xf842, 0x0b22, 0x1000, 0xf843, 0x0b22, 0xf6b8, 0xe731, 0xf020, 0xffff, 0x11e9, 0x0001, 0xfa4c, 0x0af4, 0xf000, 0x0001, 0x6e85, 0x0b12, 0xf495, 0x0800, 0xf7b8, 0x10f8, 0x0008, 0xf847, 0x0b12, 0x6082, 0x0030, 0xf820, 0x0b12, 0xf010, 0x0001, 0x10f8, 0x0008, 0x6d8a, 0xf847, 0x0b22, 0x6082, 0x0030, 0xf830, 0x0b07, 0xf7b8, 0x10f8, 0x0008, 0xf847, 0x0b22, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x0b21, 0x7180, 0x0015, 0xe543, 0x6b80, 0xffff, 0x1000, 0xf842, 0x0b67, 0x1000, 0xf484, 0x8811, 0x10f8, 0x0008, 0xf468, 0xf478, 0x08f8, 0x0014, 0xf842, 0x0b4a, 0xf6b8, 0xf495, 0xf020, 0xffff, 0x11eb, 0x0001, 0xfa4c, 0x0b34, 0xf000, 0x0001, 0xf7b8, 0x10f8, 0x0008, 0xf847, 0x0b4a, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x0b49, 0x7180, 0x0013, 0xe541, 0x6b80, 0xffff, 0x4811, 0x10f8, 0x0008, 0xf468, 0xf478, 0x08f8, 0x0014, 0xf847, 0x0b57, 0x4814, 0xe741, 0xf484, 0x8000, 0x1000, 0xf842, 0x0b67, 0x4811, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x0b66, 0x7180, 0x0011, 0x7681, 0x0030, 0x6b80, 0xffff, 0xee01, 0x8a11, 0xfe00, 0xf495, 0x1080, 0x4a11, 0xf7b8, 0x4a16, 0x4a17, 0x8816, 0xeefc, 0x10f8, 0x0008, 0x7108, 0x0017, 0xfa47, 0x0b7e, 0x7109, 0x0011, 0xf273, 0x0b80, 0xf495, 0x4816, 0x4816, 0xf484, 0x7600, 0x000a, 0x7601, 0x0064, 0x7002, 0x0011, 0xf274, 0x0e01, 0x10f8, 0x0008, 0xf7b8, 0x4816, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x000a, 0xf842, 0x0bac, 0x4816, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0xfff6, 0xf847, 0x0ba3, 0x7181, 0x0012, 0x7682, 0x0030, 0x6b81, 0xffff, 0x4816, 0x10f8, 0x0008, 0xf842, 0x0bac, 0xf273, 0x0bad, 0xf495, 0xe82d, 0xe82b, 0x7181, 0x0012, 0x8082, 0x1081, 0xee04, 0xf010, 0x0001, 0x8812, 0x8081, 0x7082, 0x0017, 0x1081, 0xf010, 0x0001, 0x8081, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0xf7b8, 0x4a16, 0x7714, 0x0000, 0x7103, 0x0013, 0x11f8, 0x0013, 0x3004, 0xfa4f, 0x0be7, 0x7105, 0x0016, 0xf110, 0x0001, 0x8912, 0xf495, 0x7711, 0xffff, 0x11ea, 0x0001, 0xfa4c, 0x0bd4, 0xf495, 0x6d91, 0x11f8, 0x0013, 0xf768, 0xf778, 0x09f8, 0x0011, 0xf84e, 0x0be7, 0x4913, 0xf500, 0xf310, 0x0001, 0x8914, 0xf110, 0x0001, 0x8915, 0x11f8, 0x000e, 0xf84d, 0x0bf4, 0x7186, 0x0011, 0x7681, 0x002e, 0x6b86, 0xffff, 0x7712, 0xffff, 0xe751, 0x11e9, 0x0001, 0xfa4c, 0x0bf7, 0xf495, 0x6d92, 0x11f8, 0x0013, 0xf768, 0xf778, 0x09f8, 0x0012, 0xf84f, 0x0c1d, 0x7186, 0x0011, 0x7681, 0x0030, 0xe752, 0x7711, 0xffff, 0x6b86, 0xffff, 0x11ea, 0x0001, 0xfa4c, 0x0c0e, 0xf495, 0x6d91, 0x11f8, 0x0011, 0x6d8b, 0xf768, 0xf778, 0x09f8, 0x0013, 0xf84b, 0x0c05, 0x11f8, 0x0013, 0xf84f, 0x0c31, 0x8810, 0xf495, 0xf495, 0xf5ac, 0xf830, 0x0c37, 0x7186, 0x0012, 0xe560, 0xf5ac, 0xfa20, 0x0c27, 0x6b86, 0xffff, 0xf073, 0x0c37, 0x7186, 0x0011, 0x7681, 0x0030, 0x6b86, 0xffff, 0x1086, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x8812, 0x4a17, 0xeefa, 0xf7b8, 0x8004, 0x10e2, 0x0002, 0x110c, 0x710a, 0x0017, 0xfa43, 0x0c4f, 0x710b, 0x0011, 0xf273, 0x0c52, 0x6882, 0xffef, 0x76e2, 0x0002, 0x0001, 0x71e2, 0x0003, 0x0012, 0x7713, 0x0058, 0x10f8, 0x0012, 0x08f8, 0x0013, 0xf845, 0x0c79, 0x7713, 0x006f, 0x10f8, 0x0012, 0x08f8, 0x0013, 0xf845, 0x0c7d, 0x7713, 0x0070, 0x10f8, 0x0012, 0x08f8, 0x0013, 0xf845, 0x0c79, 0x7713, 0x0078, 0x10f8, 0x0012, 0x08f8, 0x0013, 0xf845, 0x0c79, 0xf273, 0x0c7f, 0x7716, 0x000a, 0xf273, 0x0c7f, 0x7716, 0x0010, 0x7716, 0x0008, 0x8100, 0x1004, 0xf074, 0x0d09, 0x7104, 0x0012, 0x11e2, 0x0002, 0xf84c, 0x0c91, 0xf540, 0xf3e0, 0xf84c, 0x0c91, 0xf273, 0x0d04, 0xf495, 0xe801, 0x71e2, 0x0003, 0x0012, 0x7713, 0x0064, 0x11f8, 0x0012, 0x09f8, 0x0013, 0xf84d, 0x0c9f, 0x6ce2, 0xff97, 0x0cad, 0xf540, 0xf7b8, 0xf768, 0xf778, 0xf84a, 0x0cad, 0x7687, 0x0001, 0x7104, 0x0012, 0xf484, 0x71e2, 0x0003, 0x0012, 0x7000, 0x0016, 0x7001, 0x0012, 0x7002, 0x0011, 0xf074, 0x0e01, 0xf7b8, 0xf000, 0x0001, 0x11f8, 0x0008, 0xf768, 0x7104, 0x0012, 0xf778, 0x09e2, 0x0002, 0xf84e, 0x0cd4, 0x7181, 0x0012, 0xf000, 0x0001, 0x7682, 0x0030, 0x11f8, 0x0008, 0x6b81, 0xffff, 0xf768, 0x7104, 0x0012, 0xf778, 0x09e2, 0x0002, 0xf84f, 0x0cc2, 0x71e2, 0x0003, 0x0013, 0xe978, 0x10f8, 0x0013, 0x08f8, 0x000b, 0xf845, 0x0ce1, 0x6ce3, 0xffa8, 0x0cf7, 0x960c, 0xf820, 0x0cf7, 0x7181, 0x0012, 0x7082, 0x0013, 0x1081, 0xf010, 0x0001, 0x8812, 0xf495, 0x8081, 0x7682, 0x0030, 0x6b81, 0xffff, 0x7104, 0x0012, 0x71e2, 0x0003, 0x0013, 0x6ce3, 0xff91, 0x0d03, 0x960c, 0xf820, 0x0d03, 0x7181, 0x0012, 0x7682, 0x0030, 0x6b81, 0xffff, 0xe800, 0xee06, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x8813, 0x4a11, 0xe970, 0x71e3, 0x0003, 0x0011, 0x10f8, 0x0011, 0x08f8, 0x000b, 0xfa45, 0x0df8, 0x7102, 0x0012, 0x1183, 0xf330, 0x0160, 0x8913, 0xf495, 0x7710, 0x0020, 0xf4ab, 0xe800, 0xf830, 0x0db3, 0x7710, 0x0040, 0xf4ab, 0xf830, 0x0d64, 0xf7b8, 0x11f8, 0x0011, 0xf768, 0xf778, 0xf310, 0x006f, 0xf84e, 0x0d52, 0x7713, 0x006f, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0df8, 0x7713, 0x0058, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0df8, 0x7713, 0x0064, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0df0, 0x7713, 0x0069, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0df0, 0xf073, 0x0dff, 0x7713, 0x0075, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0df8, 0x7713, 0x0078, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0df8, 0xf073, 0x0dff, 0xf7b8, 0x11f8, 0x0011, 0xf768, 0xf778, 0xf310, 0x006f, 0xf84e, 0x0d8f, 0x7713, 0x006f, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0da1, 0x7713, 0x0058, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0da1, 0x7713, 0x0064, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0da1, 0x7713, 0x0069, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0da1, 0xf073, 0x0dff, 0x7713, 0x0075, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0da1, 0x7713, 0x0078, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0da1, 0xf073, 0x0dff, 0x1182, 0xf693, 0xf030, 0x0001, 0xf600, 0xf000, 0x0001, 0x8811, 0xf495, 0x4911, 0x7082, 0x0011, 0xf300, 0x0001, 0xf273, 0x0dff, 0x5681, 0x8182, 0xf7b8, 0x11f8, 0x0011, 0xf768, 0xf778, 0xf310, 0x006f, 0xf84e, 0x0dde, 0x7713, 0x006f, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0df8, 0x7713, 0x0058, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0df8, 0x7713, 0x0064, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0df0, 0x7713, 0x0069, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0df0, 0xf073, 0x0dff, 0x7713, 0x0075, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0df8, 0x7713, 0x0078, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0df8, 0xf073, 0x0dff, 0x1082, 0xf000, 0x0001, 0x8811, 0xf273, 0x0dff, 0x8082, 0x1081, 0x1082, 0xf000, 0x0001, 0x8811, 0xf495, 0x8082, 0x1281, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xeefa, 0xf495, 0x4e02, 0xf0e0, 0x710a, 0x0016, 0x710b, 0x0017, 0xfa44, 0x0e18, 0x710c, 0x0011, 0x7181, 0x0012, 0x7682, 0x0030, 0xf273, 0x0e3b, 0x6b81, 0xffff, 0xf7b8, 0x7000, 0x0016, 0x5602, 0xf074, 0x0e4f, 0x4e04, 0x4e00, 0xf7b8, 0xf274, 0x13a8, 0x10f8, 0x0016, 0xf7b8, 0x6ee7, 0xffa8, 0x0e2d, 0x5702, 0xf520, 0xf300, 0x0010, 0x8912, 0xf495, 0x7181, 0x0013, 0xf6b8, 0x6dea, 0x2a67, 0xe501, 0x6b81, 0xffff, 0x5604, 0x4e02, 0xf844, 0x0e18, 0x1081, 0xf6b8, 0xf010, 0x0001, 0x8811, 0xf020, 0xffff, 0x11e9, 0x0001, 0xfa4c, 0x0e42, 0xf000, 0x0001, 0xee06, 0x8a17, 0x8a16, 0x8a11, 0xfe00, 0xf010, 0x0001, 0x4a11, 0xeefe, 0x7712, 0x0008, 0x7104, 0x0011, 0x11f8, 0x0011, 0x09f8, 0x0012, 0xf84d, 0x0e65, 0x7712, 0x0010, 0x11f8, 0x0011, 0x09f8, 0x0012, 0xf84d, 0x0e69, 0xf073, 0x0e6d, 0xf273, 0x0e82, 0xf495, 0xf0fd, 0xf273, 0x0e82, 0xf495, 0xf0fc, 0xf540, 0xf6b8, 0xf3e0, 0xf310, 0xffff, 0xf84a, 0x0e7c, 0x7000, 0x0011, 0xf074, 0x16b5, 0xf273, 0x0e82, 0xf495, 0x4808, 0xf7b8, 0x11f8, 0x0011, 0x4f00, 0xf074, 0x1353, 0xee02, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0xffff, 0xeefe, 0x6ce1, 0x0001, 0x0e90, 0xf273, 0x0e96, 0xe800, 0xe900, 0xf120, 0xffff, 0x10f8, 0xffff, 0xf300, 0x0001, 0x8100, 0xf074, 0x00c2, 0xee02, 0x8a11, 0xfc00, 0x8813, 0x4a11, 0xf020, 0x2aa2, 0xeefe, 0x1183, 0x8000, 0xf600, 0x8812, 0xf495, 0xf495, 0x6d92, 0x960c, 0xf820, 0x0eb6, 0x11eb, 0x0001, 0x1000, 0xf600, 0x8812, 0xf495, 0xf495, 0x6d92, 0x960c, 0xf830, 0x0eab, 0x8911, 0xf495, 0x7712, 0x002d, 0x11f8, 0x0011, 0x09f8, 0x0012, 0xe800, 0xf84d, 0x0ec8, 0x6ee1, 0xffd5, 0x0ecd, 0x7714, 0x0000, 0xf073, 0x0eca, 0x7714, 0x0001, 0x71eb, 0x0001, 0x0011, 0x4911, 0x0100, 0x8912, 0xf495, 0xf495, 0x6d92, 0x960d, 0xf820, 0x0eeb, 0x4911, 0x880e, 0x71eb, 0x0001, 0x0011, 0xf066, 0x000a, 0xf600, 0x7001, 0x0011, 0x1100, 0x0101, 0x8912, 0xf495, 0xf495, 0x6d92, 0x960d, 0xfa30, 0x0ed6, 0xf010, 0x0030, 0x11f8, 0x0014, 0xf84d, 0x0ef0, 0xf484, 0xee02, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xeef8, 0xf7b8, 0x4e02, 0x710e, 0x0011, 0x710d, 0x0017, 0x710c, 0x0016, 0x56f8, 0x2a92, 0x76f8, 0x2993, 0x0030, 0x4e00, 0x5602, 0xf074, 0x1008, 0xf7b8, 0x10f8, 0x0008, 0xe900, 0xf842, 0x0f0f, 0xe901, 0x56f8, 0x2a92, 0x8181, 0x4e00, 0x5602, 0xf074, 0x1008, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x0f1f, 0x5602, 0xf074, 0x11e7, 0x4e02, 0x56f8, 0x2a94, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x1008, 0xf7b8, 0x10f8, 0x0008, 0xfa47, 0x0f3f, 0x7711, 0x0000, 0x56f8, 0x2a96, 0x4e00, 0x5602, 0xf074, 0x1028, 0x57f8, 0x2a94, 0x4e02, 0x4f00, 0xf074, 0x1008, 0xf7b8, 0x10f8, 0x0008, 0x6d91, 0xf846, 0x0f2d, 0xf020, 0x2993, 0x8004, 0x56f8, 0x2a92, 0x4e00, 0x5602, 0xf274, 0x1008, 0xf495, 0x6d96, 0xf7b8, 0x10f8, 0x0008, 0xf845, 0x0f79, 0x56f8, 0x2a98, 0x4e00, 0x5602, 0xf074, 0x1008, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x0f79, 0x56f8, 0x2a96, 0x4e00, 0x5602, 0xf074, 0x1174, 0x4e02, 0xf7b8, 0x56f8, 0x2a92, 0x4e00, 0x5602, 0xf074, 0x1008, 0xf7b8, 0x10f8, 0x0008, 0x6d89, 0xf845, 0x0f79, 0x56f8, 0x2a98, 0x4e00, 0x5602, 0xf074, 0x1008, 0xf7b8, 0x10f8, 0x0008, 0xf843, 0x0f5a, 0x1004, 0xf000, 0x0001, 0x8005, 0x5602, 0xf074, 0x10ff, 0x1105, 0x8100, 0xf074, 0x13bc, 0xf540, 0x8006, 0x1004, 0xf500, 0xf300, 0x0001, 0x8912, 0x4811, 0x1106, 0xf500, 0xf7b8, 0x8187, 0x1106, 0xf768, 0xf778, 0x09f8, 0x0016, 0xf84a, 0x0fc3, 0x4916, 0x0906, 0x8916, 0xf495, 0x4816, 0x10f8, 0x0008, 0xf847, 0x0fca, 0x4816, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x0fc0, 0xf7b8, 0xf495, 0x5602, 0xf074, 0x10ff, 0xf074, 0x114a, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x11ec, 0x4e02, 0x56f8, 0x2a96, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x1174, 0x4e02, 0xf074, 0x10c3, 0xf000, 0x0030, 0x8092, 0xf073, 0x0fca, 0x1104, 0x4816, 0xf600, 0xf000, 0x0001, 0x8812, 0xf495, 0xf7b8, 0x10ea, 0xffff, 0xf468, 0xf478, 0xf010, 0x0035, 0xf843, 0x1000, 0x4812, 0xf010, 0x0001, 0x8811, 0xf495, 0xf495, 0x1081, 0xf000, 0x0001, 0x8081, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x003a, 0xf843, 0x0ff3, 0x7689, 0x0030, 0x1081, 0xf000, 0x0001, 0x8081, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x003a, 0xf842, 0x0fe5, 0x7104, 0x0010, 0xf7a9, 0xf830, 0x1000, 0x76ea, 0xffff, 0x0000, 0x4810, 0xf273, 0x1003, 0x6b87, 0x0001, 0x7682, 0x0000, 0x1005, 0xee08, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0xf7b8, 0xf468, 0xf478, 0x5704, 0xf842, 0x1015, 0xff4b, 0xf484, 0xf784, 0xf586, 0xf808, 0x1020, 0xf587, 0xf808, 0x1024, 0xf420, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x101c, 0xe801, 0xf495, 0xf273, 0x101c, 0xf020, 0xffff, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a0e, 0xf6b7, 0xeef3, 0xf7b8, 0xf468, 0xf478, 0xf845, 0x1095, 0x6f05, 0x0c79, 0x800b, 0xf063, 0x007f, 0xf060, 0x0080, 0x820a, 0x5612, 0xf845, 0x10b3, 0x6f06, 0x0c79, 0x8009, 0xf063, 0x007f, 0xf060, 0x0080, 0x8208, 0x1005, 0x1c06, 0xf030, 0x0100, 0x8004, 0x1005, 0xf030, 0x00ff, 0x1106, 0xf330, 0x00ff, 0xf000, 0x007f, 0xf620, 0x8001, 0xf843, 0x10ab, 0xf010, 0x00ff, 0xf846, 0x109b, 0x560a, 0xf0e6, 0x5708, 0xf3e7, 0x4f08, 0xec0e, 0x1e08, 0x8002, 0x0a02, 0xec0a, 0x1e08, 0x6f03, 0x0c85, 0x3002, 0x2409, 0xf0ff, 0xec0b, 0x1e08, 0xf0e4, 0xf030, 0xffff, 0xf0e1, 0xf484, 0x0203, 0x3c02, 0x1101, 0xf48e, 0xf495, 0xf48f, 0x8c01, 0x0901, 0xf0ff, 0xf300, 0x0001, 0xf000, 0x0020, 0xf48e, 0xf495, 0xf48f, 0x8c01, 0x0901, 0x8101, 0xf84f, 0x10ab, 0xf310, 0x00ff, 0xf84a, 0x109b, 0xf0f9, 0x8003, 0xf038, 0x7f00, 0x8202, 0x4404, 0x3c01, 0xf0e7, 0x5002, 0xee0d, 0x8a0e, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0x7600, 0x0002, 0xf074, 0x10c2, 0xf483, 0xf061, 0x0081, 0x4504, 0xf84c, 0x1095, 0xf162, 0x8000, 0xf273, 0x1095, 0xf2c0, 0xf495, 0x7600, 0x0001, 0xf074, 0x10c2, 0xf273, 0x1095, 0xf420, 0xf495, 0x7600, 0x0003, 0xf074, 0x10c2, 0x4505, 0xf363, 0x0100, 0xf061, 0x0081, 0xf065, 0x8000, 0xf273, 0x1095, 0xf2a7, 0xf495, 0xfc00, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a0e, 0xf6b8, 0xeefd, 0xf845, 0x10e5, 0x6f01, 0x0c79, 0xf0e9, 0xf0f7, 0xf060, 0x0080, 0x6f02, 0x0c67, 0x1101, 0xf330, 0x00ff, 0xf310, 0x007f, 0xf84b, 0x10eb, 0xf310, 0x000e, 0xf84e, 0x10ef, 0x890e, 0x6101, 0x0100, 0x1402, 0xfd30, 0xf484, 0xee03, 0x8a0e, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x10e5, 0xf420, 0xf495, 0x7600, 0x0002, 0xf074, 0x10c2, 0x6101, 0x0100, 0xf020, 0x7fff, 0xf820, 0x10e5, 0xf000, 0x0001, 0xf273, 0x10e5, 0xf484, 0xf495, 0xf845, 0x1132, 0x4a0e, 0x4a0d, 0x4a0b, 0x4a0c, 0xf6b8, 0xeefd, 0x6f01, 0x0c79, 0xf0e9, 0xf0f7, 0xf060, 0x0080, 0xf447, 0x1101, 0xf330, 0x00ff, 0xf310, 0x007f, 0xf84b, 0x1133, 0xf310, 0x001e, 0xf84e, 0x1137, 0xf84d, 0x1128, 0xf300, 0x0010, 0xf84a, 0x1123, 0xf273, 0x1125, 0xf0f0, 0xf495, 0xf310, 0x0010, 0x890e, 0xf495, 0xf48f, 0x6101, 0x0100, 0xf495, 0xfd30, 0xf484, 0xee03, 0x8a0c, 0x8a0b, 0x8a0d, 0x8a0e, 0xfc00, 0xf273, 0x112d, 0xf420, 0xf495, 0x7600, 0x0002, 0xf074, 0x10c2, 0x6101, 0x0100, 0xf062, 0x7fff, 0xf040, 0xffff, 0xf483, 0xf820, 0x112d, 0xf000, 0x0001, 0xf273, 0x112d, 0xf484, 0xf495, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a0e, 0xf7b8, 0xeefd, 0xf468, 0xf478, 0xf845, 0x116a, 0x8201, 0xf4ba, 0xf485, 0xf870, 0x1170, 0xf48e, 0xe99d, 0x8c00, 0x0900, 0xf48f, 0xf0e2, 0xf0fe, 0xf459, 0x6101, 0x8000, 0xf3ef, 0xf2a8, 0xf820, 0x116a, 0xf064, 0x8000, 0xee03, 0x8a0e, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x116a, 0xf062, 0xcf00, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a0e, 0xf6b7, 0xeef3, 0xf7b8, 0xf468, 0xf478, 0xf845, 0x11cd, 0x6f05, 0x0c79, 0x800b, 0xf063, 0x007f, 0xf060, 0x0080, 0x820a, 0x5612, 0xf845, 0x11cd, 0x6f06, 0x0c79, 0x8009, 0xf063, 0x007f, 0xf060, 0x0080, 0x8208, 0x1005, 0x1c06, 0xf030, 0x0100, 0x8004, 0x1005, 0xf030, 0x00ff, 0x1106, 0xf330, 0x00ff, 0xf310, 0x007f, 0xf600, 0x8001, 0xf843, 0x11df, 0xf010, 0x00ff, 0xf846, 0x11d3, 0x300b, 0x2409, 0x2508, 0xf510, 0x300a, 0x2409, 0xf600, 0x2508, 0x8102, 0x3c02, 0xf000, 0x0040, 0xf468, 0xf478, 0xf6b8, 0x1101, 0xf842, 0x11be, 0xf0ff, 0xf300, 0x0001, 0x8101, 0xf84f, 0x11df, 0xf310, 0x00ff, 0xf84a, 0x11d3, 0xf0f9, 0x8003, 0xf038, 0x7f00, 0x8202, 0x4404, 0x3c01, 0xf0e7, 0x5002, 0xee0d, 0x8a0e, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0x7600, 0x0002, 0xf074, 0x10c2, 0x4504, 0xf020, 0xffff, 0xf2a7, 0xf273, 0x11cd, 0xf060, 0x7f7f, 0x7600, 0x0001, 0xf074, 0x10c2, 0xf273, 0x11cd, 0xf420, 0xf495, 0xf495, 0xff44, 0xf065, 0x8000, 0xfc00, 0xf495, 0x6001, 0x0000, 0xf495, 0xff20, 0x6a01, 0x8000, 0xf073, 0x16c1, 0x4a11, 0x4a16, 0x4a17, 0xeefa, 0xf7b8, 0x4e02, 0x710c, 0x0011, 0x710b, 0x0017, 0x710a, 0x0016, 0x56f8, 0x2a9a, 0x76f8, 0x29f7, 0x0030, 0x4e00, 0x5602, 0xf074, 0x1008, 0xf7b8, 0x10f8, 0x0008, 0xe900, 0xf842, 0x1211, 0xe901, 0x56f8, 0x2a9a, 0x8181, 0x4e00, 0x5602, 0xf074, 0x1008, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x1221, 0x5602, 0xf074, 0x11e7, 0x4e02, 0x56f8, 0x2a9c, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x1008, 0xf7b8, 0x10f8, 0x0008, 0xfa47, 0x1241, 0x7711, 0x0000, 0x56f8, 0x2a9e, 0x4e00, 0x5602, 0xf074, 0x1028, 0x57f8, 0x2a9c, 0x4e02, 0x4f00, 0xf074, 0x1008, 0xf7b8, 0x10f8, 0x0008, 0x6d91, 0xf846, 0x122f, 0xf020, 0x29f7, 0x8004, 0x56f8, 0x2a9a, 0x4e00, 0x5602, 0xf274, 0x1008, 0xf495, 0x6d96, 0xf7b8, 0x10f8, 0x0008, 0xf845, 0x127b, 0x56f8, 0x2aa0, 0x4e00, 0x5602, 0xf074, 0x1008, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x127b, 0x56f8, 0x2a9e, 0x4e00, 0x5602, 0xf074, 0x1174, 0x4e02, 0xf7b8, 0x56f8, 0x2a9a, 0x4e00, 0x5602, 0xf074, 0x1008, 0xf7b8, 0x10f8, 0x0008, 0x6d89, 0xf845, 0x127b, 0x56f8, 0x2aa0, 0x4e00, 0x5602, 0xf074, 0x1008, 0xf7b8, 0x10f8, 0x0008, 0xf843, 0x125c, 0x1004, 0xf000, 0x0001, 0x8005, 0x5602, 0xf074, 0x10ff, 0x1105, 0x8100, 0xf074, 0x13bc, 0x8812, 0x1104, 0xf600, 0xf100, 0x0001, 0x8913, 0x4911, 0x4812, 0xf600, 0x8087, 0x4816, 0xf600, 0xf7b8, 0x8816, 0x10f8, 0x0008, 0xf847, 0x12b9, 0x4816, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x12b8, 0xf7b8, 0xf495, 0x5602, 0xf074, 0x10ff, 0xf074, 0x114a, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x11ec, 0x4e02, 0x56f8, 0x2a9e, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x1174, 0x4e02, 0xf074, 0x10c3, 0xf000, 0x0030, 0x8093, 0xf7b8, 0x10eb, 0xffff, 0xf468, 0xf478, 0xf010, 0x0035, 0xf843, 0x12e7, 0x4813, 0xf010, 0x0001, 0x8811, 0xf495, 0xf495, 0x1081, 0xf000, 0x0001, 0x8081, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x003a, 0xf843, 0x12e2, 0x7689, 0x0030, 0x1081, 0xf000, 0x0001, 0x8081, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x003a, 0xf842, 0x12d4, 0x7104, 0x0010, 0xf4a9, 0xf830, 0x12ed, 0x7683, 0x0000, 0xf273, 0x12fe, 0xf495, 0x1005, 0xf6ab, 0xf830, 0x12f9, 0x7711, 0x29f7, 0x76e1, 0x0001, 0x0000, 0xf273, 0x12fb, 0x7004, 0x0011, 0x7683, 0x0000, 0x6b87, 0x0001, 0x1004, 0xee06, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0xeefe, 0xf7b8, 0xf468, 0xf478, 0x4506, 0xf1c0, 0x8300, 0xf485, 0x5706, 0xf785, 0x4f06, 0xf520, 0xf84d, 0x1323, 0xf84e, 0x1327, 0xf074, 0x1388, 0x6100, 0x8000, 0xf820, 0x131e, 0xf484, 0xee02, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x1319, 0xe801, 0xf495, 0xf273, 0x131e, 0xf420, 0xf495, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0xeefe, 0xf7b8, 0x8200, 0xf468, 0xf478, 0xf485, 0x5706, 0xf785, 0x4f06, 0xf520, 0xf84d, 0x134b, 0xf84e, 0x134f, 0xf074, 0x1388, 0x6100, 0x8000, 0xfa20, 0x1346, 0xf640, 0xf495, 0xf484, 0xee02, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x1346, 0xf420, 0xf495, 0xf273, 0x133f, 0xf540, 0xf495, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0xeefe, 0xf6b8, 0xf0e0, 0x5706, 0xf520, 0xf84d, 0x1367, 0xf84e, 0x136b, 0xf074, 0x1388, 0xee02, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x1362, 0xe801, 0xf495, 0xf273, 0x1362, 0xf420, 0xf495, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0xeefe, 0xf6b8, 0xf0e0, 0x5706, 0xf520, 0xf84d, 0x1384, 0xf84e, 0x137f, 0xf074, 0x1388, 0xf640, 0xee02, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x137f, 0xf420, 0xf495, 0xf495, 0x4a11, 0xf6b8, 0xf273, 0x1390, 0x7711, 0x001f, 0x6d89, 0xf0e1, 0xf808, 0x138f, 0xe901, 0x5508, 0xf84b, 0x139b, 0xf273, 0x139c, 0xf040, 0x0001, 0x5308, 0x6c89, 0x13a0, 0x8a11, 0xfc00, 0xf3e1, 0xf0e1, 0xf808, 0x1394, 0xf273, 0x1394, 0xf340, 0x0001, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a0e, 0xeefd, 0xf495, 0x4e00, 0x3109, 0x4408, 0x3501, 0x2409, 0xf76f, 0xf601, 0xee03, 0x8a0e, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf540, 0x4a11, 0xf7b8, 0xf768, 0x7711, 0x0000, 0xeee8, 0xf778, 0xfa4a, 0x13ca, 0x711a, 0x0013, 0x7711, 0x0001, 0xe782, 0x6dea, 0x0015, 0xf540, 0x7682, 0x0000, 0xe80a, 0x4e00, 0xf274, 0x132b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf485, 0xf000, 0x0030, 0x80ea, 0xffff, 0xe80a, 0x4e00, 0xf274, 0x1303, 0xf495, 0xf640, 0xf7b8, 0xf540, 0xf468, 0xf478, 0xf844, 0x13d0, 0x10f8, 0x0011, 0xf845, 0x13f1, 0x76ea, 0xffff, 0x002d, 0x4818, 0x4912, 0xf000, 0x0002, 0xf620, 0x7000, 0x0012, 0xf000, 0x0014, 0x10f8, 0x0008, 0x4e16, 0x8001, 0xf274, 0x142a, 0xf495, 0x4813, 0xf7b8, 0xf495, 0x5616, 0xee18, 0x8a11, 0xfe00, 0xf010, 0x0001, 0xf7b8, 0x4a11, 0x8812, 0x1004, 0x1103, 0xfa47, 0x1427, 0x7102, 0x0011, 0xf010, 0x0001, 0x881a, 0x6d89, 0xf072, 0x1426, 0x10e9, 0x0001, 0x8092, 0x10f8, 0x0008, 0x08f8, 0x000b, 0xf844, 0x1426, 0xf273, 0x1428, 0xf495, 0x4812, 0xf495, 0xe800, 0x8a11, 0xfc00, 0x1302, 0x7101, 0x0012, 0x8813, 0xf84d, 0x1437, 0xf310, 0x0001, 0x891a, 0xf495, 0xf072, 0x1436, 0xe589, 0xfc00, 0x4a11, 0x7211, 0x2a5b, 0xf495, 0x8813, 0x6c81, 0x1443, 0xf273, 0x146e, 0x7313, 0x2a5b, 0xf495, 0x7712, 0x0000, 0x1183, 0xf7b8, 0x10f8, 0x000b, 0xf468, 0xf478, 0x0881, 0xf842, 0x1457, 0xe712, 0x71e2, 0x0001, 0x0011, 0x6c81, 0x1447, 0xf073, 0x146b, 0x4811, 0xf845, 0x146b, 0x6c82, 0x1463, 0x70e3, 0x0001, 0x2a5b, 0xf273, 0x1471, 0x7313, 0x2a5b, 0x70e3, 0x0001, 0x0011, 0x70e2, 0x0001, 0x0013, 0xf073, 0x1471, 0x70e2, 0x0001, 0x0013, 0x76e3, 0x0001, 0x0000, 0x8a11, 0xfc00, 0x4a11, 0x8813, 0x7211, 0x2a5b, 0x4811, 0xf845, 0x1496, 0xe730, 0xf4a9, 0xf830, 0x1491, 0xe712, 0x71e2, 0x0001, 0x0011, 0x4811, 0xf845, 0x1496, 0xf7a9, 0xf830, 0x147e, 0x4812, 0xf845, 0x1491, 0x10e3, 0x0001, 0xf273, 0x1499, 0x80e2, 0x0001, 0x71e3, 0x0001, 0x2a5b, 0xf073, 0x1499, 0x76f8, 0x2a5b, 0x0000, 0x8a11, 0xfc00, 0x4a11, 0x10f8, 0x2801, 0xf4e3, 0x7711, 0x2bb1, 0x61f8, 0x0011, 0x0001, 0xf830, 0x14b6, 0x4811, 0x7681, 0x0000, 0xf000, 0x0001, 0x80f8, 0x2a5b, 0xf020, 0x00fe, 0x80f8, 0x2a5c, 0xf484, 0xf273, 0x14bf, 0x80e1, 0x0001, 0xf020, 0x00ff, 0x80f8, 0x2a5c, 0x7311, 0x2a5b, 0xf484, 0x80f8, 0x2bb1, 0x7211, 0x2a5b, 0xf495, 0x76e1, 0x0001, 0x0000, 0x10f8, 0x2802, 0xf4e3, 0x8a11, 0xfc00, 0x4a11, 0x8811, 0x4a16, 0xeeff, 0x10f8, 0x2801, 0xf4e3, 0x10f8, 0x2a5d, 0xf845, 0x14da, 0xf074, 0x149b, 0x76f8, 0x2a5d, 0x0000, 0xf7b8, 0x4811, 0x10f8, 0x0008, 0xfa43, 0x14fc, 0x7216, 0x2a5b, 0x61f8, 0x0011, 0x0001, 0xf830, 0x14e8, 0x6d91, 0x4811, 0xf484, 0x8811, 0x4816, 0xf845, 0x14fc, 0x1186, 0x10f8, 0x000b, 0xf468, 0xf478, 0x08f8, 0x0011, 0xf847, 0x150b, 0x71e6, 0x0001, 0x0016, 0x6c86, 0x1502, 0x10f8, 0x2802, 0xf4e3, 0xe800, 0xf073, 0x1537, 0x1186, 0x10f8, 0x000b, 0xf468, 0xf478, 0x08f8, 0x0011, 0xf846, 0x14f7, 0x8100, 0xf274, 0x1473, 0xf495, 0x4816, 0xf7b8, 0x4811, 0x0800, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x0002, 0xf842, 0x151f, 0xf273, 0x152f, 0xf495, 0xf640, 0x4911, 0x4816, 0xf620, 0xf000, 0x0001, 0x8812, 0x1000, 0xf620, 0xf000, 0x0001, 0x8082, 0xf274, 0x1438, 0xf495, 0x4812, 0x4811, 0xf484, 0x8086, 0x10f8, 0x2802, 0xf4e3, 0x4816, 0xf000, 0x0001, 0xee01, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0xf495, 0x3002, 0x20f8, 0x0008, 0xf274, 0x14ca, 0x8811, 0xf495, 0x8812, 0xf495, 0xf495, 0x6c82, 0x154d, 0xf273, 0x155b, 0xf495, 0xe800, 0x4911, 0xf495, 0x490b, 0xf84d, 0x155b, 0x4911, 0xf310, 0x0001, 0x891a, 0xf495, 0xf072, 0x155a, 0x7692, 0x0000, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0xf7b8, 0x4a17, 0x8817, 0xf010, 0x0001, 0xeefa, 0x8816, 0x110a, 0x10f8, 0x000b, 0x76f8, 0x2a5c, 0x0100, 0x8911, 0xf843, 0x15d8, 0x6c87, 0x1577, 0xf274, 0x14ca, 0xf495, 0xf640, 0xf073, 0x1620, 0x6c81, 0x157f, 0xf274, 0x1625, 0xf495, 0x4817, 0xf073, 0x15d8, 0x1086, 0xfa47, 0x15d8, 0xf495, 0x8002, 0x61f8, 0x0011, 0x0001, 0xf830, 0x158a, 0x6d91, 0x10f8, 0x0011, 0x1102, 0xf468, 0xf478, 0x08f8, 0x000b, 0xf847, 0x1603, 0xf640, 0x4916, 0xf600, 0xf000, 0x0001, 0x8003, 0x8004, 0x10f8, 0x2801, 0xf4e3, 0x6bf8, 0x2a5c, 0xfffe, 0x7210, 0x2a5c, 0x7103, 0x0012, 0x6de8, 0x2bb1, 0xf5aa, 0xf820, 0x15b8, 0xf7b8, 0xf495, 0x1182, 0xf84a, 0x15b8, 0x1002, 0xf620, 0x4911, 0xf620, 0xf100, 0x0001, 0x11f8, 0x000b, 0xf84a, 0x15dc, 0xf274, 0x14ca, 0xf495, 0x4811, 0x8811, 0xf495, 0x4811, 0xf845, 0x15d5, 0x4816, 0xf000, 0x0001, 0x8000, 0x1002, 0x8001, 0xf274, 0x1760, 0xf495, 0x4811, 0xf274, 0x1625, 0xf495, 0x4817, 0x10f8, 0x2802, 0xf4e3, 0x4811, 0xf073, 0x1620, 0x10f8, 0x2802, 0xf4e3, 0xf273, 0x1620, 0xf495, 0xe800, 0xf274, 0x1473, 0xf495, 0x4812, 0xf7b8, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x0002, 0xf842, 0x15ee, 0x4811, 0xf273, 0x15fe, 0xf500, 0x8186, 0x7086, 0x0011, 0x4816, 0x7002, 0x0011, 0x0002, 0xf000, 0x0001, 0x8816, 0xe801, 0xf620, 0x8086, 0xf274, 0x1438, 0xf495, 0x4816, 0x10f8, 0x2802, 0xf4e3, 0xf073, 0x161f, 0xf640, 0x4911, 0xf620, 0x8812, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x0002, 0xf843, 0x161f, 0x4816, 0xf600, 0x7086, 0x0011, 0xf000, 0x0001, 0x8816, 0x4812, 0xf010, 0x0001, 0x8086, 0x4816, 0xf274, 0x1625, 0xf000, 0x0001, 0x4817, 0xee06, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x8816, 0x4808, 0xeeff, 0xf845, 0x16b1, 0x10f8, 0x2801, 0xf4e3, 0xf020, 0x0100, 0x6d8e, 0x80f8, 0x2a5c, 0x8000, 0x4816, 0x8810, 0xf495, 0x7712, 0x2bb1, 0xe721, 0xf5a9, 0xf830, 0x1645, 0xf7a9, 0xf830, 0x16ae, 0xf273, 0x1659, 0x7714, 0x0000, 0xf7b8, 0xf495, 0x1081, 0xe714, 0xf842, 0x164c, 0xf484, 0x4911, 0xf600, 0xf000, 0x0001, 0x8811, 0xf495, 0xf495, 0xf5a9, 0xf830, 0x1645, 0xf7a9, 0xf830, 0x16ae, 0xf7b8, 0xf495, 0x1081, 0xf843, 0x16ae, 0xf484, 0x8081, 0x4811, 0x0881, 0xf000, 0x0001, 0x8815, 0x1000, 0xf010, 0x0001, 0x80f8, 0x2a5c, 0x4812, 0x0000, 0x8810, 0xf495, 0xf495, 0x6d88, 0xf6ad, 0xf820, 0x1675, 0x7715, 0x0000, 0x4814, 0xf845, 0x169c, 0x1084, 0xf842, 0x169c, 0x4815, 0xf845, 0x1692, 0x1085, 0xf842, 0x1692, 0xf274, 0x1473, 0xf495, 0x4814, 0xf274, 0x1473, 0xf495, 0x4815, 0x1085, 0x0084, 0x0081, 0xf010, 0x0002, 0xf273, 0x16ac, 0x8084, 0x4814, 0xf274, 0x1473, 0xf495, 0x4814, 0x1081, 0x0084, 0xf273, 0x168e, 0xf010, 0x0001, 0x4815, 0xf845, 0x16ab, 0x1085, 0xf842, 0x16ab, 0xf274, 0x1473, 0xf495, 0x4815, 0x1085, 0x0081, 0xf010, 0x0001, 0x8081, 0x4811, 0xf074, 0x1438, 0x10f8, 0x2802, 0xf4e3, 0xee01, 0x8a16, 0x8a11, 0xfc00, 0xf6b8, 0x4808, 0xec0f, 0x1e01, 0xfc00, 0xf6b8, 0x4808, 0xec0f, 0x1e01, 0xfe00, 0xf0f0, 0xf495, 0xf495, 0x4a0e, 0x4a0b, 0x4a0c, 0x4a0d, 0xf6b7, 0xeef3, 0xf7b8, 0xf468, 0xf478, 0xf845, 0x173a, 0xf540, 0xf6b8, 0xf0e1, 0x6f05, 0x0c78, 0xf0e8, 0xf0f7, 0xf060, 0x0080, 0xfd4b, 0xf484, 0xf7b8, 0x4e0a, 0x5612, 0xf845, 0x173e, 0xf540, 0xf0e1, 0x6f06, 0x0c78, 0xf6b8, 0xf0e8, 0xf0f7, 0xf060, 0x0080, 0xfd4b, 0xf484, 0xf7b8, 0x4e08, 0x1005, 0x1106, 0xf520, 0xf84b, 0x1719, 0xf84e, 0x172a, 0x560a, 0x5008, 0xf845, 0x175c, 0x1105, 0x8204, 0xf485, 0xf0e6, 0xf48e, 0xf495, 0xf48f, 0x8c01, 0xf300, 0x0001, 0x0901, 0x8101, 0xf84f, 0x1758, 0xf310, 0x00ff, 0xf84a, 0x174b, 0xf0f9, 0x8003, 0xf038, 0x7f00, 0x8202, 0x6f04, 0x0c49, 0xf063, 0x0100, 0x3c01, 0xf0e7, 0x5002, 0xee0d, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0e, 0xfc00, 0xf785, 0xf310, 0x0018, 0xf84a, 0x173e, 0xf300, 0x0017, 0x8104, 0x5608, 0x4704, 0xf47f, 0x1105, 0x500a, 0xf844, 0x16f6, 0xf073, 0x1713, 0xf310, 0x0018, 0xf84a, 0x173a, 0xf300, 0x0017, 0x8104, 0x560a, 0x4704, 0xf47f, 0x1106, 0x5008, 0xf844, 0x16f6, 0xf073, 0x1713, 0xf273, 0x1713, 0x5612, 0xf495, 0x560a, 0xf846, 0x1744, 0xf484, 0x6b05, 0x0100, 0xf061, 0x0080, 0x4505, 0xf273, 0x1713, 0xf3e7, 0xf600, 0x7600, 0x0002, 0xf074, 0x10c2, 0x4404, 0xf063, 0x1f40, 0xf040, 0xffff, 0xf273, 0x1713, 0xf060, 0x7f7f, 0x7600, 0x0001, 0xf074, 0x10c2, 0xf273, 0x1713, 0xf420, 0xf495, 0x4a11, 0x8811, 0xf495, 0xeefe, 0xe710, 0x7104, 0x0012, 0xf6aa, 0x1105, 0xf820, 0x1772, 0x7000, 0x0012, 0x8101, 0xf074, 0x142a, 0xf073, 0x1787, 0x00f8, 0x000b, 0x8813, 0x4812, 0x00f8, 0x000b, 0x490b, 0x8812, 0xf84d, 0x1786, 0xf310, 0x0001, 0x891a, 0xf495, 0xf072, 0x1785, 0x10ea, 0xffff, 0x80eb, 0xffff, 0x4811, 0xee02, 0x8a11, 0xfc00, | ||
24 | }; | ||
25 | static const unsigned short _section_cinit[] = { | ||
26 | 0x0001, 0x27de, 0x0000, 0x0001, 0x27ff, 0x0000, 0x0001, 0x2800, 0x0000, 0x0001, 0x2801, 0x030f, 0x0001, 0x2802, 0x030f, 0x0001, 0x2a5d, 0x0001, 0x0000, | ||
27 | }; | ||
28 | static const unsigned short _section_const[] = { | ||
29 | 0x0028, 0x006e, 0x0075, 0x006c, 0x006c, 0x0029, 0x0000, 0x0025, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0000, 0x0000, 0x0000, 0x7f7f, 0xffff, 0xff7f, 0xffff, 0x3f80, 0x0000, 0x4120, 0x0000, 0x0000, 0x0000, 0x4f00, 0x0000, 0x4120, 0x0000, 0x3f80, 0x0000, 0x0000, 0x0000, 0x4f00, 0x0000, 0x4120, 0x0000, 0x3f80, 0x0000, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0088, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0010, 0x0010, 0x0010, 0x0010, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0044, 0x0053, 0x0050, 0x0020, 0x0069, 0x006e, 0x0069, 0x0074, 0x0065, 0x0064, 0x002e, 0x002e, 0x002e, 0x0000, | ||
30 | }; | ||
31 | static const unsigned short _section_vectors[] = { | ||
32 | 0xf273, 0x01f7, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf273, 0x0085, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf273, 0x00e6, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf273, 0x017e, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, | ||
33 | }; | ||
34 | |||
35 | |||
36 | static const struct dsp_section dsp_image[] = { | ||
37 | {_section_text, 0x0080, 0x170a}, | ||
38 | {_section_cinit, 0x2cb1, 0x0013}, | ||
39 | {NULL /* .bss */, 0x278a, 0x02d4}, | ||
40 | {_section_const, 0x2a5e, 0x0153}, | ||
41 | {NULL /* .sysmem */, 0x2bb1, 0x0100}, | ||
42 | {NULL /* .stack */, 0x178a, 0x1000}, | ||
43 | {_section_vectors, 0x7f80, 0x0080}, | ||
44 | {NULL /* .dma */, 0x8000, 0x4000}, | ||
45 | {NULL, 0, 0} | ||
46 | }; | ||
47 | |||
48 | /* Symbol table, usable with the DSP_() macro (see dsp-target.h). */ | ||
49 | #define _acked 0x27db | ||
50 | #define _debugf 0x009c | ||
51 | #define _handle_int0 0x0085 | ||
52 | #define _status 0x278a | ||
53 | #define _vsnprintf 0x0293 | ||
54 | #define _main 0x00c2 | ||
55 | #define _audiohw_postinit 0x01ec | ||
56 | #define _dma_init 0x0192 | ||
57 | #define _audiohw_init 0x01c1 | ||
58 | #define _c_int00 0x01f7 | ||
59 | #define _handle_dma0 0x00e6 | ||
60 | #define _handle_dmac 0x017e | ||
61 | #define _data 0x8000 | ||
62 | #define _sdem_addrh 0x27dc | ||
63 | #define _sdem_addrl 0x27dd | ||
64 | #define cinit 0x2cb1 | ||
65 | #define __args_main 0x0e85 | ||
66 | #define _exit 0x0241 | ||
67 | #define _atexit 0x026e | ||
68 | #define __dtors_ptr 0x2800 | ||
69 | #define __cleanup_ptr 0x27ff | ||
70 | #define _abort 0x0290 | ||
71 | #define __lock 0x2801 | ||
72 | #define __unlock 0x2802 | ||
73 | #define __printfi 0x0316 | ||
74 | #define _memcpy 0x142a | ||
75 | #define __register_lock 0x0310 | ||
76 | #define __register_unlock 0x0313 | ||
77 | #define __nop 0x030f | ||
78 | #define _malloc 0x14ca | ||
79 | #define _memccpy 0x140a | ||
80 | #define _ecvt 0x0ef3 | ||
81 | #define _fcvt 0x11f5 | ||
82 | #define _atoi 0x0e9c | ||
83 | #define _free 0x1625 | ||
84 | #define __ctypes_ 0x2aa2 | ||
85 | #define _ltoa 0x13bc | ||
86 | #define __sys_memory 0x2bb1 | ||
87 | #define _minit 0x149b | ||
88 | #define _realloc 0x155d | ||
89 | #define _calloc 0x153b | ||
90 | #define _memmove 0x1760 | ||
91 | #define ___text__ 0x0080 | ||
92 | #define etext 0x178a | ||
93 | #define ___etext__ 0x178a | ||
94 | #define ___cinit__ 0x2cb1 | ||
95 | #define ___bss__ 0x278a | ||
96 | #define end 0x2a5e | ||
97 | #define ___end__ 0x2a5e | ||
98 | #define ___data__ 0x0000 | ||
99 | #define edata 0x0000 | ||
100 | #define ___edata__ 0x0000 | ||
101 | |||
102 | #endif | ||
diff --git a/firmware/target/arm/tms320dm320/dsp/ipc.h b/firmware/target/arm/tms320dm320/dsp/ipc.h index fafbc23c2c..b307753c0f 100644 --- a/firmware/target/arm/tms320dm320/dsp/ipc.h +++ b/firmware/target/arm/tms320dm320/dsp/ipc.h | |||
@@ -34,7 +34,7 @@ | |||
34 | #define PACKED | 34 | #define PACKED |
35 | #endif | 35 | #endif |
36 | 36 | ||
37 | #define PCM_SIZE 32768 /* bytes */ | 37 | #define PCM_SIZE 0x8000 /* bytes */ |
38 | 38 | ||
39 | struct sdram_buffer { | 39 | struct sdram_buffer { |
40 | unsigned long addr; | 40 | unsigned long addr; |
diff --git a/firmware/target/arm/tms320dm320/dsp/main.c b/firmware/target/arm/tms320dm320/dsp/main.c index aaeea21513..57156e0451 100644 --- a/firmware/target/arm/tms320dm320/dsp/main.c +++ b/firmware/target/arm/tms320dm320/dsp/main.c | |||
@@ -41,9 +41,10 @@ void main(void) { | |||
41 | 41 | ||
42 | audiohw_postinit(); | 42 | audiohw_postinit(); |
43 | 43 | ||
44 | #if 0 | 44 | debugf("DSP inited..."); |
45 | for (i = 0; i < 32; i++) | 45 | |
46 | { | 46 | #ifdef DATA_32_SINE |
47 | for (i = 0; i < 32; i++) { | ||
47 | double ratio = ((double)i)/32.0; | 48 | double ratio = ((double)i)/32.0; |
48 | double rad = 3.0*3.141592*ratio; | 49 | double rad = 3.0*3.141592*ratio; |
49 | double normal = sin(rad); | 50 | double normal = sin(rad); |
@@ -51,24 +52,7 @@ void main(void) { | |||
51 | data[2*i + 0] = -(signed short)scaled; | 52 | data[2*i + 0] = -(signed short)scaled; |
52 | data[2*i + 1] = (signed short)scaled; | 53 | data[2*i + 1] = (signed short)scaled; |
53 | } | 54 | } |
54 | |||
55 | debugf("starting write"); | ||
56 | |||
57 | i = 0; | ||
58 | p = data; | ||
59 | SPSA0 = 0x01; | ||
60 | for (;;) { | ||
61 | while ((SPSD0 & (1 << 1)) == 0); | ||
62 | DXR20 = *p++; // left channel | ||
63 | DXR10 = *p++; // right channel | ||
64 | if (++i == 32) | ||
65 | { | ||
66 | p = data; | ||
67 | i = 0; | ||
68 | } | ||
69 | } | ||
70 | #endif | 55 | #endif |
71 | debugf("DSP inited..."); | ||
72 | 56 | ||
73 | for (;;) { | 57 | for (;;) { |
74 | asm(" IDLE 1"); | 58 | asm(" IDLE 1"); |
@@ -85,16 +69,6 @@ void main(void) { | |||
85 | memset((unsigned short *)0x7f80, 0, 0x80); | 69 | memset((unsigned short *)0x7f80, 0, 0x80); |
86 | #endif | 70 | #endif |
87 | 71 | ||
88 | #ifdef DATA_32_SINE | ||
89 | for (i = 0; i < 32; i++) { | ||
90 | double ratio = ((double)i)/32.0; | ||
91 | double rad = 3.0*3.141592*ratio; | ||
92 | double normal = sin(rad); | ||
93 | double scaled = 32767.0*(normal); | ||
94 | data[2*i + 0] = -(signed short)scaled; | ||
95 | data[2*i + 1] = (signed short)scaled; | ||
96 | } | ||
97 | #endif | ||
98 | 72 | ||
99 | #ifdef MANUAL_TRANSFER | 73 | #ifdef MANUAL_TRANSFER |
100 | register signed short *p; | 74 | register signed short *p; |
diff --git a/firmware/target/arm/tms320dm320/dsp/xml2h.py b/firmware/target/arm/tms320dm320/dsp/xml2h.py new file mode 100644 index 0000000000..2d25c9028e --- /dev/null +++ b/firmware/target/arm/tms320dm320/dsp/xml2h.py | |||
@@ -0,0 +1,193 @@ | |||
1 | #!/usr/bin/python | ||
2 | # __________ __ ___. | ||
3 | # Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | # \/ \/ \/ \/ \/ | ||
8 | # $Id$ | ||
9 | # | ||
10 | # Copyright (C) 2007 Catalin Patulea <cat@vv.carleton.ca> | ||
11 | # | ||
12 | # All files in this archive are subject to the GNU General Public License. | ||
13 | # See the file COPYING in the source tree root for full license agreement. | ||
14 | # | ||
15 | # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
16 | # KIND, either express or implied. | ||
17 | # | ||
18 | |||
19 | import sys, os.path, array, re | ||
20 | from xml.dom import Node | ||
21 | from xml.dom.minidom import parse | ||
22 | |||
23 | |||
24 | C_IDENT_RE = re.compile('^[0-9a-zA-Z_]+$') | ||
25 | |||
26 | |||
27 | def getText(nodelist): | ||
28 | rc = "" | ||
29 | for node in nodelist: | ||
30 | if node.nodeType == node.TEXT_NODE: | ||
31 | rc = rc + node.data | ||
32 | return rc | ||
33 | |||
34 | |||
35 | def descendAll(root, tagname): | ||
36 | for child in root.childNodes: | ||
37 | if child.nodeType == Node.ELEMENT_NODE and child.tagName == tagname: | ||
38 | yield child | ||
39 | |||
40 | |||
41 | def descend(root, tagname): | ||
42 | return descendAll(root, tagname).next() | ||
43 | |||
44 | |||
45 | def getTagText(root, tagname): | ||
46 | try: | ||
47 | tag = descend(root, tagname) | ||
48 | except StopIteration: | ||
49 | return None | ||
50 | return getText(tag.childNodes) | ||
51 | |||
52 | |||
53 | def main(): | ||
54 | dom = parse(sys.stdin) | ||
55 | |||
56 | ofd = descend(dom, "ofd") | ||
57 | object_file = descend(ofd, "object_file") | ||
58 | object_file_name = descend(object_file, "name") | ||
59 | |||
60 | out_filepath = getText(object_file_name.childNodes) | ||
61 | sys.stderr.write("*.out filename (input): %s\n" % out_filepath) | ||
62 | |||
63 | out_file = open(out_filepath, "rb") | ||
64 | h_file = sys.stdout | ||
65 | |||
66 | h_file.write("""#ifndef DSP_IMAGE | ||
67 | #define DSP_IMAGE | ||
68 | /* | ||
69 | * Automatically generated by xml2h.py from %s. | ||
70 | * | ||
71 | * This program is free software; you can redistribute it and/or | ||
72 | * modify it under the terms of the GNU General Public License as | ||
73 | * published by the Free Software Foundation; either version 2 of | ||
74 | * the License, or (at your option) any later version. | ||
75 | * | ||
76 | * This program is distributed in the hope that it will be useful, | ||
77 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
78 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
79 | * GNU General Public License for more details. | ||
80 | * | ||
81 | * You should have received a copy of the GNU General Public License | ||
82 | * along with this program; if not, write to the Free Software | ||
83 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||
84 | * MA 02111-1307 USA | ||
85 | * | ||
86 | */ | ||
87 | """ % out_filepath) | ||
88 | |||
89 | # Section data and directory. | ||
90 | h_directory = [""" | ||
91 | static const struct dsp_section dsp_image[] = {"""] | ||
92 | |||
93 | ti_coff = descend(object_file, "ti_coff") | ||
94 | for section in descendAll(ti_coff, "section"): | ||
95 | page = int(getTagText(section, "page") or "0", 16) | ||
96 | name = getTagText(section, "name") | ||
97 | physical_addr = int(getTagText(section, "physical_addr"), 16) | ||
98 | raw_data_size = int(getTagText(section, "raw_data_size"), 16) | ||
99 | copy = getTagText(section, "copy") | ||
100 | data = getTagText(section, "data") | ||
101 | regular = getTagText(section, "regular") | ||
102 | text = getTagText(section, "text") | ||
103 | bss = getTagText(section, "bss") | ||
104 | |||
105 | file_offsets = descend(section, "file_offsets") | ||
106 | raw_data_ptr = int(getTagText(file_offsets, "raw_data_ptr"), 16) | ||
107 | |||
108 | if copy: | ||
109 | # Empirically, .debug* sections have this attribute set. | ||
110 | sys.stderr.write( | ||
111 | "%s: didn't copy debug section ('copy' attribute set)\n" % | ||
112 | name) | ||
113 | continue | ||
114 | |||
115 | if raw_data_size == 0: | ||
116 | sys.stderr.write("%s: not copying empty section\n" % name) | ||
117 | continue | ||
118 | |||
119 | if raw_data_size % 2 != 0: | ||
120 | sys.stderr.write("%s: error, raw_data_size 0x%04x not a multiple " | ||
121 | "of word size (2 bytes)\n" % (name, raw_data_size)) | ||
122 | break | ||
123 | |||
124 | if data or regular or text: | ||
125 | sys.stderr.write("%s: placing 0x%04x words at 0x%04x from offset " | ||
126 | "0x%08x\n" % ( | ||
127 | name, raw_data_size >> 1, physical_addr, raw_data_ptr)) | ||
128 | |||
129 | sanitized_name = name.replace(".", "_") | ||
130 | h_file.write(("static const unsigned short _section%s[] = {\n" % | ||
131 | sanitized_name)) | ||
132 | |||
133 | out_file.seek(raw_data_ptr) | ||
134 | data = array.array('H') | ||
135 | data.fromfile(out_file, raw_data_size >> 1) | ||
136 | h_file.write("\t") | ||
137 | for word in data: | ||
138 | h_file.write("0x%04x, " % word) | ||
139 | h_file.write(""" | ||
140 | }; | ||
141 | """) | ||
142 | |||
143 | h_directory.append("\t{_section%s, 0x%04x, 0x%04x}," % ( | ||
144 | sanitized_name, physical_addr, raw_data_size >> 1)) | ||
145 | |||
146 | continue | ||
147 | |||
148 | if bss: | ||
149 | sys.stderr.write("%s: bss section, 0x%04x words at 0x%04x\n" % ( | ||
150 | name, raw_data_size >> 1, physical_addr)) | ||
151 | |||
152 | h_directory.append("\t{NULL /* %s */, 0x%04x, 0x%04x}," % ( | ||
153 | name, physical_addr, raw_data_size >> 1)) | ||
154 | continue | ||
155 | |||
156 | sys.stderr.write("%s: error, unprocessed section\n" % name) | ||
157 | |||
158 | h_file.write("\n") | ||
159 | |||
160 | h_directory.append("\t{NULL, 0, 0}") | ||
161 | h_directory.append("};") | ||
162 | |||
163 | h_file.write("\n".join(h_directory)) | ||
164 | h_file.write("\n") | ||
165 | |||
166 | # Symbols. | ||
167 | symbol_table = descend(ti_coff, "symbol_table") | ||
168 | h_file.write(""" | ||
169 | /* Symbol table, usable with the DSP_() macro (see dsp-target.h). */ | ||
170 | """) | ||
171 | for symbol in descendAll(symbol_table, "symbol"): | ||
172 | name = getTagText(symbol, "name") | ||
173 | kind = getTagText(symbol, "kind") | ||
174 | value = int(getTagText(symbol, "value"), 16) | ||
175 | |||
176 | if kind != "defined": | ||
177 | continue | ||
178 | |||
179 | if not C_IDENT_RE.match(name): | ||
180 | continue | ||
181 | |||
182 | h_file.write("#define %s 0x%04x\n" % (name, value)) | ||
183 | |||
184 | h_file.write("\n#endif\n") | ||
185 | h_file.close() | ||
186 | out_file.close() | ||
187 | |||
188 | dom.unlink() | ||
189 | |||
190 | |||
191 | if __name__ == "__main__": | ||
192 | main() | ||
193 | |||