Linux wireless drivers development
 help / color / mirror / Atom feed
* [PATCH 5/5] Unbury Makefile-meta config definitions.
From: Jon Loeliger @ 2009-06-30 21:19 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless@vger.kernel.org

Rather than having them buried in the middle of the Makefile,
relocate the "quiet/not-quiet" options, MKDIR and INSTALL definitions
to the top of the file.

Signed-off-by: Jon Loeliger <jdl@bigfootnetworks.com>
---
 Makefile |   23 ++++++++++++-----------
 1 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/Makefile b/Makefile
index b755b67..9f9ae01 100644
--- a/Makefile
+++ b/Makefile
@@ -25,6 +25,18 @@ UDEV_RULE_DIR?=/lib/udev/rules.d/
 PUBKEY_DIR?=pubkeys
 
 
+MKDIR ?= mkdir -p
+INSTALL ?= install
+
+
+ifeq ($(V),1)
+    Q=
+    NQ=@true
+else
+    Q=@
+    NQ=@echo
+endif
+
 #
 # Determine what target and host libraries and executables
 # need to be built as that will determine what libraries will
@@ -236,17 +248,6 @@ verify: $(REG_BIN) host/regdbdump
 	$(Q)./host/regdbdump $(REG_BIN) >/dev/null
 
 
-MKDIR ?= mkdir -p
-INSTALL ?= install
-
-ifeq ($(V),1)
-Q=
-NQ=@true
-else
-Q=@
-NQ=@echo
-endif
-
 $(REG_BIN):
 	$(NQ) '  EXIST ' $(REG_BIN)
 	$(NQ)
-- 
1.6.3.GIT




^ permalink raw reply related

* [PATCH 4/5] Introduce separate HOST and TARGET compilation steps.
From: Jon Loeliger @ 2009-06-30 21:19 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless@vger.kernel.org

The regdbdump tool is really a host executable that is used
during the build process.  It could also be installed and
used on the target, but two separate compilations are needed
to achieve that goal.

Currently, regdbdump is only built for the target, and thus
cross-compilation of the tool is really feasible without
this patch (or one like it).

Signed-off-by: Jon Loeliger <jdl@bigfootnetworks.com>
---
 Makefile |  250 +++++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 199 insertions(+), 51 deletions(-)

diff --git a/Makefile b/Makefile
index 776b259..b755b67 100644
--- a/Makefile
+++ b/Makefile
@@ -24,45 +24,220 @@ UDEV_RULE_DIR?=/lib/udev/rules.d/
 # with make PUBKEY_DIR=/usr/lib/crda/pubkeys
 PUBKEY_DIR?=pubkeys
 
-CFLAGS += -Wall -g
 
-all: $(REG_BIN) crda intersect verify
+#
+# Determine what target and host libraries and executables
+# need to be built as that will determine what libraries will
+# need to be found on the host or in the target environment.
+#
 
-ifeq ($(USE_OPENSSL),1)
-CFLAGS += -DUSE_OPENSSL `pkg-config --cflags openssl`
-LDLIBS += `pkg-config --libs openssl`
+BUILD		:= crda intersect regdbdump
 
-reglib.o: keys-ssl.c
+HOST_BUILD	:= $(patsubst %,host/%,$(BUILD))
+TARGET_BUILD	:= $(patsubst %,target/%,$(BUILD))
 
+ifeq ($(CROSS_COMPILE),)
+    # Host only
+    # Initially treat host and target the same using target.
+    TARGET_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH)
+    TARGET_USE_OPENSSL := $(USE_OPENSSL)
+    BUILD_ALL := $(TARGET_BUILD)
+    INSTALL_EXECS := target/crda target/regdbdump
 else
-CFLAGS += -DUSE_GCRYPT
-LDLIBS += -lgcrypt
+    # Cross compile
+    BUILD_ALL := $(TARGET_BUILD)
+    ifeq ($(BUILD_FOR_HOST_TOO),1)
+	BUILD_ALL += $(HOST_BUILD)
+    endif
+    INSTALL_EXECS := target/crda target/regdbdump
+endif
+
+INSTALL_MAN	:= crda.8.gz regdbdump.8.gz 
+
 
-reglib.o: keys-gcrypt.c
 
+TARGET_CFLAGS += -Wall -g
+
+ifeq ($(TARGET_USE_OPENSSL),1)
+    TARGET_CFLAGS_KEYS	+= -DUSE_OPENSSL \
+			`PKG_CONFIG_PATH=$(TARGET_PKG_CONFIG_PATH) \
+			pkg-config --cflags openssl`
+    TARGET_LDLIBS_KEYS	+= `PKG_CONFIG_PATH=$(TARGET_PKG_CONFIG_PATH) \
+			pkg-config --libs openssl`
+    TARGET_KEYS_FILE	:= keys-ssl.c
+else
+    TARGET_CFLAGS_KEYS	+= -DUSE_GCRYPT
+    TARGET_LDLIBS_KEYS	+= -lgcrypt
+    TARGET_KEYS_FILE	:= keys-gcrypt.c
 endif
-MKDIR ?= mkdir -p
-INSTALL ?= install
 
-NL1FOUND := $(shell pkg-config --atleast-version=1 libnl-1 && echo Y)
-NL2FOUND := $(shell pkg-config --atleast-version=2 libnl-2.0 && echo Y)
+TARGET_NL1FOUND := $(shell PKG_CONFIG_PATH=$(TARGET_PKG_CONFIG_PATH) \
+			pkg-config --atleast-version=1 libnl-1 && echo Y)
+TARGET_NL2FOUND := $(shell PKG_CONFIG_PATH=$(TARGET_PKG_CONFIG_PATH) \
+			pkg-config --atleast-version=2 libnl-2.0 && echo Y)
 
-ifeq ($(NL1FOUND),Y)
-NLLIBNAME = libnl-1
+ifeq ($(TARGET_NL1FOUND),Y)
+    TARGET_NLLIBNAME	:= libnl-1
 endif
 
-ifeq ($(NL2FOUND),Y)
-CFLAGS += -DCONFIG_LIBNL20
-NLLIBS += -lnl-genl
-NLLIBNAME = libnl-2.0
+ifeq ($(TARGET_NL2FOUND),Y)
+    TARGET_CFLAGS_NL	+= -DCONFIG_LIBNL20
+    TARGET_LDLIBS_NL	+= -lnl-genl
+    TARGET_NLLIBNAME	:= libnl-2.0
 endif
 
-ifeq ($(NLLIBNAME),)
-$(error Cannot find development files for any supported version of libnl)
+ifneq ($(findstring clean,$(MAKECMDGOALS)),clean)
+ifeq ($(TARGET_NLLIBNAME),)
+$(error Cannot find development files for any supported version of target libnl)
+endif
 endif
 
-NLLIBS += `pkg-config --libs $(NLLIBNAME)`
-CFLAGS += `pkg-config --cflags $(NLLIBNAME)`
+TARGET_LDLIBS_NL += `PKG_CONFIG_PATH=$(TARGET_PKG_CONFIG_PATH) \
+			pkg-config --libs $(TARGET_NLLIBNAME)`
+TARGET_CFLAGS_NL += `PKG_CONFIG_PATH=$(TARGET_PKG_CONFIG_PATH) \
+			pkg-config --cflags $(TARGET_NLLIBNAME)`
+
+TARGET_CFLAGS += $(TARGET_CFLAGS_NL) $(TARGET_CFLAGS_KEYS)
+TARGET_LDLIBS += $(TARGET_LDLIBS_NL) $(TARGET_LDLIBS_KEYS)
+
+
+#
+# When not cross-compiling, treat target and host the same
+# by transferring target-values to the HOST_* names and then
+# only building the host targets.
+#
+# However when cross-compiling, build-up the real host-values
+# in HOST_*, leaving the generic names to be for the target.
+#
+ifeq ($(CROSS_COMPILE),)
+
+# Not cross compiling, the host is the target.
+HOST_CC		:= $(CC)
+HOST_CFLAGS	:= $(TARGET_CFLAGS)
+HOST_CPPFLAGS	:= $(TARGET_CPPFLAGS)
+HOST_LDFLAGS	:= $(TARGET_LDFLAGS)
+HOST_LDLIBS	:= $(TARGET_LDLIBS)
+HOST_USE_OPENSSL := $(TARGET_USE_OPENSSL)
+HOST_LDLIBS	:= $(TARGET_LDLIBS)
+HOST_KEYS_FILE	:= $(TARGET_KEYS_FILE)
+BUILD_ALL	:= $(subst target/,host/,$(BUILD_ALL))
+INSTALL_EXECS	:= $(subst target/,host/,$(INSTALL_EXECS))
+
+else
+
+# Cross compiling, so trump up HOST definitions now.
+
+HOST_CFLAGS += -Wall -g
+
+ifeq ($(HOST_USE_OPENSSL),1)
+    HOST_CFLAGS_KEYS	+= -DUSE_OPENSSL -DFOO \
+			`PKG_CONFIG_PATH=$(HOST_PKG_CONFIG_PATH) \
+			pkg-config --cflags openssl`
+    HOST_LDLIBS_KEYS	+= `PKG_CONFIG_PATH=$(HOST_PKG_CONFIG_PATH) \
+			pkg-config --libs openssl`
+    HOST_KEYS_FILE	:= keys-ssl.c
+else
+    HOST_CFLAGS_KEYS	+= -DUSE_GCRYPT
+    HOST_LDLIBS_KEYS	+= -lgcrypt
+    HOST_KEYS_FILE	:= keys-gcrypt.c
+endif
+
+
+ifeq ($(findstring host/crda,$(BUILD_ALL)),host/crda)
+HOST_NL1FOUND := $(shell PKG_CONFIG_PATH=$(HOST_PKG_CONFIG_PATH) \
+			pkg-config --atleast-version=1 libnl-1 && echo Y)
+HOST_NL2FOUND := $(shell PKG_CONFIG_PATH=$(HOST_PKG_CONFIG_PATH) \
+			pkg-config --atleast-version=2 libnl-2.0 && echo Y)
+
+ifeq ($(HOST_NL1FOUND),Y)
+    HOST_NLLIBNAME	:= libnl-1
+endif
+
+ifeq ($(HOST_NL2FOUND),Y)
+    HOST_CFLAGS_NL	+= -DCONFIG_LIBNL20
+    HOST_LDLIBS_NL	+= -lnl-genl
+    HOST_NLLIBNAME	:= libnl-2.0
+endif
+
+ifeq ($(HOST_NLLIBNAME),)
+$(error Cannot find development files for any supported version of host libnl)
+endif
+
+HOST_LDLIBS_NL	+= `PKG_CONFIG_PATH=$(HOST_PKG_CONFIG_PATH) \
+		pkg-config --libs $(HOST_NLLIBNAME)`
+HOST_CFLAGS_NL	+= `PKG_CONFIG_PATH=$(HOST_PKG_CONFIG_PATH) \
+		pkg-config --cflags $(HOST_NLLIBNAME)`
+endif
+
+endif
+
+HOST_CFLAGS += $(HOST_CFLAGS_KEYS) $(HOST_CFLAGS_NL)
+HOST_LDLIBS += $(HOST_LDLIBS_KEYS) $(HOST_LDLIBS_NL)
+
+
+CRDA_OBJS	:= reglib.o crda.o
+REGDBDUMP_OBJS	:= reglib.o regdbdump.o print-regdom.o
+INTERSECT_OBJS	:= reglib.o intersect.o print-regdom.o
+
+
+
+all: host target $(REG_BIN) $(BUILD_ALL) verify
+
+host target:
+	$(MKDIR) $@
+	@echo Building $(BUILD_ALL)
+
+
+target/crda: $(patsubst %,target/%,$(CRDA_OBJS))
+	$(NQ) '  LD  ' $@
+	$(Q)$(CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o $@ $^ $(TARGET_LDLIBS) $(NLLIBS)
+
+target/regdbdump: $(patsubst %,target/%,$(REGDBDUMP_OBJS))
+	$(NQ) '  LD  ' $@
+	$(Q)$(CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o $@ $^ $(TARGET_LDLIBS)
+
+target/intersect: $(patsubst %,target/%,$(INTERSECT_OBJS))
+	$(NQ) '  LD  ' $@
+	$(Q)$(CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o $@ $^ $(TARGET_LDLIBS)
+
+target/reglib.o: $(TARGET_KEYS_FILE)
+
+target/%.o: %.c regdb.h
+	$(NQ) '  CC  ' $@
+	$(Q)$(CC) -c $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -o $@ $<
+
+
+host/crda: $(patsubst %,host/%,$(CRDA_OBJS))
+	$(NQ) '  LD  ' $@
+	$(Q)$(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ $^ $(HOST_LDLIBS) $(HOST_LIBS_NL)
+
+host/regdbdump: $(patsubst %,host/%,$(REGDBDUMP_OBJS))
+	$(NQ) '  LD  ' $@
+	$(Q)$(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ $^ $(HOST_LDLIBS)
+
+host/intersect: $(patsubst %,host/%,$(INTERSECT_OBJS))
+	$(NQ) '  LD  ' $@
+	$(Q)$(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ $^ $(HOST_LDLIBS)
+
+host/reglib.o: $(HOST_KEYS_FILE)
+
+host/%.o: %.c regdb.h
+	$(NQ) '  HOST_CC  ' $@
+	$(Q)$(HOST_CC) -c $(HOST_CPPFLAGS) $(HOST_CFLAGS) -o $@ $<
+
+
+keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem)
+	$(NQ) '  GEN ' $@
+	$(NQ) '  Trusted pubkeys:' $(wildcard $(PUBKEY_DIR)/*.pem)
+	$(Q)./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@
+
+verify: $(REG_BIN) host/regdbdump
+	$(NQ) '  CHK  $(REG_BIN)'
+	$(Q)./host/regdbdump $(REG_BIN) >/dev/null
+
+
+MKDIR ?= mkdir -p
+INSTALL ?= install
 
 ifeq ($(V),1)
 Q=
@@ -72,9 +247,6 @@ Q=@
 NQ=@echo
 endif
 
-INSTALL_EXECS	:= crda
-INSTALL_MAN	:= crda.8.gz regdbdump.8.gz
-
 $(REG_BIN):
 	$(NQ) '  EXIST ' $(REG_BIN)
 	$(NQ)
@@ -87,31 +259,6 @@ $(REG_BIN):
 	$(NQ)
 	$(Q) exit 1
 
-keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem)
-	$(NQ) '  GEN ' $@
-	$(NQ) '  Trusted pubkeys:' $(wildcard $(PUBKEY_DIR)/*.pem)
-	$(Q)./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@
-
-%.o: %.c regdb.h
-	$(NQ) '  CC  ' $@
-	$(Q)$(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
-
-crda: reglib.o crda.o
-	$(NQ) '  LD  ' $@
-	$(Q)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) $(NLLIBS)
-
-regdbdump: reglib.o regdbdump.o print-regdom.o
-	$(NQ) '  LD  ' $@
-	$(Q)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
-
-intersect: reglib.o intersect.o print-regdom.o
-	$(NQ) '  LD  ' $@
-	$(Q)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
-
-verify: $(REG_BIN) regdbdump
-	$(NQ) '  CHK  $(REG_BIN)'
-	$(Q)./regdbdump $(REG_BIN) >/dev/null
-
 %.gz: %
 	@$(NQ) ' GZIP' $<
 	$(Q)gzip < $< > $@
@@ -152,3 +299,4 @@ clean:
 	$(NQ) '    CLEAN'
 	$(Q)rm -f crda regdbdump intersect *.o *~ *.pyc keys-*.c *.gz \
 	udev/$(UDEV_LEVEL)regulatory.rules udev/regulatory.rules.parsed
+	$(Q)rm -rf host/ target/
-- 
1.6.3.GIT




^ permalink raw reply related

* [PATCH 3/5] Have the 'clean' target announce its presence.
From: Jon Loeliger @ 2009-06-30 21:19 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless@vger.kernel.org

Just like the other build and install targets, have the
clean target announce "CLEAN" too.

Signed-off-by: Jon Loeliger <jdl@bigfootnetworks.com>
---
 Makefile |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/Makefile b/Makefile
index 8dbdf14..776b259 100644
--- a/Makefile
+++ b/Makefile
@@ -149,5 +149,6 @@ install_man: $(INSTALL_MAN)
 	$(Q)$(INSTALL) -m 644 -t $(DESTDIR)/$(MANDIR)/man8/ regdbdump.8.gz
 
 clean:
+	$(NQ) '    CLEAN'
 	$(Q)rm -f crda regdbdump intersect *.o *~ *.pyc keys-*.c *.gz \
 	udev/$(UDEV_LEVEL)regulatory.rules udev/regulatory.rules.parsed
-- 
1.6.3.GIT




^ permalink raw reply related

* [PATCH 2/5] Separate install target into exec, udev and man sub-parts.
From: Jon Loeliger @ 2009-06-30 21:19 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless@vger.kernel.org

With the separate install sub-parts, the udev install can
be optional using the NO_INSTALL_UDEV option now.

Signed-off-by: Jon Loeliger <jdl@bigfootnetworks.com>
---
 Makefile |   23 ++++++++++++++++++-----
 1 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/Makefile b/Makefile
index 589c453..8dbdf14 100644
--- a/Makefile
+++ b/Makefile
@@ -72,6 +72,9 @@ Q=@
 NQ=@echo
 endif
 
+INSTALL_EXECS	:= crda
+INSTALL_MAN	:= crda.8.gz regdbdump.8.gz
+
 $(REG_BIN):
 	$(NQ) '  EXIST ' $(REG_BIN)
 	$(NQ)
@@ -113,12 +116,19 @@ verify: $(REG_BIN) regdbdump
 	@$(NQ) ' GZIP' $<
 	$(Q)gzip < $< > $@
 
-install: crda crda.8.gz regdbdump.8.gz
-	$(NQ) '  INSTALL  crda'
+
+install: install_execs install_udev install_man
+
+install_execs: $(INSTALL_EXECS)
 	$(Q)$(MKDIR) $(DESTDIR)/$(SBINDIR)
-	$(Q)$(INSTALL) -m 755 -t $(DESTDIR)/$(SBINDIR) crda
-	$(NQ) '  INSTALL  regdbdump'
-	$(Q)$(INSTALL) -m 755 -t $(DESTDIR)/$(SBINDIR) regdbdump
+	$(Q)for exec in $(INSTALL_EXECS) ; do \
+		echo "  INSTALL  $$exec" ; \
+		$(INSTALL) -m 755 -t $(DESTDIR)/$(SBINDIR) $$exec ; \
+		done
+
+.PHONY: install_udev
+install_udev:
+ifndef NO_INSTALL_UDEV
 	$(NQ) '  INSTALL  $(UDEV_LEVEL)regulatory.rules'
 	$(Q)$(MKDIR) $(DESTDIR)/$(UDEV_RULE_DIR)/
 	@# This removes the old rule you may have, we were not
@@ -129,6 +139,9 @@ install: crda crda.8.gz regdbdump.8.gz
 	$(Q)$(INSTALL) -m 644 -t \
 		$(DESTDIR)/$(UDEV_RULE_DIR)/ \
 		udev/$(UDEV_LEVEL)regulatory.rules
+endif
+
+install_man: $(INSTALL_MAN)
 	$(NQ) '  INSTALL  crda.8.gz'
 	$(Q)$(MKDIR) $(DESTDIR)$(MANDIR)/man8/
 	$(Q)$(INSTALL) -m 644 -t $(DESTDIR)/$(MANDIR)/man8/ crda.8.gz
-- 
1.6.3.GIT




^ permalink raw reply related

* [PATCH 1/5] Allow .config to supply optional local Makefile settings.
From: Jon Loeliger @ 2009-06-30 21:18 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless@vger.kernel.org

Signed-off-by: Jon Loeliger <jdl@bigfootnetworks.com>
---
 Makefile |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/Makefile b/Makefile
index b93b735..589c453 100644
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,5 @@
+-include .config
+
 # Modify as you see fit, note this is built into crda,
 # so if you change it here you will have to change crda.c
 REG_BIN?=/usr/lib/crda/regulatory.bin
-- 
1.6.3.GIT




^ permalink raw reply related

* [PATCH 0/5] Enhance CRDA's Makefile for cross building
From: Jon Loeliger @ 2009-06-30 21:18 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless@vger.kernel.org


This patch series enhances CRDA's Makefile to support both native
and cross built targets.


Jon Loeliger (5):
  Allow .config to supply optional local Makefile settings.
  Separate install target into exec, udev and man sub-parts.
  Have the 'clean' target announce its presence.
  Introduce separate HOST and TARGET compilation steps.
  Unbury Makefile-meta config definitions.

 Makefile |  281 +++++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 223 insertions(+), 58 deletions(-)



^ permalink raw reply

* Re: ath5k and Atheros AR242x - No scan results
From: Nick Kossifidis @ 2009-06-30 21:16 UTC (permalink / raw)
  To: Joel Roth; +Cc: linux-wireless
In-Reply-To: <20090630170916.GB5137@sprite>

2009/6/30 Joel Roth <joelz@pobox.com>:
> Hello all,
>
> I'd appreciate some help troubleshooting my wireless connection.
>
> I have a Toshiba Satellite L305 series laptop running Debian
> sid with a recent, stock Debian kernel version 2.6.29-2-486.
>
> $ lspci | grep Atheros
>
> 05:00.0 Ethernet controller: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter (rev 01)
>
> I am seeking to connect to a D-Link 614+ wireless router.
> For initial testing, the AP is unencrypted, unsecured.
>
> My wife's G3 i-Book with AfterTheMac USB wireless adapter
> connected just fine, on the first try.
>
> I believe I have the modules I should have:
>
> $ lsmod | grep 80211
> mac80211              139680  1 ath5k
> cfg80211               21576  2 ath5k,mac80211
>
> My wireless network interface is present:
>
> $ iwconfig wlan0
>
> wlan0     IEEE 802.11  ESSID:""
>          Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated
>          Tx-Power=0 dBm
>          Retry min limit:7   RTS thr:off   Fragment thr=2352 B
>          Link Quality:0  Signal level:0  Noise level:0
>          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
>          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
>
> $ ifconfig wlan0
>
> wlan0     Link encap:Ethernet  HWaddr 00:21:63:82:82:40
>          UP BROADCAST MULTICAST  MTU:1500  Metric:1
>          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>          collisions:0 txqueuelen:1000
>          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
>
>
> However, I don't find the D-Link 614+:
>
> $ iwlist wlan0 scan
>
> wlan0     No scan results
>
> And of course, dhclient fails to find a server.
>
> Am I missing something? What could I try next?
> I'd appreciate any pointers.
>
> Thanks.
>
> --
> Joel Roth

Hello ;-)

Can you please sent the dmesg output when ath5k loads ?
Also do you see any messages on dmesg while scaning ?




-- 
GPG ID: 0xD21DB2DB
As you read this post global entropy rises. Have Fun ;-)
Nick

^ permalink raw reply

* Re: [PATCH CRDA] Introduce separate HOST and TARGET compilation steps.
From: Jon Loeliger @ 2009-06-30 21:10 UTC (permalink / raw)
  To: Pavel Roskin; +Cc: John W. Linville, linux-wireless@vger.kernel.org
In-Reply-To: <1246313859.15956.29.camel@mj>

On Mon, 2009-06-29 at 18:17 -0400, Pavel Roskin wrote:

> 
> > @@ -1,3 +1,5 @@
> > +-include .config
> 
> This shouldn't be needed.  Variables can be set on the make command
> line.

Allowing the use of .config here is in the same style as iw's Makefile
and .config.  And, yes, the make command line does allow variables to
be set.  But here's what I'd have to supply:

        CC      := $(CROSS_COMPILE)gcc
        HOST_CC := gcc
        
        DESTDIR         := $(STAGING_DIR)
        
        HOST_PKG_CONFIG_PATH    ?= /usr/lib/pkgconfig
        TARGET_PKG_CONFIG_PATH  ?= $(PKG_CONFIG_PATH)
        
        STAGING_INC_DIR := $(STAGING_DIR)/usr/local/include
        STAGING_LIB_DIR := $(STAGING_DIR)/usr/local/lib
        
        KERNEL_DIR      ?= ../../kernel
        KERNEL_INC_DIR  := $(KERNEL_DIR)/include
        
        TARGET_CFLAGS   += -I$(KERNEL_INC_DIR) \
                           -I$(STAGING_INC_DIR)
        
        TARGET_LDLIBS   += -L$(STAGING_LIB_DIR)
        
        REG_BIN         := ../wireless-regdb/regulatory.bin

        HOST_USE_OPENSSL        := 1
        TARGET_USE_OPENSSL      := 1
        NO_INSTALL_UDEV         := 1

> > +MKDIR ?= mkdir -p
> > +INSTALL ?= install
> 
> That's unrelated to the purpose of your patch.
> 
> > +ifeq ($(V),1)
> > +    Q=
> > +    NQ=@true
> > +else
> > +    Q=@
> > +    NQ=@echo
> > +endif
> 
> And this is unrelated too.

Unrelated, perhaps.  I'll submit a separate patch to regroup
similar items.

> > +# Determine what target and host libraries and executables
> > +# need to be built as that will determine what libraries will
> > +# need to be found on the host or in the target environment.
> 
> That's unclear.

I'm not sure what is unclear here. Choosing the set of executables
determines what libraries are needed.

>   Also, most user don't cross-compile.

Some do.  I'm one of them.

>   It's better not
> to attract too much attention to the aspect important to you unless
> there is some trick here that everybody touching this Makefile needs to
> know.

OK.

> > -reglib.o: keys-ssl.c
> > +HOST_BUILD	:= $(patsubst %,host/%,$(BUILD))
> > +TARGET_BUILD	:= $(patsubst %,target/%,$(BUILD))
> 
> The word "target" is normally limited to the compilers and similar tools
> to denote what kind of executables or object files will be supported by
> the program.  It doesn't really apply here.

Right.  It does apply here.  I'm building on an X86 host for 
a PowerPC target.

>   If you look at the Linux
> build system, it has HOSTCC that produces tools for compiling and CC
> that produces the actual kernel.

Right. Like this:

	CC      := $(CROSS_COMPILE)gcc
        HOST_CC := gcc
        
> > -NL1FOUND := $(shell pkg-config --atleast-version=1 libnl-1 && echo Y)
> > -NL2FOUND := $(shell pkg-config --atleast-version=2 libnl-2.0 && echo Y)
> > +TARGET_NL1FOUND := $(shell PKG_CONFIG_PATH=$(TARGET_PKG_CONFIG_PATH) \
> > +			pkg-config --atleast-version=1 libnl-1 && echo Y)
> > +TARGET_NL2FOUND := $(shell PKG_CONFIG_PATH=$(TARGET_PKG_CONFIG_PATH) \
> > +			pkg-config --atleast-version=2 libnl-2.0 && echo Y)
> 
> Again, you are adding "TARGET" for no reason.

No reason except explicit clarity.

> > +	$(NQ) '    CLEAN'
> >  	$(Q)rm -f crda regdbdump intersect *.o *~ *.pyc keys-*.c *.gz \
> >  	udev/$(UDEV_LEVEL)regulatory.rules udev/regulatory.rules.parsed
> > +	$(Q)rm -rf host/ target/
> 
> Again, this is an unrelated change.

I'll submit a separate patch for the first, added line.

Thanks,
jdl




^ permalink raw reply

* Re: [PATCH] Add prism 2/3 usb adaptor firmware for use with staging/wlan-ng driver.
From: Karl Relton @ 2009-06-30 21:09 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: dwmw2, linux-wireless
In-Reply-To: <43e72e890906301217m2dec7bfaqea0472907531d21d@mail.gmail.com>

On Tue, 2009-06-30 at 12:17 -0700, Luis R. Rodriguez wrote:
> On Tue, Jun 30, 2009 at 12:05 PM, Karl
> Relton<karllinuxtest.relton@ntlworld.com> wrote:
> > Signed-Off-By: Karl Relton
> > Signed-Off-By: Mark S. Mathews
> 
> The commit log is empty. Where is this driver? Is it in staging at
> least? If so does this get users of the driver a usable firmware? What
> is the future of the driver BTW?
> 

Oops - put text in wrong part of patch documentation. I can move this up
to the 'commit log' part.

The driver is under 'staging' - maintained by Greg Koah-Hartman

The firmware blob in 'srec' format for prism 2/3 usb adaptors.
The driver will read the srec file using a standard request_firmware()
call, and will convert it into the appropriate binary format and upload to
the adaptor. Note the processing is left to the driver (rather than
pre-compiling) because the driver needs to insert runtime data obtained from
the adaptor into the blob. The appropriate insertion locations are conveyed
by the srec format.

Karl


^ permalink raw reply

* is there any HELLO message implemented for 802.11s mesh network
From: Bo Han @ 2009-06-30 20:15 UTC (permalink / raw)
  To: linux-wireless

to update and maintain physical/link layer information?  I haven't
found anything about it in the standard...

If it is, usually how often is this kind of message sent by a node?

Thanks,
-Bo

^ permalink raw reply

* Re: [PATCH] Add prism 2/3 usb adaptor firmware for use with staging/wlan-ng driver.
From: John W. Linville @ 2009-06-30 19:39 UTC (permalink / raw)
  To: Karl Relton; +Cc: dwmw2, linux-wireless, Luis R. Rodriguez
In-Reply-To: <1246388712.4949.52.camel@localhost>

On Tue, Jun 30, 2009 at 08:05:12PM +0100, Karl Relton wrote:

> +
> +--------------------------------------------------------------------------
> +
> +Driver: staging/wlan-ng - prism 2/3 usb 802.11 wireless lan adapters
> +
> +File: prism2_ru.hex
> +
> +License:
> +
> +The following binary firmware files are (c) Conexant, and do not fall
> +under the GPL or MPL.  They are assumed to have the same license as
> +their windows client drivers, ie everyone who bought a card that came
> +with a windows driver already has a copy of and license to use the
> +necessary firmware, albeit possibly an older version.  These were bundled
> +with linux-wlan-ng for convenience only, as many newer adapters 
> +(eg Prism 3 w/SSF) require a firmware download in order to function at 
> +all.
> +
> +As far as is known, the last copyright holder of these  
> +binaries was Conexant and that they were freely distributed.

Is this really good enough?  What is the difference between the above
and cutting firmware images out of the (freely distributed) Broadcom
drivers for Windows?

John
-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.
			¡Viva Honduras Libre!

^ permalink raw reply

* [PATCH] Add prism 2/3 usb adaptor firmware for use with staging/wlan-ng driver.
From: Karl Relton @ 2009-06-30 19:05 UTC (permalink / raw)
  To: dwmw2; +Cc: linux-wireless, Luis R. Rodriguez

Signed-Off-By: Karl Relton <karllinuxtest.relton@ntlworld.com>
Signed-Off-By: Mark S. Mathews <mark@linux-wlan.com>

---

 This firmware file can be installed and used as-is - it doesn't need any special
 pre-compilation since it is processed into the appropriate binary blob for
 the card by the driver itself.

 As far as is known, the last copyright holder of this  
 firmware was Conexant and that they were freely distributed.

 The file prism2_ru.hex is renamed from ru010803.hex, a
 secondary (STA/Adhoc/HostAP mode) firmware images for Prism 2/3 USB adapters

 WHENCE        |   24 +
 prism2_ru.hex | 3788 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 3812 insertions(+), 0 deletions(-)
 create mode 100644 prism2_ru.hex

diff --git a/WHENCE b/WHENCE
index 9076356..1e824ce 100644
--- a/WHENCE
+++ b/WHENCE
@@ -920,3 +920,27 @@ Source: usbdux/usbdux_firmware.asm
 Licence: GPLv2. See source code in usbdux/ subdirectory.
 
 Provided from the author, Bernd Porr <BerndPorr@f2s.com>
+
+--------------------------------------------------------------------------
+
+Driver: staging/wlan-ng - prism 2/3 usb 802.11 wireless lan adapters
+
+File: prism2_ru.hex
+
+License:
+
+The following binary firmware files are (c) Conexant, and do not fall
+under the GPL or MPL.  They are assumed to have the same license as
+their windows client drivers, ie everyone who bought a card that came
+with a windows driver already has a copy of and license to use the
+necessary firmware, albeit possibly an older version.  These were bundled
+with linux-wlan-ng for convenience only, as many newer adapters 
+(eg Prism 3 w/SSF) require a firmware download in order to function at 
+all.
+
+As far as is known, the last copyright holder of these  
+binaries was Conexant and that they were freely distributed.
+
+The file prism2_ru.hex is renamed from ru010803.hex, a
+secondary (STA/Adhoc/HostAP mode) firmware images for Prism 2/3 USB adapters
+
diff --git a/prism2_ru.hex b/prism2_ru.hex
new file mode 100644
index 0000000..f580985
--- /dev/null
+++ b/prism2_ru.hex
@@ -0,0 +1,3788 @@
+S315007E300000000560FA6201604A64A2DB00645ADB56
+S315007E30101060B4645ADB0460A2F1126002F92044A7
+S315007E302010BC40400960006218601964A2DB2F580C
+S315007E3030FFFF7F60C0642445A4807F670261020330
+S315007E30402358FFFF007C106057F90264405061FFF1
+S315007E3050FFFF007C106057F999FF0460FFE5FFFFD4
+S315007E3060FFFF98FF314480BC405199FF88EC0EE308
+S315007E307012E31DE322E32AE332E33AE300ED42E381
+S315007E30804AE352E35AE362E368E370E37AE308EEE7
+S315007E309082E38AE392E39AE3A2E3AAE3B2E3BAE3A4
+S315007E30A0016014E3016019E3016020E3016028E317
+S315007E30B021607DE768607DE710607DE77DE7F060F3
+S315007E30C07DE7A5607DE77DE736607DE76D607DE720
+S315007E30D098607DE739607DE73F607DE742607DE70A
+S315007E30E00C607DE7C2607DE77DE7A5607DE77DE7D5
+S315007E30F036607DE701607DE7AD607DE77DE7376021
+S315007E31007DE742607DE70E607DE7C2607DE7076012
+S315007E311080E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFD2
+S315007E312080E7FFFFFFFF06E3FFFF98FF01643DFB9D
+S315007E313088EC00ED08EEB0FEB1FEB2FEB3FEB8FE40
+S315007E3140B9FEBAFE1064404000644041404240549D
+S315007E31504055405E405F405101604C6300605A615D
+S315007E3160FC600066F960426458D059D9FD1FD0F1E3
+S315007E31703FF9FFFFD1F141F90F60C8630E60FE6132
+S315007E3180FE6000660760FE6458D059D9FD1F1E603A
+S315007E3190C86203609663006401005ADBFE1F1D60F1
+S315007E31A08865A5D1FFFF77FDAA7C096083F900605B
+S315007E31B02A630C6040610E60FE6458D159D9FD1FAA
+S315007E31C01C60A461A1D3FFFFE083CB8359D159D381
+S315007E31D0A4DBFC1F0060FE63FE600065454BDB6082
+S315007E31E0FE61FC600065FA60AE64654658D02B468B
+S315007E31F059D8FB1F0E63DC60FE61FB60AE646546DC
+S315007E320058D02B4659D8FB1F01609E63DD606E61E8
+S315007E3210FC601E64654658D02B4659D8FB1F0E634C
+S315007E3220DF601E61FD60CE64654658D02B4659D858
+S315007E3230FB1F3860686498FB97F36041DC84E0840A
+S315007E32406045E084E084C4830064C981CB8359DB16
+S315007E3250FE1F20A1FF60E065A58399FD97F3DB81C4
+S315007E3260DC84E084E084E084E084E0830064CB83D5
+S315007E327059DBFE1F598599F398F1604397F34447CE
+S315007E32802065DC818067404AC784BDDB2A44A3DB98
+S315007E32905C8A0EA30164A3DB02A314600264A3DB33
+S315007E32A006A302600264A3DB06A32744BDDB0AA451
+S315007E32B0CD814047E902006457DBC7837FA3E3875E
+S315007E32C0007F1AFB0E60026220600065A2D3FFFFBC
+S315007E32D0D480FFFF0B06E084E084E084CC841DFB73
+S315007E32E06544E084E084E0841CFB654480A4E0843D
+S315007E32F0E084E084CC841BFB7C631BF11AF39AFB8F
+S315007E3300604601FCDC84D08000FAFA049BFB1CF349
+S315007E3310604600A81DF1090300FA01FC604601FC27
+S315007E3320DC84D08000FAFA049BFB006400FA6344D6
+S315007E3330807F01FA1BF31AF1DC8450931760F864E0
+S315007E3340FBFB01603464FCFB3344F6FBEF6019E261
+S315007E335030E250E279E2016090E20160D0E2016003
+S315007E3360F9E20064405063FF00644054405540419A
+S315007E33704042405ED1FE82FF92FF98FF80600065EC
+S315007E33803244A485FC600066F860D662A2D00064F2
+S315007E33906440FF264067B4854552006440414046FE
+S315007E33A0404700E11E6078630F602C64A0DD1366E3
+S315007E33B03C6401FA0A6420FA87FF97FF66FFFFFFE7
+S315007E33C065FFFFFF64FFFFFF62FFFFFF61FFFFFFF9
+S315007E33D0186050650C64A5DB1960FC6491FB2DFFBB
+S315007E33E008600064C8813E63006459DBFE1F89FF66
+S315007E33F040761C605478FFFF9AFF20601065066059
+S315007E34008FF3FFFFFFFFB49CFFFF4455FFFFFFFFD7
+S315007E3410FFFF4055AEFF017C0660A2F9FFFF066006
+S315007E3420A0F3FFFF02B4A2DB0D60527C0660A7F913
+S315007E3430FFFF0660A8F9FFFF106427FBFFFFFFFF73
+S315007E34400BFFDDFEFC60006199FF0560FFE5FFFF77
+S315007E3450FFFF98FFFF60C0610C60D663FF60C065AA
+S315007E34606146A3D06546A3D8FB1F99FF0460FFE59E
+S315007E3470FFFFFFFF98FF314480BC40511160ECE0B6
+S315007E3480FFFFFFFF82FFA2FF0464404919FFA3FFEF
+S315007E349087FF36602878FFFF3A44FEFB3B44FFFBFE
+S315007E34A0FF00A1FFFFFFFD0098FF304402A800E168
+S315007E34B0070262FF63FF64FF65FF66FFA1FFFFFFF2
+S315007E34C082FF91FF99FF88FF6C4041FFC4E243FF74
+S315007E34D0404908E11C60CE78FFFF98FF304402A881
+S315007E34E000E1030292FFA1FFFFFF82FF98FF88FFA4
+S315007E34F048E20170BCFFB5FFCDE204E1186044628C
+S315007E3500A2D3C4E2AC8405740203A1FFF90000E1F4
+S315007E35100064404D30FB00E10864404C264402B412
+S315007E35204046B4F1026464566054CDE2C2649CFBAC
+S315007E3530C4E26C4044E264E246FF47FF9CFEFFFF26
+S315007E3540030401644BFB05FF9DFEFFFF03051B6025
+S315007E35504278FFFF99FF3C4410BC007F405C3E44AE
+S315007E35607CB408BC405E98FFFFFFFFFFFFFFFFFFB6
+S315007E3570FFFFFFFFFFFF99FF3D44F7B4405D98FFD5
+S315007E35800564CC84FFFFFD02FFFF99FF3D4410BC1E
+S315007E3590007F405D98FFBCFFFFFF076080E8FFFF6E
+S315007E35A0FFFFFFFF80E8FFFFFFFFB5FFFFFF07601E
+S315007E35B080E9FFFFFFFFFFFF80E9FFFFFFFFB7FF09
+S315007E35C0B4FF99FF3E4402BC007F405E98FFFFFF3A
+S315007E35D0FFFFFFFFFFFF46FF47FFFFFF68408A6052
+S315007E35E0006A8860006A1669FFFFFFFFFFFF01160B
+S315007E35F0FE00685E60401960207C166141D3FFFF45
+S315007E3600604080261C008A60006A80BC8860006AF2
+S315007E36106048966AFFFFFFFFFFFF0116FE00FFFF71
+S315007E362068408A60006A8860006A7FB46048966AED
+S315007E3630FFFFFFFFFFFF0116FE00FFFF68408A6067
+S315007E3640006A2740042A1E002840402B1B0099FF53
+S315007E36503A5C402701001300006000EAFFFFFFFF8F
+S315007E3660FFFF8BFF74407440744088FF316000EA30
+S315007E3670006000EAFFFFFFFF3A5C802BF7003060B8
+S315007E368000EA98FF006440470F602C64A0D7FFFFD6
+S315007E3690FFFF98FF304402A800E10E0383FF8DFFF3
+S315007E36A0006440404044404340424041296051646A
+S315007E36B0404E18600864404DF3E12760E478FFFFD2
+S315007E36C098FF304402A800E10202A1FFFFFF84FFBB
+S315007E36D088FF98FF99FFF2E6DAE698FF2960A664EE
+S315007E36E040404041CEF378FBFFFF0F60A063B0F30E
+S315007E36F0FFFFBDDBB864BDDB0264BDDB0464A3DB18
+S315007E37000A64404E0F609065B6F3FFFFA5DB016449
+S315007E371084FB006486FB85FB405C404B2960A67873
+S315007E3720FFFF98FF88E2304400E102A885FF02028F
+S315007E3730A1FFFFFF88FF99FF006000EBFFFFFFFF01
+S315007E3740006000EAFFFFFFFF4F60E0EA4F6000EB9C
+S315007E3750466063EA466036EB436040EA4360E4EBEC
+S315007E3760446052EA446034EB45607DEA456058EB3E
+S315007E377047608BEA4760D0EB486047EA4860C3EB18
+S315007E37804960A0EA4960FDEB4A60B2EA4A6034EBE2
+S315007E37904B60C1EA4B6058EB4C60D7EA4C60C0EB9D
+S315007E37A04D60EBEA4D60D0EB4E60A0EA4E6091EB49
+S315007E37B0406060EA4060FCEB416024EA4160A2EB37
+S315007E37C0426020EA426020EB8BFF74407440744076
+S315007E37D088FF316000EA006000EAFFFFFFFF3A5C87
+S315007E37E0802BF70000EAFFFFFFFFFFFF306000EA55
+S315007E37F03A40C62BFD003A404027FD0000EBA06014
+S315007E380000EBC06000EB306000EB066002643B5C60
+S315007E3810A0D93B5C4027FC00A0D9066000643A5CD8
+S315007E3820A0D998FFC06000EB00644AFB4BFBFFFF0C
+S315007E38308060076454FB69E1046000718DE2006478
+S315007E384040400360E864404B30606378FFFFA2FF30
+S315007E385098FF304402A800E1240386FF88FF0064B7
+S315007E3860404640497260584F9878FFFFBEFE4B60D7
+S315007E3870584F9478FFFF4D60584F9778FFFF6360EF
+S315007E3880584FCA78FFFF6560584F9878FFFF5D6096
+S315007E3890584F8278FFFF6D60584FD778FFFF13E150
+S315007E38A0A3FF4160CE78FFFF0F4E09606061414DF8
+S315007E38B040A1A2FF2860584F3278FFFFA3FF060380
+S315007E38C02D412860584F5478FFFF08FE0E4F664400
+S315007E38D014FBA2FF0A612860584F3278FFFF25430A
+S315007E38E08060106401FA06609EFD0960B061286002
+S315007E38F0584F3278FFFF25430660A5FD106128608C
+S315007E3900584F3278FFFF25430660A6FDA3FF07E1E9
+S315007E3910A3FF4076007C04600AF9AEFF3660287805
+S315007E3920FFFF007C0760D6F91C609D78FFFF2C4563
+S315007E39303500735CD09C0760D6F93044DFB44051C5
+S315007E39402D001C609178FFFF41FF29443D220B002C
+S315007E39501026F7000126140004260C0020260D00F2
+S315007E39601D607178FFFF304120B108B99FFE359109
+S315007E3970180514001D600378FFFF1D608E78FFFF1B
+S315007E398044FFC874CDE22944FEB440492441E18116
+S315007E3990C865C5940C65304420B43491A1FF2C458E
+S315007E39A0B83F1D60DD78FFFF1AFFF8006C40F60019
+S315007E39B041FF40649CFB0300C4E241649CFB62FFC2
+S315007E39C00865304420B434910064404930FB72521D
+S315007E39D0327B4DE23E44012603002744062209003F
+S315007E39E0274404BC40472FF3FFFF02BC2FFBC0FEDB
+S315007E39F0D5002FF3FFFF20BC2FFBC0FECF0044FF78
+S315007E3A00CD006840CB002944FBB44049007C0C6065
+S315007E3A1022F962FF08E1A1FFFFFFC8E2C8E2C4E225
+S315007E3A2043FFD3F3FFFF04A8FFFF3C02E8E27244A4
+S315007E3A30DC84F1A0204403071D606678FFFF012623
+S315007E3A40FB009DF33240202B0C00DC849DFB6055F1
+S315007E3A5072529EF30604DC849EFB9FF30204DC8492
+S315007E3A609FFBE4E29DF172476041645FE181F084F1
+S315007E3A70E181F08575F111602DF973444ADB75F3AA
+S315007E3A80D49CE08478F3CC83E084E084E084E08494
+S315007E3A900100C09CFE1FA064D080FFFFCD05304490
+S315007E3AA020BC4051BDFE0E600664A0D13C4480BC65
+S315007E3AB06440012A7FB4EFB4405C3D44EFB4405D80
+S315007E3AC03E44FCB4405EFBB4405E030030442C456D
+S315007E3AD034910160F9E2007C0760D6F91C60CE78ED
+S315007E3AE0FFFF2944F7B44049DDFE3044DFB4405140
+S315007E3AF03D4410BC405D0E600664A0D13C4480BC53
+S315007E3B006440012A7FB410BC405C3E4406BC405EE5
+S315007E3B101C60DF78FFFF1C60CE78FFFF036019E232
+S315007E3B2004612060AE62007C64520160F9E2FA6054
+S315007E3B300063FFFFFF1F7244EBA0E5A004040307AA
+S315007E3B40CD81017CF0025ADB644001260400EF60E1
+S315007E3B5019E2027C2B003C4480ACBEFFFFFFFCE0FA
+S315007E3B60FFFFFFFF405C0360E863FFFFFF1FEF6020
+S315007E3B7019E200723C4480AC405C6243096084F387
+S315007E3B806342F5A4E083FFFFFF1F7245FFFF724489
+S315007E3B90D4845ADB0402047C72408022FD000960D4
+S315007E3BA019E21160BDFFECE0EF6019E2106057F993
+S315007E3BB0006440491C60CE78FFFF007C0C6022F9D1
+S315007E3BC062FF08E1A1FFFFFFC8E2C8E2C4E243FF4D
+S315007E3BD03E44FCB4405E1B601462A2D3017C604707
+S315007E3BE010BF584F610007608074CDE204E1A1FFEB
+S315007E3BF0FFFF1B600462007C00E1584F5400584F63
+S315007E3C005200584F5000584F4E00017C584F4B0083
+S315007E3C10584F490093F300E1CC84E084E0851B6035
+S315007E3C201C62C682584F3F001B605462017C00E1D5
+S315007E3C30584F39003E44FBB4405E2D61CD81FFFF77
+S315007E3C40FD023E4404BC007F405E9B61CD81FFFF4A
+S315007E3C50FD0215607C646054CDE204E1A1FFFFFFA6
+S315007E3C603C4410BC405C0960C4646054CDE2A1FF54
+S315007E3C70FFFF327B4DE23D4480BC007F405DFFFF0F
+S315007E3C807FB4405DFFFFFFFFFFFF80BC405D62FFAC
+S315007E3C9094F3BFFE604005362DFF0736D8FE08E159
+S315007E3CA01C60CE78FFFFA2D302653D411E63E08491
+S315007E3CB0F9B1022404B9415D359DF91F415D5AD3A0
+S315007E3CC00663E084F9B1022404B9415D359DF91F8E
+S315007E3CD0415D6440012606003C41DFB12065359C8E
+S315007E3CE0415C03000165359D415DDA822F58FFFFF9
+S315007E3CF000649CFB0A64404C19FF2044012A0400A0
+S315007E3D00006440409DF307001AE1314401261BE121
+S315007E3D10A1FFFFFFB93F7245DC849DFB605565526E
+S315007E3D2011649CFB9EF30604DC849EFB9FF30204D7
+S315007E3D30DC849FFB0D60D9F3FFFF6040033A0700EA
+S315007E3D400D60DBF3FFFF00BCFFFF100205003CF1B8
+S315007E3D50FFFF644001260A0099FF3C4440BC007F79
+S315007E3D60405C98FF017C0D60DBF9080099FF3C44BE
+S315007E3D70BFB4405C98FF007C0D60DBF96440022690
+S315007E3D80070099FF3E4440BC007F405E98FF0500D9
+S315007E3D9099FF3E44BFB4405E98FF3DF3FFFFFEA40D
+S315007E3DA0FFFF1A0200643DFB99FF3D4480BC007F05
+S315007E3DB0405D98FF99FF3D447FB4405D98FFFFFFCD
+S315007E3DC0FFFFFFFFFFFFFFFFFFFFFFFF99FF3D4462
+S315007E3DD080BC007F405D98FF97000D60D8F3FFFFA3
+S315007E3DE06040012A2A007344E084E084E084E08413
+S315007E3DF0E084E084725CD084E7A03CF11E046440DB
+S315007E3E000126070099FF3C4440BC007F405C98FF3A
+S315007E3E10050099FF3C44BFB4405C98FF644002268F
+S315007E3E20070099FF3E4440BC007F405E98FF050038
+S315007E3E3099FF3E44BFB4405E98FF30F143FF644035
+S315007E3E40072603001F60CA78FFFF6C4003E13C46ED
+S315007E3E5007F21061604545D3FFFF6040202B2000AE
+S315007E3E60C3F3FFFF6040042A1B00D2F3FFFF6040CE
+S315007E3E700A371600F0F3FFFF604080260200012617
+S315007E3E80250038646048886A01000116FE000868CD
+S315007E3E908A6A086451FB0164F0FB0116FE00160077
+S315007E3EA0F0F3FFFF604080260200012A0F00806447
+S315007E3EB06048886A01000116FE0000688A6A00640E
+S315007E3EC051FB0064F0FB0116FE000000CFF3FFFFFE
+S315007E3ED0DC8002B0260325033FF3FFFF00BCFFFF15
+S315007E3EE020021B609865A5D37065D480FFFF0C0504
+S315007E3EF040F3FFFF02AC40FB6048946A0116FE0069
+S315007E3F003EF3FFFF04AC03003EF3FFFF06AC3EFB31
+S315007E3F106048926AD0F33FFBFFFFD1F341FB011667
+S315007E3F20FE0099FF3E44FDB401BD3D44E7B4455EC7
+S315007E3F30405DFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E
+S315007E3F4008BD0664455D98FFCC84FFFFFD02FFFF3A
+S315007E3F5099FF3E4477B480BC405E98FF3DF3FFFFF9
+S315007E3F6000BCFFFF170399FF3D4480BC007F405D88
+S315007E3F7098FF99FF3D447FB4405D98FFFFFFFFFFAA
+S315007E3F80FFFFFFFF99FF3D4480BC007F405D98FFA9
+S315007E3F9000643DFB31F3644500BC00640D030061A3
+S315007E3FA031FB1060A0637245FFFF04056544DC802B
+S315007E3FB0FFFF0302016440403100FF60F064D4805D
+S315007E3FC020A401052B00D480FFFF0106270002FEF8
+S315007E3FD0BDD3FFFF448A0224DD810224DD81BDD369
+S315007E3FE09DF16145C0840061022401B9C484605597
+S315007E3FF02A529DFB022401B9BDD39EF16145C08440
+S315007E40000061022401B9C4849EFB022401B9BDD39A
+S315007E40109FF16145C08430F1C4849FFB6440012AD0
+S315007E402008003C444042F8FB30F3FFFFFEB430FB11
+S315007E403006001E607878FFFF1E607878FFFF0764B3
+S315007E40409CFB22460FF029F26440012A030024607D
+S315007E40500778FFFF2260CC78FFFF2744042A0B00F7
+S315007E4060FBB440473C46006430FB02642FFBC0FE37
+S315007E40701E607878FFFF2744022A0A00FDB4404777
+S315007E4080006430FB06642FFBC0FE1E607878FFFF5F
+S315007E4090020A006460501E607878FFFF01602C740F
+S315007E40A0CDE246FF47FF016460FB83E1006526445F
+S315007E40B002260B003E443481FFFF0703455E2644FD
+S315007E40C002BC4046D1FE2144F9FB0C64404C19FFEC
+S315007E40D0A1FF4C4E01250300FFFFFFFFFFFFF060AF
+S315007E40E00078FFFF250099FFB5FFBCFF3C4410BC5E
+S315007E40F0007F405C3D4410BC007F405D3E447CB406
+S315007E410008BC405EFFFFFFFF98FFFFFFFFFFFFFF3C
+S315007E4110FFFFFFFF46FF47FFB7FFB4FFFFFFFFFF2F
+S315007E412084601D7D99FF3E4402BC007F405E98FF01
+S315007E413046FF47FF1E607878FFFF99FF3E44FDB439
+S315007E4140405E98FFB5FFBCFF46FFB7FFB4FFFFFF9B
+S315007E4150FFFF84601D7DB5FFFFFF99FF076080E945
+S315007E416098FFFFFFFFFF80E9FFFFFFFFB7FFB4FF6A
+S315007E4170FFFF99FF3E4402BC007F405E98FFFFFF33
+S315007E4180FFFF46FF47FF26430426030021604D7846
+S315007E4190FFFFFBB3434604BB2A4423FA2044E88050
+S315007E41A0006440409DF305047245DC849DFB6055AA
+S315007E41B0655224FA9EF30204DC849EFB27FA9FF363
+S315007E41C00204DC849FFB28FA2A44DC80FFFF01027E
+S315007E41D0588033F1F4B364543240012A08000FFC50
+S315007E41E0CBFEDCFE015D05FF1E607878FFFF264470
+S315007E41F0022632000FFC015DDCFE05FF2844803A74
+S315007E42002B0000F4FFFF07F050FE6440022A2400D4
+S315007E42101E60A663A3D108F2126260476041D18018
+S315007E42201E60A86319026140FE2208006245BDD366
+S315007E4230A5D0DA82D080C981F6010E0061400036B3
+S315007E424007006245A3D3A5D0FFFF9080FF2604001A
+S315007E42500164A3FB0064A2FB21462744042A1300C3
+S315007E4260FBB440472D44542A08002EF12B44D080BF
+S315007E4270704502286444C4906200006430FB026488
+S315007E42802FFBC0FE2D00022A2B00FDB440470064A2
+S315007E429030FB06642FFBC0FE23002A44DC80FFFF32
+S315007E42A00102588026432744802A17007FB4404760
+S315007E42B02744042A0800FBB44047006430FB0264AE
+S315007E42C02FFBC0FE0A002744022A0700FDB44047A2
+S315007E42D0006430FB06642FFBC0FE1E607878FFFF0D
+S315007E42E005649CFB2844A43A1D002444F0F1FFFF9C
+S315007E42F0644001260C0060400A3634F1143635F1EE
+S315007E4300373636F16E3638F16064C09C09006040FF
+S315007E43100A36F300143635F1373636F16E3638F115
+S315007E432060450A002D44402A07002EF12B44D0809A
+S315007E4330704502286444C4901E607878FFFF066448
+S315007E43409CFB2246046403FA00F2FFFF04FA006433
+S315007E435030FB01642FFBC0FE1E607878FFFF04648D
+S315007E43609CFB46FF47FF0A64404C19FF03E1A1FF11
+S315007E4370FFFFB93F08649CFBCFF3FFFFDC8002B0F2
+S315007E4380260325033FF3FFFF00BCFFFF20021B60D1
+S315007E43909865A5D37065D480FFFF0C0540F3FFFFBB
+S315007E43A002AC40FB6048946A0116FE003EF3FFFFB6
+S315007E43B004AC03003EF3FFFF06AC3EFB6048926A08
+S315007E43C0D0F33FFBFFFFD1F341FB0116FE0099FFC1
+S315007E43D03E44FDB401BD3D44E7B4455E405DFFFF0E
+S315007E43E0FFFFFFFFFFFFFFFFFFFFFFFF08BD066426
+S315007E43F0455D98FFCC84FFFFFD0299FF3E4477B46E
+S315007E440080BC405E98FF3DF3FFFF00BCFFFF1703B5
+S315007E441099FF3D4480BC007F405D98FF99FF3D44F7
+S315007E44207FB4405D98FFFFFFFFFFFFFFFFFF99FF11
+S315007E44303D4480BC007F405D98FF00643DFB214685
+S315007E44402A4423FA2044E880006440409DF3050414
+S315007E44507245DC849DFB6055655224FA9EF3020408
+S315007E4460DC849EFB27FA9FF30204DC849FFB28FAFA
+S315007E44702A44DC80FFFF0102588008290B0030F1B8
+S315007E4480FFFF64400722060043FF006430FB106492
+S315007E44902FFBC0FE2D440C2203000AB0083A0F0003
+S315007E44A02844682A01000B00264384BBF4B32146C8
+S315007E44B00FFC00644046015DDCFE05FF00000964DA
+S315007E44C09CFB006B2844B43A0D0027440622070065
+S315007E44D0F9B44047006430FB02642FFBC0FE2460C3
+S315007E44E0C578FFFFA4360C0004260D00274406225D
+S315007E44F00700F9B44047006430FB02642FFBC0FE20
+S315007E450024607378FFFF2844D43A260048E2274485
+S315007E4510FBB44047B6F3FFFF32FB1C4222460BF24A
+S315007E452003FA0CF2FFFF04FA34F2FFFFDC8434FA5E
+S315007E453014F20FB50FB4CC84948029F00402FB608C
+S315007E4540FF64A084030004646047B08429FA15F2F0
+S315007E4550FFFF007E15FA2000C43A05002744FDB40D
+S315007E4560404748E219002844042A0B003240042AB8
+S315007E4570080030F3FFFFFFFF022A08002560197846
+S315007E4580FFFF04260300202A010003001E607878C0
+S315007E4590FFFF1E607878FFFF0B649CFB1C42224661
+S315007E45A013F2FF656047248529F2FFFF6045042BE1
+S315007E45B0210016F2FFFF404321F2FFFF40440F64C5
+S315007E45C014F034F2A0810FB4C985D48010F20403AE
+S315007E45D02744402649002AF2F0F1FFFF6440012677
+S315007E45E00400607CC084C084C0842AFA274440BC10
+S315007E45F040473A0004274E0017F22BF040431FF245
+S315007E460021FA40446440012A030000642AFA290004
+S315007E46102544D4F3FFB56047FFB4D480FFFF010481
+S315007E462065442AF0FFFF644080271B00F0F1FFFF00
+S315007E4630644001260C0060400A3634F1143635F1AA
+S315007E4640373636F16E3638F16064C09C09006040BC
+S315007E46500A36F300143635F1373636F16E3638F1D2
+S315007E46602AF82744BFB44047224629F0006B6440AF
+S315007E46704027806BF360584FC178FFFFBCFF224610
+S315007E468029F2FFFF6045402B00002BF2FFFFFFFF64
+S315007E4690012616006544402A0900102707000CB43F
+S315007E46A06040083A03006544202A1000274404BC73
+S315007E46B0404739F3B4FF605B4DE22160AF78FFFF80
+S315007E46C02744402A030023609978FFFFB5FFBCFF8D
+S315007E46D046FF47FFB7FFB4FF99FF3E447CB408BC54
+S315007E46E0405EFFFF98FFFFFFFFFFFFFFFFFFFFFF1D
+S315007E46F0FFFF99FF3D4410BC007F405D98FFFFFFA2
+S315007E4700FFFFFFFFFFFFFFFFFFFFFFFFFFFFB7FF7D
+S315007E4710B4FFFFFFFFFF84601D7D99FF3E4402BC10
+S315007E4720007F405E98FFFFFF46FF47FF21609F7830
+S315007E4730FFFF0C649CFBB5F3FFFF6054CDE206E100
+S315007E4740CFF3FFFFDC8002B0260325033FF3FFFF96
+S315007E475000BCFFFF20021B609865A5D37065D480E0
+S315007E4760FFFF0C0540F3FFFF02AC40FB6048946AF6
+S315007E47700116FE003EF3FFFF04AC03003EF3FFFF8F
+S315007E478006AC3EFB6048926AD0F33FFBFFFFD1F357
+S315007E479041FB0116FE0099FF3E4401BC007F405E50
+S315007E47A098FF99FF3D44E7B4405D3E44FDB4405ECC
+S315007E47B03D4408BC405D98FF0564CC84FFFFFD0246
+S315007E47C0FFFFFFFFFFFF99FF3E4477B480BC405E4C
+S315007E47D098FF3DF3FFFF00BCFFFF160399FF3D44A4
+S315007E47E080BC007F405D98FF99FF3D447FB4405D6D
+S315007E47F098FFFFFFFFFFFFFF99FF3D4480BC007FD0
+S315007E4800405D98FF00643DFB2260CC78FFFF0E641E
+S315007E48109CFB13664642106000653C4629F22246A2
+S315007E4820A484B4BC29FA3C4613F0FFFF6447D4F354
+S315007E4830FFB56047FFB4D480FFFF01046544404561
+S315007E48402BF22CF060432DF222462BFC2CF82DFA0F
+S315007E48503C462EF22FF0604330F222462EFC2FF895
+S315007E486030FA2544F0F1FFFF644001260E006040D9
+S315007E48700A3634F1143635F1373636F16E3638F17E
+S315007E48806064C09CB5F3C0650B0060400A36F100DB
+S315007E4890143635F1373636F16E3638F1B5F3606556
+S315007E48A0C084C0843C461FF0C484C08322462AFC52
+S315007E48B00064404325440A36A06514365065373673
+S315007E48C01E656E360F654544F360584FC178FFFF0F
+S315007E48D0BCFF274402BC404739F3B4FF605B4DE220
+S315007E48E02160AF78FFFF0D649CFBD1F141F9214633
+S315007E48F020F2D4F3FFB56047FFB4D480FFFF0104F6
+S315007E4900654440450A367064143638643736156415
+S315007E49106E360B644044806725406E3A00644043A1
+S315007E492013664642D46429FA21462EF22FF060435E
+S315007E493030F222462BFC2CF82DFA2544F0F1FFFFAF
+S315007E4940644001260C0060400A3634F1143635F197
+S315007E4950373636F16E3638F16064C09C09006040A9
+S315007E49600A36F300143635F1373636F16E3638F1BF
+S315007E49702EF32246D084FFFF022800642AFAF360D3
+S315007E4980584FC178FFFFBCFF4E000F649CFB21464B
+S315007E499020F2D4F3FFB56047FFB4D480FFFF010455
+S315007E49A0654440450A367064143638643736156475
+S315007E49B06E360B64404413664642C46429FA25412A
+S315007E49C021462EF22FF0604330F222462BFC2CF845
+S315007E49D02DFA6144F0F1FFFF644001260C00604031
+S315007E49E00A3634F1143635F1373636F16E3638F10D
+S315007E49F06064C09C090060400A36F300143635F1C7
+S315007E4A00373636F16E3638F12EF32246D0842AFAC0
+S315007E4A108060006425406E3A00644043F360584FE0
+S315007E4A20C178FFFFBCFFB4FFFFFFFFFF1E607878F3
+S315007E4A30FFFF10649CFB1E607878FFFF1E6078780F
+S315007E4A40FFFF1E607878FFFF1C60A264A0D11C6009
+S315007E4A507264C084A0D3FFFFDC84A2DB6040003B8F
+S315007E4A60C6FE274406221F004CE20E64404C19FF08
+S315007E4A7003E1016460FB504B0B652E4437361565AA
+S315007E4A80143638650A367065A1FF6C44D480FFFF04
+S315007E4A900A0239F1FFFFC094CDE2A1FF6C44D43601
+S315007E4AA00500C4360300F3606778FFFFA1FF4C4E16
+S315007E4AB02044E884524A010570800064CC902E44DE
+S315007E4AC0802B2EFBB9F150FEA1FF6C44D080BAF14B
+S315007E4AD0FFFFA1FF6C44D080BBF1FFFFA1FF6C44BA
+S315007E4AE0D080FFFF0101DF00A1FF6C4408647041A6
+S315007E4AF02B45C581404C04243261615019FFA1FFCC
+S315007E4B006C4099FF3E44FDB4405E0160296440538B
+S315007E4B1028934053289340532893405328934053D9
+S315007E4B20289340532893405328934053289398FFC5
+S315007E4B300115B900B5F36C40FBA46054CDE2086460
+S315007E4B40404C19FFF9B44047006430FB01642FFBEB
+S30F007E4B50C0FE48E2F3608378FFFFA3
+S315007FE0004B74CDE20061414D264002260A003E4513
+S315007FE0103581415E030225602478404AD1FE214442
+S315007FE020F9FB214646454CE22E44007F26FA01162F
+S315007FE030FE00685E60457C690E64404C19FF03E113
+S315007FE040126440469CFE404A0304F160C178FFFF9C
+S315007FE050016460FB00644BFB504B2E4420FA39F180
+S315007FE060FFFF0116FE00685E655F604725FA7E69E1
+S315007FE070A1FF6C4321FCC394CDE20D60D3F3FFFF78
+S315007FE080604001260300F3606778FFFF2E446040FF
+S315007FE0906E36190037360C00143607000A36010033
+S315007FE0A0FFFFEB83EB83EB831A00EB83EB83170096
+S315007FE0B0E385C785E383E383E383C783EB83EB83CF
+S315007FE0C0EB83EB830C00E385C785E383E383E383FD
+S315007FE0D0C783EB83EB83EB83FFFF8027CF83011619
+S315007FE0E0FE00685E604010261800F0F3FFFF604078
+S315007FE0F080260200012A2900806460488064F0FB44
+S315007FE100886A01000116FE0000688A6A006451FB76
+S315007FE1100116FE000064F0FB1800F0F3FFFF60407D
+S315007FE1208026020001261100386460488064F0FB77
+S315007FE130886A01000116FE0008688A6A086451FB36
+S315007FE1400116FE000164F0FBFFFFA1FF4C481FFC98
+S315007FE150FCA3A1F14343A1FF4C4ED380204403048B
+S315007FE160F3606778FFFFE884524A34057080320097
+S315007FE17031156C402044E884524A022870801C6026
+S315007FE180A264A0D11C608A64C084A0D3FFFFDC8414
+S315007FE190A2DB6040003BC6FE3BF37045605442FE07
+S315007FE1A0D48021630105654460509CFD274480BC73
+S315007FE1B040470864404C19FFF3606778FFFF4EF1D4
+S315007FE1C0BF60FF6528446440802A09001CFAA48446
+S315007FE1D040480500CD9028444027F1001CFA526341
+S315007FE1E0BDDAFFFFA1FF6C452E44BDDA6544B9F168
+S315007FE1F0BDDA50FEDC856040012A0600A1FF6C4136
+S315007FE200264420BC40460300A1FF6C41D080BAF172
+S315007FE2106144BDDADC81B585D0802844042A0C00B0
+S315007FE220E881E9813EB10F602E7C41D1FFFF444DED
+S315007FE230802B02002B50B000A1FF6C44BDDABBF1EE
+S315007FE240DC81B585D0802E44802B2EFBFFFFA1FF7E
+S315007FE2506C44BDDA3240012A0300F3608878FFFF01
+S315007FE2602D400C2234002D40082A0300A1FF6C4468
+S315007FE270BDDA006438FA3FFA464E086470412B4592
+S315007FE280C581404C0424326161506A412D44082A7D
+S315007FE2900400A1FF6C44BDDA2D4400650301082A02
+S315007FE2A00A0011001065604046360400443A0700B4
+S315007FE2B0274040263065348DF26083786145082A91
+S315007FE2C0FA000C3A3065348DF2608078FFFF454E58
+S315007FE2D06041E181F084E181F084E181F085A1FFF5
+S315007FE2E06C44BDDA94846041E181F084E181F084FD
+S315007FE2F0E181F085A1FF6C44BDDA94846041E181C0
+S315007FE300F084E181F084E181F08410FA26442026AE
+S315007FE3104D002D4453013240022A030050BC404D2C
+S315007FE3204F00A1FF6C4470442B45C48423450424CD
+S315007FE3300A646541E981F7A160500307F060D978E7
+S315007FE340FFFFA1FFCD816C446040FB02A1FF6C44BF
+S315007FE350A1FF6C44234401B4FFFF0002A1FF6A457D
+S315007FE3600864404CFFFF19FF6540402701000015F8
+S315007FE3706C40274480BC404722649CFBF3606778EF
+S315007FE380FFFF274480BC404722649CFB3BF321F080
+S315007FE3902B45C084FFFF04243264D480FFFF02280C
+S315007FE3A065447045C490F3606778FFFF26412E442D
+S315007FE3B000BCEFB1082440B94146020070BC404D15
+S315007FE3C0A1FF6C44BDDA01612844032B00616040E4
+S315007FE3D0402702B92344E8A4414E0126FAA42840E7
+S315007FE3E04027F8A4404338FAFFFFA1FF6C44BDDA0B
+S315007FE3F023473FFA70442B45C4840865042432645E
+S315007FE4006050454CA1FF6C44BDDAA1F12344D08016
+S315007FE410FFFF0304F3606778FFFF2E4403260F0098
+S315007FE4202343A1FF6C4434FACF83DF8304030602C0
+S315007FE430F2608078FFFFF2606378FFFF3600A1FF0E
+S315007FE4406C44BDDA2E40012A1F00A1FF6C44BDDA61
+S315007FE450FFFFA1FF6C44BDDA2E4002261100234345
+S315007FE460CF83DF8309030403A1FF6C4437FA1D00C2
+S315007FE470A1FF6C4437FA4400A1FF6C4437FA2300AE
+S315007FE480A1FF6C4437FAFFFFA1FF6C44FFFF1AFA26
+S315007FE4902343A1FF6C44FFFF1BFAB0FF015DDCFE47
+S315007FE4A005FFCF83DF830F031C0300F4026246451B
+S315007FE4B07C61A1FFC981EC445ADAFB1CF61D111E53
+S315007FE4C06140003A080000F4046246457A61A1FF84
+S315007FE4D06C44A2DA0600A1FFDA8200646C44A2DAF9
+S315007FE4E0C9812844402B0B00B1FFA1FF6C44FFFF7D
+S315007FE4F046FBFFFFA1FF6C44FFFF47FB0000214661
+S315007FE500A1FF6C406A454864234001260300A1FFB2
+S315007FE5106C400600CC84FFFF03036A400323FA00A6
+S315007FE52099FF3E44FDB4405E19FF01602964405364
+S315007FE530289340532893405328934053289340531E
+S315007FE540289340532893405328934053289398FF0A
+S315007FE5503244012A0F0047FF2644FDB484BC654040
+S315007FE5604027010001157FB419FF40466C40F360D8
+S315007FE5704C78FFFF654040270100621519FF246430
+S315007FE5809CFB48E200642EFBCFF3FFFFDC8001B0EB
+S315007FE590290328032D40102A250041F3FFFFCC8451
+S315007FE5A041FB20021B609865A5D37065D480FFFF71
+S315007FE5B00C0540F3FFFF02AC40FB6048946A0116EE
+S315007FE5C0FE003EF3FFFF04AC03003EF3FFFF06AC05
+S315007FE5D03EFB6048926AD0F33FFBFFFFD1F341FBDE
+S315007FE5E00116FE00274406220700F9B4404700645F
+S315007FE5F030FB02642FFBC0FE1C60A264A0D11C60AE
+S315007FE6006E64C084A0D3FFFFDC84A2DB6040003B46
+S315007FE610C6FE0000284440270300F3605578FFFFBD
+S315007FE620006422FA264404BCFDB44046254406FA1B
+S315007FE630604601F2615CD09EFFFF032B01FA350035
+S315007FE640B5F36C40FBA46054CDE22D400C26090047
+S315007FE650254406FA604601F2615CD09EFFFF032BDC
+S315007FE66001FA284458360D002D44202A0A005A2ADA
+S315007FE6700300704400BCFFFF47FF23632160BA7825
+S315007FE6809CFD264484BC2D400C22020040460D0092
+S315007FE690FDB4FC0023649CFB254406FA604601F228
+S315007FE6A06145D49EFFFF032B01FA214608290B0003
+S315007FE6B030F1FFFF6440072E060043FF006430FB06
+S315007FE6C010642FFBC0FE47FF20609D78FFFF086424
+S315007FE6D0404C19FF274406220900F9B440470064DD
+S315007FE6E030FB02642FFBC0FE48E20D0008290B00B9
+S315007FE6F030F1FFFF64400722060043FF006430FBD2
+S315007FE70010642FFBC0FE26649CFBF3605578FFFFE9
+S315007FE71000702D440E2217002844D4360400343668
+S315007FE7202C00C43A04000864F2608278404C80264C
+S315007FE7300A00402A080030220600A1FF6C5CBDD883
+S315007FE740FFFF543AF000A1FF6C44BDDA0161284413
+S315007FE750032B00616040402702B9414EA1FF6C4404
+S315007FE760BDDA2844B4360900A4360700E43605002E
+S315007FE77044360300F160E078FFFF0864F26080783A
+S307007FE780404C86
+S315007FE78251F1254464410A3600B9143601B9373648
+S315007FE79202B96E3603B91B609864A0D377F36040E3
+S315007FE7A2302A0500006560400E361065B5816145E9
+S315007FE7B224446048906A60472341E181FFFF011646
+S315007FE7C2FE0060488E6A25440A3606001436040027
+S315007FE7D20464022484640300006402248064224663
+S315007FE7E228F069830116FE0065488A6AFFFFFFFFEC
+S315007FE7F2FFFFFFFF0116FE0060488C6A29F28BFF3E
+S315007FE8026040402B02007440744088FF0116FE0070
+S315007FE81202E10864404C294401BC404919FF526316
+S315007FE822BDD030F343FF604007220500006430FB12
+S315007FE83210642FFBC0FE03E199FF076000E8FFFF2C
+S315007FE842FFFFFFFF80E8FFFFFFFF98FF64440CB0E6
+S315007FE852083A0600046764411CF0A084B084615CB8
+S315007FE862604D6047604DFFFFFFFFA1FFB5FFBBFF16
+S315007FE872444832649CFBBDD2FFFFA1FF604DA1FFDE
+S315007FE8826047604D264402B44046016128445036B3
+S315007FE8920100803604B9414EBDD2FFFFA1FF604D14
+S315007FE8A2A1FF6047604D3240082A05002DFF1860A0
+S315007FE8B244622464A2DBBDD2FFFFA1FF604DA1FFAC
+S315007FE8C26047604DBDD2FFFFA1FF604C2844C4362E
+S315007FE8D21500D4361300BDD2FFFFA1FF604CBDD217
+S315007FE8E2FFFFA1FF604CBDD2FFFFA1FF604C284412
+S315007FE8F2B4360400E4360200A43A0300F5603B789E
+S315007FE902FFFFBDD2FFFFA1FF604C7F65BDD2FFFF38
+S315007FE912A1FF604C2E412844032BFEB16040402765
+S315007FE92202B9BDD2FFFFA1FF604C2344CC84DC84B5
+S315007FE9320303030208B9010010B9BDD0414EA1FFFE
+S315007FE942FFFF644C2E4403223000012A0F00BDD202
+S315007FE952FFFFA1FF604CBDD2FFFFA1FF604CBDD27E
+S315007FE962FFFFA1FF604C2E44022A1F00A1FF42F344
+S315007FE97243F3604C03F004F4604301F26442A484DF
+S315007FE98204A4D081A1FF634C23432E44102A0600A0
+S315007FE992A2D2FFFFA1FFFFFF604F6500E2D2FFFF1A
+S315007FE9A2A1FFDA82C981604E510018220700102A20
+S315007FE9B2A50003F004F4006164425000042A320089
+S315007FE9C200F4FFFF01F22343A481A1FFFFFF7244FC
+S315007FE9D260450305FF37F02A10A4604C9DF30404BB
+S315007FE9E2DC849DFB60556552A1FFFFFF604C9EF361
+S315007FE9F20304DC849EFBFFFFA1FFFFFF604C9FF3B6
+S315007FEA020304DC849FFBFFFFA1FF0C62604CF8A32B
+S315007FEA122E44FBB4404E6544DC80F8A10102588047
+S315007FEA227F650F00234303F004F47F6501F264429E
+S315007FEA32A48404A4D081050000F4FFFF01F20462DE
+S315007FEA42A481A2D2C981A1FFE04CDA82FA1CF41D0D
+S315007FEA520A1E6140003A020000F40462A2D2FFFF5E
+S315007FEA62A1FFFFFF604D2844402B0400A1FF604EAB
+S315007FEA72A1FF604CA1FFC3603364604EA1FFFFFF1D
+S315007FEA8202E12840D43A03000864404C19FF625CD5
+S315007FEA927F26020000F4047C664422460BF80CFAB9
+S315007FEAA234649CFBC8612840D43A0D0004E12544B6
+S315007FEAB26E360900373607000A36466414362364F3
+S315007FEAC26054A1FF02E1CD816A4406034026040019
+S315007FEAD2802A0300F80B0100FFFFB4F3B5F1E0844F
+S315007FEAE2C094CDE23240202B0600017B4DE202E14B
+S315007FEAF2A1FFFFFF44E20564CC84FFFFFD02FFFF17
+S315007FEB0299FF3E447DB408BC405E98FF0564CC8481
+S315007FEB12FFFFFD02FFFFFFFFFFFF99FF3D44F7B4B3
+S315007FEB22405D98FF006B99FF3D4410BC405D3E44BB
+S315007FEB32FEB4405E98FFBCFF2844402B190099FF24
+S315007FEB42006000EAFFFFFFFFFFFF8BFF7440744008
+S315007FEB52744088FF316000EA006000EAFFFFFFFF32
+S315007FEB623A5C802BF700306000EAFFFFFFFF98FFD9
+S315007FEB72076080E8FFFFFFFFFFFFFFFF80E8FFFFE1
+S315007FEB82FFFFFFFFFFFF0864404C19FFFFFFB7FF40
+S315007FEB92B4FFFFFFFFFF84601D7DB5FFFFFF99FF77
+S315007FEBA2076080E998FFFFFFFFFF80E9FFFFFFFF16
+S315007FEBB2B7FFB4FFFFFF99FF3E4402BC007F405E72
+S315007FEBC298FFFFFFFFFFFFFFFFFF46FF47FF2F581D
+S307007FEBD2FFFFBE
+S315007E4B5A29F2FFFF60450CB408A865440903F0B440
+S315007E4B6AB0A84AF3050306BC4AFB30606378FFFFAA
+S315007E4B7A08644AFB010B0800076080E8FFFFFFFF17
+S315007E4B8AFFFF80E8FFFFFFFF99FF00EA3B444027CD
+S315007E4B9AFD0098FF00EB1BF24CF16040C027050032
+S315007E4BAA6440012A1000067E1B00C02B0500644065
+S315007E4BBA082A0900667E1400402B0E006440022AEB
+S315007E4BCA0200267E0D00206000EA4AF3FFFF04BC3F
+S315007E4BDA4AFBF6604F78FFFF6440042AF400467E5D
+S315007E4BEA237F60431AF0FFFF6444E07F99FF405BB0
+S315007E4BFA6447E17F405B1BF0FFFF6444E27F405BD4
+S315007E4C0A98FF6047604154F3CB82605CFDA4E083E3
+S315007E4C1A99FF5AD3FFFF405BFC1FA06000EBC06082
+S315007E4C2A00EB445B98FF336000EB4AF3FFFFF7B471
+S315007E4C3A4AFB046400656441448900F038F2444ABA
+S315007E4C4AC49C38F8288764473FFAB3FF99FF3044F5
+S311007E4C5A02BC405198FFF560EA78FFFF2F
+S315007FEBD406604063FFFFFF1F30606378FFFF2A46AE
+S315007FEBE42943274100A1A3D02B0399FF3B40802BC8
+S315007FEBF4FD0098FF9F847FB5D58065440104DC8141
+S315007FEC0461456457C981775F6057FFFF775FBDDAD8
+S315007FEC14010F2C00A3D0F5022744D481414710036A
+S315007FEC2400F20463AC86404A4A03A3D00129E2007A
+S315007FEC344BF3FFFF6040012ADD0026606278FFFF09
+S315007FEC443D4638F22A466040012A2700A3D27F2612
+S315007FEC54050000F20463AC86A3D231036057FFFF3D
+S315007FEC64775F6057FFFF775FA3DA17002744D58561
+S315007FEC74C48141470B0363407F26050000F204638A
+S315007FEC8400A8404A1C034349414716003D4638F2D3
+S315007FEC942A466040012A0100F60099FF3044FDB4FC
+S315007FECA4405198FF4AF3007C02BC4AFB3D460FF273
+S315007FECB44447604004260B0030606378FFFF3D467F
+S315007FECC40FF0FF60F765644326605E78FFFF26607A
+S309007FECD43378FFFF0E
+S315007E4C664AF3FFFF604004262A003D460FF046F3D0
+S315007E4C766443802A240099FF3B40802BFD006057C3
+S315007E4C86FFFF775F6057FFFF775F3B40802BFD0018
+S315007E4C9698FF47F3FFFF6057FFFF775F3D4638F085
+S315007E4CA6FFFF6440012604006057FFFF775FFFFF24
+S315007E4CB6FF60F7650214A783010008BB0FFC99FF08
+S315007E4CC63044FDB4405198FF2C44FDB4404C2060E0
+S315007E4CD600EA00EBA06000EB306000EB3060AE7859
+S315007E4CE6FFFF0660A0F3FFFF6040FF2203002760FA
+S315007E4CF6E478FFFF0660C1F3FFFF604000361900C9
+S315007E4D060C6004F5FFFF46452760584FCE78FFFFB9
+S315007E4D16260208F018600864D0800EF2040301BCF1
+S315007E4D260EFAD2FE060060400122030003BC0EFA8E
+S315007E4D36D0FE0660A7F10660A8F3FFFFD084FFFFCC
+S315007E4D46FF221A000764785CC09C076004F900603F
+S315007E4D569B64785CC098FFFF2760E478FFFF664415
+S315007E4D6600A40EF2F90303BC0EFAD0FE2760E478A1
+S315007E4D76FFFF27603978FFFF186008644047276083
+S315007E4D86584F3C78FFFF0828E70046432344F4FB4A
+S315007E4D96F0020EF0FFFF644401BC0EFA0163066064
+S315007E4DA6C1FD0660A0FD007C664501F2FFFF6041FF
+S315007E4DB67FB4C09C61448027020000F4F6006444FA
+S315007E4DC63FB4F6A0FFFF010616007F7C6144A184F0
+S315007E4DD68EA00A7C0305C18301FC0D007C6401FA64
+S315007E4DE606609EF3FFFF604300FC066091F1016458
+S315007E4DF6B09C066091F9654601F2FFFFF8A5FFFFB6
+S315007E4E060107016544618BFF9AFF06608FF1106488
+S315007E4E1630956143BDD2FFFF6056BDD2FFFF605619
+S315007E4E26BDD2FFFF6056BDD2FFFF60568DFF9AFF4D
+S315007E4E36665063516552715CD380FFFF0D028060BA
+S315007E4E467F64725CA484FFFFD080FFFF05027044F8
+S315007E4E56665CD080FFFF0103EB00A9FF06608FF13B
+S315007E4E66FFFF445598FF665C07600AF92760E4787B
+S315007E4E76FFFF27D3FFFF00A860460EF2040305B0A8
+S315007E4E8609F2F902010008FE2F58FFFF9AFF364403
+S315007E4E9698FF802A06000660A0F3FFFFFFFFFF222B
+S315007E4EA603002760C978FFFF06608FF19AFF40648C
+S315007E4EB6FFFFB084FFFF4055FFFFFFFFFF60BF6425
+S315007E4EC6FFFFA084FFFF4055FFFFFFFF00600066E1
+S315007E4ED60D605063A3D0FFFF0D604E64A0D264457D
+S315007E4EE6FFFFD480FFFF52036043BDD4FFFF01F26E
+S315007E4EF6FFFF6041802B060080600965D580FFFF37
+S315007E4F06010565410865D585664444619AFF066056
+S315007E4F168FF1106430958BFF6143BDD2FFFF6056DD
+S315007E4F26BDD2FFFF6056BDD2FFFF6056BDD2FFFFE4
+S315007E4F3660568DFFFFFF665063516552FFFFFFFF8A
+S315007E4F46FFFFFFFF715CD380FFFF0D0280607F64EB
+S315007E4F56725CA484FFFFD080FFFF05027044665C08
+S315007E4F66D080FFFF0103E700A9FF06608FF1FFFFF2
+S315007E4F76FFFF445598FF665C07600AF9017C06606A
+S315007E4F86A0F9FFFF007C0660C1F9FFFF076004F308
+S315007E4F96FFFF6058FFFF25441AF11BF1D080D080B3
+S315007E4FA60E0408061CF11DF1D080D0800804020688
+S315007E4FB608FE0500254601F00367A08594802F58D6
+S315007E4FC6FFFF83FF98FF8BFFA1FFFFFFBA3F276098
+S315007E4FD6F86127D30E4C414E4045604600A809F23D
+S315007E4FE60603404B2860E378FFFF2B44F5000C4E04
+S315007E4FF62E58FFFF254608F02743A4D55BD34645A4
+S315007E500663456443604100A80064A3DBBEDB0402FD
+S315007E501665432544BFDB050061440AFA614625449D
+S315007E502609FA254408FE27430503604609F208FC6D
+S315007E503600A8FA006644A5DB2E58FFFF2841584F86
+S315007E50460E002E58FFFF284140A1584F0800050343
+S315007E50562841584F2600584F56002E58FFFF9AF382
+S315007E50667C6300BE40451B0300656544DC8584A1E2
+S315007E507600F2060601FC00A86046F70240450F00D0
+S315007E5086334454933344F6FB80607C6401FA0064B1
+S315007E509600F000FAD0809AF902029BF908FE2F5894
+S315007E50A6FFFF6643254605FC06FC614402FA01F0CF
+S315007E50B60367B08400F03C7E01FA046403FA04F8C2
+S315007E50C600640C61106359DAFE1F27FA2F58FFFF1C
+S315007E50D6054C7C61584FC300806313032C46BFD0B4
+S315007E50E62546FFD82C46FB1D25460064D08009FA48
+S315007E50F60AFA0503644601F00867C08401FA584F2A
+S315007E510602002E58FFFF274300BB25460D03BED35E
+S315007E511608FC00A8FFFF03022544A3DB04000AFA67
+S315007E51266046254409FABEDB2F58FFFF074C584FCB
+S315007E513628000C47584FE7002E58FFFF074C584F5E
+S315007E514620000C47584F58002E58FFFF074C584FE5
+S315007E515618000C47274400BE08F0110309F22543C2
+S315007E516609FC634627430AFC09FA08F800A8664343
+S315007E51760302644458DD0300604625440AFA2E5827
+S315007E5186FFFF254608F209F000A8404717030AF2F4
+S315007E5196644300BB2742DA820824A2DB00A8CA82C1
+S315007E51A60202A2DD0200604609FC00BB63460828B1
+S315007E51B60AFA2546006409FA0AFA08FA2F58FFFF04
+S315007E51C6254601F200F2FFFF0323110000A8604682
+S315007E51D60C0301F07867A080F8670703C08401FA9E
+S315007E51E62546006400FA254405FA584FCA00584FEC
+S315007E51F62700D1FE2E58FFFF274300BB2546100308
+S315007E5206A3D308FC00A809FA03022544BEDB0400E4
+S315007E5216604625440AFA254600640AFA2544A3DB37
+S315007E52262F58FFFF9BF305F000BE9BF9254402022D
+S315007E52369AFB010000FA25467C6401FA2F58FFFF89
+S315007E52469BF3006100BE2544020300FA01009AFB29
+S315007E5256604600F2664300BEDD81FB029BFD33455A
+S315007E526645933344F6FB2F58FFFF254605F006F297
+S315007E527605FAD08064430E03604601F08067B084EB
+S315007E528601FA00F0006400FA644605FC4645584F6E
+S315007E5296D700D1FE2E58FFFF006646452943FCA35E
+S315007E52A66644BDDB2544BDDB0064BDDB03611A6552
+S315007E52B6186030634349A3D306A300A8CD810402B2
+S315007E52C6F9022760E478FFFF0126E600D480604572
+S315007E52D6E305F6A3BDD1BDD144474448444518608F
+S315007E52E6626444D7FFFFFFFF9AF3334100A8404529
+S315007E52F60F03604680607C6401FA4D933344F6FB69
+S315007E5306006400F000FAD0809AF902029BF908FE44
+S315007E53162F58FFFFA2FEFFFF0D05A0FEFFFF070526
+S315007E5326A3FEFFFF0A05A1FEFFFF0A041900205809
+S315007E5336FFFFFFFF50641FFB100051641FFB0D002D
+S315007E534660641FFB0A0099FF304450BC405198FFAB
+S315007E535699FF30447DB4405198FFA1FFFFFFBB3FC6
+S315007E536600641FFB3C44AC8483F3F70202A8006408
+S315007E53760A0283FB84FB85FBCAFE0064404B86FBE2
+S315007E53862960A678FFFF83F384F302A802A80B02A0
+S315007E5396006485FB83FB84FB0064404B86FBCAFE6A
+S315007E53A62A602678FFFF85F100646441020284FB4B
+S315007E53B6CAFE01641FFB6140013A0D001860286231
+S315007E53C6A2D3FFFF00A860460302FEB485FB030058
+S315007E53D62A602C78FFFF84F386F301A802B00102C9
+S315007E53E60A031760FC62A2D3FFFF00A86046D803B5
+S315007E53F62A602C78FFFF2B4400A8604615030064BE
+S315007E5406404B0F609665A5D10F609264A0D90F605A
+S315007E54169865A5D10F609464A0D90F609A65A5D1CB
+S315007E542658F92C607F78FFFF1760FC62A2D3FFFFD8
+S315007E543600A860460E021760F862A2D3FFFF00A898
+S315007E54466046010306000064405CF7FB2960A67889
+S315007E5456FFFF0D60D3F3FFFF01B4FFFF080222F0C4
+S315007E54660464B084A2DA465C2D608678FFFF29F056
+S315007E5476FFFF6440402703002A60EB78FFFF99FF13
+S315007E54863A5C1C6033F998FF4FF350F1CC844FFBA0
+S315007E5496040343F3FFFFFFB40D004FF942F343F1D6
+S315007E54A6DC84FF3B0200007F42FE42FB644402240C
+S315007E54B6DC84FFB44DF3605C03B402FEF884F884A4
+S315007E54C6F884B08443FB4DF14CF364400326050015
+S315007E54D66040012A1200866517006440032A05008D
+S315007E54E66040082A0A00E6650F006440012A080025
+S315007E54F66040022A0200A66507002B608278FFFFBF
+S315007E55066040042AFA00C66599FF00EA50FE3B44CF
+S315007E5516402B020000EB10FE42F1E07F645E405AAD
+S315007E55266447E17F43F3405AE27F405A655E237FB6
+S315007E55366043BDD3FFFFBDD3405ABDD3405ABDD3CC
+S315007E5546405ABDD3405A54F3405A60400F2A120041
+S315007E5556BDD3FFFFBDD3405ABDD3405ABDD3405AB5
+S315007E5566BDD3405ABDD3405ABDD3405ABDD3405A09
+S315007E5576FFFF405A54F33A404027FD00405A1C60CE
+S315007E558633F3FFFF6040FE3B10008BFF7440744092
+S315007E5596744088FF316000EA006000EAFFFFFFFF85
+S315007E55A63A5C802BF700306000EA0301206000EB50
+S315007E55B60E001C6033F3FFFF6040FE3708004AF399
+S315007E55C6FFFF604008260300336000EA000098FF6E
+S315007E55D6465C6644F7FB07F00064D080FFFF360321
+S315007E55E609607DF399F36043D0801261020241DD44
+S315007E55F65F0029F218610CB46040083A05002BF26A
+S315007E5606FFFF6040012A040041D3FFFF6047020088
+S315007E561641D3FFFF604008360F0004360A00023685
+S315007E56260500013A14000A600164080014600264EB
+S315007E5636050037600B6402006E600B64126141DB07
+S315007E5646106141D3FFFF007EA1DB3200310010617F
+S315007E565641D3FFFF6040003A0500A1D3FFFF017EDE
+S315007E5666A1DB0F006040033A0C005CF3FFFF00A847
+S315007E567610611E0341D3FFFF047EA1DB00645CFB43
+S315007E56865BFB186141D3FFFF604008260D000426AA
+S315007E56960800022603000A6001640800146002649C
+S315007E56A6050037600B6402006E600B64126141DB97
+S315007E56B627F2FFFF6040003714006E370500373746
+S315007E56C60300143701000A7F007ED2FB017E60400E
+S315007E56D61437027E37370B7E6E370B7E007F59FB7D
+S315007E56E6180007F00064D0801263090343D1FFFFDA
+S315007E56F66444007F59FB6444007ED2FB0A00465C06
+S315007E57066644F7FB22F00464B084A2DA2D608678BE
+S315007E5716FFFF85F309F001A8FFFF0C02644400A88B
+S315007E5726FFFF080329F02067B084A2DA1CF0206703
+S315007E5736B084A2DAD2F3FFFF604160406E371D0069
+S315007E574637370D00143705001AF21DF260431FFA2D
+S315007E575631001DF21AF2E8831FFCE8832B003F60B8
+S315007E5766FF6518F21BF2E883A7830224DF831FFCFC
+S315007E5776E883A7830224DF831D007F60FF6518F218
+S315007E578617F0A483EB83EB830224DF831FFC604042
+S315007E5796802B03008067B08317FC1BF216F0A4836A
+S315007E57A6EB83EB830224DF836040802B03008067D6
+S315007E57B6B08416FA2AF221FC60408027410000A3B7
+S315007E57C663441B03010021FA607CD4F3C0856047DF
+S315007E57D660400A3634F1143635F1373636F16E3692
+S315007E57E638F1B5F16444E084C084C49C2AF8607CB2
+S315007E57F61FF06445C084C48410FAD4F3FFFF604765
+S315007E5806FFFFF0F1FFFF644001260C0060400A367A
+S315007E581634F1143635F1373636F16E3638F1606444
+S315007E5826C09C090060400A36F300143635F13736D9
+S315007E583636F16E3638F12BF06444644001260064F8
+S315007E584611FA13F2D2F1007FB08413FA006458FB84
+S315007E5856A5F3566302A829F23A03D3F1FFFF644005
+S315007E5866082A010034007DF11067A08429F01CF019
+S315007E5876B085B09C654429FA1CF829F060476440D9
+S315007E5886082617008BF16040803B21006440022A81
+S315007E58961E00007CA2F9A3F3017C6040003A02005A
+S315007E58A6A2F9150086F3FFFFFDB486FB2D6086788A
+S315007E58B6FFFF03A8032E0B0003B00322626379F172
+S315007E58C6BDD87AF1FFFFBDD87BF1A3D8FFFF15F2CF
+S315007E58D655F3FFB0FFFF030234FA10A455FB0F60A3
+S315007E58E69064A0D13060584F3278FFFFFAA30F60DE
+S315007E58F6926402280063A0DD02641FFB86F3465C83
+S315007E5906FDB401BC86FB6644F7FB2E607278FFFF0C
+S315007E59163C466644F7FB07F00064D080FFFF0C0327
+S315007E592699F3FFFFD080FFFF0703106141D3FFFF88
+S315007E5936007F00A8FFFF0102290057F1FFFF64459D
+S315007E59460226240001AD03AD210319025BF3FFFF98
+S315007E5956DC845BFBB1F36045D480FFFF17021860DB
+S315007E596658620F609C64A2DB03644ADBFFFF1DFF61
+S315007E597607F0106141D3FFFF047EA2DB070007F026
+S315007E5986106141D3FFFF017EA2DB000003641FFB8D
+S315007E5996CAFE86F33C4657F1FEB486FB0165324067
+S315007E59A6042B6445022203002D609A78FFFFD0F110
+S315007E59B63FF914F2654001261500604505641FFB16
+S315007E59C66544CC851C60A264A0D11C603A64C08402
+S315007E59D6A0D3FFFFC484A2DB6040003BC6FE2D60DB
+S315007E59E68678FFFF604129F00C64A08404360200A7
+S315007E59F60C3A03002D608678FFFF614560411C6088
+S315007E5A06A264A0D11C603A64C084A0D3FFFFC4847E
+S315007E5A16A2DB6040003BC6FE6140083603002D6071
+S315007E5A268678FFFF14F228F2604160451E63604762
+S315007E5A36186304A36540012608A363450063CD81EA
+S315007E5A46C783FD0238F0FFFFC3832BF2FFFFFFFFFE
+S315007E5A56012A1D001C60A264A0D11C603664C08427
+S315007E5A66A0D3FFFFDC84A2DB6040003BC6FE1C6043
+S315007E5A76A264A0D11C604264C084A0D36345C4845C
+S315007E5A86A2DB6040003BC6FE2D608678FFFF1C606B
+S315007E5A96A264A0D11C603264C084A0D3FFFFDC84DE
+S315007E5AA6A2DB6040003BC6FE1C60A264A0D11C60E1
+S315007E5AB63E64C084A0D36345C484A2DB6040003BBB
+S315007E5AC6C6FE15F2FFFF0FB400A8CC841C030E0398
+S315007E5AD61C60A264A0D11C604E64C084A0D3FFFF66
+S315007E5AE6DC84A2DB6040003BC6FE0D001C60A26421
+S315007E5AF6A0D11C604A64C084A0D3FFFFDC84A2DBEF
+S315007E5B066040003BC6FE04641FFB18602C6218606C
+S315007E5B161464A2DB3C445ADB0A645ADBFFFF03FFAE
+S315007E5B26CEFE0064405CF7FB2960C678FFFFCFF3A6
+S315007E5B36FFFFDC8002B0050304033FF3FFFFCC8440
+S315007E5B463FFB0FF028F06441644020260700614043
+S315007E5B56012A08001C60F864A0D107001E608C64CA
+S315007E5B66A0D103001C60F664A0D115F2FFFF604348
+S315007E5B760FB3DF83D380635E15FA03062E605678EF
+S315007E5B86FFFF6140012A0E001C60A264A0D11C6044
+S315007E5B969264C084A0D3FFFFDC84A2DB6040003B18
+S315007E5BA6C6FE0D001C60A264A0D11C609664C084ED
+S315007E5BB6A0D3FFFFDC84A2DB6040003BC6FE29F055
+S315007E5BC60867B084A2DA1CF00867B084A2DA00649D
+S315007E5BD658FB29F0FFFF6440402B130099FF3A4499
+S315007E5BE698FF862B0E0050270C004AF3FFFF604077
+S315007E5BF60826070099FF3B4498FF403B0200336028
+S315007E5C0600EA1360866415F260410FB4E085126081
+S315007E5C16F862A2D345D16047A080604304030FF2A3
+S315007E5C26FFFF01BC0FFA6347A080FFFF390307F02B
+S315007E5C36186242D3D2F3604559F3605CC0846040F5
+S315007E5C466E3705003737090014370D00110065409B
+S315007E5C56042A0300377F0B7E0B006540022A03006B
+S315007E5C66147F027E05006540012A02000A7F017EB8
+S315007E5C76604507F0126242DB106242D3FFFF037E67
+S315007E5C86A2DB00645BFB186058620F609C64A2DB35
+S315007E5C9602644ADBFFFF1DFF655C2B607B78FFFF98
+S315007E5CA62C607278FFFF1C60A264A0D11C605264D1
+S315007E5CB6C084A0D3FFFFDC84A2DB6040003BC6FE29
+S315007E5CC60F609065B6F3FFFFA5DB22F00164B08414
+S315007E5CD6A2DA2D608678FFFF2F60EF78FFFF2264BB
+S315007E5CE61FFB99FF324498FF1026320045FF47FF79
+S315007E5CF62F0A99FF324498FF10262A0004270400AD
+S315007E5D06B5F3FFFF6054CDE22E609664404299FF5E
+S315007E5D16304404BC3DB4405198FF23641FFBFFFF0D
+S315007E5D26A1FFFFFFBB3F99FF324498FF1026100066
+S315007E5D3645FF47FF0D0A99FF324498FF1026080055
+S315007E5D4658F3FFFF6040013A33002F601F78FFFF4E
+S315007E5D561C60A264A0D11C604664C084A0D3FFFFEB
+S315007E5D66DC84A2DB6040003BC6FE2E60C7644040F4
+S315007E5D762E60DB64404199FF3044E0BCF9B4405165
+S315007E5D8698FFA1FFFFFFBB3F24641FFB58F3FFFF6F
+S315007E5D96FFFF023AFFFF99FF324498FF1026D8008E
+S315007E5DA645FF47FFEE0A99FF324498FF1026E90023
+S315007E5DB699FF324498FF1026CB0045FF47FFC80A57
+S315007E5DC699FF324498FF1026C3000760C9F3FFFF8A
+S315007E5DD600A8FFFF27032F60166440402F600064ED
+S315007E5DE6404299FF304444BC5DB4405198FFA1FFC2
+S315007E5DF6FFFFBB3F2E60AB78FFFF99FF324498FFCD
+S315007E5E061026F80045FF47FFF50A99FF324498FFAC
+S315007E5E161026F0000760C9F3FFFF00A8CC840203B4
+S315007E5E26A2DBE502090058F3FFFFFFFF023AFFFFFA
+S315007E5E36DE002F60EF78FFFF29F2FFFF6040402BE2
+S315007E5E46190099FF3B4040270F003A4040270E0037
+S315007E5E563A470FB46040063A07004AF3FFFF6040B2
+S315007E5E6608260200336000EA98FFB5003A5C102BDE
+S315007E5E76FB0098FF29F28BF16040803A130064405E
+S315007E5E86022A1000007CA2F9A3F3017C604000364C
+S315007E5E96080099FF304440BC59B4405198FF2FF311
+S315007E5EA62400A2F918604462A2D3FFFFAC84FFFFEA
+S315007E5EB6920221641FFB2FF3FFFF84B42FFB01643E
+S315007E5EC630FBFFFF2F607364404099FF304440BC31
+S315007E5ED659B4405198FFA0FE1AFFA1FFFFFFBB3FB4
+S315007E5EE62FF3FFFF6040012A0F00FEB42FFB0164ED
+S315007E5EF657FB0F609065B6F3FFFFA5DBFFFF406499
+S315007E5F061FFB2F60EF78FFFF022A19002BF2FFFF99
+S315007E5F1660400126AF0041641FFB2FF3FFFFBDB431
+S315007E5F262FFB026457FB0F609065A5D3B7F1E08120
+S315007E5F36D080DD845103A5DB2F60EF78FFFF082A2C
+S315007E5F46070042641FFB2FF3FFFFF7B42FFB4400C7
+S315007E5F56102A100043641FFB2FF32BF0EFB42FFBA2
+S315007E5F6664400126040029F00867B084A2DA2E6012
+S315007E5F767278FFFF44641FFB2FF3FFFFDFB42FFB10
+S315007E5F862E607278FFFF28641FFB260A7044AC805B
+S315007E5F96FFFF2202324002271F000F609465A5D3BB
+S315007E5FA6FFFF00A8FFFF18032F60E364404299FFB8
+S315007E5FB6304404BC3DB4405198FFA1FFFFFFBB3F72
+S315007E5FC60B0A7044AC80FFFF07020F609465A5D36B
+S315007E5FD6FFFFCC84A5DBF1022A641FFB99FF3044C2
+S315007E5FE679B4405198FF2960A664404040412C60B2
+S315007E5FF68B78FFFF0760D6F3007CA2D9734578F3CC
+S315007E6006C485E084E084E084E084C484605360537F
+S315007E60166AF3FFFF6041FDB4A2DB614401B002B0C4
+S315007E60261A031902096081F175F3FFFFFFA475FB5A
+S315007E6036020775F907000F6047F3D3F301B004A88C
+S315007E604601030A031860586210609464A2DB026438
+S315007E60564ADBFFFF1DFFC9FE2960B078FFFF64415C
+S315007E606640600B652E440063E880F884022494849F
+S315007E6076F383E981FFFFF8022F58404E00620164E2
+S315007E6086D480E0841B03D480E084160361441161C8
+S315007E6096E084CD81FD040100E084F282FFFF0224C6
+S315007E60A6C6820228D682E280CD81022801BCF4020F
+S315007E60B6012AC6822F58FFFFE981F2826144FA00E1
+S315007E60C6A1FFFFFFBC3F4BF3FFFF6040012A0300A3
+S315007E60D626606278FFFF9CFE3D46F20429F04AF36F
+S315007E60E66440402B2300022619000FF2FFFF604014
+S315007E60F6042A05008026030026606278FFFF99FF44
+S315007E61063B470FB56540063A06004026F90098FFDE
+S315007E61162560AD78FFFF30606378FFFF0FF2FFFFE5
+S315007E61266040042ACD0026603378FFFF0FF2FFFF1C
+S315007E613608BC0FFA18602462A2D3FFFF00A8604649
+S315007E61460FF00102BD0064400036010004000FF028
+S315007E61567064B084A2DA3D460FF2FFFF6040042AE1
+S315007E616605000FF00167B084A2DACBFE4AF3FFFF85
+S315007E6176F1B44AFB40FFBCFEA30099FF3D4410BC2A
+S315007E6186405D0E600664A0D199FF3C4480BC6440A7
+S315007E6196012A7FB410BC405C3E4406BC405E98FF36
+S315007E61A677F1204420BC40404345204460BC4040B5
+S315007E61B615607C6492FB93F977F9056494FBDFFEA2
+S315007E61C619FF3060EA6495FB30606378FFFF1B60DB
+S315007E61D69865A5D380E1D0A0FFFF12051669FFFF5D
+S315007E61E6FFFFA1FF0064685E77F1DF65A4846440E5
+S315007E61F60E3620BC6048966AFFFFFFFFA1FFFFFFB3
+S315007E620625433260C478FFFF99FF3E44FCB4405E68
+S315007E62163D44E7B4007F405D0E600664A0D13C44F3
+S315007E6226EFB4405C7FB46440012A80BC405C98FF34
+S315007E62363260C478FFFF204420BC404074690E64F9
+S315007E6246CC840216FD0241000064685F60411B60D5
+S315007E62569A64A0D3FFFFFDA0FFFF0224036460407D
+S315007E6266FF2628001B60587C77F3FFFFCC84E084EC
+S315007E627640D11B6096626447605CA2D3D181E18081
+S315007E6286F981E180F981E180F981E180F981E18018
+S315007E6296F985948080270A00C49C9080802B060010
+S315007E62A600647F7F6440802B807F0100C484A2DBEE
+S315007E62B660470500E0811B608E6545D3FFFF60481B
+S315007E62C6BE6A0E64CC840116FD023260C478FFFF78
+S315007E62D6204420BC40404345A4D1DA83C385316041
+S315007E62E6F878FFFF99FF3E44FCB4405E076003F1F3
+S315007E62F63C4480BC6440012A7FB4405C3D4410BC6D
+S315007E6306007F405D3C4410BC007F405C98FF0C6479
+S315007E6316CC84FFFFFD021160ECE0FFFFFFFFBDFFB1
+S315007E632699FF3E44FBB4405E98FF7D600061CD8159
+S315007E6336FFFFFD02434599FF3E44FBB4405E98FF50
+S315007E63462D61CD81FFFFFD0299FF3E4404BC007F91
+S315007E6356405E98FF9B61CD81FFFFFD021A60046356
+S315007E63661B600465006180E10C68D06AA1FF99FF17
+S315007E63763E44FDB4405E02BC405E2464CC8401038A
+S315007E6386FD003E44FDB4405E98FF2068D06AA1FFBC
+S315007E63966148D26ABDD180A96447A1FF6448D46AA2
+S315007E63A6A1FF2268D06AA1FF6448D46AA1FF61482C
+S315007E63B6D26A80A9A1FF6048D46AA1FF2068D06A06
+S315007E63C6A1FF6048D46AA1FFD780DD81E1027168AC
+S315007E63D69A6AFFFFFFFFA1FF8068986AFFFFFFFFAD
+S315007E63E6A1FF196020631A60046580E1BDD1FFFFB7
+S315007E63F66447007F604180BCE2A8FFFF03026442D9
+S315007E640680BA625C6448604AFFFFFFFFA1FFFFFF1A
+S315007E6416D780FFFFEB0268401269FFFFA1FF684443
+S315007E6426007F3EFB1469FFFFA1FF6844007F40FBA9
+S315007E643600691B609865A1FF0064685EA5DB604007
+S315007E644611360B000864324534921B6096651B60D6
+S315007E64568064A0D3FFFF6047A5DBCFF3FFFF6041D5
+S315007E64661B609865A5D37065D480FFFF1405DD8015
+S315007E6476FFFF190340F3FFFFFBB440FB6048946AB7
+S315007E64860116FE003EF3FFFFFDB43EFB6048926AB0
+S315007E64960116FE000800DD80FFFF05020164CFFBC4
+S315007E64A60264D0FBD1FB204460BC404015607C6410
+S315007E64B692FB77F393FB056494FBDFFE19FF32604E
+S315007E64C6696495FB69E130606378FFFF99FF3C441A
+S315007E64D610BC007F405C99FF3D4410BC007F405D4A
+S315007E64E698FF99FF3E4402BC007F405E98FF254397
+S315007E64F64800470099FF3C4410BC007F405C99FFEC
+S315007E65063D4410BC007F405D98FF99FF3E4402BC29
+S315007E6516007F405E98FF3500204420BC404080E1E7
+S315007E652664466669FFFFFFFFA1FF685E7C69007FA2
+S315007E65366045A1FF685E655F604725FA20F2FFFF2C
+S315007E6546007F26FA1E00204420BC40404345BED529
+S315007E6556FFFFA4D25A86C0A0406102066041016151
+S315007E65661860A06380E1BDD326426049FFFFFFFF28
+S315007E6576FFFFA1FFFFFF6844CD81A2DA5A86F302AA
+S315007E6586254399FF0C5198FF0064BFDB2044202AE1
+S315007E6596060007B760400637CCFE0737D8FE20448E
+S315007E65A6D8B440402044402A08009FFEFFFF1E05C1
+S315007E65B6BFB4404095F7FFFFFFFF18603E62A2D349
+S315007E65C6DA8300A802611502DB825AD3DA8300A833
+S315007E65D602610F02DB825AD3DA8300A806610902BC
+S315007E65E6DB825AD3DA8300A80761030230606378BA
+S315007E65F6FFFF99FF104C98FFA3D140446243204487
+S315007E660607B5D4853580244518607A6444D7FFFF5E
+S315007E6616FFFF80E14345204420BC40406443BDD114
+S315007E6626BDD36440102B01000A007FB46049FFFF8C
+S315007E6636FFFFFFFFA1FFFFFF6844007FA3DB254325
+S315007E6646A00080E14345204420BC40406443BDD340
+S315007E6656BDD14044102B01000D00A3D3FFFF604839
+S315007E6666644480BC007F604AFFFFFFFFFFFFA1FFF9
+S315007E6676FFFF68402543E40018605661A1D3006398
+S315007E668600A859D1160259D3006300A859D1110222
+S315007E669659D3006300A859D10C0230606378FFFF98
+S315007E66A63460B678FFFF3460E378FFFF3460BD78EA
+S315007E66B6FFFF49DD60400236F9000336F4000136F7
+S315007E66C6EF00053AD900A4D35AD39C85A484A2DBCF
+S315007E66D6D30088FF84E2046000712DF313F300BDB8
+S315007E66E6CC84080313FB0602654413FB8AFF80608F
+S315007E66F6007588FF2B44CC84404B07027560306458
+S315007E6706404B3DF3FFFFDC843DFB0D60D8F3FFFF78
+S315007E671601B4FFFF0A020D60D2F30F7CCC84A2DBA6
+S315007E6726030434608678FFFFA2D9076003F3FFFF72
+S315007E6736604040260400017C0D60D3F938000D606A
+S315007E6746D3F3FFFF01B4FFFF180399FF3D4420B440
+S315007E675698FF2A020D60D4F3FFFF07B4FFFF0303FB
+S315007E6766CC84A2DB2400007C0D60D3F9FFFF017C7E
+S315007E67760D60D6F9FFFFC6FE170099FF3D4420B48D
+S315007E678698FF12030D60D4F3FFFF07B4FFFF0303E2
+S315007E6796CC84A2DB0C00017C0D60D3F9FFFF017C65
+S315007E67A60D60D6F9FFFFC6FE047C0D60D4F9FFFFA9
+S315007E67B6076003F30063604138B400364600083648
+S315007E67C60A001036230018365C00203601003D008E
+S315007E67D63460FF78FFFF0D60D1F3FFFFCC84FFFFA9
+S315007E67E60204A2DB03000264A2DB08000D60D0F37E
+S315007E67F6FFFFCC84FFFF0204A2DB02BB0D60D3F350
+S315007E6806FFFF01B4FFFF730301BB7100D3F3FFFFE6
+S315007E68166040043607000336050006360300013659
+S315007E682666001E000D60D1F3FFFFCC84FFFF0204D7
+S315007E6836A2DB03000264A2DB08000D60D0F3FFFF35
+S315007E6846CC84FFFF0204A2DB02BBD3F3FFFF6040CC
+S315007E685604364C0003364A000636480001364700A3
+S315007E68660D60D8F3FFFF01B40D60D1F30403F8A4DF
+S315007E6876FFFF3A060100CC84A2DBE0A0350436068D
+S315007E68863600D3F3FFFF6040043617000336150045
+S315007E68960636130001362B000D60D8F3FFFF01B4D2
+S315007E68A60D60D1F30403F8A4FFFF1B060100CC841A
+S315007E68B6A2DBF3A016041B0619000D60D1F3FFFFBB
+S315007E68C6CC84FFFF0204A2DB03000264A2DB0E0079
+S315007E68D60D60D0F3FFFFCC84FFFF0204A2DB070028
+S315007E68E605000160186401004064A2DB01BBE187F6
+S315007E68F603B4605C93833CFD0D60D8F3FFFF01B461
+S315007E6906FFFF01031AFF01602C61A1D3614300A834
+S315007E69166041030230606378FFFF59D3006600A8A4
+S315007E6926CC840203A1DBF60049D3A3DB00A8604331
+S315007E69365BD3060300A8CC84020201660100A3DBB4
+S315007E694606A1A1D359D16045A5D359D1B084A5DB7D
+S315007E695664470636CDFE0737D9FE6640003AD30033
+S315007E696630606378FFFF01602C610064A1DB3360D3
+S315007E69763F78FFFF3460C264404144422400016092
+S315007E69862C66A6D304A16043A1D3C981604500BB0C
+S315007E6996A1DBBED30903D4849C84DC84FFFF040E6C
+S315007E69A6A3D163466443F2009C84DC8549DD61445B
+S315007E69B600BBA6DB02036544BEDB33603F78FFFF82
+S315007E69C633603F64404101602C66A6D3FFFF00A874
+S315007E69D6D080100302036046F80058D3A4D36045E0
+S315007E69E60063A4DD58D302A8C4830103A2DD6244F4
+S315007E69F6C884A6DB21582241D3F3FFFF60400436C6
+S315007E6A062A00033628000636260001366B000D6000
+S315007E6A16D9F3FFFF604001360A000164A2DB017CE2
+S315007E6A260D60DAF90D60DCF10D60D1F974000D604A
+S315007E6A36D1F3FFFF00BCFFFF59020D60DAF3FFFFBD
+S315007E6A4601B4FFFFEC03007C0D60DAF90D60DDF123
+S315007E6A560D60D1F963000D60D9F3FFFF6040023603
+S315007E6A66270003360E00007C0D60D0F9037C0D6090
+S315007E6A76D9F9017C0D60DAF90D60E0F10D60D1F988
+S315007E6A864A000D60D0F3FFFF00BCFFFFEC020D60EF
+S315007E6A96D1F3FFFF00BCFFFF2902027C0D60D9F908
+S315007E6AA6007C0D60DAF90D60DFF10D60D1F93600F6
+S315007E6AB60D60D0F3FFFF00BCFFFFD5020D60D1F35C
+S315007E6AC6FFFF00BCFFFF12020D60DAF3FFFF01B483
+S315007E6AD6FFFFE302017C0D60DAF90D60DEF10D60E3
+S315007E6AE6D1F91900007C0D60D9F918000D60D8F32E
+S315007E6AF6FFFF01B40D60D1F30603F8A4FFFF01067E
+S315007E6B06030000640100CC84A2DB0D60DAF3FFFF8E
+S315007E6B1601B4FFFF030334607978FFFF34607A7829
+S315007E6B26FFFF186008644047584F03003660287892
+S315007E6B36FFFF27D327D1AC860EF229036040022AB1
+S315007E6B4626000F4E44456446186038620064A2DB12
+S315007E6B5666445ADB0A645ADBFFFF03FF00F2A2FF96
+S315007E6B6600A860460C0301F07867A080F8670703E5
+S315007E6B76C08401FA2546006400FA254405FA296092
+S315007E6B86584F2378FFFFA3FFD1FE0E4FD2002F5814
+S315007E6B96FFFF02640100016440553BFF5600B2FECC
+S315007E6BA6FFFFF905B3FEFFFFF405B0FEFFFFB9054D
+S315007E6BB6B1FEFFFF280549000F4E09600661414D6D
+S315007E6BC640A1A2FF2860584F3278FFFFA3FF060337
+S315007E6BD62D412860584F5478FFFF08FE0E4F33032B
+S315007E6BE61860386218602464A2DB66445ADB0A643F
+S315007E6BF65ADBFFFF03FF224100B9214408244642A1
+S315007E6C065C812144FDFB096094F3FFFFF080F084EE
+S315007E6C16A2DB0204584F1C003E41224400B9AC86D4
+S315007E6C260B02CA033140012A070009F0025E21449F
+S315007E6C3644424C812144FDFB90F32145D480FFFFDF
+S315007E6C46BB07584F05000100FFFFA1FFFFFFBE3FB2
+S315007E6C5618600062A2D3FFFF00A86046400346483E
+S315007E6C6603603C6401FA02F00F4E6441414D40A139
+S315007E6C76A2FF2860584F3278FFFFA3FF06032D41F9
+S315007E6C862860584F5478FFFF08FE0E4F760318602D
+S315007E6C96386218600464A2DB66445ADB0A645ADBF1
+S315007E6CA6FFFF03FF00F2006300FC05F006FC664369
+S315007E6CB605FC284600FA04FA046403FA05F806F883
+S315007E6CC608640EFA186038620D608464A2DB284476
+S315007E6CD65ADB0A645ADBFFFF03FFD1FE4B002044D4
+S315007E6CE6012A4B00022A22000F4E00603C61414D6E
+S315007E6CF640A1A2FF2860584F3278FFFFA3FF060306
+S315007E6D062D412860584F5478FFFF08FE0E4F3503F7
+S315007E6D161860386218600464A2DB66445ADB0A642D
+S315007E6D265ADBFFFF03FF2044FDB440408DF10F4E34
+S315007E6D366441414D40A1A2FF2860584F3278FFFF3D
+S315007E6D46A3FF06032D412860584F5478FFFF08FEA1
+S315007E6D560E4F1303186038620D608464A2DB6644A8
+S315007E6D665ADB0A645ADBFFFF03FF08640EFA2044E9
+S315007E6D76FEB44040046440553BFF0660C2F10760A0
+S315007E6D860BF907600CF3FFFF6040013A01000BFF2B
+S315007E6D962F58FFFFB8FEFFFF022491F7FFFFFFFF86
+S315007E6DA6BAFEFFFF0505B9FEBBFE36602878FFFFF5
+S315007E6DB63644007FFCA0604505051360F66444D71D
+S315007E6DC6FFFFFFFF36602878FFFF7F60C06424459D
+S315007E6DD6A4807F67026113022044012A03007F672F
+S315007E6DE607610D000960446525448DFBD4807F6767
+S315007E6DF605610507204403BC4040D1FE0067235843
+S315007E6E06FFFF047C0D60D0F94E60C0642445A480E5
+S315007E6E160261030337607678FFFF3B60584FA078A2
+S315007E6E26FFFF0361030337607678FFFF3B60584FAB
+S315007E6E36B678FFFF0361570225461760F86508F2A6
+S315007E6E46FFFFD48003614F03186038620064A2DBBD
+S315007E6E5625445ADB0A645ADBFFFF03FF28F0FD7FD3
+S315007E6E66047E6441022640BC0EF06140042680BC48
+S315007E6E76C022FF7F6440082608BC0EFA3FF038F231
+S315007E6E866140082A6447604538FA1D604062A2D38F
+S315007E6E960063D48022FC03046140012A070022F0A7
+S315007E6EA60864B084A2DA3760D978FFFF3F60584F10
+S315007E6EB62C78FFFF120422F00464B084A2DA1C60EA
+S315007E6EC6A264A0D11C607664C084A0D3FFFFDC8456
+S315007E6ED6A2DB6040003BC6FE69003860584F9D784F
+S315007E6EE6FFFF0561030438609A78FFFF254699F110
+S315007E6EF6D3F32061604008360061C1830E607DF360
+S315007E6F06FFFF60400336490029F08BF36440032772
+S315007E6F164400022A42002BF2FFFF6041E181F084A3
+S315007E6F26E181F084E181F0855AD2FFFF9484604147
+S315007E6F36E181F084E181F084E181F0855AD2FFFF1A
+S315007E6F4694846041E181F084E181F084E181F0847C
+S315007E6F5611FA10FE1060B46511F2FFFF007FE08421
+S315007E6F6644D3046500B8C4811503604350FEA1D39D
+S315007E6F762BF059D3D0802CF059D3D0802DF0FFFF3D
+S315007E6F86D080FFFF0A0100A3A3D3FFFF00B8C4810A
+S315007E6F960103EB0099F3FFFF6043D3F3FFFFFEA0E9
+S315007E6FA607FC050722F00464B084A2DA07FC2444B3
+S315007E6FB6012B370018600462A2D3FFFF00A8604645
+S315007E6FC6464810632546BFD02846FFD82546FB1D74
+S315007E6FD6644400A828440302284605FA06FA146283
+S315007E6FE6686325465AD02846A2D8FB1F0EF0FF6058
+S315007E6FF6FC64A0840EFA00640FFA0064254600FA45
+S315007E7006664405FA1860386218600064A2DB254479
+S315007E70165ADB0A645ADBFFFF03FFD1FE00640EFAD3
+S315007E702628460EF0FF60FB64A0840EFA22F26643C3
+S315007E703600A8046005FD3B023F60584ED878FFFFE8
+S315007E7046D3F3FFFF6040083A250029F2FFFF0CB016
+S315007E7056003A0D00186038621760FC64A2DB66444F
+S315007E70665ADB0A645ADBFFFF03FFC8FE2C00566115
+S315007E7076A1D2FFFF6040012A0D00186038621860B3
+S315007E70862864A2DB66445ADB0A645ADBFFFF03FFEB
+S315007E7096C8FE19001860386218601064A2DB664462
+S315007E70A65ADB0A645ADBFFFF03FFC8FE0C00186034
+S315007E70B6386218601464A2DB66445ADB0A645ADBBD
+S315007E70C6FFFF03FFCEFE0EF0244401272E0064400A
+S315007E70D6082A2B0018600462A2D3FFFF00A860462A
+S315007E70E624030F4E4645186038620064A2DB66446A
+S315007E70F65ADB0A645ADBFFFF03FF00F2A2FF00A8F3
+S315007E710660460C0301F07867A080F8670703C084A3
+S315007E711601FA2546006400FA254405FA2960584F89
+S315007E71262378FFFFA3FFD1FE0E4F006701007F6720
+S315007E71362358FFFF0F4E254638F2054800A86041C4
+S315007E714666440A0300F242FEAC8601F21E037FB552
+S315007E7156D5816644F707254605F006FA05FAD080F8
+S315007E716664431203604601F08067B08401FA00F03C
+S315007E7176006400FA644605FC4645A2FF2960584F20
+S315007E71862378FFFFA3FF084502FE2E58FFFF82FFE8
+S315007E71960864404919FF87FF0E60C4F13860DE64D5
+S315007E71A691FB18605262A2D91E644ADBFFFF2DFF51
+S315007E71B636602878FFFF204440B07F670261320240
+S315007E71C67F60C0642445A4807F6702612B020061CE
+S315007E71D64156C7FE36602878FFFF3647FF230400F2
+S315007E71E6007F60417F671E0099FF00EB00EA98FFED
+S315007E71F64EF3017C604060220900602A0200647CB0
+S315007E72060500202A02000A7C0100327C50F94FF9DD
+S315007E72164EF109602A6464400126CBFB204480BC7D
+S315007E7226404000672358FFFF7F60C0642445A480E4
+S315007E72367F6702613E0202614156C7FE3660287846
+S315007E7246FFFF8FF120446440FF2632007FB4404024
+S315007E725618602462A2D3FFFF00A860460FF22803B9
+S315007E726600A8FFFF25030F4E464518603862006468
+S315007E7276A2DB66445ADB0A645ADBFFFF03FF00F293
+S315007E7286A2FF00A860460C0301F07867A080F86727
+S315007E72960703C08401FA2546006400FA254405FAEA
+S315007E72A62960584F2378FFFFA3FFD1FE0E4FD000ED
+S315007E72B600672358FFFF7060C0642445A4807F67FD
+S315007E72C60261070206612040802603004060C3787D
+S315007E72D6FFFF2358FFFF4060C0642445A4807F6776
+S315007E72E602611102186050621A64A2DB1E635ADDC1
+S315007E72F63960826491FB2DFF36602878FFFF11F197
+S315007E7306046005F900672358FFFF4060C064244584
+S315007E7316A4807F6702610E02186050621C64A2DB3F
+S315007E73261E635ADD39609C6491FB2DFF3660287894
+S315007E7336FFFF00672358FFFF7F60C0642445A48055
+S315007E73460261250225451760EC630261BDD3BDD178
+S315007E7356D480BDD3CD8102031903F800404C0F4E6F
+S315007E73666441414D40A1A2FF2860584F3278FFFF07
+S315007E7376A3FF06032D412860584F5478FFFF08FE6B
+S315007E73860E4F01032C580C610567020004617F6768
+S315007E73962358FFFF034E066037F75843FFFF0E431B
+S315007E73A641477E60C0642445A4800261310225453C
+S315007E73B6FC2B2D001360FA636561244401271C00AD
+S315007E73C6BDD3A3D1D480CD810824645808A3F80200
+S315007E73D614F5FFFF24F22545D480FFFF0B0380605C
+S315007E73E6036422FA006423FA654424FA80601064F4
+S315007E73F601FA046100670D002740043AFB00BDD3FF
+S315007E7406BED1D480CD810824645808A3F5020461D2
+S315007E74167F672358FFFF14F5007C23F8FC60006423
+S315007E7426404B02000064404B14F54BD323F0E881B3
+S315007E74366444FF2604008060036422FA017CC184CC
+S315007E744623FA654424FAFFFF7F60FF64A084E09CEE
+S315007E7456C285BFD1E1812B4400A4FFFF0D036143A4
+S315007E74666544C8846442CA81664504002B4659D063
+S315007E7476654658D8FB1F03006443584F7E00006757
+S315007E748600612358FFFF01648BFB01677DFBFFFFCF
+S315007E749614F5FFFF23F2BFD1FFFF6243CC84E0855E
+S315007E74A60B06BFD16441D5806443010665414A65B4
+S315007E74B63A60584FF678FFFF006700612358FFFF54
+S315007E74C614F5FCA323F225F2FEA0A3D1F504A4DBD4
+S315007E74D6D3F3605CFFA0FFFFEF030F6047F9CAFE9A
+S315007E74E6EB0014F5FCA323F225F2FEA0A3D1E40459
+S315007E74F6A4DBCAFEE10014F5FCA323F225F2FEA068
+S315007E7506A3D1DA04A884A4DBD70014F580600364CD
+S315007E751622FA1E602263A3D3FFFF6041E884DC84E1
+S315007E752623FA654424FADA8504A3584F26000067B3
+S315007E753600612358FFFF14F5FFFF23F2BFD1FFFF3D
+S315007E75466243CC84E0811506BFD16445D58064430B
+S315007E7556FCA304066541E984DC8423FA466504A118
+S315007E7566584F41001E602262A2D3FFFFCC84E08480
+S315007E7576A2DB006700612358FFFF414D00A18064B0
+S315007E758617036542D4852D41558DFFFF020465415D
+S315007E759602000064404DCA84BDD1C98158D8FC021A
+S315007E75A62D4100A1D885040300F47C650462EB00B8
+S315007E75B6D8850660A5F3665CD084FFFF0F0301F0CF
+S315007E75C68064D09C6544D084807F01FA0660A5F5EA
+S315007E75D63C7C01F8664344612F58FFFF6544BCA494
+S315007E75E601F82F58FFFF414D00A180642103D49CEC
+S315007E75F6D18001F20107615C7FB4D08064410107C8
+S315007E7606604165426145CA8458D0C981BDD9FC02AE
+S315007E76162D44548D00F20C0300A86046090301F240
+S315007E76262D457FB4D4806041010465410462EB003A
+S315007E76362F58FFFFF160016424FA806722FA10FE56
+S315007E764666448EFB86FF204716B487FF036423FABD
+S315007E76560303006426FA2200036426FA5A8D81F114
+S315007E76662D603E63444B434C2B45D784BED11605CF
+S315007E76762D45802A020000F4046566418EF5FFFFDD
+S315007E768623F264431FA423FA61463E613A60584F4D
+S315007E7696C078FFFF454D2C4304A3E5000E018EF10F
+S315007E76A61860386218600864A2DB5AD90A645ADB07
+S315007E76B6FFFF03FF086545553BFF0660A5F5FFFF01
+S315007E76C624F0006700612358FFFF14F5806003648B
+S315007E76D622FA254424FA50FEB30014F5254424FAEC
+S315007E76E68060036422FA86FF204714B487FF080368
+S315007E76F6036423FADA8240645ADA00645ADA0500AB
+S315007E770650FE6060584F0C78FFFF00670061235875
+S315007E7716FFFF14F58060036422FA026423FA0D6085
+S315007E7726D3F325FA00672358FFFF665C0960C3F923
+S315007E77360061C6FE00672358FFFF25441AF11BF13A
+S315007E7746D080D0800E0408061CF11DF1D080D08034
+S315007E77560804020648FE0500254601F00367A08555
+S315007E776694802F58FFFF254628F2FFFF60400822A9
+S315007E7776040038F2FFFF00F404003FF0FFFF00F43A
+S315007E778664477C7CD084FFFF1204090301F800F46B
+S315007E7796FFFF6642AE82FFFF01020E00F300C08443
+S315007E77A6FFFF01FA00F4006401FA48FE0600C08473
+S315007E77B6FFFF01FA48FE010008FE2F58FFFF14F56B
+S315007E77C68060036422FAF16423FA254424FA016072
+S315007E77D6AA64404D464C0064404B046000643463A4
+S315007E77E64861C8842B4658D058D0645E645F605C18
+S315007E77F662442C4659D8F61FD985FFFF2D4100B91E
+S315007E780684A10A0304240061414D00F47C6301FCD5
+S315007E781602617A63464CE6006544807F01FA00671C
+S315007E782600612358FFFF14F58060036422FA026422
+S315007E783623FAFCA3A3D32543A0D324FCDC8425FA12
+S315007E7846006700612358FFFF14F58060036422FA01
+S315007E7856026423FA254424FA86FF204487FF01B470
+S315007E786601640824026425FA006700612358FFFF37
+S315007E787614F58060036422FA026423FA254424FA08
+S315007E78868BF320616040022A0500FCA3A3D1006328
+S315007E7896A4D3050099F11264C09C41D3006360406F
+S315007E78A60A37016314370263373704636E37086314
+S315007E78B625FC006700612358FFFF62F314F5E08519
+S315007E78C6C4840104FF670104FF67605C9A67D08003
+S315007E78D660410104644163F18060036422FA0464B4
+S315007E78E623FADA8286FF2944E084A4A087FF01066E
+S315007E78F65C645ADA6147007F5ADA6447007F5ADA51
+S315007E7906006700612358FFFF1E601C64A0D114F534
+S315007E7916644563F362F160418060036422FA04641F
+S315007E792623FADA8286FF294487FF5ADA6447007F7E
+S315007E7936D4845ADA6147007FD4845ADA00670061B6
+S315007E79462358FFFF14F5FFFF25F01E60886523F298
+S315007E7956A5D902A864410A0200B9A4F30703CD811C
+S315007E7966E884FD0203041D608862A2D90067006171
+S315007E79762358FFFF14F520631D60DE61486458D0E8
+S315007E798659D9FD1F25F02064D0811D60E2640D065F
+S315007E7996C083012A0600CF83A3D3CD81007FBDDBBC
+S315007E79A604030064C981BDDBFD02006700612358BE
+S315007E79B6FFFF14F5FFFF23F225F002A81E608662FE
+S315007E79C60902A2D96441324402B500B9D484082894
+S315007E79D602BC4052006700612358FFFF14F5FFFF85
+S315007E79E623F225F002A801609A65C002A5D9016038
+S315007E79F6A4656444082607000426080002260900B4
+S315007E7A060A60016308006E600B63050037600B63D0
+S315007E7A160200146002636344007EA5DB6344B2659E
+S315007E7A26007FA5DB380014F5FFFF23F225F002A8BA
+S315007E7A361260F6659B02A5D92E0014F5FFFF23F28A
+S315007E7A4625F002A81260F465910213602C626444E6
+S315007E7A5600360F7EA2DBA5DB6040082608000426DC
+S315007E7A660A0002260C000A60016301650B006E6041
+S315007E7A760B630865070037600B63046503000265C2
+S315007E7A86146002631260FA64A0DD13602E7C634482
+S315007E7A96655EA4DBD4FB3D60584E5678FFFF0067D5
+S315007E7AA600612358FFFF1E6094631260F67C1260A7
+S315007E7AB6F464A0D3A4D36045B48401609A7CA4D131
+S315007E7AC6007FB09C0061644401220700DD8102646A
+S315007E7AD66540012680BCBDDB644402220700DD814B
+S315007E7AE604646540022680BCBDDB6444042207002E
+S315007E7AF6DD810B646540042680BCBDDB64440822BA
+S315007E7B060700DD8116646540082680BCBDDB6444BD
+S315007E7B161E609263615CBDD963450066DD81BDD319
+S315007E7B26BDD1C981645FA5DAA984DA85F8022E58A5
+S315007E7B36FFFF14F5FFFF25F299FF405B98FF00676E
+S315007E7B4600612358FFFF14F5FFFF25F299FF405A81
+S315007E7B5698FF006700612358FFFF017C2360066558
+S315007E7B660B00027C236026650700047C236046653F
+S315007E7B760300087C236066654CF3FFFFB0844CFBEE
+S315007E7B8614F54661A1D2066108A880600F7C0303C0
+S315007E7B9602618060077C54F94A63BDD0FFFF654467
+S315007E7BA61EB4E884E0BC6047645EA5DB40A240A2C4
+S315007E7BB6A2DBFFFF654402A56447605C65441EB48E
+S315007E7BC6E884E0BC6047645EA5DB40A240A2A2DBF9
+S315007E7BD6FFFF6544CD8102A5E002BDD0FFFF654469
+S315007E7BE61EB4E884E0BC6047645EA5DB40A240A284
+S315007E7BF6A2DBFFFF006700612358FFFF14F50264D0
+S315007E7C0623FA254424FA4EF3006103B425FA006767
+S315007E7C162358FFFF14F54EF325F2604103B5FF6048
+S315007E7C26FC7CA181B5844EFB006100672358FFFF6D
+S315007E7C3614F5FFFF25F01D607861A1D926F2006353
+S315007E7C4660400F220C006E63604008260800EB83B8
+S315007E7C5660400426040014636040022AEB831D609E
+S315007E7C667A616347A1DB0064EFFBC4FE00670061B1
+S315007E7C762358FFFFD3F314F5FFA01360B0612503E7
+S315007E7C8625F05AD2A1D960400826060004260600AB
+S315007E7C96022606000A6705006E670300376701003F
+S315007E7CA6146759DB4C6458D02063D380FFFF0105E9
+S315007E7CB6635C59D91E6358D059D9FD1F0564EFFBFF
+S315007E7CC6C4FE006700612358FFFF7F670261235863
+S315007E7CD6FFFF14F550FE2460446325F2BDDB00A04B
+S315007E7CE626F2BDDB00A027F2BDDB00A028F02460CD
+S315007E7CF63E63A3D924604E631C60FC64A0D1D884FF
+S315007E7D06BDD96441DD81E9810400A0D1BDD9CD818D
+S315007E7D16D884FB020D010E607DF3FFFF6040003ABC
+S315007E7D260C002D603E6480FB04A481FB027C0B0066
+S315007E7D362D603E6481FB80FB08002D603E6404A4B4
+S315007E7D4681FB80FB017C126026F92D6040622460F1
+S315007E7D563E64A2DBFFFF0164EFFBC4FE00670061A3
+S315007E7D662358FFFF14F5FFFF25F08060036422FA91
+S315007E7D76026423FA254424FA1260B4650760F86124
+S315007E7D86A181615CE981E981C5850164644107B1AA
+S315007E7D9607220303CD81E084FD02A5D16445FFFF5C
+S315007E7DA6A08000640103807FB48425FA00610067A3
+S315007E7DB62358FFFF14F50760F86125F01260B46557
+S315007E7DC6A181E981E981C5856441016407B10722FE
+S315007E7DD60303CD81E084FD02A5D16440802B02009B
+S315007E7DE6B08402009C84A084A5DB006100672358CC
+S315007E7DF6FFFF14F5FFFF25F0106056F96440012655
+S315007E7E0602005AD91000206482FFA2FF404919FF5C
+S315007E7E16A3FF87FF106056F15AD364400226012AD5
+S315007E7E26020080BCA2DB3A605F78FFFF02644050A8
+S315007E7E3661FFFFFFFF60A163FE600066DD606E6424
+S315007E7E46A0DCEE60B76401FB126002F3FFFF6058AA
+S315007E7E56FFFFB2F128F219F808B0604707B50603A8
+S315007E7E668BF3FFFF6040022A3300560060414EF3D5
+S315007E7E767DF36040012A0B0038F2605C00A86444FC
+S315007E7E860603614080270300604740BC604708BC06
+S315007E7E9629FA6540003A5700A5F3FFFF02A801A816
+S315007E7EA6180239F02BF83AF0FFFF2CF83BF02DF846
+S315007E7EB6FFFF79F12EF87AF1FFFF2FF87BF130F886
+S315007E7EC6FFFF3CF031F83DF0FFFF32F83EF033F827
+S315007E7ED6600050FE3CF0B9F32EF8D0803DF0BAF342
+S315007E7EE62FF8D0803EF0BBF330F8D0808BF30501B9
+S315007E7EF604B0FFFF020242FE56008BF3FFFF04B07C
+S315007E7F0639F0210202B039F00F032BF83AF0FFFF63
+S315007E7F162CF83BF02DF8FFFF79F131F87AF1FFFF69
+S315007E7F2632F87BF133F8350031F83AF0FFFF32F856
+S315007E7F363BF033F8FFFF79F12BF87AF1FFFF2CF849
+S315007E7F467BF12DF826000160786329F00367B084FD
+S315007E7F5629FABDD12BF8FFFFBDD12CF8A3D1FFFFA1
+S315007E7F662DF8B9F12EF8FFFFBAF12FF8BBF1FFFF18
+S315007E7F7630F839F031F8FFFF3AF032F83BF0FFFF82
+S315007E7F8633F83CF035F8FFFF3DF036F83EF0FFFF5E
+S315007E7F9637F838F2FFFF00A829F00402BF60FF64B7
+S315007E7FA6A08429FA02FE2F58FFFF29F21CFA605C8E
+S315007E7FB60CB46040083A0700BF60FF644EF3A09C8F
+S315007E7FC66040102629F80E607DF3FFFF6040042A86
+S315007E7FD6190015F20063635E15FA16FC29F01E6318
+S315007E7FE66440032B186313FC04A36440402708A34E
+S315007E7FF6434B1EFC566138F0A1D2444D60400126A5
+S315007E80064100430015F20063635E15FA16FC1E6395
+S315007E801629F07360FF64A084032B186313FC29FA88
+S315007E802604A36440402708A3434B1EFC5661644066
+S315007E80360127626138F0A1D2444D604001262200B6
+S315007E8046CBF1C381D180634520066443D785454CF3
+S315007E8056CCF10FF2D380016501070065B4840FFA71
+S315007E806600632D442C456041D484DF83FC0714FCD3
+S315007E8076614417FA29F004646047B08429FA2C43D2
+S315007E808616FC0F002D4417FA0A002D4417FA2B45C7
+S315007E8096CCF1C481D1800FF2010601BC0FFA0164D0
+S315007E80A614FA1EF217F26045C484E084E084E08406
+S315007E80B61DFAE08460426045E884E884C485E884E7
+S315007E80C6C485E884C4856547007FE884E884C485DC
+S315007E80D6EA84E884E884E884E884E884C4840FBC79
+S315007E80E60FACE8846045E884E884C485E884C48564
+S315007E80F6D682E084AE81F965060301BCA580605C06
+S315007E810602028067B08418FA1EF216F2604500A84F
+S315007E8116C4843103E084E084E0841AFAE084604213
+S315007E81266045E884E884C485E884C485E884C48595
+S315007E81366547007FE884E884C485EA84E884E88423
+S315007E8146E884E884E884C4840FBC0FACE884604582
+S315007E8156E884E884C485E884C485D682E084AE81D4
+S315007E8166F965060301BCA580605C02028067B08461
+S315007E81761BFA2E58FFFF00641AFA1BFA2E58FFFFCB
+S315007E8186016000646041605C046007F964442C000B
+S315007E81960800026000646041605C046007F964441E
+S315007E81A62C000800036000646041605C046007F989
+S315007E81B664444600046000646041605C046007F9BE
+S315007E81C66444056000646041605C046007F964444B
+S315007E81D6066000646041605C046007F9644400677B
+S315007E81E6010001672358FFFF046001F1046006F96A
+S315007E81F6046002F1046005F9CB000A60006343461B
+S315007E82062643BDD1BDD3FFFFB080A081CA03DD80E4
+S315007E8216BDD16442C6034346E0876046624300603C
+S315007E82262A64A0D7584FFFFFD080BFD0E9036441AA
+S315007E8236802B040002600065B581D3000267D200FA
+S315007E8246016000667F60FC63634141602F64A3DA4A
+S315007E82560060006341603364A3DAA1D6BDDCBDDC73
+S315007E8266CB830265BFD0D780D38006030202CB833B
+S315007E8276F90041604378FFFFFC0241602378FFFFE9
+S315007E828608600A636444A3DBDC84BEDBDC84FB0015
+S315007E829600644051584F180031450726030040605A
+S315007E82A6E478FFFFB5814060F478FFFF8064405135
+S315007E82B6584F0A003145072604004060EB78FFFFDB
+S315007E82C6B5814060F478FFFF0F602C64A0DD62FF07
+S315007E82D64160736391FDFFFF1AFF36602878FFFFC4
+S315007E82E61E6078630F602C64A0DDFFFF62FF31455A
+S315007E82F62F58FFFF4160896491FB186050620C64BB
+S315007E8306A2DBFFFF2DFF36602878FFFF3869FFFF69
+S315007E831668440116FD006844032A0100070003B57A
+S315007E832606600061B5814060F478FFFF4060F278B2
+S315007E8336FFFF4160D178FFFF77605078FFFF0F60C1
+S315007E8346AE62A2D180600064B084A2DBCFFE23003B
+S315007E83560F60B062A2D100600464B084A2DBCFFE59
+S315007E83660F60D462A2D104600064B084A2DBCFFE25
+S315007E83761200ABFEFFFFDD05A8FEFFFFDD05AAFEAA
+S315007E8386FFFFDD05A9FEFFFFE305585B0164405A44
+S315007E83961A604C78FFFFA1FFFFFFBD3F186024627F
+S315007E83A6A2D3FFFF00A8604603024160CE78FFFF98
+S315007E83B62645D4800FF00F03644470B0702A0300FE
+S315007E83C64560F078FFFF644001270D000064404655
+S315007E83D64160CE78FFFF0FF2FFFF604780BC6047A5
+S315007E83E60FFAFFFFE2000FF2FFFF604740BC6047D1
+S315007E83F60FFA00650FF0FFFF6444802A06000064CC
+S315007E8406B484604522FA46463A0022F2FFFF60456C
+S315007E84163244012A0300076001640300022A06002D
+S315007E84260164B48422FA46605578FFFF1E608A7C14
+S315007E843638F2FFFF00A8A4D31F036040042A140067
+S315007E8446604529F25C636040022B6263BDD279F198
+S315007E8456BDD2D0807AF11002D080BDD27BF10C02DD
+S315007E8466D0806544090260400226DA00012A0400AD
+S315007E8476416465401027D5004560F078FFFF644469
+S315007E848608261D001C60A264A0D11C607A64C08486
+S315007E8496A0D3FFFFDC84A2DB6040003BC6FE3244EF
+S315007E84A6012A0300076002640300022A05000264AD
+S315007E84B622FA46605578FFFF4560F078FFFF324028
+S315007E84C6012A0B004EF11CF26440802629FA0760CB
+S315007E84D6006422FA46605578FFFF29F20FF0604067
+S315007E84E6A43608000CB4043602000C3A0600456033
+S315007E84F6F078FFFF4360CD78FFFF64406026030079
+S315007E850643608678FFFF29F23240042A0800403A05
+S315007E8516030043600178FFFF4560F078FFFF0E603B
+S315007E85267DF3FFFF04B029F26702604580360300BD
+S315007E8536403A3C001000204016230D00096089F162
+S315007E8546FFFF6440003A2C0009608DF3FFFF00B8FA
+S315007E8556FFFF010325008BF3FFFF02B0654426036A
+S315007E8566803A4A0000F41E60A663BDD108F2126206
+S315007E85766047D080604116026140FE220800624551
+S315007E8586BDD3A5D0DA82D080C981F6030B006140C1
+S315007E859600360600A2D0A3D3FFFF9080FF260200F8
+S315007E85A626462A0026464560F078FFFF5C636040D5
+S315007E85B6022B62636040403A0F000E607DF3FFFF3A
+S315007E85C601A803A8160302A81403130300A88BF3B7
+S315007E85D603026040022A0D00BDD279F1BDD2D0805B
+S315007E85E67AF10702D080BDD27BF10302D080FFFFEF
+S315007E85F603034560F078FFFF99F307FA1C60A264D1
+S315007E8606A0D11C605E64C084A0D3FFFFDC84A2DB9F
+S315007E86166040003BC6FE1C60A264A0D11C606264FC
+S315007E8626C084A0D3FFFFDC84A2DB6040003BC6FE8F
+S315007E86361FF2FFFF60451C60A264A0D11C606A64BF
+S315007E8646C084A0D3FFFFC484A2DB6040003BC6FE87
+S315007E865626F2FFFF6040013B0E001C60A264A0D19D
+S315007E86661C607E64C084A0D3FFFFDC84A2DB6040F0
+S315007E8676003BC6FE0F00023B0D001C60A264A0D125
+S315007E86861C608264C084A0D3FFFFDC84A2DB6040CC
+S315007E8696003BC6FE0E607DF3FFFF604004262D007E
+S315007E86A68BF3FFFF02B029F2030360408036280073
+S315007E86B60FF260404036240040261F0032440226D2
+S315007E86C61700102B15001E6026631E6022612BF294
+S315007E86D650FEBDD12CF2D080BDD12DF2D080BDD13B
+S315007E86E6FFFFD080FAA10401F2024560F078FFFF13
+S315007E86F68BF3FFFF02B0FFFF4D024560CD78FFFF8D
+S315007E87064360CD78FFFF29F032400226430064445B
+S315007E8716082A4000583610004EF3FFFF604080263A
+S315007E87261CF0FFFF644040270D00022A0B0038F23C
+S315007E8736FFFF00A8FFFF06034560F078FFFF466051
+S315007E87462178FFFF29F00367A0840037626302372C
+S315007E87565C630137566303371D0029F00367A084E1
+S315007E8766023B13000E607DF3FFFF604004260D007C
+S315007E8776BDD279F1BDD2D0807AF1E102D080BDD26A
+S315007E87867BF1DD02D08029F0DA0264446836D400B5
+S315007E87967836D2001060B46510F2FFFF007FE08463
+S315007E87A644D3046500B8C4811503604350FEA1D345
+S315007E87B62EF059D3D0802FF059D3D08030F0FFFFDC
+S315007E87C6D080FFFF0A0100A3A3D3FFFF00B8C481B2
+S315007E87D60103EB0099F3FFFF60438BF399F102B039
+S315007E87E6D38070036F0210F099F3444700A4A0D39A
+S315007E87F6FFFF00B8FFFF2B020060FA657244FFB4E6
+S315007E8806D480FFFF0204D484FB0001A46047E8847B
+S315007E8816E88499F3E885C483634400A40EA5A5D1AE
+S315007E8826A0D3A4DB00B80EA40103A0D9634599F3B1
+S315007E8836FFFF604100A1A1D3FFFFD48000B80307E6
+S315007E884602036041F800A1DD00A3A3DB654399F12F
+S315007E88561060B4656443274400A3007FE08444D356
+S315007E8866FFFF00B8FFFF090300A46041A0D3FFFF08
+S315007E887600B8FFFFF902614401006244A3D1A0D984
+S315007E88866041644400A4A0D1A3D9FFFF0063A0DDA6
+S315007E88960EA46143A0DDF2A460436345146246D30B
+S315007E88A6FFFF03BCA2DB186246D3FFFF80BCA2DBBA
+S315007E88B62EF2046246DB2FF2066246DB30F2086251
+S315007E88C646DB654307FC29F263456040A43A03000E
+S315007E88D64560CD78FFFF0827040034F00A6246D944
+S315007E88E60B0034F00A6246D3FFFFD080FFFF0302F9
+S315007E88F64560F078FFFFA2D94EF11CF26440802ACD
+S315007E890606006040402B030045604278FFFF0C62FE
+S315007E891646D3FFFF00A86046030245602578FFFF23
+S315007E892634F26643264634F0DC84908000F05702A5
+S315007E8936634634FA05F4FFFF00F801F07F60FF64B4
+S315007E8946A08401FA264606F005F2634606F805FA7F
+S315007E8956264638F0634638F2FFFFC08438FA264646
+S315007E89663FF0634664473FF2605C6047C0873FFAE6
+S315007E89762646006400FA0460006129F2634629F001
+S315007E89866040042703009D81A1840100B18429FAF3
+S315007E8996264643460F4E4645186032620064A2DB83
+S315007E89A666445ADB0A645ADBFFFF03FF00F2A2FF28
+S315007E89B600A860460C0301F07867A080F867070377
+S315007E89C6C08401FA2546006400FA254405FA296024
+S315007E89D6584F2378FFFFA3FFD1FE0E4F50000F4E52
+S315007E89E643456346186032620064A2DB66445ADB00
+S315007E89F60A645ADBFFFF03FF00F2A2FF00A8604669
+S315007E8A060C0301F07867A080F8670703C08401FA35
+S315007E8A162546006400FA254405FA2960584F2378D0
+S315007E8A26FFFFA3FFD1FE0E4F264607F00064644580
+S315007E8A360C6246DB34F2FFFF60400F220C00456077
+S315007E8A46F078FFFF264634F2FFFF60400F220300D2
+S315007E8A564560F078FFFF29F2FFFF6040042B0F008A
+S315007E8A6626430C6246DD2646186032620064A2DB29
+S315007E8A7666445ADB0A645ADBFFFF03FF000026467E
+S315007E8A8629F2FFFF6040B03619004036170005F022
+S315007E8A9606F205FAD08064431103604601F08067CC
+S315007E8AA6B08401FA00F0006400FA644605FC464589
+S315007E8AB6A2FF2960584F2378FFFFA3FF26464EF175
+S315007E8AC61CF26440802A0300604040270F0029F28C
+S315007E8AD607F0604004270500644500640C6246DBA9
+S315007E8AE60500006440464160D178FFFF29F2FFFF0C
+S315007E8AF6FFFF403A03004560CD78FFFF1C60A26407
+S315007E8B06A0D11C605A64C084A0D3FFFFDC84A2DB9E
+S315007E8B166040003BC6FE1C60A264A0D11C606264F7
+S315007E8B26C084A0D3FFFFDC84A2DB6040003BC6FE8A
+S315007E8B361FF2FFFF60451C60A264A0D11C606664BE
+S315007E8B46C084A0D3FFFFC484A2DB6040003BC6FE82
+S315007E8B5626F2FFFF6040013B0E001C60A264A0D198
+S315007E8B661C607E64C084A0D3FFFFDC84A2DB6040EB
+S315007E8B76003BC6FE0F00023B0D001C60A264A0D120
+S315007E8B861C608264C084A0D3FFFFDC84A2DB6040C7
+S315007E8B96003BC6FE0FF2FFFF604720BC60470FFA1A
+S315007E8BA6FFFFFFFF4EF11CF26440802629FA7843CA
+S315007E8BB604A35DFD0C604664A0D7FFFF664400A84D
+S315007E8BC6FFFF08030FF2FFFF604710BC60470FFAF0
+S315007E8BD6FFFFFFFF4160D178FFFF0FF2FFFF604781
+S315007E8BE608BC60470FFAFFFFFFFF0F4E464518602B
+S315007E8BF632620064A2DB66445ADB0A645ADBFFFFF6
+S315007E8C0603FF00F2A2FF00A860460C0301F0786718
+S315007E8C16A080F8670703C08401FA2546006400FA39
+S315007E8C26254405FA2960584F2378FFFFA3FFD1FE18
+S315007E8C360E4F006440464160D178FFFF84F3FFFF06
+S315007E8C4600A0C064CA0329FA026499F138FA07F8C5
+S315007E8C56FF670EFAFFFF2EF22BFA2FF2FFFF2CFA94
+S315007E8C6630F22DFAFFFFB9F32EFABAF3FFFF2FFA8B
+S315007E8C76BBF330FA3F60584ED878FFFF00F4FFFF0D
+S315007E8C8601F2037C7C7E01FA02F818603262176076
+S315007E8C96F864A2DB26445ADB0A645ADBFFFF03FF2F
+S315007E8CA6C1FEC7000FF2FFFF604704BC60470FFA9E
+S315007E8CB6FFFFFFFF05F0FFFF06F205FAD08064434D
+S315007E8CC61203604601F08067B08401FA00F0006404
+S315007E8CD600FA644605FC4645A2FF2960584F23786E
+S315007E8CE6FFFFA3FF26461860326218600864A2DB81
+S315007E8CF666445ADB0A645ADBFFFF03FFD2FE006434
+S315007E8D0640464160D178FFFF2F58FFFF29F2FFFFCD
+S315007E8D166047566301B001266263BDD039F8BDD081
+S315007E8D26FFFF3AF8BDD03BF802B05C63040362638C
+S315007E8D3603B0023A6A63BDD03CF8BDD0FFFF3DF86C
+S315007E8D46BDD03EF82F58FFFF0E5745480F4E0060A2
+S315007E8D561E61414D40A1A2FF2860584F3278FFFF23
+S315007E8D66A3FF06032D412860584F5478FFFF08FE61
+S315007E8D760E4F2703806722FAF260016424FA4A615F
+S315007E8D8603643843BDD1CC8459D8FC020563284496
+S315007E8D9602A825FA070203643943BDD1CC8459D885
+S315007E8DA6FC02086323FC1860326218600864A2DB44
+S315007E8DB666445ADB0A645ADBFFFF03FF08654554A1
+S315007E8DC63BFF3758FFFF0E5745480F4E006008613A
+S315007E8DD6414D40A1A2FF2860584F3278FFFFA3FF80
+S315007E8DE606032D412860584F5478FFFF08FE0E4F26
+S315007E8DF61703806722FA026423FAF26000645ADA5F
+S315007E8E0628445ADA08651860326218600864A2DB5E
+S315007E8E1666445ADB0A645ADBFFFF03FF45543BFF73
+S315007E8E263758FFFF0D60D6F3FFFF6040012227000D
+S315007E8E360064A2DB0D60D3F3FFFF01B4FFFF1003D0
+S315007E8E460D60D5F3FFFF6040012619000865466072
+S315007E8E56584EE678FFFF017C0D60D5F9FFFF0F00C1
+S315007E8E660D60D5F3FFFF6040012209000765466067
+S315007E8E76584EE678FFFF007C0D60D5F9FFFF007C35
+S315007E8E860960C1F90E6051F102619184A2DB1C6014
+S315007E8E963264C09C1B60C2631C610F600DF3FFFFCC
+S315007E8EA6604000361200A3D3BED36045DC80FFFF4A
+S315007E8EB60C03A4D3007CA2D9625CC484A3DB210402
+S315007E8EC6BED3FFFFDC84A2DB1C00A4D3007CA2D922
+S315007E8ED6625CA3D36045D880C48411030D05DC800D
+S315007E8EE664450A03A0F1A3DBD080655C0A041360A1
+S315007E8EF682620164A2DB05000064B884A2DB8AFF77
+S315007E8F0688FF04A30464CD81C09CC7020960C3F3AF
+S315007E8F16007C00A060460203A2D91D000960C1F34B
+S315007E8F26FFFF00A0FFFF03024160CE78FFFF0F4ED4
+S315007E8F3600607661414D40A1A2FF2860584F327887
+S315007E8F46FFFFA3FF06032D412860584F5478FFFF87
+S315007E8F5608FE0E4FE9033861806722FA0F600DF32D
+S315007E8F66FFFF00A81B60C2631803665C0960C2F930
+S315007E8F762B6423FAF160006424FA4A6570613A60CE
+S315007E8F86584FC078FFFF0960C2F538611B60C26321
+S315007E8F960064CD81BDDBFD023100E981166423FACC
+S315007E8FA6F160006424FA665C0960C2F9E181414D8E
+S315007E8FB63665D580486401066541BDD1DB83C981A8
+S315007E8FC658D8FB022D41558D2D41D885070600F4CE
+S315007E8FD67C65D5800264F1066541EF0001F080640A
+S315007E8FE6D09C6544D084807F01FA0960C2F53861DB
+S315007E8FF61B60C2630064CD81BDDBFD0218603262F2
+S315007E900618600864A2DB66445ADB0A645ADBFFFFF5
+S315007E901603FF086545543BFF4160CE78FFFF4760F8
+S315007E90261578FFFFA6FEFFFFFA05A7FEFFFF1405CE
+S315007E9036A5FEFFFF2805A4FEFFFF03054160CE7849
+S315007E9046FFFF0F60BC62A2D100608064B084A2DBA3
+S315007E9056CFFE4160CE78FFFF36451360F26444D775
+S315007E9066FFFFFFFF8FF3FFFF01B000640C038FFB4C
+S315007E90760F60DA62A2D100602064B084A2DBCFFEE6
+S315007E90864160CE78FFFF4860CD78FFFF1D607C632A
+S315007E9096BDD3BDD1BDD1B084B084FFFF080284FBAB
+S315007E90A63144FEB440510D7C046005F973000FF31E
+S315007E90B68FF1604707B45FFB01610303CC84E181D0
+S315007E90C6FD02A180B1836602096091F10D60CEF341
+S315007E90D60061D080FFFF0406FDA4DD81033AF90018
+S315007E90E6615C0D60CDF90E60C8F1C3F96440022657
+S315007E90F60700C06452FB006451FB806453FB060086
+S315007E9106606452FB086451FB386453FBB4F3B5F1D5
+S315007E9116E084C08433FB01603064C08434FB6045E2
+S315007E91260F600FF1B5F3FFFFC484C09C39F933F1A6
+S315007E9136FFFFC0843BFB09602A64A1FBDA7C34F917
+S315007E9146A27C35F97F7C36F9757C38F90164F0FBAD
+S315007E91568FFD314401BC4051CDF3D1FE03A8016398
+S315007E916606025AFD026314600064D2FB0C0002A856
+S315007E9176016303030A6000640300026314600064ED
+S315007E9186D2FB00645AFB59FD0F4E4B60584FDE7874
+S315007E9196FFFF0E4FDAFE4160CE78FFFF664400A8DB
+S315007E91A60E57270300644046CBFE0F4E4645186093
+S315007E91B632620064A2DB66445ADB0A645ADBFFFF30
+S315007E91C603FF00F2A2FF00A860460C0301F0786753
+S315007E91D6A080F8670703C08401FA2546006400FA74
+S315007E91E6254405FA2960584F2378FFFFA3FFD1FE53
+S315007E91F60E4F3758FFFF18601462A2D3FFFF00A8F2
+S315007E92066046FFFF030249609478FFFF1360A864F9
+S315007E9216A0D3FFFFAC80CC840103A2DB0EF2FFFF58
+S315007E92266047FD373F00FE366100FF361600F03694
+S315007E92360900FFB50F60B06246D100600164B08456
+S315007E9246A2DBCFFE186032620064A2DB66445ADB7E
+S315007E92560A645ADBFFFF03FFCE000F4E46451860B3
+S315007E926632620064A2DB66445ADB0A645ADBFFFF7F
+S315007E927603FF00F2A2FF00A860460C0301F07867A2
+S315007E9286A080F8670703C08401FA2546006400FAC3
+S315007E9296254405FA2960584F2378FFFFA3FFD1FEA2
+S315007E92A60E4FA9000F60D462A2D100600164B0841D
+S315007E92B6A2DBCFFE22F2FFFF00A80EF2040260407A
+S315007E92C640260500CA00604080260100C60018605A
+S315007E92D6326218600864A2DB66445ADB0A645ADB8D
+S315007E92E6FFFF03FFD3FE4860FE78FFFF18603262FB
+S315007E92F618601C64A2DB66445ADB0A645ADBFFFFEF
+S315007E930603FFC8FE4860FE78FFFFACFEFFFF0C0536
+S315007E9316ADFEFFFF1205AEFEFFFFF405AFFEFFFFB5
+S315007E93263A054160CE78FFFF0F60AE62A2D120601D
+S315007E93360064B084A2DBCFFEF4000F60EA650A61A4
+S315007E93460700A2DD584F6458FFFF00B9FFFF0803EA
+S315007E93560063A5D15AD3DA8500A8CD81F202F8023A
+S315007E9366E0000F60AC620F60D8654960CC6300642E
+S315007E93765ADBD680FFFF04035ADB5ADB5ADDF90039
+S315007E93860F60E86500645ADBD680FFFF02035ADD6E
+S315007E9396FB002F58FFFF0F60B06440410F60AE633F
+S315007E93A6A3D10064D08007610803BDDBA3D3FFFF8C
+S315007E93B6B084CD81A3DB06A3F9020F60DA63A3D15F
+S315007E93C60064D08008611603BDDB6444FEA302A357
+S315007E93D6CD81E884E3030205E103F9004042A3D387
+S315007E93E6434400A841430203584F60582244234112
+S315007E93F62443ED0021430F60DA65D780BDD1BDD308
+S315007E940601028F00A084BDD1F80343414960D16431
+S315007E94166458404F29F2FFFF605C0CB46040083604
+S315007E94260A0000360500043603004A60AD78FFFF63
+S315007E94364A60B078FFFF3240102A04006440402717
+S315007E944601001E00644458361B00683619007836BD
+S315007E945617000C604464A0D7584FFFFF0FF0B9F192
+S315007E946664446022100031F232F2D080BAF10B02E9
+S315007E9476D08033F20802BBF1FFFFD0800FF00302E5
+S315007E94864A60AD78FFFF0C605264A0D7584FFFFF47
+S315007E949600F4664400BC01F246030A657FB4D480B6
+S315007E94A6AA60AA65400602F203F0D48003643B02F4
+S315007E94B6D080006404F03702D080F87F0602264606
+S315007E94C622F02067B084A2DA2E00D0801D6060640A
+S315007E94D60602264622F04067B084A2DA2400D080B1
+S315007E94E60160006405F01F02D08006F01C0264450A
+S315007E94F6D4802646080232400226290022F060677C
+S315007E9506B084A2DA2400654400BCFFFF0C020FF28B
+S315007E9516324002261C000C605464A0D7584FFFFFCB
+S315007E95264B607778FFFF2646D3F3FFFF604008261B
+S315007E95360E000FF229F260406026090048360A00C0
+S315007E9546D3F3017C6040033A0200096095F94B60CD
+S315007E95565C78FFFF4B607378FFFFD3F3FFFF6040B7
+S315007E9566082A28000A360F00083A210029F2FFFF4C
+S315007E95766040403A1C000C604A64A0D7584FFFFFF5
+S315007E95864B606F78FFFF29F2FFFF604080367100E1
+S315007E9596403A0D00A2F3FFFF60400036DB000C600A
+S315007E95A64A64A0D7584FFFFF4B606F78FFFF4A602D
+S315007E95B6AA78FFFF29F2FFFF6040B0360800103614
+S315007E95C6060030360400C0360200A03A08000C605B
+S315007E95D64864A0D7584FFFFF4B606F78FFFF503A1F
+S315007E95E606000C605064A0D7584FFFFF3600403AFF
+S315007E95F606000C604A64A0D7584FFFFF6D00803A7E
+S315007E9606570013601A61A1D3FFFF00B8FFFF05035B
+S315007E96160C605064A0D7584FFFFF8BF379F16040FC
+S315007E9626022A05005B60584F6C78FFFF0C0031F20C
+S315007E963632F2D0807AF11102D08033F27BF10D02BE
+S315007E9646D080FFFF0A020C604C64A0D7584FFFFFFE
+S315007E96560C604E64A0D7584FFFFF204016230800A5
+S315007E966613601264A0D3FFFF60400036010021001E
+S315007E9676330079F131F232F2D0807AF10C02D08063
+S315007E968633F27BF10802D080FFFF05020C604E6442
+S315007E9696A0D7584FFFFF4A60AA78FFFF0C604C643E
+S315007E96A6A0D7584FFFFF0C604E64A0D7584FFFFFDA
+S315007E96B61700047C0D60D0F91A00186032621860B5
+S315007E96C60864A2DB26445ADB0A645ADBFFFF03FFE5
+S315007E96D600644046D2FE0800664400BCFFFF0403D3
+S315007E96E64860584ED178FFFF5DF7FFFFFFFF05F016
+S315007E96F6FFFF06F205FAD08064431203604601F048
+S315007E97068067B08401FA00F0006400FA644605FCC0
+S315007E97164645A2FF2960584F2378FFFFA3FF2646BC
+S315007E9726CC00007C44400F4E0060C461414D40A192
+S315007E9736A2FF2860584F3278FFFFA3FF06032D410E
+S315007E97462860584F5478FFFF08FE0E4F66446EFB20
+S315007E97560F4E00606C61414D40A1A2FF2860584FB6
+S315007E97663278FFFFA3FF06032D412860584F5478B3
+S315007E9776FFFF08FE0E4F66446DFB0F4E00603E6190
+S315007E9786414D40A1A2FF2860584F3278FFFFA3FFC6
+S315007E979606032D412860584F5478FFFF08FE0E4F6C
+S315007E97A61360AC626644A2DB0F60E6624C605B6465
+S315007E97B6A2DB2F58FFFF99F114600264126141DB2A
+S315007E97C60164D3FB0F60CE620064A2DB0060146385
+S315007E97D6016070611D607A6458D159D9FD1F00609B
+S315007E97E680631C60F8611D60906458D159D9FD1F4F
+S315007E97F6C2F3FFFF6040033A0300F9602661070065
+S315007E9806023A0300F9601A610200F9600E61FC6095
+S315007E98160066016086640A6359D058D9FD1F1360B7
+S315007E98261C61A1D3FFFF00A06045080313601A6181
+S315007E9836A1D3FFFF00B878640102A1DB2460226310
+S315007E98461D607864A0D1A4F30E616540003A00647B
+S315007E9856A0856544E8850564CD8102280064BDDB66
+S315007E9866F8021E60A4611D601C64206358D159D916
+S315007E9876FD1FCEF178F900601A630060F061006420
+S315007E988659DBFE1F4040BFF3FFFF404A3144802A24
+S315007E989602001160ECE00F4E4D60584FAE78FFFF2A
+S315007E98A60E4F0F60CE620064A2DB5ADB2F58FFFF97
+S315007E98B60F60CE620064A2DB0F60DA62A2D1006020
+S315007E98C61F64B084A2DBCFFE0F60CE62A2D100609B
+S315007E98D60864B084A2DBCFFE0F60D06200600864A7
+S315007E98E6A2DB4C607A645ADBCFFE2F58FFFF9DFEC5
+S315007E98F682FF03050864404919FF86FF026484FBDE
+S315007E99060F60D06280600064A2DB4C608F645ADB97
+S315007E9916CFFEC1FE2F58FFFF0F60CE62A2D17F60BB
+S315007E9926FF64A084A2DB84F3FFFF00A0FFFFF202A2
+S315007E99360F60CE62A2D17F60FF61A1845AD14ADBD7
+S315007E9946A1845ADB0F60CE620064A2DBD3F1FFFFF1
+S315007E99566440043A5E000F60D06220600064A2DB3B
+S315007E99664C60C1645ADBCFFE76F118604C62A2D992
+S315007E99761E644ADBFFFF2DFF2F58FFFF1360AC6286
+S315007E9986A2D5FFFFB9F32EFABAF3FFFF2FFABBF382
+S315007E999630FAFFFF79F32BFA7AF3FFFF2CFA7BF385
+S315007E99A62DFAC06429FA026499F138FA07F81E6020
+S315007E99B620640EFA00640FFA3F60584ED878FFFF91
+S315007E99C600F4FFFF01F2037C7C7E01FA02F8136047
+S315007E99D6AC62A2D50F60CE620064A2DB0F60D06257
+S315007E99E600600164A2DB4D6008645ADBCFFE186018
+S315007E99F632621760FC64A2DB66445ADB0A645ADB73
+S315007E9A06FFFF03FFC1FE2F58FFFF13600E7C6744E0
+S315007E9A16A4DB3144FEB440510F60CE620064A2DB05
+S315007E9A265ADBBEFE204402653480204401B554804E
+S315007E9A36186010614D60584E5878FFFF1760F861C2
+S315007E9A464D60584E5878FFFF1760FC614D60584E44
+S315007E9A565878FFFF186008614D60584E5878FFFFAC
+S315007E9A66186008614D60584E5878FFFF186014617D
+S315007E9A764D60584E5878FFFF186028614D60584EE7
+S315007E9A865878FFFFC5FE0E607DF3017C03A8D3F9E9
+S315007E9A96050302654660584EE678FFFF046482FF3C
+S315007E9AA6404919FF86FF2F58FFFFA1D30E5700A800
+S315007E9AB66046380309F00EF2444C20B001B00B0323
+S315007E9AC6186032620064A2DB66445ADB0A645ADB9D
+S315007E9AD6FFFF03FF250024020F4E464518603262BD
+S315007E9AE60064A2DB66445ADB0A645ADBFFFF03FF89
+S315007E9AF600F2A2FF00A860460C0301F07867A080FC
+S315007E9B06F8670703C08401FA2546006400FA2544F1
+S315007E9B1605FA2960584F2378FFFFA3FFD1FE0E4F25
+S315007E9B262C44C5003758FFFF106064630064A3DBD0
+S315007E9B3606A310600064BDDBBDDB0664A3DB0F6097
+S315007E9B46FE625B605F64A2DB0F60E4625B604F640D
+S315007E9B56A2DB2F58FFFF0F60C8620064A2DB0F6090
+S315007E9B66C862A2D100600264B084A2DBCFFE0F601B
+S315007E9B76CA6200600264A2DB4D60C5645ADBCFFE14
+S315007E9B862F58FFFF0F60C8620064A2DB1C60FA6274
+S315007E9B96A2D3FFFF03A801A80C03170306A805A8F0
+S315007E9BA60B030D0304A800A80D030F035B600B7859
+S315007E9BB6FFFF50603678FFFF50607E78FFFF50606D
+S315007E9BC6DD78FFFF51602578FFFF0264D3FBF760E1
+S315007E9BD6FF65204424800F60AE62A2D18060006459
+S315007E9BE6B084A2DBCFFE4460446479FB7AFB7BFBC2
+S315007E9BF61D607064A0D1FFFF6440033A06000F60C5
+S315007E9C06C8620064A2DB2F58FFFF204416231C0081
+S315007E9C16106068620A64A2DB0F60C8620064A2DB1B
+S315007E9C260F60CA6200600464A2DB4E6008645ADB7B
+S315007E9C36CFFE18605C6210606464A2DB02644ADB57
+S315007E9C46FFFF1DFF2F58FFFF0A6000652044348004
+S315007E9C5684F366FB026484FB0F60CA6280600064DE
+S315007E9C66A2DB4E603B645ADBCFFEC1FE2F58FFFF5A
+S315007E9C760F60C862A2D17F60FF64A084A2DB84F3F4
+S315007E9C86FFFF00A0FFFFF2020F60C862A2D17F60CF
+S315007E9C96FF61A1845AD14ADBA1845ADB0D6461FB3E
+S315007E9CA61C60FC6464FB0F60C8620064A2DB0F6006
+S315007E9CB6CA6210600064A2DB4E606B645ADBCFFE1E
+S315007E9CC60F4E5D60584FCF78FFFF0E4F2F58FFFF22
+S315007E9CD6FD60FF65204424800F60AE62A2D180605F
+S315007E9CE60064B084A2DBCFFE66F384FB0F60C86297
+S315007E9CF60064A2DBC1FE0E60B8F3FFFF604001364C
+S315007E9D0602002F58FFFF246022630E61BDD3FFFF3C
+S315007E9D1601B4CD810402FA024F606878FFFF0E60B9
+S315007E9D267DF380F16045003A0500CAF3FFFF604089
+S315007E9D36012A0D002D603E63D3802044050310BCA8
+S315007E9D4640405260E278FFFF6540003A240081F388
+S315007E9D56FFFFD0802044220310BC404064425AD185
+S315007E9D660663A4D1C383444ABFF9FFFFBDD179F901
+S315007E9D76BDD1FFFF7AF9BDD17BF904A3BDD11E60A5
+S315007E9D86A6646441DD81FEB1A0D90403BDD1C98135
+S315007E9D9658D9FC0255004F605A78FFFF13601C6146
+S315007E9DA6A1D3FFFF60400036190024602265BFF30B
+S315007E9DB6FFFFCC84E08444D3FFFF604001260E007D
+S315007E9DC6246022630061BDD3DD81604001260400E6
+S315007E9DD661400E3AF8006B006144BFFBBFF3CAF3DF
+S315007E9DE6404A604002266300FF60EF652044248079
+S315007E9DF61D601E65A5D11E60A663644400365700A7
+S315007E9E06BDDBAC8165440603DD81FEB158D1C981D1
+S315007E9E16BDD9FC02B9F3FFFF6041FCB402BD6144C5
+S315007E9E26007EB48479FB0760D5F3724300A800AB47
+S315007E9E360402082401BBA2DD63447AFBBBF37BFBEB
+S315007E9E460F60C8620064A2DBDEFEFFFF0B040F60B6
+S315007E9E56CA6240600064A2DB4F6023645ADBCFFE93
+S315007E9E662F58FFFF0F60CA6220600064A2DB4F6038
+S315007E9E7648645ADBCFFE18604C622A44A2DB1E6417
+S315007E9E864ADBFFFF2DFF2F58FFFF0F60C862006477
+S315007E9E96A2DBBEFE0F60AE62A2D140600064B084D5
+S315007E9EA6A2DBCFFE02648BFB51608C78FFFF0264D9
+S315007E9EB6D3FBF760EF65204424800F60AE62A2D1A5
+S315007E9EC680600064B084A2DBCFFE106068620164A7
+S315007E9ED6A2DB18605C6210606464A2DB02644ADB05
+S315007E9EE6FFFF1DFF0F60CA6200600464A2DB4F603F
+S315007E9EF680645ADBCFFE2F58FFFF204414230300CF
+S315007E9F064D60E878FFFF0860006520443480026471
+S315007E9F1684FB0F60CA6280600064A2DB4F60986431
+S315007E9F265ADBCFFEC1FE2F58FFFF0F60C862A2D155
+S315007E9F367F60FF64A084A2DB84F3FFFF00A0FFFFA1
+S315007E9F46F2020F60C862A2D17F60FF61A1845AD1F8
+S315007E9F564ADBA1845ADB0F60C8620064A2DBDEFEA2
+S315007E9F66FFFF0B040F60CA6240600064A2DB4F608F
+S315007E9F768A645ADBCFFE2F58FFFF0F60C8620064E5
+S315007E9F86A2DBFF60FE65204424800F60CA62006005
+S315007E9F960464A2DB4F60FA645ADBCFFE046482FF5A
+S315007E9FA6404919FF86FF0360E87C086034F918602D
+S315007E9FB65C6210606464A2DB02644ADBFFFF1DFFFF
+S315007E9FC6F760FF65204424800F60AE62A2D1806072
+S315007E9FD60064B084A2DBCFFEBEFE0F60AE62A2D167
+S315007E9FE640600064B084A2DBCFFE2F58FFFF204080
+S315007E9FF614230F000F60C8620064A2DB0F60CA627C
+S315007EA00680600064A2DB4F60FA645ADBCFFE2F586F
+S315007EA016FFFF9DFE82FF03050864404919FF86FF02
+S315007EA0260F60C8620064A2DB0F60CA6220600064AD
+S315007EA036A2DB50602A645ADBCFFE76F118604C624C
+S315007EA046A2D91E644ADBFFFF2DFF2F58FFFF66F35C
+S315007EA05684FB0F60C8620064A2DB204401BC4040DC
+S315007EA0664D60E878FFFF037CD3F9CDF3D4F36045E4
+S315007EA07699F1605F655E186141DB20A2A2DB006412
+S315007EA086BFF17DFB444A0F60C8620064A2DBDEFE3A
+S315007EA096FFFF0B040F60CA6240600064A2DB50605D
+S315007EA0A646645ADBCFFE2F58FFFF0F60CA622060DA
+S315007EA0B60064A2DB50606B645ADBCFFE18604C628E
+S315007EA0C62A44A2DB1E644ADBFFFF2DFF2F58FFFFC5
+S315007EA0D60F60C8620064A2DBBEFE0F60AE62A2D1CE
+S315007EA0E640600064B084A2DBCFFE016484FB02641A
+S315007EA0F68BFB2F58FFFF087CD3F999F11260FA6223
+S315007EA106A2D3126141DBC3F3FFFF6040022A07003A
+S315007EA11604BCC3FB106141D3FFFF207FA2DBB9F1EE
+S315007EA12679F9FFFFBAF17AF9BBF1FFFF7BF9006495
+S315007EA136BFF17DFB444A77F90F4E7260584FC87859
+S315007EA146FFFF0E4F0F60C8620064A2DBDEFEFFFFD6
+S315007EA1560B040F60CA6240600064A2DB5060A56491
+S315007EA1665ADBCFFE2F58FFFF0F60CA62206000645F
+S315007EA176A2DB5060CA645ADBCFFE18604C622A4464
+S315007EA186A2DB1E644ADBFFFF2DFF2F58FFFF0F6003
+S315007EA196C8620064A2DBBEFE0F60AE62A2D14060DC
+S315007EA1A60064B084A2DBCFFE016484FB01678BFB71
+S315007EA1B62F58FFFF097CD3F9CDF3D4F3604599F189
+S315007EA1C6605F655E186141DB20A2A2DB0064BFF19B
+S315007EA1D67DFB444A0F60C8620064A2DBDEFEFFFF9B
+S315007EA1E60B040F60CA6240600064A2DB5060ED64B9
+S315007EA1F65ADBCFFE2F58FFFF0F60CA6220600064CF
+S315007EA206A2DB516012645ADBCFFE18604C622A448A
+S315007EA216A2DB1E644ADBFFFF2DFF2F58FFFF0F6072
+S315007EA226C8620064A2DBBEFE0F60AE62A2D140604B
+S315007EA2360064B084A2DBCFFE016484FB02678BFBDF
+S315007EA2462F58FFFF0A7CD3F999F11260FA62A2D3E0
+S315007EA256126141DBCDF3D4F36045605F655E1861BE
+S315007EA26641DB20A2A2DBFFFFFFFF1E601461A1D1A8
+S315007EA276FFFF79F9FFFF59D1FFFF7AF9FFFF59D123
+S315007EA286FFFF7BF9FFFF0064BFF17DFB444A77F94A
+S315007EA2960F4E7260584FC878FFFF0E4F0F60C8622A
+S315007EA2A60064A2DBDEFEFFFF0B040F60CA6240601F
+S315007EA2B60064A2DB516051645ADBCFFE2F58FFFF46
+S315007EA2C60F60CA6220600064A2DB516076645ADB48
+S315007EA2D6CFFE18604C622A44A2DB1E644ADBFFFF71
+S315007EA2E62DFF2F58FFFF0F60C8620064A2DBBEFEFD
+S315007EA2F60F60AE62A2D140600064B084A2DBCFFE60
+S315007EA306016484FB83FB0064405C02648BFB2F58EE
+S315007EA316FFFFF560FF65204424800F60AE62A2D102
+S315007EA32680600064B084A2DBCFFE99F11260FA6289
+S315007EA336A2D3126141DBCDF3D4F36045605F655EE1
+S315007EA346186141DB007CBFF37DF9404A77FB0960E5
+S315007EA35695F9204410B0006411029DFB9EFB9FFB7F
+S315007EA36600750072EDE2CEF378FBFFFFE084E084B3
+S315007EA376E084E093E093C0F17EF95A00A8F1086086
+S315007EA38634F918605C6210606464A2DB02644ADBA0
+S315007EA396FFFF1DFF0F60CA6201608464A2DB516007
+S315007EA3A6D8645ADBCFFE2F58FFFF0F60C862A2D154
+S315007EA3B600608064A0809C840303A084A2DB3800B0
+S315007EA3C600600464A0809C842803A084A2DB0F60C0
+S315007EA3D6DA62A2D100600164B084A2DBCFFE0F6092
+S315007EA3E6CA6200600864A2DB526005645ADBCFFE51
+S315007EA3F60F60C862A2D100600864B084A2DBCFFE7D
+S315007EA4062F58FFFF0064404962FB63FB0F60C862FC
+S315007EA4160064A2DB4D60E878FFFF01600064A080E1
+S315007EA4269C840503A084A2DB5B605278FFFFB200A4
+S315007EA4360364D3FB016484FB0F4E7260584FC87863
+S315007EA446FFFF0E4F01654660584EE678FFFFA8F180
+S315007EA456086034F918605C6210606464A2DB02648C
+S315007EA4664ADBFFFF1DFF0F60CA6202600464A2DB41
+S315007EA476526041645ADBCFFE2F58FFFF0F60C862DB
+S315007EA486A2D100600464A0809C840A03A084A2DB19
+S315007EA496096095F3007C604000363300A2D9D7006A
+S315007EA4A602600064A0809C84DE03A084A2DB0F602B
+S315007EA4B6DA62A2D100600164B084A2DBCFFE0F60B1
+S315007EA4C6C8620064A2DB0F60CA6200600864A2DB13
+S315007EA4D6526079645ADBCFFE0F60C862A2D10060F5
+S315007EA4E60864B084A2DBCFFE2F58FFFF0F60C862DA
+S315007EA4F60064A2DB0F4E7260584FC878FFFF0E4F80
+S315007EA506A6000F60DA62A2D100600164B084A2DB87
+S315007EA516CFFE0F60CA6200600864A2DB52609F644B
+S315007EA5265ADBCFFE0F60C862A2D100600864B08493
+S315007EA536A2DBCFFE2F58FFFF0064404962FB63FB1A
+S315007EA54699F3FA612065C4856043A3D3FFFFD48061
+S315007EA556FFFF120300B80107F702404865440EA4C2
+S315007EA566A0D1A5D3A4DB00B80EA40103A0D92844A6
+S315007EA576655CA3D9A4DB644400B8CD810824634414
+S315007EA5862063C785E102096096F109607AF909605A
+S315007EA59697F1D4F909607DF93D60584E5678FFFFEE
+S315007EA5A60E60B8F10F60C8620064A2DB6440013AB1
+S315007EA5B603004D60E878FFFF4E60D178FFFFF760B7
+S315007EA5C6FF65204424800F60AE62A2D1806000645F
+S315007EA5D6B084A2DBCFFE54605478FFFF204401266A
+S315007EA5E62F000F60C8620064A2DBDEFEFFFF0B044F
+S315007EA5F60F60CA6220600064A2DB5260F4645ADB96
+S315007EA606CFFE2F58FFFF0F60C8620064A2DB18607C
+S315007EA6164C6208644ADBFFFF2DFF0F60CA6220602C
+S315007EA6260064A2DB53601B645ADBCFFE2F58FFFF06
+S315007EA636204401BC40400F60C8620064A2DBBEFEB9
+S315007EA64613600E7C6744A4DB13600C6174F3FFFF14
+S315007EA656CC859485A484A1DB6DF5FFFFB9F12EF832
+S315007EA666BAF1FFFF2FF8BBF130F8FFFFA6F119F816
+S315007EA676F06020640EFA086428FA99F107F80064F9
+S315007EA6860FFA7DF11067A084B0BC29FA274306A38C
+S315007EA696BDD12BF831F8FFFFBDD12CF832F8FFFF7E
+S315007EA6A6A3D12DF833F8066338FC3F60584ED8782A
+S315007EA6B6FFFF664500F4046113600C64A0D3007C3C
+S315007EA6C660400426807C0226017CA1D8016359DC83
+S315007EA6D6006459DAA6F110606862A2D91860326201
+S315007EA6E61760FC64A2DB65445ADB0A645ADBFFFF0D
+S315007EA6F603FFC1FE016469FB136420FB18605C627E
+S315007EA70610606464A2DB02644ADBFFFF1DFF0F60F6
+S315007EA716CA6200600C64A2DB536095645ADBCFFE88
+S315007EA7262F58FFFF0F60C862A2D100600864A08022
+S315007EA7369C846E03A084A2DB18605C6210606464EF
+S315007EA746A2DB03644ADBFFFF1DFF006469FB0F6025
+S315007EA756C8620064A2DB5ADB264638F200F4FFFFA7
+S315007EA76604F2604100A8FFFF6C0213600C64A0D35E
+S315007EA776FFFF02B403F2390302A888653302D58049
+S315007EA786FFFF5F042646A6F119F8FF7F007E0EFAC6
+S315007EA796086428FA99F107F8FFFF7DF11067A08411
+S315007EA7A6B0BD4067B48429FA2BF02EF2FFFF2EF851
+S315007EA7B62BFA2CF0FFFF2FF22FF82CFAFFFF2DF047
+S315007EA7C630F230F8FFFF2DFA3F60584ED878FFFFFD
+S315007EA7D6664500F404610164A1DA036359DC5360BD
+S315007EA7E66D78FFFF04A8FFFF2C0213600E7C02F233
+S315007EA7F6A4DB26464860584ED178FFFF204408B033
+S315007EA806FFFF03035460F578FFFF5860B478FFFFB9
+S315007EA81600600464A0809C840F03A084A2DB00648F
+S315007EA82669FB13600E7C6744A4DB0F60C862006416
+S315007EA836A2DB5ADB02611E001C6420FB5360937802
+S315007EA846FFFF146420FB26464860584ED178FFFFEC
+S315007EA85674F113600C64A0D3FFFFE084CC849C84E1
+S315007EA866A084CC9C0603909CA084A2DB53602F78A2
+S315007EA876FFFF01611360E464274306A3BDD1A0D919
+S315007EA886BDD1FFFF58D9BDD158D9615C58D9204470
+S315007EA89608B0FFFF030354609478FFFF5860147870
+S315007EA8A6FFFF106420FB204414231C0010606862A0
+S315007EA8B60A64A2DB0F60C8620064A2DB0F60CA620E
+S315007EA8C600600464A2DB546056645ADBCFFE1860D1
+S315007EA8D65C6210606464A2DB02644ADBFFFF1DFFD6
+S315007EA8E62F58FFFF0860006520443480A6F110606D
+S315007EA8F66862A2D96EF5B9F1FFFF2EF8BAF12FF886
+S315007EA906FFFFBBF130F8A6F1FFFF19F8F060206471
+S315007EA9160EFA086428FA99F107F8D0632D603C642E
+S315007EA926A3DBD06301600065A3D3A5D104A4A3DB14
+S315007EA936D080A0D10D074EF3444760400126082BF2
+S315007EA94606000E6440D3FFFF6040102AEA000F0021
+S315007EA956116420FB0F60C8620064A2DB5ADB0665C3
+S315007EA9664660584EE678FFFF4F605A78FFFF1264C0
+S315007EA97620FB0F60C8620064A2DBDEFEFFFF0B04CF
+S315007EA9860F60CA6240600064A2DB5460BA645ADB1A
+S315007EA996CFFE2F58FFFF27D10F60CA622060006464
+S315007EA9A6A2DB5460E1645ADBCFFE18604C62A2D904
+S315007EA9B61E644ADBFFFF2DFF2F58FFFF0F60C8621E
+S315007EA9C60064A2DBBEFE0F60AE62A2D1406000646A
+S315007EA9D6B084A2DBCFFE00600865204434805260D8
+S315007EA9E6F178FFFF156420FB6EF5006429FA27438E
+S315007EA9F606A3BDD12BF831F8FFFFBDD12CF832F870
+S315007EAA06FFFFA3D12DF833F8FFFF00F44EF1016365
+S315007EAA166440012610BBC3F1FFFF6440022620BBBD
+S315007EAA2602FC0960EDFD086025F30461604359DC8E
+S315007EAA366144588C274312A3BFD363456041404D7C
+S315007EAA46605C3560BE630064BDDB6444BDDBA5D158
+S315007EAA56DA856444007FCD81BDDB05036447007FCE
+S315007EAA66CD81BDDBF4020164BDDB0F6049F32D5C4F
+S315007EAA76DA85BDDB6041408DA5D1DA856444007FEB
+S315007EAA86CD81BDDB05036447007FCD81BDDBF40248
+S315007EAA96274146A1A1D3F8A118B461451B03187EAA
+S315007EAAA6A2DB8564BDDB1C64BDDB02A42D5C408D0A
+S315007EAAB60961A5D1DA856444007FCD81BDDB0503B8
+S315007EAAC66447007FCD81BDDBF40213610064CD81D0
+S315007EAAD6BDDBFD02096098F3FFFF6041604500A875
+S315007EAAE62D440E03448DDA85A5D1DA856444007F2E
+S315007EAAF6CD81BDDB05036447007FCD81BDDBF402D8
+S315007EAB062D4104A1414D3560BE632C45DD81BDD305
+S315007EAB16BDD1C981645FA5DA7E3A08007C6401FAF6
+S315007EAB2600F40465A984FFFFF2020300A984DA8590
+S315007EAB36EE026544FCA4807F01FA6EF52D4404A4DC
+S315007EAB4638FA3F60584ED878FFFF18603262176033
+S315007EAB56FC64A2DB66445ADB0A645ADBFFFF03FF0C
+S315007EAB66C1FE066469FB166420FB18605C62106093
+S315007EAB766464A2DB02644ADBFFFF1DFF0F60CA62C6
+S315007EAB8600601C64A2DB5560CC645ADBCFFE2F5870
+S315007EAB96FFFF0F60C862A2D100600864A0809C8415
+S315007EABA62403A084A2DB18605C6210606464A2DB68
+S315007EABB603644ADBFFFF1DFF006369FD0F60C86203
+S315007EABC60064A2DB5ADB264600F4FFFF03F2FFFF94
+S315007EABD600B8FFFF490326464860584ED178FFFFE8
+S315007EABE6176420FB54609478FFFF00601064A08093
+S315007EABF69C842003A084A2DB18605C621060646479
+S315007EAC06A2DB03644ADBFFFF1DFF26464860584EDD
+S315007EAC16D178FFFF006469FB13600E7C6744A4DB74
+S315007EAC260F60C8620064A2DB5ADB196420FB54609F
+S315007EAC36EE78FFFF00600464A0809C841203A084E5
+S315007EAC46A2DB006469FB13600E7C6744A4DB0F609F
+S315007EAC56C8620064A2DB5ADB1A6420FB54609478D1
+S315007EAC66FFFF1D6420FB9300186420FB77F376FBBB
+S315007EAC76FFFF99F12061C183635C02F21061604534
+S315007EAC8641D3FFFF655FA2DBFFFF6040202B0A00F4
+S315007EAC96C3F3FFFF6040022A050004BCC3FB0064C3
+S315007EACA6F0FB0400FBB4C3FB0164F0FB1260FC659B
+S315007EACB604F03F60FF64A0846041E884E884E8830C
+S315007EACC6A5DD1260FE65016407B1FF220400E084FD
+S315007EACD6CD81FFFFFC02A5DB27430265C785A5D38B
+S315007EACE6FFFF604763FB0465C785A5D3FFFF604705
+S315007EACF662FB0C65C785A5D378FB6045E884E88448
+S315007EAD06EDA0A9FB02051364A9FBA9F11060986262
+S315007EAD16A2D904F200657CFB0A63BDD2454D604727
+S315007EAD26007F6041BDD20065404C7FB4FFFF023690
+S315007EAD360165043602650B36046516360865654476
+S315007EAD462C408026605F2D45348DCD81FFFF160310
+S315007EAD562C44006560477FB4FFFF023601650436E4
+S315007EAD6602650B3604651636086565442C408027D3
+S315007EAD76605F2D45348DCD81FFFFD4022D44007F45
+S315007EAD86CDF36045A480FFFF0828A4852D44655E25
+S315007EAD96404D2D4760400826086404260464022634
+S315007EADA602640126016408366E7F0436377F0236D4
+S315007EADB6147F01360A7FD4FB60452D44655F99F183
+S315007EADC62061C183635C186141DB604008260D0005
+S315007EADD604260800022603000A6001640800146041
+S315007EADE60264050037600B6402006E600B641261B6
+S315007EADF641DB2743264631F079F932F0FFFF7AF9B1
+S315007EAE0633F07BF920FE11611065C7831E60A4644C
+S315007EAE16BDD1CD8158D9FC02086025F17FF9136034
+S315007EAE261264A0D3FFFF604000360D0018603262C2
+S315007EAE3618600864A2DB26445ADB0A645ADBFFFFE7
+S315007EAE4603FFD2FE050026464860584ED178FFFFA0
+S315007EAE56016484FB0164C1FE7DF18BFB0167B09CB8
+S315007EAE667DF90464D3FB01654660584EE678FFFF9E
+S315007EAE760F60B662A2D100600264B084A2DBCFFE0A
+S315007EAE8677F10960F1F9F760FF65204424800F604B
+S315007EAE96AE62A2D180600064B084A2DBCFFE0C6473
+S315007EAEA669FB0F60CA6200603064A2DB57605F642E
+S315007EAEB65ADBCFFE2F58FFFF0F60C862A2D1006015
+S315007EAEC61064A0809C843803A084A2DB1B6420FBCE
+S315007EAED66AF3FFFF01B0FFFF13030F60B662A2D1CE
+S315007EAEE600600464B084A2DBCFFE0F60CA6208608F
+S315007EAEF60064A2DB576083645ADBCFFE2F58FFFFC2
+S315007EAF060F60C8620064A2DB5ADB006469FB1360CD
+S315007EAF160E7C6744A4DB5760584EB478FFFF026406
+S315007EAF2684FB0264C1FED3FB02654660584EE67814
+S315007EAF36FFFF4F605A78FFFF00602064A0809C84E6
+S315007EAF46B903A084A2DB006369FD13600E7C6744A9
+S315007EAF56A4DB0F60C8620064A2DB5ADB1C002F5896
+S315007EAF66FFFF18605C6210606464A2DB03644ADBE2
+S315007EAF76FFFF1DFF006469FB13600E7C6744A4DB3E
+S315007EAF860F60C8620064A2DB5ADB016484FBFFFFA6
+S315007EAF96C1FE2E58FFFF206420FB0F60C862006448
+S315007EAFA6A2DB13600064A0D3FFFF10B0FFFF13037E
+S315007EAFB60F60CA6280600064A2DB5760D0645ADB8B
+S315007EAFC6CFFE0F60D462A2D100601064B084A2DB8D
+S315007EAFD6CFFE2F58FFFF026484FBEE65EC63A5D396
+S315007EAFE6A3DBA6F110606862A2D984F30065D480DD
+S315007EAFF6FFFF0C030F60CA6280600064A2DB5760A7
+S315007EB006F8645ADBCFFEC1FE2F58FFFF0F60C8627B
+S315007EB0160064A2DB5ADB216420FBD0632D603C6490
+S315007EB026A3DBD06301600065A3D3A5D104A4A3DB0D
+S315007EB036D080A0D31E0740474EF36041604001266E
+S315007EB046082B06000E7C41D3FFFF6040102AE900DE
+S315007EB056067C41D179F3FFFFD0807AF159D34D0232
+S315007EB066D0807BF359D14902D080FFFF4602226407
+S315007EB07620FB236420FB0F60C8620064A2DBDEFE33
+S315007EB086FFFF0B040F60CA6240600064A2DB586055
+S315007EB0963C645ADBCFFE2F58FFFF76F10F60CA62FD
+S315007EB0A620600064A2DB586063645ADBCFFE1860BC
+S315007EB0B64C62A2D91E644ADBFFFF2DFF2F58FFFF87
+S315007EB0C60F60C8620064A2DBBEFE0F60AE62A2D1CE
+S315007EB0D640600064B084A2DBCFFE016384FD0F6010
+S315007EB0E6B662A2D100600264B084A2DBCFFEC1FE48
+S315007EB0F6246420FB57604378FFFF256420FB0F60A0
+S315007EB106C8620064A2DBDEFEFFFF0B040F60CA6226
+S315007EB11640600064A2DB586082645ADBCFFE2F58FD
+S315007EB126FFFF27D10F60CA6220600064A2DB5860EB
+S315007EB136A7645ADBCFFE18604C62A2D91E644ADB30
+S315007EB146FFFF2DFF2F58FFFF0F60C8620064A2DB4C
+S315007EB156BEFE0F60AE62A2D140600064B084A2DB02
+S315007EB166CFFE6EF5206429FA274306A3BDD12BF8BA
+S315007EB17631F8FFFFBDD12CF832F8FFFFA3D12DF8AB
+S315007EB18633F8FFFFB9F12EF8BAF1FFFF2FF8BBF1C0
+S315007EB19630F8FFFFA6F119F8F06020640EFA00F487
+S315007EB1A604614EF101636440012610BBC3F1FFFFC5
+S315007EB1B66440022620BBA1DC0960EDFD086025F30E
+S315007EB1C659DA79F1FFFF59D87AF159D8FFFF7BF123
+S315007EB1D659D86144588C274312A3BFD36345604131
+S315007EB1E6404D605C3560BE630064BDDB6444BDDB9A
+S315007EB1F6A5D1DA856444007FCD81BDDB0503644730
+S315007EB206007FCD81BDDBF402017E007FBDDB0F6054
+S315007EB21649F32D5CDA85BDDB6041408DA5D1DA85A5
+S315007EB2266444007FCD81BDDB05036447007FCD8107
+S315007EB236BDDBF402096098F3FFFF6041604500A816
+S315007EB2462D440E03448DDA85A5D1DA856444007FC6
+S315007EB256CD81BDDB05036447007FCD81BDDBF40270
+S315007EB2662D4104A1414D3560BE632C45DD81BDD39E
+S315007EB276BDD1C981645FA5DA7E3A08007C6401FA8F
+S315007EB28600F40465A984FFFFF2020300A984DA8529
+S315007EB296EE026544FCA4807F01FA6EF52D440AA46F
+S315007EB2A638FA3F60584ED878FFFF186032621760CC
+S315007EB2B6FC64A2DB66445ADB0A645ADBFFFF03FFA5
+S315007EB2C6C1FE146469FB266420FB18605C6210600E
+S315007EB2D66464A2DB02644ADBFFFF1DFF0F60CA625F
+S315007EB2E600601C64A2DB59607C645ADBCFFE2F5855
+S315007EB2F6FFFF0F60C862A2D100600464A0809C84B2
+S315007EB3061203A084A2DB276420FB006469FB13601C
+S315007EB3160E7C6744A4DB0F60C8620064A2DB5ADB40
+S315007EB32658601478FFFF00601064A0809C841B031F
+S315007EB336A084A2DB18605C6210606464A2DB036490
+S315007EB3464ADBFFFF1DFF286420FB006469FB136052
+S315007EB3560E7C6744A4DB0F60C8620064A2DB5ADB00
+S315007EB3665A60CB78FFFF00600864A0809C84240325
+S315007EB376A084A2DB18605C6210606464A2DB036450
+S315007EB3864ADBFFFF1DFF006469FB0F60C86200642F
+S315007EB396A2DB5ADB264600F4FFFF03F2FFFF00B868
+S315007EB3A6FFFF0D03296420FB26464860584ED1785A
+S315007EB3B6FFFF58601478FFFF2A6420FB98002B64F3
+S315007EB3C620FB99F12061C183635C02F210616045C0
+S315007EB3D641D3FFFF655FA2DBFFFF6040202B0A009D
+S315007EB3E6C3F3FFFF6040022A050004BCC3FB00646C
+S315007EB3F6F0FB0400FBB4C3FB0164F0FB1260FC6544
+S315007EB40604F03F60FF64A0846041E884E884E883B4
+S315007EB416A5DD1260FE65016407B1FF220400E084A5
+S315007EB426CD81FFFFFC02A5DB27450263C783A3D337
+S315007EB436FFFF604763FB0463C783A3D3FFFF6047B3
+S315007EB44662FB0C63C783A3D378FB6045E884E884F6
+S315007EB456EDA0A9FB02051364A9FBA9F1106098620B
+S315007EB466A2D904F2FFFF7CFB0A63BDD2FFFF6047CB
+S315007EB476007F60410065454DBDD20065404C7FB478
+S315007EB486FFFF02360165043602650B3604651636FF
+S315007EB496086565442C408026605F2D45348DCD81BA
+S315007EB4A6FFFF16032C44006560477FB4FFFF023616
+S315007EB4B60165043602650B360465163608656544EF
+S315007EB4C62C408027605F2D45348DCD81FFFFD402CB
+S315007EB4D62D44007FCDF36045A480FFFF0828A48512
+S315007EB4E62D44655E404D2D47604008260864042639
+S315007EB4F60464022602640126016408366E7F0436DB
+S315007EB506377F0236147F01360A7FD4FB60452D448B
+S315007EB516655F99F12061C183635C186141DB0860D2
+S315007EB52625F17FF9264631F079F932F0FFFF7AF971
+S315007EB53633F07BF913601264A0D3FFFF60400036BA
+S315007EB5460D001860326218600864A2DB26445ADB58
+S315007EB5560A645ADBFFFF03FFD2FE050026464860D5
+S315007EB566584ED178FFFF03654660584EE678FFFF54
+S315007EB576016384FD0F60B662A2D100600264B08468
+S315007EB586A2DBCFFEC1FE2C6420FB57604378FFFF0D
+S315007EB596FF60F765204424805260F178FFFF69F1EB
+S315007EB5A629F264416040A03A0C0008B1FFFF2E03E3
+S315007EB5B60F60C862A2D100601064B084A2DBCFFEA3
+S315007EB5C62500C03A0C0004B1FFFF20030F60C86257
+S315007EB5D6A2D100601064B084A2DBCFFE1700B03A1B
+S315007EB5E6020001650700103A020002650300303A42
+S315007EB5F60D001065A580FFFF09030F60C862A2D104
+S315007EB60600600864B084A2DBCFFE00662F58FFFF7B
+S315007EB6160664D3FB03600064BFF17DFB444A0F607C
+S315007EB626C8620064A2DBDEFEFFFF0B040F60CA6201
+S315007EB63640600064A2DB5B6012645ADBCFFE2F5845
+S315007EB646FFFF0F60CA6220600064A2DB5B60376420
+S315007EB6565ADBCFFE18604C622A44A2DB1E644ADBA6
+S315007EB666FFFF2DFF2F58FFFF0F60C8620064A2DB27
+S315007EB676BEFE0F60AE62A2D140600064B084A2DBDD
+S315007EB686CFFE016484FB04648BFB01654660584EDF
+S315007EB696E678FFFF2F58FFFF006468FB69FB18609C
+S315007EB6A65A632144BDDBFFFF1DFF0F60C86200643F
+S315007EB6B6A2DB5ADB2F58FFFF0F60C862A2D100605D
+S315007EB6C60464B084A2DBCFFE2F58FFFF5D607F78D1
+S315007EB6D6FFFF264600F4FFFF07F2FFFF02B0FFFFDD
+S315007EB6E6F5031E60A663A3D108F212626047D08078
+S315007EB6F66041EC021E60A8636140FE220800624538
+S315007EB706BDD3A5D0DA82D080C981F603DF0061403B
+S315007EB716003607006245A3D3A5D0FFFF9080FF269D
+S315007EB726D500264600F4FFFF01F210637FB403A41C
+S315007EB73640482845D780FFFF1005A3D2DF83FB80CE
+S315007EB746A3D002056047645FDF8360400336080048
+S315007EB7566047007F6045C783EC005B606978FFFFC4
+S315007EB766A3D2FB80FFFF01046047BFF1007FD08036
+S315007EB776FFFFAC0226461060A06300F4FFFF02F2CE
+S315007EB786BDDBFFFF03F2BDDB04F2FFFFBDDB05F289
+S315007EB796A3DBFAA3264626F2C06560400A36C06556
+S315007EB7A614366065373623656E361265A3D3006119
+S315007EB7B6D484F181BDDBA3D301B101A942FE110377
+S315007EB7C6CC84F181BDDBA3D301B101A942FE090377
+S315007EB7D6CC84F181BDDBA3D301B101A92603CC843A
+S315007EB7E6A3DB1060A063A3D323F00061D084F1812E
+S315007EB7F6BDDBA3D301B101A924F042FE0103CC84AD
+S315007EB806F181D084F181BDDBA3D303B103A927F0F1
+S315007EB81642FE0103CC84F181D084F181BDDBA3D3C4
+S315007EB82603B103A928F00103CC84D084A3DB030DE0
+S315007EB8365D605F78FFFF016431FB1AFF264631F0B5
+S315007EB84679F932F0FFFF7AF933F07BF9FFFF00F4E0
+S315007EB856FFFF06F278FB264600F4FFFF01F2106331
+S315007EB8667FB403A440482845D780FFFF1205A3D29E
+S315007EB876DF83FB80A3D002056047645FDF8360407B
+S315007EB88601362700063608006047007F6045C78377
+S315007EB896EA005C60EE78FFFF6047007F6045C784FE
+S315007EB8A6404CA3D2FB80FFFF01046047007FDF8307
+S315007EB8B66045A3D2FB80FFFF01056047007EDF83DE
+S315007EB8C6B485FC7C6544A4DB2C43CD005C60E878BD
+S315007EB8D6FFFF6047007F6045C784404C264607F0DB
+S315007EB8E6186141D300F46040802AF00080ACA1DB6B
+S315007EB8F665410065454DA3D2FB80FFFF0104604787
+S315007EB906007FDF830065605C7FB4FFFF02360165DC
+S315007EB916043602650B36046516360865654464404C
+S315007EB9268026605F2D45348DCD81FFFFE4022D4452
+S315007EB936007FCDF36045A480FFFF0828A4852D44AD
+S315007EB946655E404D1260FA7C1260F4652D47007F77
+S315007EB956A5DB604008260864042604640226026483
+S315007EB9660126016408366E7F0436377F0236147FDB
+S315007EB97601360A7FA4DBD4FB60472D5E264607F09A
+S315007EB986186141DB3D60584E5678FFFF0F60C862F0
+S315007EB996A2D102600064B084A2DBCFFE264600F406
+S315007EB9A6FFFF07F0FFFF6440202A0F00C3F3FFFF69
+S315007EB9B66040022A0A0004BCC3FB6445264607F09D
+S315007EB9C6106141D3FFFF655FA2DB264600F42C435A
+S315007EB9D65C603678FFFF264600F4524801603A627E
+S315007EB9E6A2D35AD3404C5AD3404D60417244285C0A
+S315007EB9F6D080FFFFF20E06F04063AD80F0A309020B
+S315007EBA063C032D412C44404D2844404C006440481E
+S315007EBA16F400D1800102310410A380600065A58002
+S315007EBA26CF830802284460882C44708C2D44708D02
+S315007EBA36F181F500E7A3644400A00062020200617C
+S315007EBA461C00E084DE82FD0442FEF8846245C783DE
+S315007EBA56604502FED584020501056144CF836041B9
+S315007EBA660803284460882C44708C2D44708DF181A1
+S315007EBA76F100CE82E981FD02F18101603A62A2D3AE
+S315007EBA86FFFF6045A2D37243D48060420828724384
+S315007EBA966347E884E8843FB56244E084E084E084D4
+S315007EBAA6E084E084E084B4846145D484C084E08402
+S315007EBAB6E084E084E093E093007C0760D5F9096034
+S315007EBAC695F9A8F1086034F918605C6210606464C2
+S315007EBAD6A2DB02644ADBFFFF1DFF0F60CA62A2D3AA
+S315007EBAE6FFFF6040802208000F60C862A2D1006018
+S315007EBAF68064B084A2DBCFFE26462F58FFFF0F4E0C
+S315007EBB0600604861414D40A1A2FF2860584F3278B9
+S315007EBB16FFFFA3FF06032D412860584F5478FFFF8B
+S315007EBB2608FE0E4F66446FFB086428FA67442BFAB6
+S315007EBB362CFA2DFAFFFF31FA32FA33FA12602064B6
+S315007EBB4699F10EFA07F810604C630064A3DB06A330
+S315007EBB560F60EC64BDDB0464BDDB0664A3DB0F60AD
+S315007EBB66EA6261608164A2DB106058630064A3DBCF
+S315007EBB7606A30F60F064BDDB0864BDDB0664A3DB4B
+S315007EBB860F60EE6261608B64A2DB0F60E2626160CB
+S315007EBB966F64A2DB2F58FFFF6FF5B9F12EF8FFFF14
+S315007EBBA6BAF12FF8BBF1FFFF30F8B2F119F80F6044
+S315007EBBB6C2620064A2DB406429FA64F300F4604341
+S315007EBBC6BDD104656447A5DA6441DD81E9816244B7
+S315007EBBD60403BDD1CD8158D8FC02588D1E60926372
+S315007EBBE6A3D12D44C8846445644103A1E981414CB1
+S315007EBBF6BDD1CD8158D8FC022DD22D436047017E1C
+S315007EBC0664F1A3DAA4D3CB83448DF8842C410C0449
+S315007EBC16BED2FFFF6047BEDA007EA3D26045007FB6
+S315007EBC26B484CD81BDDAF4026FF52D4404A438FAC8
+S315007EBC36016477F3404A76FB61F3FFFF6040202A74
+S315007EBC4605001360AE620064A2DB2C00006482FBF4
+S315007EBC562D603E6480FB81FB61F30C65F3B4B48490
+S315007EBC6602B061FB1F0360470FB4404A01031A0008
+S315007EBC765F60B378FFFF61F3FFFF40B0FFFF03030C
+S315007EBC8640AC61FB1E0061F1FFFF64400226F000B8
+S315007EBC962A44F3A004A40104F1A41036E900404A1E
+S315007EBCA60F36F300136086612A44E08545D11B6014
+S315007EBCB69E616445A1D1A4F3FFFFB084A48061F1A1
+S315007EBCC6E403246020632A44E08547D361F101B00C
+S315007EBCD606B0010303005F604E78FFFF64400326CD
+S315007EBCE60100D3030F60C2620064A2DBDEFEFFFFA5
+S315007EBCF60B040F60C46240600064A2DB5E607564FE
+S315007EBD065ADBCFFE2F58FFFF0F60C46220600064A9
+S315007EBD16A2DB5E609A645ADBCFFE18604C622A44CA
+S315007EBD26A2DB1E644ADBFFFF2DFF2F58FFFFBEFEFA
+S315007EBD360F60AE62A2D140600064B084A2DBCFFE05
+S315007EBD460F60C2620064A2DB6FF500642AFA3F606A
+S315007EBD56584ED878FFFF0F60C46200600164A2DB8E
+S315007EBD665E60C7645ADBCFFE186032621760FC647B
+S315007EBD76A2DB66445ADB0A645ADBFFFF03FF0064D6
+S315007EBD8660FBC1FE2F58FFFF0F60C2620064A2DB16
+S315007EBD9613601662A2D110605062A2D918605C62E8
+S315007EBDA610604C64A2DB02644ADBFFFF1DFF136054
+S315007EBDB61462A2D110605C62A2D918605A62A2D3BE
+S315007EBDC6FFFF00A8FFFFFB0218605C6210605864E6
+S315007EBDD6A2DB02644ADBFFFF1DFF0F60C4620060C2
+S315007EBDE60864A2DB5E60FB645ADBCFFE2F58FFFF3C
+S315007EBDF660F10F60C2620064A2DB6440FF26030028
+S315007EBE065E603E78FFFF020A006460FB136018627E
+S315007EBE16A2D110605C62A2D90F60C46200600C6417
+S315007EBE26A2DB5F6023645ADBCFFE18605C6210601D
+S315007EBE365864A2DB02644ADBFFFF1DFF2F58FFFF15
+S315007EBE460F60C262A2D100600464A0809C840C034B
+S315007EBE56A084A2DB18605C6210605864A2DB036471
+S315007EBE664ADBFFFF1DFF1400FF60F764A084A2DB9A
+S315007EBE7660F3DB0A00A00064020360FBD60018604E
+S315007EBE865C6210604C64A2DB03644ADBFFFF1DFF27
+S315007EBE965E603E78FFFF13601A61A1D3FFFF00B88E
+S315007EBEA6FFFF4E030F60C2620064A2DB5ADBDEFE34
+S315007EBEB6FFFF0B040F60C46240600064A2DB5F6016
+S315007EBEC655645ADBCFFE2F58FFFF0F60C462206093
+S315007EBED60064A2DB5F607B645ADBCFFE18604C6231
+S315007EBEE62A44A2DB1E644ADBFFFF2DFF2F58FFFF87
+S315007EBEF6BEFE0F60AE62A2D140600064B084A2DB55
+S315007EBF06CFFE0F60C2620064A2DB5ADB13601A6242
+S315007EBF16A2D110605062A2D918605C6210604C6431
+S315007EBF26A2DB02644ADBFFFF1DFF0F60C462006070
+S315007EBF360464A2DB5F60A3645ADBCFFE2F58FFFF45
+S315007EBF4618605C6210604C64A2DB03644ADBFFFF0A
+S315007EBF561DFF0F60C2620064A2DB5E603E78FFFF55
+S315007EBF6618605C6210604C64A2DB03644ADBFFFFEA
+S315007EBF761DFF0F60C2620064A2DBDEFEFFFF0B04BE
+S315007EBF860F60C46240600064A2DB5F60BC645ADBFD
+S315007EBF96CFFE2F58FFFF76F10F60C46220600064E5
+S315007EBFA6A2DB5F60E1645ADBCFFE18604C62A2D9E3
+S315007EBFB61E644ADBFFFF2DFF2F58FFFFBEFE0F6076
+S315007EBFC6AE62A2D140600064B084A2DBCFFE61F38E
+S315007EBFD6FFFFF3B420B061FB51030F60AE62A2D1C0
+S315007EBFE610600064B084A2DBCFFE10FE0F4B584F66
+S315007EBFF610000B4F030261606878FFFFF160037CD9
+S315007EC006126000F5FFFF24F8806722FA6160597890
+S315007EC016FFFF0960D7F3FFFF0AA4604117010F4EA3
+S315007EC026414D40A1A2FF2860584F3278FFFFA3FFFD
+S315007EC03606032D412860584F5478FFFF08FE0E4FA3
+S315007EC04602022F58FFFF6643126000FD0960D7F392
+S315007EC056FFFF604106A4E88423FADA8240645ADA50
+S315007EC06603645ADADA852D60BE630F4E3A60584F00
+S315007EC076C078FFFF0E4F08FE2F58FFFF1060126333
+S315007EC0861C610064CD81BDDBFD0224603E6182F3C8
+S315007EC0966143B8A547D10F04BED510600E63C38330
+S315007EC0A6C383C38343D3BED1DC84A3DB6644C08409
+S315007EC0B6BEDB6544ED00106012630E61414DBDD355
+S315007EC0C6BDD100BD644100B91E03050301A802A8C1
+S315007EC0D60403050306000064160061441400E98421
+S315007EC0E612006547604561440961CD81E084FF2380
+S315007EC0F6FC000224C4840228D484CD81010E01BCB0
+S315007EC1060203E084F600007F2D414D8DBFDBD7020C
+S315007EC11624603E6182F36143B8A547D10A04DA8676
+S315007EC12610601063C383C383C38343D1A6D9654494
+S315007EC136F20061F382F1F3B461FB24603E63C3854C
+S315007EC146454D2D603E6581F3454C40482D45D7804D
+S315007EC1560265180547D1026547D30A65D08147D35E
+S315007EC16601050061F2A301B0614406032C42A2DBFF
+S315007EC1765ADD5A8C48A3EA0028424ADD4ADB424803
+S315007EC18648A3E400284480FB80F12D603E63444844
+S315007EC1962845D780A3D11505046546D32845D6807E
+S315007EC1A6D080020404A3F500F7066246A2D9A3DB75
+S315007EC1B65BD366425AD1A2DBA3D9FEA3A3D166423E
+S315007EC1C6EB0080F381F1604344482845D780A3D1AE
+S315007EC1D61505046546D32845D680D080020404A379
+S315007EC1E6F500F7066246A2D9A3DB5BD366425AD131
+S315007EC1F6A2DBA3D9FEA3A3D16642EB000F60AE6295
+S315007EC206A2D110600064B084A2DBCFFE0E60B8F1C8
+S315007EC216FFFF64400136590082F10664C08404A499
+S315007EC226605C0F4E6441414D40A1A2FF2860584F87
+S315007EC2363278FFFFA3FF06032D412860584F5478B8
+S315007EC246FFFF08FE0E4F41036643126000FD036440
+S315007EC25623FAF160016424FA806722FA026420409A
+S315007EC2661027016426FA5A8D81F12D603E63444B72
+S315007EC276434C2B45D780BED119052D45802A020013
+S315007EC28600F404656641126000F5FFFF23F26443FF
+S315007EC2961FA423FA61463E610F4E3A60584FC07818
+S315007EC2A6FFFF0E4F454D2C4304A3E200126000F1BC
+S315007EC2B61860326218600864A2DB5AD90A645ADBB1
+S315007EC2C6FFFF03FF086545543BFF0F60C2620064AD
+S315007EC2D6A2DB5ADB2F58FFFF18605C6210604C6447
+S315007EC2E6A2DB03644ADBFFFF1DFF006461FB0F6072
+S315007EC2F6C2620064A2DB5ADB2F58FFFF0F60C26262
+S315007EC306A2D100600464B084A2DBCFFE2F58FFFF65
+S315007EC3160F60C262A2D100600864B084A2DBCFFE43
+S315007EC3262F58FFFF61F3FFFF60402022090004B00D
+S315007EC3361360AE62A2D12D60BE63086000640600FD
+S315007EC34604B082F124603E6309600064424B434C2E
+S315007EC356D0803E033D06C38377F325F0BDDB64447A
+S315007EC366007FBDDB6447007FBDDB00651360EC6145
+S315007EC37631F0A1D3BDD99084B48532F059D3BDD9D7
+S315007EC3869084B48533F059D3BDD99084B485634100
+S315007EC3961F032BD12C43C3833CA36345614320F203
+S315007EC3A6FFFFFFB4A5DB3FF0136026626447DC849D
+S315007EC3B6E884A2DB00F4FFFF06F0FFFFBDD907F097
+S315007EC3C6BDD9006408F0A3DB6447604500370300E9
+S315007EC3D66360C778FFFFBDDBDC84E881096093F383
+S315007EC3E6615CF9A4D08465400126DC84605C0960C4
+S315007EC3F693F9AD811064040358D0CD81BDD9FC0274
+S315007EC406D8833560BE64404D096093F3FFFF604175
+S315007EC4166540012ABDD06340803A020000F404637B
+S315007EC4266444007F2DDB5A8D6447007F2DDBCD81EC
+S315007EC4365A8DF00200642DDB5A8D2DDB3560BE6388
+S315007EC4466540012602A363412BD12C43C38332A3C7
+S315007EC45663456143BDD3BDD101A86441B902BDD34F
+S315007EC466CD816047007C0203BDD1CD81B087A5DB39
+S315007EC476DA856140003AF3000064A5DBDA85BDD332
+S315007EC486BDD103A8BDD10960EBFD77F3A102D080AD
+S315007EC4962BD39E0264F1FFFF6443BDD1FFFF64404A
+S315007EC4A600361F002C45C48410A5A5D3DA82D0801B
+S315007EC4B6604114026140FE2208006245BDD3A5D1C5
+S315007EC4C6DA82D080C981F60309006140003609000A
+S315007EC4D6A2D1A3D3FFFF9080FF2203006360157867
+S315007EC4E6FFFF2BD30C4D2D45C484404828432D5C37
+S315007EC4F6D3800EA34906A3D32D4302B40EA3605C56
+S315007EC506A3D3FFFF02B4FFFFD08002B0320217022A
+S315007EC516284306A3BDD12D4106A1A1D302A1D08073
+S315007EC526BDD12702A1D302A1D080BDD12202A1D33D
+S315007EC536FFFFD080FFFF1D026360C778FFFF28439B
+S315007EC54610A3A3D12D4310A3A3D3FFFFD080DC84F3
+S315007EC5561002E885284312A32D4112A1BDD1FFFF05
+S315007EC566A1D302A1D08065440402CC846045F6023E
+S315007EC576E30061F32D4560402022020040640100FF
+S315007EC5864864C484404DB2002BD361F1FFFF6440FC
+S315007EC5962026250048A42BDB81F3FFFF04A481FB1E
+S315007EC5A60960EBF328416043BDD3856500A0D48040
+S315007EC5B612031107BDD30503E08500360C00C7833B
+S315007EC5C6F30044A16145F8A1BDD3BDD1D580645F94
+S315007EC5D659DBFA02030046A10064A1DB2300604113
+S315007EC5E640A42BDB2D60CC7CC181007CA1D330A1FF
+S315007EC5F66040022A0A000960EBF1FFFF6443BDD361
+S315007EC606DB83FAA0FFFF0102A3D1A1D90F600EF14B
+S315007EC616C4A1A1D3FFFFD084A1DB59D3FFFFD0846B
+S315007EC626A1DB8A0024601A6377F161F3644108B060
+S315007EC636E185350309608EF1FFFF644001362F00E2
+S315007EC646FDA147D30206FBB4A3DBDD815BD30C24B7
+S315007EC6560200FBB4A3DBDD815BD30C240200FBB4B4
+S315007EC666A3DB5BD3DD81E88061F10405644240BAD3
+S315007EC676625C61F903BCA3DB0E65DD81D5805BD387
+S315007EC6860E05FBB4A3DBDD81D5805BD30803FBB445
+S315007EC696A3DBDD81D5805BD30203FBB4A3DB096016
+S315007EC6A68EF10960EBF1644000366E006443BDD3BD
+S315007EC6B6FFFF00A0F9A068036707BDD3050300A0A8
+S315007EC6C6E0856203C783F30000A060415D03BDD3A8
+S315007EC6D6FFFF60476045BDD3BDD1B485FDA16444E9
+S315007EC6E6655C09608FF9007F5ADB007C096092F9EA
+S315007EC6F661F3FFFF08B0FFFF4703FDA1BDD33104FB
+S315007EC706BDD1126000FD644324602265007FCC8421
+S315007EC716E084C4846345604365446145CC84FFFFFB
+S315007EC726050EA3D10161B19CBDD9F800126000F158
+S315007EC73665416443BDD1096091F3FFFFD080FFFF5B
+S315007EC746DC06A2D90D60CEF30061D080FFFF04061B
+S315007EC756FDA4DD81033AF900615C0D60CDF9654184
+S315007EC766CC00246022630D60CFF30E61007C01B09F
+S315007EC776E8840102A3D9CD81DB83F90261F1FFFF4D
+S315007EC786644140B9615C61F926462F58FFFF0F4E1C
+S315007EC79600603C61414D40A1A2FF2860584F327829
+S315007EC7A6FFFFA3FF06032D412860584F5478FFFFEF
+S315007EC7B608FE0E4F664472FB086428FA99F307FA5A
+S315007EC7C6FFFFA6F319FA0C6020640EFA1060486421
+S315007EC7D629FA0F4E00603C61414D40A1A2FF2860BA
+S315007EC7E6584F3278FFFFA3FF06032D412860584F28
+S315007EC7F65478FFFF08FE0E4F664471FB086428FADE
+S315007EC80699F307FAFFFFA6F319FA0C6020640EFA6F
+S315007EC816A46429FA0F60E06265608564A2DB0F6018
+S315007EC826BE6200608064A2DB64601D645ADBCFFE56
+S315007EC8362F58FFFF0F60BC620064A2DBEFF3FFFF9B
+S315007EC8466040013A03004E608678FFFF1C60FA62FE
+S315007EC856A2D3FFFF01A803A80703060300A8FFFFCE
+S315007EC866030365607678FFFF20400A270400106082
+S315007EC8760065204434800F60BC620064A2DB2040E3
+S315007EC8860B230B000F60BE6280600064A2DB6460D1
+S315007EC8963E645ADBCFFE2F58FFFF146000652044A8
+S315007EC8A6348084F366FB026484FB0F60BE6280601E
+S315007EC8B60064A2DB646064645ADBCFFEC1FE2F5839
+S315007EC8C6FFFF0F60BC62A2D17F60FF64A084A2DBFD
+S315007EC8D684F3FFFF00A0FFFFF2020F60BC62A2D1C7
+S315007EC8E67F60FF61A1845AD14ADBA1845ADB0F6041
+S315007EC8F6BC620064A2DBDEFEFFFF0B040F60BE6237
+S315007EC90640600064A2DB64607A645ADBCFFE2F58F1
+S315007EC916FFFF9DFE82FF03050864404919FF86FFD9
+S315007EC926BEFE0F60AE62A2D140600064B084A2DB1A
+S315007EC936CFFED3F370F504A811604864280229FA5F
+S315007EC9460C6020640EFA00640FFA3F60584ED87863
+S315007EC956FFFF0F60BE6200600164A2DB6460C36493
+S315007EC9665ADBCFFE186032621760FC64A2DB664431
+S315007EC9765ADB0A645ADBFFFF03FFC1FE2F58FFFF11
+S315007EC9860F60BC62A2D1FF60FE64A084A2DB0F604C
+S315007EC996BC620064A2DB00601A63246004612460C4
+S315007EC9A6206458D159D9FD1FEFF36FF5FBA0FFFF23
+S315007EC9B60C021360B264A0D127F8256461FB13606E
+S315007EC9C6B46464FB1360B0640B001D607A64A0D108
+S315007EC9D627F8056461FB1C60FC6464FB1D60786455
+S315007EC9E6604313601C61A1D1FFFF644500360900D2
+S315007EC9F613601A61A1D3FFFF00B878640202A1DB39
+S315007ECA06FFFF6344A0D1A4F30E616540003A00643D
+S315007ECA16A085246022636544E8850564CD81022867
+S315007ECA260064BDDBF8020F4E5D60584FCF78FFFF80
+S315007ECA360E4F0F60BE6210600064A2DB65602764DF
+S315007ECA465ADBCFFE2F58FFFF00646FF5FFFF27FAEE
+S315007ECA5600601A63246020612460046458D159D923
+S315007ECA66FD1FD3F370F504A801604864280229FAEF
+S315007ECA760C6020640EFA00640FFA3F60584ED87832
+S315007ECA86FFFF0F60BE6200600164A2DB65605B64C9
+S315007ECA965ADBCFFE186032621760FC64A2DB664400
+S315007ECAA65ADB0A645ADBFFFF03FFC1FE2F58FFFFE0
+S315007ECAB60F60BC62A2D1FF60FE64A084A2DB0F601B
+S315007ECAC6BC620064A2DBEB60FF65204424800F60B7
+S315007ECAD6AE62A2D180600064B084A2DBCFFE66F32E
+S315007ECAE684FBCAFEC1FE0F60BC620064A2DB0F60D9
+S315007ECAF6BE6200608064A2DB64601D645ADBCFFE84
+S315007ECB062F58FFFFEB60FF65204424800F60BC62D2
+S315007ECB160064A2DB0F60BE6200608064A2DB646096
+S315007ECB261D645ADBCFFE2F58FFFF0F60DE626860FC
+S315007ECB36E564A2DB10607C620064A2DB06A20F605F
+S315007ECB46F464A2DB06645ADB5ADB106088620064F4
+S315007ECB56A2DB06A20F60F864A2DB06645ADB5ADB0A
+S315007ECB66106094620064A2DB06A20F60FC64A2DB00
+S315007ECB7606645ADB5ADBA9F110609862A2D90F6069
+S315007ECB86F2626A60FE64A2DB0F60F6626B60086420
+S315007ECB96A2DB0F60FA626B601264A2DB0F4E006048
+S315007ECBA67061414D40A1A2FF2860584F3278FFFF43
+S315007ECBB6A3FF06032D412860584F5478FFFF08FED3
+S315007ECBC60E4F664470FBB2F319FA086428FA99F397
+S315007ECBD607FA0F60B86200600264A2DB6560F764DE
+S315007ECBE65ADBCFFE2F58FFFF0F60B6620064A2DBCC
+S315007ECBF603646AFB0F60D462A2D100600264B084CD
+S315007ECC06A2DBCFFE70F501607263BDD32EFABDD36D
+S315007ECC16FFFF2FFAA3D330FAFFFF79F32BFA31FA09
+S315007ECC26FFFF7AF32CFA32FAFFFF7BF32DFA33FAFD
+S315007ECC36FFFFA6F319FA006438FA6A60584EF4784E
+S315007ECC46FFFFF760FF65204424800F60AE62A2D1A7
+S315007ECC5680600064B084A2DBCFFE0F60B662A2D18E
+S315007ECC66FF608F64A084A2DBAAF110608C62A2D9D3
+S315007ECC760F60B86200607464A2DB66604F645ADB3E
+S315007ECC86CFFE18605C6210608864A2DB02644ADBB3
+S315007ECC96FFFF1DFF2F58FFFF0F60B662A2D1006011
+S315007ECCA60464A0809C840503A084A2DB6860E57884
+S315007ECCB6FFFF00604064A0809C840303A084A2DB01
+S315007ECCC6E90000602064A0809C840703A084A2DB22
+S315007ECCD66A60584E9F78FFFFDD0000601064A08074
+S315007ECCE69C84D803A084A2DB07000F60B662A2D11D
+S315007ECCF6FF609F64A084A2DB1D607062A2D1C7F32B
+S315007ECD062945D4806440013A040003046660BB78F4
+S315007ECD16FFFF007C096092F90F60B862006064646A
+S315007ECD26A2DB66609A645ADBCFFE2F58FFFF0F6042
+S315007ECD36B662A2D100600464A0809C840503A084AA
+S315007ECD46A2DB6860E578FFFF00604064A0809C8475
+S315007ECD560303A084A2DBD00000602064A0809C84AE
+S315007ECD66E403A084A2DB6A60584E9F78FFFFC40068
+S315007ECD76ABF110608C62A2D90C6461FB6660C764F7
+S315007ECD8673FB69606A78FFFF18605C621060946464
+S315007ECD96A2DB03644ADBFFFF1DFF0F60B662A2D1EC
+S315007ECDA6FF60DF64A084A2DB246022630E61BDD3AE
+S315007ECDB6FFFF01B4CD810402FA0267608078FFFF29
+S315007ECDC680F12D603E63D380C9F125032944A3D322
+S315007ECDD6C085D4805BD31F0660436342066546D311
+S315007ECDE65AD340485AD3404C404D79F32845D48091
+S315007ECDF65AD30E022C45D4805AD30A022D45D480A8
+S315007ECE066342060267600E6473FB69602278FFFFE3
+S315007ECE166860A178FFFFC7F32945D480FFFF0C071C
+S315007ECE2618605C6210608864A2DB03644ADBFFFFDF
+S315007ECE361DFF66602478FFFF0960EEF3FFFFECA018
+S315007ECE46FFFF1806C8F32945D480FFFF130604653F
+S315007ECE564660584EE678FFFF0564D3FB18605C6233
+S315007ECE6610608864A2DB03644ADBFFFF1DFF6760F2
+S315007ECE768078FFFF0F60B86200607464A2DB67602D
+S315007ECE8648645ADBCFFE2F58FFFF0F60B662A2D1EB
+S315007ECE9600600464A0809C840503A084A2DB68608F
+S315007ECEA6E578FFFF00604064A0809C840503A0842D
+S315007ECEB6A2DB6660D778FFFF00602064A0809C8434
+S315007ECEC60903A084A2DB6A60584E9F78FFFF6660E0
+S315007ECED6D778FFFF00601064A0809C84D403A0846C
+S315007ECEE6A2DB18605C6210609464A2DB03644ADB94
+S315007ECEF6FFFF1DFF6660BB78FFFF0C65096092F338
+S315007ECF06FFFFDC84D480605C20040F60C862A2D1F9
+S315007ECF1600601064B084A2DBCFFE09608EF3FFFF4D
+S315007ECF266040003614000D60CEF1096091F92460EA
+S315007ECF3622630E61007CCD81BDD9FD022060207CF8
+S315007ECF4609608FF9207C5AD90C7C096092F90F60AC
+S315007ECF56DA62A2D100604064B084A2DBCFFEACF179
+S315007ECF6610608C62A2D90D6461FB6760BE6473FB3A
+S315007ECF7669606A78FFFF18605C6210609464A2DB63
+S315007ECF8603644ADBFFFF1DFF0F60B662A2D1FF6018
+S315007ECF96DF64A084A2DB246022630E61BDD3FFFF1D
+S315007ECFA601B4CD810402FA0267608078FFFF80F1C4
+S315007ECFB62D603E63D380A3D335032945D4805BD3C8
+S315007ECFC6310660436342066546D35AD340485AD3F2
+S315007ECFD6404C404D79F32845D4805AD30E022C45D3
+S315007ECFE6D4805AD30A022D45D480634206026860EF
+S315007ECFF6156473FB69602278FFFF05654660584EA9
+S315007ED006E678FFFF007C096092F90464D3FB0F6025
+S315007ED016D462A2D100600264B084A2DBCFFE6860D1
+S315007ED026A178FFFFC8F32945D480FFFF4405186023
+S315007ED0365C6210608864A2DB03644ADBFFFF1DFF29
+S315007ED04605654660584EE678FFFF007C096092F9D4
+S315007ED0560464D3FB0F60D462A2D100600264B084FE
+S315007ED066A2DBCFFE70F50160486429FA3F60584E12
+S315007ED076D878FFFF0F60B86200600164A2DB686045
+S315007ED08654645ADBCFFE186032621760FC64A2DBFC
+S315007ED09666445ADB0A645ADBFFFF03FFC1FE2F583E
+S315007ED0A6FFFF0F60B662A2D1FF60FE64A084A2DB9C
+S315007ED0B666602478FFFF0F60B86200607464A2DB48
+S315007ED0C6686069645ADBCFFE2F58FFFF0F60B66233
+S315007ED0D6A2D100600464A0809C840503A084A2DBA2
+S315007ED0E66860E578FFFF00604064A0809C84050347
+S315007ED0F6A084A2DB68601578FFFF00602064A080AE
+S315007ED1069C840903A084A2DB6A60584E9F78FFFF43
+S315007ED11668601578FFFF00601064A0809C84D40347
+S315007ED126A084A2DB18605C6210609464A2DB036452
+S315007ED1364ADBFFFF1DFF67608078FFFF086000659C
+S315007ED14620443480D3F370F504A80160486428022F
+S315007ED15629FA066020640EFA00640FFA3F60584E7E
+S315007ED166D878FFFF0F60B86200600164A2DB686054
+S315007ED176CC645ADBCFFE186032621760FC64A2DB93
+S315007ED18666445ADB0A645ADBFFFF03FFC1FE2F584D
+S315007ED196FFFF0F60B662A2D1FF60FE64A084A2DBAB
+S315007ED1A61D607064A0D3FFFF01A8FFFF03036660C0
+S315007ED1B62478FFFF0F60C862A2D100602064B08427
+S315007ED1C6A2DBCFFE0F60DA62A2D100604064B08435
+S315007ED1D6A2DBCFFE18605C6210607C64A2DB036411
+S315007ED1E64ADBFFFF1DFF18605C6210608864A2DB67
+S315007ED1F603644ADBFFFF1DFF18605C621060946461
+S315007ED206A2DB03644ADBFFFF1DFF0F60B662006486
+S315007ED216A2DB5ADB00646AFB0F60AE62A2D10860AF
+S315007ED2260064B084A2DBCFFE0F60B8620060026443
+S315007ED236A2DB6560F7645ADBCFFE2F58FFFFA3D3CA
+S315007ED24677F176FBD080FFFF3F030F60B662A2D1F1
+S315007ED256BF60FF64A084A2DBDEFEFFFF0B040F60C9
+S315007ED266B86240600064A2DB696028645ADBCFFE42
+S315007ED2762F58FFFF0F60B662A2D1DF60FF64A084DF
+S315007ED286A2DB76F10F60B86220600064A2DB69607D
+S315007ED29657645ADBCFFE18604C62A2D91E644ADBFF
+S315007ED2A6FFFF2DFF2F58FFFFBEFE0F60B662A2D18F
+S315007ED2B6DF60FF64A084A2DB0F60AE62A2D140600F
+S315007ED2C60064B084A2DBCFFE73F7FFFFFFFF0F601D
+S315007ED2D6B662A2D17F60FF64A084A2DB20401123C2
+S315007ED2E60B000F60B86280600064A2DB69606A64C8
+S315007ED2F65ADBCFFE2F58FFFF0F60B662A2D17F6044
+S315007ED306FF61A1845AD14ADBA1845ADB026000659D
+S315007ED31620443480026484FB0F60B86280600064B9
+S315007ED326A2DB69609B645ADBCFFEC1FE2F58FFFFE8
+S315007ED3360F60B662A2D17F60FF64A084A2DB84F30F
+S315007ED346FFFF00A0FFFFF2020F60B662A2D17F60EA
+S315007ED356FF61A1845AD14ADBA1845ADB9DFE82FFF8
+S315007ED36603050864404919FF86FFD3F370F504A8C2
+S315007ED37611604864280229FA066020640EFA006463
+S315007ED3860FFA3F60584ED878FFFF0F60B86200608E
+S315007ED3960164A2DB6960DF645ADBCFFE1860326207
+S315007ED3A61760FC64A2DB66445ADB0A645ADBFFFF1F
+S315007ED3B603FFC1FE2F58FFFF0F60B662A2D1FF6044
+S315007ED3C6FE64A084A2DB1E60A66464FB0F60B66262
+S315007ED3D6A2D1EF60FF64A084A2DB0F4E5D60584F3C
+S315007ED3E6CF78FFFF0E4F0F60B86210600064A2DB37
+S315007ED3F66A6001645ADBCFFE2F58FFFF18605C62B7
+S315007ED40610608864A2DB02644ADBFFFF1DFF0F60A5
+S315007ED416B662A2D1EF60EF64A084A2DBD3F370F589
+S315007ED42604A801604864280229FA066020640EFA7A
+S315007ED43600640FFA3F60584ED878FFFF0F60B862D9
+S315007ED44600600164A2DB6A6038645ADBCFFE186030
+S315007ED45632621760FC64A2DB66445ADB0A645ADBD8
+S315007ED466FFFF03FFC1FE2F58FFFF0F60B662A2D1F4
+S315007ED476FF60FE64A084A2DB016484FBFD60FF651B
+S315007ED486204424800F60AE62A2D180600064B084A0
+S315007ED496A2DBCFFE82F124603E63C381B8A348A396
+S315007ED4A66145D78087FF214486FF0E04FEA0ADF335
+S315007ED4B63306FFB740486A60584ECC78FFFF6A60EF
+S315007ED4C6584EF478FFFF28006342066546D35AD344
+S315007ED4D640485AD3404C404D79F32845D4805AD39A
+S315007ED4E6DE022C45D4805AD3DA022D45D480634299
+S315007ED4F6D6025AD35AD16047404C644740486A6042
+S315007ED506584ECC78FFFF0C486A60584EDE78FFFF91
+S315007ED5166A60584EF478FFFFFD60FF6520442480DE
+S315007ED5260F60AE62A2D180600064B084A2DBCFFEBD
+S315007ED536C1FE73F7FFFFFFFF6AF3FFFF08B008BC65
+S315007ED546030308AC6AFB230020441627200087FFC8
+S315007ED556214486FFFEA0ADF31A060960EEF3FFFFB1
+S315007ED566DC84ECA0A2DB1306ADF3FFFFFFB74048D3
+S315007ED5762E5C126000F96A60584ECC78FFFF6A60B0
+S315007ED586584EF478FFFF126000F1FFFF444E2E5888
+S315007ED596FFFF62F12844D08407A4040EE884E8845B
+S315007ED5A6E8840500F2A4E884E884E887E0BFC084C0
+S315007ED5B6A2DB2E58FFFF63F12844D0841FA4060EF5
+S315007ED5C6E884E884E884E884E8840700C2A4E884DC
+S315007ED5D6E884E884E884E887F8BFC084A2DB2E5810
+S315007ED5E6FFFF62F363F1FFFFD087FFB40105006498
+S315007ED5F640492E58FFFF0F60B662A2D100600864CE
+S315007ED606B084A2DBCFFE2F58FFFF0F60B662A2D193
+S315007ED61600601064B084A2DBCFFE2F58FFFF0F603A
+S315007ED626B662A2D100602064B084A2DBCFFE0F6014
+S315007ED636D462A2D102600064B084A2DBCFFE2F58EC
+S315007ED646FFFF6D601578FFFF0F60B862A2D3FFFFFE
+S315007ED65660404022264638F200F41065F4A440481F
+S315007ED66660413560BE63A5D0DA856444007FCD8190
+S315007ED676BDDB05036447007FCD81BDDBF402284111
+S315007ED686006440483560BE63BDD3BDD185A8C981D9
+S315007ED696070364446045D581E0850C06C783F4009E
+S315007ED6A608A3BDD3BDD1BDD1645FB6FBBDD16444EF
+S315007ED6B6645FB7FBFFFF9DFEFFFF03056C60F57893
+S315007ED6C6FFFF264638F200F41065F4A44048604112
+S315007ED6D63560BE63A5D0DA856444007FCD81BDDB29
+S315007ED6E605036447007FCD81BDDBF40228410064D5
+S315007ED6F640483560BE63BDD3BDD103A8C981070345
+S315007ED70664446045D581E0850906C783F400A3D1C6
+S315007ED7160960F1F3FFFFD080FFFF03036D60257876
+S315007ED726FFFF007C0960EEF926461060A06300F4D2
+S315007ED736FFFF02F2BDDBFFFF03F2BDDB04F2FFFF56
+S315007ED746BDDB05F2A3DBFAA326460A65A3D323F041
+S315007ED7560061D084F181D484F181BDDBA3D303B18C
+S315007ED76603A924F042FE0103CC84F181D084F181A3
+S315007ED776BDDBA3D303B103A927F042FE0103CC8406
+S315007ED786F181D084F181BDDBA3D303B103A928F051
+S315007ED7960103CC84D084A3DBD3F1016164400A3ACB
+S315007ED7A60700604080270061614431FB1AFF210035
+S315007ED7B6614431FB1AFF10006AF36BF104B008B0C0
+S315007ED7C6180303036C60F378FFFF6741C1836BFD25
+S315007ED7D603036C60F578FFFF1C60A264A0D11C6013
+S315007ED7E69E64C084A0D3FFFFDC84A2DB6040003B40
+S315007ED7F6C6FE264600F4FFFF02F25AD24048404C49
+S315007ED8065AD25AD2404D60415AD078F94063AD809D
+S315007ED816F0A309023C032D412C44404D2844404C3E
+S315007ED82600644048F400D1800102310410A3806072
+S315007ED8360065A580CF830802284460882C44708CB8
+S315007ED8462D44708DF181F500E7A3644400A0006245
+S315007ED856020200611C00E084DE82FD0442FEF8843C
+S315007ED8666245C783604502FED5840205010561448D
+S315007ED876CF8360410803284460882C44708C2D44EF
+S315007ED886708DF181F100CE82E981FD02F18102F28F
+S315007ED896FFFF6047E884E8845AD23FB5E084E08499
+S315007ED8A6E084E084E084E084B4846145D484C084E4
+S315007ED8B6E084E084E084E093E0938BF3FFFF6040B0
+S315007ED8C602265A00D3F1FFFF64400A3655002646E5
+S315007ED8D638F200F41065F4A4404860413560BE63B4
+S315007ED8E6A5D0DA856444007FCD81BDDB050364471A
+S315007ED8F6007FCD81BDDBF402284100644048356059
+S315007ED906BE63BDD3BDD105A8C98107036444604500
+S315007ED916D581E0850606C783F400BDD1BDD36445B1
+S315007ED92688FB7FF3FFFF00B8FFFF020201647FFBE1
+S315007ED936605C0E60A1F3FFFF01A8FFFF0F0288F36E
+S315007ED946FFFFD080FFFF090600A8FFFF0703D084EE
+S315007ED956FFFF0403FC07017C010088F1096081F95B
+S315007ED966654400A8D08009030A04D084FFFFFD071C
+S315007ED9760403C084FFFF03003300096081F375FB51
+S315007ED986096083F17344D093D09373439DF199FFD7
+S315007ED996724732402027050082FF204101B186FF6D
+S315007ED9A603036441DD81615C98FF6041645FE181CA
+S315007ED9B6F084E181F085D78578F3FFFFE084E08405
+S315007ED9C6E084E084D48063450B05C493C4930960E2
+S315007ED9D681F175F3FFFFCC84FFFF0102644475FB7C
+S315007ED9E60A646BFB6AF326460CBCA2DBFF60006507
+S315007ED9F625F2FFFF24886047248C6A60584ECC78D1
+S315007EDA06FFFF0C486A60584EDE78FFFF6A60584E06
+S315007EDA16F478FFFF0F60B662A2D100604064B084E0
+S315007EDA26A2DBCFFE18605C6210609464A2DB0364A0
+S315007EDA364ADBFFFF1DFF0F60B662A2D1FF60DF6481
+S315007EDA46A084A2DB26462F58FFFF1360006460453E
+S315007EDA56A0D326466043012A24000FF229F06040B1
+S315007EDA66102A10006440202B020002BB0100FDB383
+S315007EDA76A5DD0F60D462A2D100604064B084A2DBCD
+S315007EDA86CFFE0F006440202B020004BB0100FBB3D1
+S315007EDA96A5DD0F60D462A2D100608064B084A2DB6D
+S315007EDAA6CFFE26462F58FFFFD3F3FFFFFCA0FFFFD0
+S315007EDAB602032F58FFFF264638F200F41065F4A4BB
+S315007EDAC6404860413560BE63A5D0DA856444007FF2
+S315007EDAD6CD81BDDB05036447007FCD81BDDBF402C8
+S315007EDAE62841006440483560BE63BDD3BDD105A8D6
+S315007EDAF6C981070364446045D581E0853B06C783B5
+S315007EDB06F400BDD3644100A8BED305026040012A57
+S315007EDB16020001654548FEB51260FC64A0D3FFFF90
+S315007EDB26007FD48404A41D046045D580FEA4190412
+S315007EDB36E085C783A3D11260FE64A0D3FFFF007F74
+S315007EDB46A080FFFF0E03284401B0FFFF0502136087
+S315007EDB56AA650264A5DB13001360AA650864A5DBC5
+S315007EDB660E00284401B0FFFF05031360AA65016413
+S315007EDB76A5DB05001360AA650464A5DB00000F60BD
+S315007EDB86D462A2D100600464B084A2DBCFFE2646B0
+S315007EDB962F58FFFF0F60D462A2D101600064B08465
+S315007EDBA6A2DBCFFE2F58FFFF0063096080FD09606A
+S315007EDBB6D4FD1060A8630064A3DB06A31060086428
+S315007EDBC6BDDBBDDB0664A3DB106006626D60CD64DD
+S315007EDBD6A2DBB8F11060AC62A2D90F4E00603C6142
+S315007EDBE6414D40A1A2FF2860584F3278FFFFA3FF22
+S315007EDBF606032D412860584F5478FFFF08FE0E4FC8
+S315007EDC06664471FB086428FAA6F319FAFFFF99F3B0
+S315007EDC1607FAF06020640EFAA46429FA006438FADC
+S315007EDC260F4E00603C61414D40A1A2FF2860584FD1
+S315007EDC363278FFFFA3FF06032D412860584F54789E
+S315007EDC46FFFF08FE0E4F664472FB086428FAA6F3AB
+S315007EDC5619FAFFFF99F307FA246020640EFA01602B
+S315007EDC66486429FA006438FA15FA0F60D6620060AF
+S315007EDC760264A2DB6E606A645ADBCFFE0F60E862E0
+S315007EDC866E604864A2DB2F58FFFF0063096080FD45
+S315007EDC960F60AE62A2D180600064B084A2DBCFFE46
+S315007EDCA60F60D4620064A2DB5ADB0F60D662006028
+S315007EDCB60264A2DB6E606A645ADBCFFE204402B53E
+S315007EDCC65480FE60FF65204424802F58FFFF1C602B
+S315007EDCD6FA62A2D3FFFF04A800A8090305028BF306
+S315007EDCE6FFFF60400226030071601378FFFFEF6038
+S315007EDCF6FF65FA62A2D3FFFFA484A2DB204402B5A7
+S315007EDD0654800F60D4620064A2DB5ADB2F58FFFF75
+S315007EDD162F58FFFFFE60FF65204424800F60AE62AB
+S315007EDD26A2D180600064B084A2DBCFFE0F60D4628F
+S315007EDD360064A2DB0F60D66280601064A2DB6E6032
+S315007EDD46A7645ADBCFFE0D000F60D462A2D10060B7
+S315007EDD561064A0809C840503A084A2DB6E6048784E
+S315007EDD66FFFF0F6047F3FFFF01B0FFFF0302706000
+S315007EDD768F78FFFF0960D4F32041AC80066000658C
+S315007EDD8648029CFE86F34505A58001B0090241023E
+S315007EDD961760F862A2D3FFFF00A860463A02060025
+S315007EDDA60F60D4620064A2DB2F58FFFF1360A8645F
+S315007EDDB6A0D3017CAC8484F92C02C1FE32400226B5
+S315007EDDC60F00046482FF404919FF86FF9DFEFFFF12
+S315007EDDD603046F605078FFFF7DF11067B084A2DB87
+S315007EDDE60F60D4620064A2DB0F60D662046018649C
+S315007EDDF6A2DB6F6002645ADBCFFE2F58FFFF0F60F1
+S315007EDE06D462A2D100600864A0809C840503A084A7
+S315007EDE16A2DB7060C678FFFF00601064A0809C84DB
+S315007EDE260503A084A2DB6E604878FFFF9DFEFFFF9A
+S315007EDE36340582FF294408BC404919FF86FF0F60D8
+S315007EDE46D4620064A2DBDEFEFFFF0B040F60D662A1
+S315007EDE5640600064A2DB6F6022645ADBCFFE2F58D9
+S315007EDE66FFFF0F60D66220600064A2DB6F604764A8
+S315007EDE765ADBCFFE77F118604C62A2D91E644ADB66
+S315007EDE86FFFF2DFF2F58FFFFBEFE0F60AE62A2D1AB
+S315007EDE9640600064B084A2DBCFFE0160006520444C
+S315007EDEA634800F60AE62A2D180600064B084A2DB4D
+S315007EDEB6CFFE0F60D4620064A2DB0F60D66202607C
+S315007EDEC61D64A2DB6F606B645ADBCFFE2F58FFFFA5
+S315007EDED60F60D462A2D100600864A0809C8405038C
+S315007EDEE6A084A2DB6F600C78FFFF00600464A080CE
+S315007EDEF69C842303A084A2DB1360AA65A5D3FFFFB9
+S315007EDF066040043A03006E608D78FFFF013A070093
+S315007EDF1613600065A5D3FFFFF7B4A5DB4A00083A72
+S315007EDF26070013600065A5D3FFFF08BCA5DB41008D
+S315007EDF36023A030070608F78FFFF00600164A0805E
+S315007EDF469C840D03A084A2DB7DF1EF60FF64A08432
+S315007EDF56A2DB204402B554807060C678FFFF02605D
+S315007EDF660064A0809C841903A084A2DB6AF3FFFF6B
+S315007EDF766040082A03006E608D78FFFFFE60FF65AF
+S315007EDF86204424800F60AE62A2D180600064B08495
+S315007EDF96A2DBCFFE6F605C78FFFF00601064A08018
+S315007EDFA69C840503A084A2DB6E604878FFFF2F580B
+S315007EDFB6FFFF13600065A5D3FFFF01BCA5DB0264E8
+S315007EDFC684FBC1FEB8F1086056F918605C62106083
+S315007EDFD6A864A2DB02644ADBFFFF1DFF0F60D462E4
+S315007EDFE6A2D1FE60FF64A084A2DB0F60D6620160CA
+S315007EDFF69464A2DB706003645ADBCFFE2F58FFFF64
+S315007EE0060F60D462A2D100608064A0809C842A03BD
+S315007EE016A084A2DB13600064A0D3FFFF6040042ABF
+S315007EE0260B0018605C621060A864A2DB02644ADBA1
+S315007EE036FFFF1DFF2F58FFFF18605C621060A86405
+S315007EE046A2DB03644ADBFFFF1DFF13600064A0D3D9
+S315007EE056FFFF08B0FFFF030270608B78FFFF7060DC
+S315007EE0668F78FFFF00600464A0809C842D03A084C5
+S315007EE076A2DB1360AA65A5D3FFFF6040083A0800B7
+S315007EE08613600065A5D3FFFF08BCA5DB2F58FFFFEF
+S315007EE096013A02002F58FFFF023A0A0018605C62B8
+S315007EE0A61060A864A2DB03644ADBFFFF1DFF340013
+S315007EE0B6043A0A0018605C621060A864A2DB0364F8
+S315007EE0C64ADBFFFF1DFF250001600064A0809C845D
+S315007EE0D60A03A084A2DB13600064A0D3FFFF604020
+S315007EE0E6082A1700190000601064A0809C840E031F
+S315007EE0F6A084A2DB186058621060A864A2DB036463
+S315007EE1064ADBFFFF1DFF6E604878FFFF2F58FFFF35
+S315007EE11600006E608D78FFFF71F579F12BF8FFFFB3
+S315007EE1267AF12CF87BF1FFFF2DF87CF12AF8FFFFBA
+S315007EE136A6F119F8B9F1FFFF2EF8BAF12FF8FFFF0F
+S315007EE146BBF130F800640FFA15FA27FAA46429FAA9
+S315007EE1567DF1EF60FF64A084A2DBFFFF006417FA01
+S315007EE166106413FA04A41EFA4060584E5478FFFFD4
+S315007EE176186032621760FC64A2DB66445ADB0A6468
+S315007EE1865ADBFFFF03FF7DF1EF60FF64A084A2DB0F
+S315007EE1969DFEFFFF330582FF0864404919FF86FF11
+S315007EE1A60F60D4620064A2DBDEFEFFFF0B040F6007
+S315007EE1B6D66240600064A2DB7060D3645ADBCFFE13
+S315007EE1C62F58FFFF0F60D66220600064A2DB706068
+S315007EE1D6F8645ADBCFFE77F118604C62A2D91E64CC
+S315007EE1E64ADBFFFF2DFF2F58FFFFBEFE0F60AE6296
+S315007EE1F6A2D140600064B084A2DBCFFE01642040DB
+S315007EE206062384FBFFFFC1FEFE60FF652044248055
+S315007EE2160F60AE62A2D180600064B084A2DBCFFEC0
+S315007EE2260F6047F3FFFF6040012620000F60D6622F
+S315007EE23680601064A2DB716024645ADBCFFE2F58A1
+S315007EE246FFFF0F60D462A2D100601064A0809C841A
+S315007EE2560503A084A2DB6E604878FFFF0F6047F356
+S315007EE266FFFF6040012602002F58FFFF1360006500
+S315007EE276A5D3FFFF01BCA5DB1D60467CA4D110603D
+S315007EE286AC62A2D918605C621060A864A2DB0264E6
+S315007EE2964ADBFFFF1DFF0F60D462A2D1FE60FF64DC
+S315007EE2A6A084A2DB0F60D66201605D64A2DB71602C
+S315007EE2B660645ADBCFFE2F58FFFF0F60D462A2D171
+S315007EE2C601600064A0809C841603A084A2DB486459
+S315007EE2D6A080FFFF10022041066000659CFE86F345
+S315007EE2E60705A58001B00402030272601178FFFF5E
+S315007EE2F66E608D78FFFF00600464A0809C844B036D
+S315007EE306A084A2DB1360AA65A5D3FFFF6040023A0E
+S315007EE316420071F579F12BF8FFFF7AF12CF87BF145
+S315007EE326FFFF2DF87CF12AF8FFFFA6F119F8B9F161
+S315007EE336FFFF2EF8BAF12FF8FFFFBBF130F8006427
+S315007EE3460FFA15FA27FAA46429FA7DF1EF60FF64BF
+S315007EE356A084A2DBFFFF006417FA106413FA04A4F6
+S315007EE3661EFA4060584E5478FFFF18603262176078
+S315007EE376FC64A2DB66445ADB0A645ADBFFFF03FFB4
+S315007EE386C1FE18605C621060A864A2DB02644ADB8A
+S315007EE396FFFF1DFF3D0000604064A0809C840C0349
+S315007EE3A6A084A2DB18605C621060A864A2DB0264AD
+S315007EE3B64ADBFFFF1DFF2C0000600864A0809C845C
+S315007EE3C60C03A084A2DB18605C621060A864A2DBE4
+S315007EE3D602644ADBFFFF1DFF1B0000600164A0800E
+S315007EE3E69C840C03A084A2DB18605C621060A86421
+S315007EE3F6A2DB02644ADBFFFF1DFF0A000060106493
+S315007EE406A0809C840503A084A2DB6E604878FFFF0D
+S315007EE4160F60D4620064A2DB2F58FFFF01600065A1
+S315007EE426204434800F60AE62A2D180600064B084E0
+S315007EE436A2DBCFFE0F60D4620064A2DB0F60D662DB
+S315007EE44600600164A2DB726063645ADBCFFE72F5FE
+S315007EE456A6F119F8FFFF79F12BF831F8FFFF7AF16D
+S315007EE4662CF832F8FFFF7BF12DF833F8FFFFB9F172
+S315007EE4762EF8BAF1FFFF2FF8BBF130F800642AFAC0
+S315007EE48615FA0FFA0160486429FA1160486429FA7A
+S315007EE4963F60584ED878FFFF7DF11067B084A2DBC9
+S315007EE4A6006422FA186032621760FC64A2DB664458
+S315007EE4B65ADB0A645ADBFFFF03FFC1FE2F58FFFFB6
+S315007EE4C672F5FFFF22F2FFFF00A8FFFF03037060CF
+S315007EE4D6C678FFFF057C086056F918605C62106098
+S315007EE4E6A864A2DB02644ADBFFFF1DFF0F60D462CF
+S315007EE4F6A2D1FE60FF64A084A2DB0F60D6620160B5
+S315007EE5064C64A2DB72608B645ADBCFFE2F58FFFF0C
+S315007EE5160F60D462A2D101600064A0809C84D7037A
+S315007EE526A084A2DB6E608D78FFFF0F4E01602D61A3
+S315007EE536414D40A1A2FF2860584F3278FFFFA3FFC8
+S315007EE54606032D412860584F5478FFFF08FE0E4F6E
+S315007EE55666446CFB806429FAB2F119F8086428FAD7
+S315007EE56620640EFA67442BFA2CFA2DFAFFFF99F1F0
+S315007EE57607F8106002627560DC64A2DB0F60DC62FF
+S315007EE58676609364A2DB2F58FFFF324402002F5833
+S315007EE596FFFF40611260B4630064C981BDDBFD0284
+S315007EE5A66CF5B9F1FFFF2EF8BAF12FF8FFFFBBF136
+S315007EE5B630F879F1FFFF31F87AF132F8FFFF7BF119
+S315007EE5C633F815F20063635E15FA1E60CA6378F148
+S315007EE5D60064645EBDDB6447007FBDDB4EF1006191
+S315007EE5E66440012610B9C3F11C60FA6264400226B5
+S315007EE5F620B9A2D302656040043605008BF3FFFF81
+S315007EE6066040022A0165B584BDDB605C0960EDF972
+S315007EE6160064BDDB007CBDD9434B1E60A662A2D3D9
+S315007EE626DA85BDDB604106A487FBA5D1DA8564441F
+S315007EE636007FCD81BDDB05036447007FCD81BDDBD3
+S315007EE646F4020164BDDB87F11E609262A2D3DA858F
+S315007EE656BDDB6041C08402A487FBA5D1DA8564440E
+S315007EE666007FCD81BDDB05036447007FCD81BDDBA3
+S315007EE676F4020364BDDB0164BDDB77F3BDDBFFFF1E
+S315007EE68687F3FFFF03A487FB8BF3FFFF02B00664C7
+S315007EE6961003BDDB0264BDDBFC62A2D3FFFF6045D1
+S315007EE6A6007FBDDB6547007FBDDB87F3FFFF04A4E6
+S315007EE6B687FBD3F3FFFF60400A3A0C000664BDDB98
+S315007EE6C60264BDDB0064BDDBBDDB87F3FFFF04A40E
+S315007EE6D687FBFFFF007C0960ECF987F3FFFF60434B
+S315007EE6E660412060B662A2DDDA82A2DDDA85006648
+S315007EE6F61E60CA63DD81BDD3BDD1C981645FA5DADD
+S315007EE706A984DA85F8028BF3FFFF02B0FFFF1602B5
+S315007EE716096088F100646440012A10002BDB1E60C6
+S315007EE726A662A2D187F32B41D0836442E285C58455
+S315007EE73687FDCF83E38358D159D9FD1F6CF50063D8
+S315007EE746B9F3BAF1BBF1C087C08588FD6547C48437
+S315007EE75607B46045106074636544BDDB106004646F
+S315007EE766BDDB0264BDDB0664A3DB18605C621060FB
+S315007EE7767064A2DB02644ADBFFFF1DFF0F60B06298
+S315007EE7860064A2DB0F60B26200600264A2DB736085
+S315007EE796D0645ADBCFFE2F58FFFF0F60B06200644F
+S315007EE7A6A2DB6CF500649DFB9EFB9FFB00750072EB
+S315007EE7B678F3FFFFE084E084E084E093E093EDE285
+S315007EE7C6C1F3FFFFCC8488FB0F60B26200600464EF
+S315007EE7D6A2DB7360F2645ADBCFFE2F58FFFF106012
+S315007EE7E65BF15AD90F60B0620064A2DB007CA3F9A6
+S315007EE7F62044162303007560CD78FFFF007C0960F2
+S315007EE806F0F9FFFFD3F3007C0AB0FFFF05038BF317
+S315007EE816FFFF6040023A0D00A3F96CF5FFFF00F498
+S315007EE8261E60CA6387F30C656041414B74609078BF
+S315007EE836FFFF40611260B463BDD3FFFF00A8C981A6
+S315007EE8460B02BDD3FB02016012620064A2DB01608D
+S315007EE85614620064A2DB190001601262FF60FC6529
+S315007EE866CB84A484A2DB634500B9BDD3060300A888
+S315007EE876C98101036345BDD3FA0201601463016053
+S315007EE8861264A0D16541D184A3DB87F3FFFFE081C5
+S315007EE8961E60CA65C5830564BDDB8AF30166E884A8
+S315007EE8A600A803A4020204640066BDDB88F1C1F3F8
+S315007EE8B6FFFFBDD9BDDB1260B46589F3FFFFD48148
+S315007EE8C6E9816645FF22006188F118602862A2D337
+S315007EE8D6FFFF00A8604603036440FF2201B9614438
+S315007EE8E6BDDB6540FF22090089F38AF1C88464414F
+S315007EE8F658D1C981BDD9FC0202000064BDDB6CF528
+S315007EE906FFFF00F4FFFF87F38AF105A46540FF2229
+S315007EE916DC846441E985C481414B09608EF3FFFF41
+S315007EE9266040003674000764BDDB06644348BDDB83
+S315007EE93613601E64A0D3BDDB6047BDDB1360206417
+S315007EE946A0D3BDDB096091F1FFFF444C0E607DF3DB
+S315007EE956FFFF06A8FFFF5B02A4F3FFFF604500618B
+S315007EE9660164A480DD810A03615CBDD9E084A4804E
+S315007EE976DD81FC02D19CBDD92C5CBDD90E7CD180B5
+S315007EE986FFFF0503E084A480DD81EE02F7002845BD
+S315007EE996D784FFA4E88401B0003A01A4A5DB6045CE
+S315007EE9A62B4402A4C484404B10605CF3FFFFDA85D9
+S315007EE9B6C4852843A3D1FFFF644102A1615CC09C46
+S315007EE9C610605CF9FEA300662B44E884FFFF120402
+S315007EE9D6DD816544A885A5D3BDD1FFFF645FA5DA33
+S315007EE9E6DA85BDD3BDD1C981645FA5DAA984DA8508
+S315007EE9F6F8020900DD81BDD3BDD1C981645FA5DA82
+S315007EEA06A984DA85F8026CF5FFFF00F4FFFF2B4337
+S315007EEA16635CE3851E60CA63C783096098F3FFFF5E
+S315007EEA26408B00A860413B03DA85A5D1DA8564442E
+S315007EEA36007FCD81BDDB05036447007FCD81BDDBCF
+S315007EEA46F402096098F3FFFFE0856541D783605C33
+S315007EEA5610605CF3FFFFDA85C485C09C10605CF9A6
+S315007EEA662B44E88400661204DD816544A885A5D319
+S315007EEA76BDD1FFFF645FA5DADA85BDD3BDD1C98177
+S315007EEA86645FA5DAA984DA85F8020900DD81BDD33D
+S315007EEA96BDD1C981645FA5DAA984DA85F8026CF5EB
+S315007EEAA6FFFF00F4FFFF2B4460411E60CA630C65C0
+S315007EEAB6DD81BDD3BDD1C981645FA5DA7E3A080004
+S315007EEAC67C6401FA00F40465A984FFFFF202030062
+S315007EEAD6A984DA85EE026544FCA4807F01FA6CF58C
+S315007EEAE62B4408A417FA186413FA04A41EFA0064C3
+S315007EEAF616FA016414FA86F3FFFF02BC86FB80646F
+S315007EEB0629FA4060584E5478FFFF79F131F8FFFFB7
+S315007EEB167AF132F87BF1FFFF33F80F60B26200605E
+S315007EEB260164A2DB7560C6645ADBCFFE88F3C1F14B
+S315007EEB3600B8604310021860326218602864A2DB51
+S315007EEB4666445ADB0E645ADBFFFF03FF85F3644396
+S315007EEB5601BC85FB0D00006485FB1860326217607A
+S315007EEB66FC64A2DB66445ADB0A645ADBFFFF03FFBC
+S315007EEB76C1FECF8388FD01601863A3D3FFFFDC84C5
+S315007EEB86A3DB2F58FFFF0F60B062A2D1FF60FE6443
+S315007EEB96A084A2DB0F60B0620064A2DB0F60B26265
+S315007EEBA600600464A2DB7360F2645ADBCFFE2F58E4
+S315007EEBB6FFFF0F60B062A2D100600264B084A2DB62
+S315007EEBC6CFFE2F58FFFFD3F3FFFF6040083A0A00B9
+S315007EEBD60960F0F3FFFFF8A0FFFF3005DC9C0960B5
+S315007EEBE6F0F9FFFF096088F310FE6040022650FEAC
+S315007EEBF600F4FFFF02F2FFFF6047003A1F00604304
+S315007EEC06003A02001B011D0062451E60A662A2D165
+S315007EEC16FFFFD3801E60A661110250FE6544FFFF8C
+S315007EEC2601010A0058D059D16442CB83D280F807B7
+S315007EEC36031E9280003650FEFFFF030176609078B3
+S315007EEC46FFFF26468BF3A2F16040022A0C00644043
+S315007EEC56003A030076608D78FFFF20441623030074
+S315007EEC6676608D78FFFF15F20063635E15FAFFFF09
+S315007EEC762EF22BFA2FF2FFFF2CFA30F22DFAFFFF39
+S315007EEC86B9F12EF8BAF1FFFF2FF8BBF130F8FFFF88
+S315007EEC9679F131F87AF1FFFF32F87BF133F8506479
+S315007EECA629FA2060B864A0D3FFFF08A417FA186471
+S315007EECB613FA04A41EFA006416FA016414FAFF67B0
+S315007EECC60EFA2060B864A0D100F40A616443CF834D
+S315007EECD661407E3A0600605C7C6401FA00F402615D
+S315007EECE6644458D159D8F41F6144FEA4807F01FA44
+S315007EECF626464060584E5478FFFF1860326217608B
+S315007EED06FC64A2DB66445ADB0A645ADBFFFF03FF1A
+S315007EED16C1FE006646462F58FFFF26462F58FFFF42
+S315007EED260F60B0620064A2DB5ADB18605C6210601C
+S315007EED367064A2DB03644ADBFFFF1DFF2F58FFFFCD
+S315007EED4629F0F760FF656447FFFF032A01001E0070
+S315007EED56032603AC6047A48429FA64412EF22BFA75
+S315007EED66FFFF2FF22CFA30F2FFFF2DFAB9F32EFAB9
+S315007EED763240042631FABAF32FFAFFFFBBF130F89A
+S315007EED863240042A270032FA33F824006047A484E8
+S315007EED9629FA64412EF22BFA2FF2FFFF2CFA30F275
+S315007EEDA62DFAFFFFB9F32EFABAF3FFFF2FFABBF160
+S315007EEDB630F8FFFF35F231FA36F2FFFF32FA37F2D6
+S315007EEDC633FAFFFFB9F335FABAF3FFFF36FABBF12C
+S315007EEDD637F8FFFF38F04264D080FFFF020738FA25
+S315007EEDE6FFFF20F213FA0EF2FFFFFF7F0EFA25F2E1
+S315007EEDF6FFFF6043007F26A4003BFF646047605C9E
+S315007EEE066347007F31A4003BFF64B08426F000F49E
+S315007EEE16FFFF18FA0F60FF64A08719FA61441AFA93
+S315007EEE26016706FA10611D604864106358D1CD816C
+S315007EEE36BDD8FC02A5F1CDF1645E645F3663BDDAAC
+S315007EEE461D604262A2D14AD36441E181E8844AD3F7
+S315007EEE56F181E884F18406A2A2D1BDDA6447BDDAE1
+S315007EEE66CBF3CCF16047BDDA6447C2F1BDDA6444C2
+S315007EEE76BDDA26463F60584ED878FFFF1860326266
+S315007EEE861760FC64A2DB26445ADB0A645ADBFFFF64
+S315007EEE9603FFC1FE00662F58FFFF18601062A2D3DD
+S315007EEEA6FFFF00A86046030249609478FFFF18605C
+S315007EEEB632621760F864A2DB66445ADB0A645ADB62
+S315007EEEC6FFFF03FF1360A864A0D3FFFFDC80DC840C
+S315007EEED60103A2DB0F60D462A2D100600864B0840F
+S315007EEEE6A2DBCFFE7DF3FFFF6040102B0100D5002F
+S315007EEEF6C1FED3002F58FFFF0FF3FFFF60471FB4F7
+S315007EEF065800FF672358FFFF186050650464A5DB2B
+S315007EEF161100186050650C64A5DB0C001860506500
+S315007EEF260664A5DB2DFF00672358FFFF1860506534
+S315007EEF360864A5DB7760D86491FBFFFF2DFF3660FC
+S315007EEF462878FFFF10F377FB93FB15607C6492FBB4
+S315007EEF56076494FB7760D86491FBDFFE006419FF35
+S315007EEF6636602878FFFF7960BF630F602C64A0DD6C
+S315007EEF76FFFF62FF7760C46391FD1AFF36602878CD
+S315007EEF86FFFF1E6078630F602C64A0DDFFFF62FFC5
+S315007EEF9610F51860386318600864BDDB6644BDDB11
+S315007EEFA60A64A3DBFFFF03FFD3FE00672358FFFF3A
+S315007EEFB6A8000036A9000136AC000236AF0003363D
+S315007EEFC6B5000436D0000536CE000636F100073685
+S315007EEFD6CA000836B700093639000A363A000B36B5
+S315007EEFE63B000C364A000D3641000E3653000F3670
+S315007EEFF65E001036130011361400123615001336CF
+S315007EF00616001436170015362900163616001736DC
+S315007EF01617001936180077608478FFFF7860CC78FB
+S315007EF026FFFF79602C78FFFF7860D978FFFF7960DD
+S315007EF0363978FFFF79605078FFFF79605D78FFFF4C
+S315007EF04679607478FFFF7960A678FFFF02600064B8
+S315007EF0560F00046000640C0001640A0010F311F3CD
+S315007EF066AC80324506029C842492040020600064AD
+S315007EF0763245349200672358FFFF08E47A60F863C8
+S315007EF0860F602C64A0DDFFFF62FFFFFF1AFF00679D
+S315007EF0962358FFFF02E87A6078630F602C64A0DD52
+S315007EF0A6FFFF62FFFFFF1AFF00672358FFFF99FFE8
+S315007EF0B63E44FCB4007F405E98FFBCFF99FF076026
+S315007EF0C600E898FFFFFFFFFFFFFFFFFFFFFFFFFF43
+S315007EF0D680E8FFFFFFFFFFFF0D63584F560099FF3F
+S315007EF0E63D44F7B4405D98FF0D63584F4E0099FF39
+S315007EF0F63E4477B408BC007F405E98FF0D63584F4A
+S315007EF106440099FF3C4410BC007F405C98FF99FF03
+S315007EF1163D4410BC007F405D98FFB5FFFFFF6C4007
+S315007EF126116003E8016003E8FFFFB5FFFFFF99FF65
+S315007EF136076080E998FFFFFFFFFF80E9FFFFFFFF7D
+S315007EF146B7FFB4FFFFFF99FF3E4402BC007F405ED9
+S315007EF15698FFFFFFFFFFFFFFFFFF46FF47FFD960D2
+S315007EF166FE643245249299FF3547FFB4605C04609F
+S315007EF17607F9644498FF1E6078630F602C64A0DDF1
+S315007EF186FFFF62FF00672358FFFFFFFFFE1F2F5814
+S315007EF196FFFF03E87B6011630F602C64A0DDFFFF33
+S315007EF1A662FFFFFF1AFF00672358FFFF99FF3C4465
+S315007EF1B6DFB4405C98FF99FF3D44FEB4405D98FF00
+S315007EF1C610F3FFFFFFFF6041FFFF99FF1E633D447D
+S315007EF1D6E181F9B4022404BC007F405DFFFFFFFF98
+S315007EF1E602BC405DF51F98FFFFFF11F3FFFFFFFF91
+S315007EF1F66041FFFF99FF06633D44E181F9B402242F
+S315007EF20604BC007F405DFFFFFFFF02BC405DF51F2D
+S315007EF216F9B4007F405D98FFE181FFFF0C0499FFFC
+S315007EF2263C4420BC007F405C98FF99FF3C44DFB49B
+S315007EF236405C98FF0B0099FF3D4401BC007F405D14
+S315007EF24698FF99FF3D44FEB4405D98FF00672358BC
+S315007EF256FFFF02E87B6032630F602C64A0DDFFFF52
+S315007EF26662FFFFFF1AFF00672358FFFF99FF3D44A3
+S315007EF27680BC007F405D98FF99FF3D447FB4405D2C
+S315007EF28698FFFFFFFFFFFFFF99FF3D4480BC007F8F
+S315007EF296405D98FF00672358FFFF02E87B60CF63D9
+S315007EF2A60F602C64A0DDFFFF62FFFFFF1AFF00677B
+S315007EF2B62358FFFF10F3FFFF03B40036070001361F
+S315007EF2C60800023609000160FBE308000160F8E3E8
+S315007EF2D605000160F9E302000160FAE30067235840
+S315007EF2E6FFFF90ED0CEE99FF3C4458BCD8B4405CCB
+S315007EF2F6EFB4405C98FF80EDFFFF0FEEFFFF0CEE4E
+S315007EF3066063FFFFFF1F08EEBEFFFCE00E6006642D
+S315007EF316A0D1FFFF6440012A060099FF3C447FB4D4
+S315007EF326405C98FF050099FF3C4480BC405C98FF94
+S315007EF33610F3FFFF00BCFFFF0202BFFF0100A1FF25
+S315007EF34600672358FFFF99FF88FF007C036019E25A
+S315007EF3560160F9E264520760D063FFFFFE1F017CFF
+S315007EF3667244FFA0FBA002040107007CEF6019E24F
+S315007EF376644798FF2358FFFF08E1A1FFFFFF43FF7F
+S315007EF3860FF3FFFFFFFF07375500053B030040E1FE
+S315007EF396A1FFFFFF10F5FFFF11F338F000BC4642D2
+S315007EF3A601020164605B4DE202E1A1FF6444E6A4CC
+S315007EF3B660456443FCA301E10560006B6744604CCF
+S315007EF3C6A1FF00F4604CBBFF01F2FFFFFCA4604187
+S315007EF3D60862060000F4FFFF01F2FFFF6041046249
+S315007EF3E6E2D2FFFFA1FFDA826340D780C98102029D
+S315007EF3F6604E0100604CF41CED035AD2031EA1FF3B
+S315007EF406FFFF604DA1FFC3603364604EA2D2FFFF4D
+S315007EF416A1FFC4604464604CA1FFFFFF00E1664421
+S315007EF42622460CFA63440BFA0125FE00BCFFD8FE83
+S315007EF436A1FFFFFF006440466041B5FFB7FFB4FFFC
+S315007EF44610F5FFFF38F023F24443404400F4F360A0
+S315007EF456A065DA825AD2D981D480FFFFFB02614546
+S315007EF4662444D484E084E084E084FDA5846000643C
+S315007EF476C49D0D60006B2444C083BBFF10F501E17D
+S315007EF48600F4FFFF01F2FFFF60410462A1FFFFFF6A
+S315007EF49601101F00264401260F002444C8844044DA
+S315007EF4A603036C451608F2000415017C046005F913
+S315007EF4B618006C450E08EA002344C88440430303BD
+S315007EF4C66C450708E300007C0115017C6C450460EB
+S315007EF4D605F9E2D2DA82C981604CD81CD103BCFF1B
+S315007EF4E6D50000E1D8FEA1FFFFFF08E1A1FFFFFFE1
+S315007EF4F643FF01E1FF646048906A0116FE00CDF186
+S315007EF50600616840FFFF0116FE000A69FFFFFFFFE6
+S315007EF516FFFFFFFF0116FE00685EFCB5FFFF644433
+S315007EF52601360061023601610336016104360261E7
+S315007EF536083603610F360361B5811B609864A0D3D6
+S315007EF54677F36040302A0500006560400E3610650A
+S315007EF556B58161488A6AFFFFFFFFFFFFFFFF01163F
+S315007EF566FE0099FF3C4410BC007F405C98FF99FFE5
+S315007EF5763D44EFB4405D98FF0D63584F320099FFC8
+S315007EF5863E4477B480BC007F405E98FF0D63584F3D
+S315007EF596280099FF3E44FCB401BC007F405E816034
+S315007EF5A6006B98FF0D63584F1C0099FF3D4408BCBF
+S315007EF5B6007F405D98FF99FF076000E898FFFFFF92
+S315007EF5C6FFFFFFFFFFFFFFFFFFFF80E8FFFFFFFF57
+S315007EF5D6FFFF10F3FFFF604CBBFFA1FFFFFF604CF2
+S315007EF5E6FC00FFFFFE1F2F58FFFF11F110F364414B
+S315007EF5F60065604001261065006360400226406312
+S315007EF60647FD47F102E1614399FF00646541635B0D
+S315007EF6164DE290849581A1FFFFFFF90008E1A1FFE7
+S315007EF626FFFF43FF01E1B5FFFFFFFFFF6C40B5FF1E
+S315007EF636FFFF99FF076080E998FFFFFFFFFF80E9DE
+S315007EF646FFFFFFFFB7FFB4FFFFFF99FF3E4402BCF5
+S315007EF656007F405E98FFA1FFFFFF6C44FC0008E139
+S315007EF666A1FFFFFF43FF99FF3D44F7B4405D98FF38
+S315007EF67610F3FFFFFFFF6041FFFFE181FFFF0704F7
+S315007EF68699FF3E4401BC007F405E98FF050099FFC8
+S315007EF6963E44FEB4405E98FFE181FFFF070499FF74
+S315007EF6A63D4408BC007F405D98FF050099FF3D44BA
+S315007EF6B6F7B4405D98FFE181FFFF070499FF3E445C
+S315007EF6C602BC007F405E98FF050099FF3E44FDB46E
+S315007EF6D6405E98FFE181FFFF060499FF3E44FBB438
+S315007EF6E6405E98FF060099FF3E4404BC007F405E5E
+S315007EF6F698FFE181FFFF060499FF3C44BFB4405C58
+S315007EF70698FF060099FF3C4440BC007F405C98FF0C
+S315007EF716E181FFFF070499FF3C4410BC007F405CF5
+S315007EF72698FF050099FF3C44EFB4405C98FFE18163
+S315007EF736FFFF070499FF3D4410BC007F405D98FF9E
+S315007EF746050099FF3D44EFB4405D98FFE181FFFFDA
+S315007EF756E181FFFF070499FF3D4480BC007F405D43
+S315007EF76698FF050099FF3D447FB4405D98FFE18191
+S315007EF776FFFF080499FF3E4477B480BC007F405E57
+S315007EF78698FF070099FF3E4477B408BC007F405E2B
+S315007EF79698FFA1FFFFFFFD0008E1A1FFFFFF43FFE4
+S315007EF7A601E111F3FFFF604399FF3E44FCB401BCC1
+S315007EF7B6007F405E98FF8160006B99FF3C4410BCDB
+S315007EF7C6007F405C98FF99FF3D44EFB4405D98FF0D
+S315007EF7D6FFFFFFFFFFFFFFFFFFFF99FF3E4477B464
+S315007EF7E680BC007F405E98FFFFFFFFFFFFFFFFFFA7
+S315007EF7F6FFFF99FF3D4408BC007F405D98FF99FF59
+S315007EF806076000E898FFFFFFFFFFFFFFFFFFFFFF92
+S315007EF816FFFF80E8FFFFFFFFFFFF55605564FFFF92
+S315007EF826604CBBFFA1FFFFFF604CFC1F10F3FFFF82
+S315007EF8366043FFFFFFFFFFFFFFFFFFFF99FF3D448C
+S315007EF846F7B4405D98FFFFFFFFFFFFFFFFFF99FFBF
+S315007EF8563E4477B408BC007F405E98FFFFFFFFFFFD
+S315007EF866FFFFFFFFFFFFFFFF99FF3D4410BC007FB2
+S315007EF876405D98FFBCFF99FF3E44FCB4007F405E28
+S315007EF88698FFB5FFFFFF6C40B5FFFFFF99FF076048
+S315007EF89680E998FFFFFFFFFF80E9FFFFFFFFB7FFC7
+S315007EF8A6B4FFFFFF99FF3E4402BC007F405E98FF91
+S315007EF8B60564CC84FFFFFFFFFC02FA1F7B60D478CB
+S307007EF8C6FFFFBE
+S315007EF8C801000100010001000100000001000000A6
+S315007EF8D801000100010002000200010001001F0074
+S315007EF8E803000100080000000400010001000F006B
+S315007EF8F80200102000000000000000000100010048
+S315007EF90801000100020002003600360036000400BF
+S315007EF918010003003B003B00400006000100030097
+S315007EF928400040004A0008000100030000005365BD
+S315007EF938636F6E646172792046277300000000004B
+S315007EF948000000000000000000000000000000002B
+S315007EF958000000000000000000000000000000001B
+S315007EF968000000000000000000000000000000000B
+S315007EF97800000000000000000000000000000000FB
+S315007EF98800000000000000000000000000000000EB
+S315007EF99800000000000000000000000000000000DB
+S315007EF9A800000000001B001B000000000000000095
+S315007EF9B800000000000000000000000000000000BB
+S315007EF9C800000000000000000100000000000000AA
+S315007EF9D800000000000000000000000000000A0091
+S315007EF9E83E2D3E2D000000000000000000000000B5
+S315007EF9F8000000000000010000000000000000007A
+S315007EFA080400000000000000000000000000FA006C
+S315007EFA18000000000000000000000000000000005A
+S315007EFA2800EA000000000000FF1F010064000000DD
+S315007EFA3810271400D007D0071027000032000200D6
+S315007EFA4810270A000002000214000A001F00FF00A9
+S315007EFA5832000000000000000000000000000300E5
+S315007EFA680000010001000100000000000000000007
+S315007EFA780000000000002A092B0903006400030029
+S30F007EFA880200020000140100086E61
+S315007EFA92FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
+S315007EFAA2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0
+S315007EFAB21C60D678FFFFFFFFFFFFFFFFFFFFFFFF02
+S315007EFAC241FF1C60D878FFFFFFFFFFFFFFFFFFFFAE
+S315007EFAD2C4E21C60DC78FFFFFFFFFFFFFFFFFFFF34
+S315007EFAE21C60A47843FFFFFFFFFFFFFFFFFFFFFFC0
+S315007EFAF244FF08E11C60FF78FFFFFFFFFFFFFFFF69
+S315007EFB0244E21C609178FFFFFFFFFFFFFFFFFFFFCE
+S315007EFB1246FF1D600278FFFFFFFFFFFFFFFFFFFF2D
+S315007EFB221D600178FFFFFFFFFFFFFFFFFFFFFFFF65
+S315007EFB326669F06000784C4EFFFFFFFFFFFFFFFF16
+S315007EFB4220602D784CE2FFFFFFFFFFFFFFFFFFFFE6
+S315007EFB52FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F
+S315007EFB621E60ED7843FFFFFFFFFFFFFFFFFFFFFFF4
+S315007EFB721E608B789DF3FFFFFFFFFFFFFFFFFFFFF8
+S315007EFB820CFF64E2A1FFFFFFB93FFFFFFFFFFFFF0E
+S315007EFB9220604E7846FFFFFFFFFFFFFFFFFFFFFF5E
+S315007EFBA21E60787847FFFFFFFFFFFFFFFFFFFFFF25
+S313007EFBB240FF29605978FFFFFFFFFFFFFFFF30
+S315007EFC20FFFF8BFF9AFF0EF126607464C098FFFF7C
+S315007EFC30FFFF2E606F78FFFFFFFFFFFFFFFFFFFFD7
+S315007EFC40FFFF41FF2158FFFFFFFFFFFFFFFFFFFF83
+S315007EFC50FFFFC4E22258FFFFFFFFFFFFFFFFFFFF0C
+S315007EFC60FFFF2E606F78FFFFFFFFFFFFFFFFFFFFA7
+S315007EFC70FFFF44FF2F60FD78FFFFFFFFFFFFFFFFC3
+S315007EFC80FFFF64E2020A2158FFFFA1FFFFFFBB3F91
+S315007EFC90FFFF29608D78FFFFFFFFFFFFFFFFFFFF5E
+S315007EFCA0FFFF47FF99FF3244102A215898FFED0047
+S315007EFCB0FFFF40FF30606678FFFFFFFFFFFFFF001C
+S315007EFCC0FFFF41FFF560F178FFFFFFFFFFFFFF00BB
+S315007EFCD0FFFF3060BF78FFFFFFFFFFFFFFFFFF00E4
+S315007EFCE0FFFF43FF33603F78FFFFFFFFFFFFFF000D
+S315007EFCF0FFFF3060BF78FFFFFFFFFFFFFFFFFF00C4
+S315007EFD00FFFF45FF3260D578FFFFFFFFFFFFFF0055
+S315007EFD10FFFF33606C78FFFFFFFFFFFFFFFFFF00F3
+S315007EFD20FFFF3060BF78FFFFFFFFFFFFFFFFFF0093
+S315007EFD30FFFF4160BC78FFFFFFFFFFFFFFFFFFFF76
+S315007EFD40FFFF49608878FFFFFFFFFFFFFFFFFFFF92
+S315007EFD50FFFF00794160C878FFFFFFFFFFFFFFFFCF
+S315007EFD60FFFF24E24160C878FFFFFFFFFFFFFFFF32
+S315007EFD70FFFF48601578FFFFFFFFFFFFFFFFFFFFD6
+S315007EFD80FFFF44E24160C878FFFFFFFFFFFFFFFFF2
+S315007EFD90FFFF84E24160C878FFFFFFFFFFFFFFFFA2
+S315007EFDA0FFFF47FF4160C878FFFFFFFFFFFFFFFFB2
+S315007EFDB0FFFF3560D278FFFFFFFFFFFFFFFFFFFFEC
+S315007EFDD0FFFF3660CD78FFFFFFFFFFFFFFFFFFFFD0
+S315007F0800554689460D4AD25AE675576D276B9561CF
+S315007F0810286DA376874687468746874687468746D7
+S315007F0820874687468746874687468746781E00805F
+S315007F08300080008000800080008000800080008033
+S315007F08400080008000800080008000800080008023
+S315007F0850008000800080080000804A0000804600FB
+S315007F08600080440000800C0000804C000080000A5D
+S315007F0870100168A4B00184013033313344443033EE
+S315007F08803133303331333233323390007804AEE450
+S315007F089000000000000000000000000000000000D3
+S315007F08A000000000000000000000000000000000C3
+S315007F08B000000000000000000000000000000000B3
+S315007F08C000000000000000000000000000000000A3
+S315007F08D00000000000000000000000000000000093
+S315007F08E00000000000000000000000000000000083
+S315007F08F00000000000000000000000000000000073
+S315007F09000000000000000000000000000000000062
+S315007F09100000000000000000000000000000000052
+S315007F09200000000000000000000000000000000042
+S315007F09300000000000000000000000000000000032
+S315007F0940000000000000000000000A000000000018
+S315007F09500000000000000000000000000000000012
+S315007F09600000000000000000000000000000000002
+S315007F097000000000000000000000000000000000F2
+S315007F098000000000000000000000000000000000E2
+S315007F099000000000000000000000000000000000D2
+S315007F09A000000000000000000000000000000000C2
+S315007F09B000000000000000000000000000000000B2
+S315007F09C000000000000000000000000000000000A2
+S315007F09D00000000000000000000000000000000092
+S315007F09E00000000000000000000000000000000082
+S315007F09F00000000000000000000000000000000072
+S315007F0A000000000000000000000000000000000061
+S315007F0A100000000000000000000000000000000051
+S315007F0A200000000000000000000000000000000041
+S315007F0A300000000000000000000000000000000031
+S315007F0A400000000000000000000000000000000021
+S315007F0A500000000000000000000000000000000011
+S315007F0A600000000000000000000000000000000001
+S315007F0A7000000000000000000000000000000000F1
+S315007F0A8000000000000000000000000000000000E1
+S315007F0A9000000000000000000000000000000000D1
+S315007F0AA000000000000000000000000000000000C1
+S315007F0AB000000000000000000000000000000000B1
+S315007F0AC000000000000000000000000000000000A1
+S315007F0AD00000000000000000000000000000000091
+S315007F0AE00000000000000000000000000000000081
+S315007F0AF00000000000000000000000000000000071
+S315007F0B000000000000000000000000000000000060
+S315007F0B100000000000000000000000000000000050
+S315007F0B200000000000000000000000000000000040
+S315007F0B300000000000000000000000000000000030
+S315007F0B400000000000000000000000000000000020
+S315007F0B500000000000000000000000000000000010
+S315007F0B600000000000000000000000000000000000
+S315007F0B7000000000000000000000000000000000F0
+S315007F0B8000000000000000000000000000000000E0
+S315007F0B9000000000000000000000000000000000D0
+S315007F0BA000000000000000000000000000000000C0
+S315007F0BB000000000000000000000000000000000B0
+S315007F0BC000000000000000000000000000000000A0
+S315007F0BD00000000000000000000000000000000090
+S315007F0BE00000000000000000000000000000000080
+S315007F0BF0000000000F000F007C040B6E0000000059
+S315007F0C00000000000000AA00310001000000FFFF85
+S315007F0C1000000000050032002D00000000002020AB
+S315007F0C202000120000000000888800000F00086E78
+S315007F0C30000000000000000000000000000000002F
+S315007F0C40000000000000000000000000000000001F
+S315007F0C50000000000000000000000000000000000F
+S315007F0C6000000000000000000000000000000000FF
+S315007F0C7000000000000000000000000000000000EF
+S315007F0C8000000000000000000100020004000800D0
+S315007F0C9010002000400080000001000200040008D0
+S315007F0CA000100020004000800000000000000000CF
+S315007F0CB000000000000000000000000000000000AF
+S315007F0CC0000000000000000000000000000000009F
+S315007F0CD0000000000000000000000000000000008F
+S315007F0CE00000FF0000000000000000000000000080
+S315007F0CF0000049483548F038243903FC153AA53CAD
+S315007F0D00881E020004FC153A4B3AB61D220006FCEB
+S315007F0D10153A4B3A8E1D020007FC153A4B3AD81D01
+S315007F0D2002000EFC153ABD3CE01D2200B0FC153AD0
+S315007F0D304B3A901D02002CFC153A4B3A061E0200D8
+S315007F0D4030FC153A4B3A8A1E020031FC153A4B3A73
+S315007F0D500C1E020032FC153A4B3A8C1E0200B3FC85
+S315007F0D60153A203DF4120200B4FC153A163DF612F0
+S315007F0D700200B5FC153A4B3AF812020024FCEB3917
+S315007F0D80B03D0000060025FCEB39B43D00000600AF
+S315007F0D9026FCEB39B83D0000060027FCEB39BC3D4D
+S315007F0DA00000060023FC153A4B3A9A00020028FC05
+S315007F0DB0153A4B3A9C0002002AFC153A4B3AE8005A
+S315007F0DC00200C2FC153A4B3A9E01060000FC153A1A
+S315007F0DD04B3A921D020001FC153A4B3A7C1D0600E8
+S315007F0DE002FC153A4B3A941D220005FC153A4B3A04
+S315007F0DF08A1D020008FC153A4B3A821D060009FC43
+S315007F0E00153A743A8E1E02000AFC153A633A901E12
+S315007F0E1002000BFC153A4B3ADA1D02000CFC153A20
+S315007F0E204B3ADC1D02000DFC153A4B3ADE1D0200E3
+S315007F0E3080FC883A9E3A261E600081FC153A4B3A22
+S315007F0E409401020082FC153A7E3A9601020083FCE9
+S315007F0E50153A4B3A9801020084FC153AF13C9A0107
+S315007F0E60020085FC153ADC3C861E020020FC153A02
+S315007F0E709C3D0000020021FC153AA63D00000200C1
+S315007F0E802DFC153A4B3A081E020035FC153A4B3AB3
+S315007F0E900E1E020040FCB53EDD3E0000020033FC24
+S315007F0EA0153A4B3A9C01020010FC153A4B3A8C1DC1
+S315007F0EB0020041FC153A4B3A141E0600B6FC153A61
+S315007F0EC04B3A98000200E1FC153A1B3E781D040060
+S315007F0ED0E5FC153A3D3EB0132600E2FC153A6C3E22
+S315007F0EE00000080043FC153A4B3A1013020042FCFF
+S315007F0EF0153A4B3A1A1E020046FC153A4B3A1C1E0F
+S315007F0F0002008AFD153A4B3A0E1302008BFD8C3B8D
+S315007F0F100A3A00000000C4FC153A4B3AB81B0A0097
+S315007F0F20BAFC153A4B3A1A130200BBFC153A4B3AF8
+S315007F0F3012130200BCFC153A4B3A1C130200BDFC8F
+S315007F0F40153A4B3A1E130400BEFC153A4B3A221350
+S315007F0F500200BFFC153AFC3EAC200200C7FD153AE5
+S315007F0F600A3AAE200600C0FC153A4B3ADA13020065
+S315007F0F70C1FC153A4B3A4A10020048FCEB394B3A12
+S315007F0F80301352008DFD153A0A3AE4130800C6FC69
+S315007F0F90153A4B3AEC13060049FC153A4B3A1E1E9E
+S315007F0FA0020010FD153A0A3A4801020011FD113A76
+S315007F0FB00A3AF8F80C0012FD113A0A3A06F90200CD
+S315007F0FC013FDE23B0A3A0004E00145FD153A0A3A71
+S315007F0FD0F000020047FD153A0A3A4C01020048FD2F
+S315007F0FE0163C0A3AF61C020049FD163C0A3AF81CE2
+S315007F0FF002004AFD153A0A3A640102004BFD153A92
+S315007F10000A3A660102004DFD113A0A3A08F90400D0
+S315007F10104FFD153A0A3A0A130200C0FD113A0A3A01
+S315007F10200CF90200C1FD153A0A3AEE000200C2FD34
+S315007F1030273C0A3A00000200C3FD113A0A3A0EF92C
+S315007F10400200C6FD153A0A3A9C1E0A0020FD0E3A9A
+S315007F10500A3AE6F8080021FD0E3A0A3AEEF80A0047
+S315007F106022FD0E3A0A3AC8F80A0023FD0E3A0A3ADA
+S315007F1070DCF80A0040FD153A0A3AA601020041FD56
+S315007F1080153A0A3AA61E220042FD153A463AF20062
+S315007F1090060043FD603C0A3A0000060051FD873C8E
+S315007F10A00A3A0000060044FD3B3C0A3AA4010200CE
+S315007F10B046FD153A4B3A88010C004CFD153A0A3A23
+S315007F10C0C81E020088FD683B0A3A0000000089FDC1
+S315007F10D0703B0A3A00000000FEFF113A0A3A34F9E3
+S315007F10E00200FFFF113A0A3A36F90E0000F1760048
+S315007F10F0983B01F1C6071D3B000000000000000081
+S315007F1100000000000000000000000000000000005A
+S315007F1110000000000000000000000000000000004A
+S315007F1120000000000000000000000000000000003A
+S315007F1130000000000000000000000000000000002A
+S315007F1140000000000000000000000000000000001A
+S315007F1150000000000000000000000000000000000A
+S315007F116000005D2921282628E32838299928FD278C
+S315007F1170A128A9286B28EA274F294F2907317531DE
+S315007F11800000C030000075317C327D327D327D3289
+S315007F11908F32A6320C332433D4306B3100001E31AC
+S315007F11A0000002000400060008000A000C000E0082
+S315007F11B0100012001400160018001A001C001E00F2
+S315007F11C0200022002400260028002A002C002E0062
+S315007F11D0300032003400360038003A003C003E00D2
+S315007F11E0400042004400460048004A004C004E0042
+S315007F11F0500052005400560058005A005C005E00B2
+S315007F1200600062006400660068006A006C006E0021
+S315007F1210700072007400760078007A007C007E0091
+S315007F12209B160002480448068008030A040C040E35
+S315007F12300010A012B8141B160018001A001C5C1EA2
+S315007F124081202022C42407260A28162A002C002E55
+S315007F12502D302032983418367A380A3A243CC83EE4
+S315007F12600040004200440C4626485B4A7F4C294E8C
+S315007F12700F502052205410561058105A105C1E5E84
+S315007F12801A609862002C0C2E012C102E022C142E24
+S315007F1290032C182E042C1C2E052C202E062C242ED7
+S315007F12A0072C282E082C2E2E092C342E0A2C382E6D
+S315007F12B00B2C3C2E0C2C3F2E0D2C432E0E2C462E0B
+S315007F12C00F2C482E102C4B2E112C502E122C552EB7
+S315007F12D0132C5A2E142C632E152C6D2E162C762E2F
+S315007F12E0172C7F2E182C7F2E192C7F2E1A2C7F2EB3
+S315007F12F01B2C7F2E1C2C7F2E1D2C7F2E1E2C7F2E93
+S315007F13001F2C7F2EFF3F0B3C5638DC349831882EBE
+S315007F1310A92BF6286F260F24D521BF1FC91DF21BC7
+S315007F1320381A9A181517A81552141013E311C810F6
+S315007F1330BF0FC60EDD0D020D340C730BBE0A140AE9
+S315007F13407509DF085308D0075407E00674060E06B2
+S315007F1350AE0554050005B10467042104E003A30329
+S315007F1360690333030103D102A5027B0254022F02D4
+S315007F13700C02EC01CE01B10196017D01660150019F
+S315007F13803B01270115010401F400E500D700CA00DF
+S315007F1390BD00B100A6009C0093008A008100790001
+S315007F13A072006B0064005E00580053004D004900D8
+S315007F13B0440040003C003800350032002F002C00EE
+S315007F13C0290026002400220020001E001C001A008F
+S315007F13D019001700160014001300120011001000E8
+S315007F13E00F000E000D000C000B000B000A00090019
+S315007F13F0090008000800070007000600060006002F
+S315007F14000500050000000050060000700B0000007C
+S315007F1410C3050020000000500B000000E50700A078
+S315007F1420E60700E00008002001080060020800A02F
+S315007F1430030800E00508002006080060070800A0F2
+S315007F1440200800E02208002023080060240800A06E
+S315007F1450270800A000000030FA00FB00FB00FA001E
+S315007F1460FB00FA00F900FA00F900F800F600F30035
+S315007F1470F200EB0000000000FA00FA00FA00FA0022
+S315007F1480FA00FA00FA00FA00FA00FA00FA00000001
+S315007F1490E200CA009A0000F0000000001200FF1F61
+S315007F14A000000000000000000000000000000000B7
+S315007F14B000000000000000004000400006008000A1
+S315007F14C00600000000000000000000000000000091
+S315007F14D00000000000000000000000000000000087
+S315007F14E00000000000000000000000000000000077
+S315007F14F00000000000000000000000000000000067
+S315007F15000000000000000000000000000000000056
+S315007F15100000000000000000000000000000000046
+S315007F15200000000000000000000000000000000036
+S315007F15300000000000000000000000000000000026
+S315007F15400000000000000000000000000000000016
+S315007F15500000000000000000000000000000000006
+S315007F156000000000000000000000000000000000F6
+S315007F157000000000000000000000000000000000E6
+S315007F158000000000000000000000000000000000D6
+S315007F159000000000000000000000000000000000C6
+S315007F15A00000000014000200541A04006D1A0600A1
+S315007F15B0491B0800601B0A00911B0C00271C1200A8
+S315007F15C074261A006C33000919180209CA380409EF
+S315007F15D0173906095E391409E836160904374209B0
+S315007F15E0CD3922099F3960096E39620988397009B8
+S315007F15F07F774409193F0700040003000000496E06
+S315007F160074657273696C2020202020202020202082
+S315007F1610202020202020202020202020202008007D
+S315007F16206E6F6E2D7370656369666965642053534B
+S315007F163049442021212020202020202020202020D6
+S315007F164000090100E80364000000505249534D2011
+S315007F165049490020202020202020202020202020D3
+S315007F1660202020202020202020200000FA000002B9
+S315007F167001000000E8FD0100FF1F200000000000C0
+S315007F168000000000000000000300000001000100D0
+S315007F1690000003000000496E74657273696C202038
+S315007F16A020202020202020202020202020202020B5
+S315007F16B020202020202008006E6F6E2D73706563BA
+S315007F16C0696669656420535349442021212020207F
+S315007F16D0202020202020202000090100E80364002C
+S315007F16E00000507269736D20204900202020202041
+S315007F16F02020202020202020202020202020202065
+S315007F170020200000FA00000201000000E8FD010031
+S315007F1710FF3F200000000000000000006400000082
+S315007F17200000000080FC00000000000000000000B8
+S315007F17300000000000000000000000000000000024
+S315007F17400000000000000000000000000000000014
+S315007F17500000000000000000000000000000000004
+S315007F176000000000000000000000000000000000F4
+S315007F177000000000000000000000000000000000E4
+S315007F178000000000000000000300000007000000CA
+S315007F17900100040082840B1600000000040002048E
+S315007F17A00B160000000000002043757272656E7490
+S315007F17B02053657276696365205365742049646535
+S311007F17C06E746966696572200000020085
+S311FF000000FFFFFFFF36F97E000E00000038
+S311FF0000000202000020127F0064000000D6
+S311FF0000000302000084127F008000000055
+S311FF0000000402000004147F005000000002
+S311FF0000000504000054147F0004000000FB
+S311FF0000000003000058147F001C000000E5
+S311FF0000000103000074147F0022000000C2
+S311FF000000010100007C167F0006000000D6
+S311FF00000003010000F8F87E000C00000071
+S311FF0000000401000030FA7E000200000040
+S311FF0000000501000088167F0002000000CA
+S311FF0000000501000066FA7E000200000009
+S311FF0000000501000088177F0002000000C9
+S311FF0000000701000006F97E000200000068
+S311FF00000006000000D2F87E000A00000097
+S311FF000000060400001C177F000200000031
+S311FF000000020300009C147F0002000000B9
+S311FF000000030300009E147F0002000000B6
+S311FF0000001204000086FA7E0006000000D5
+S311FF0000001404000010F97E00240000002C
+S311FF10000000307E00CCE70000010000007D
+S311FF200000050001001F000300010008009E
+S313FF2000000600020000000400030001000F00AE
+S313FF2000000600020001000100010001000100C0
+S313FF2000000600020001000200020001000100BE
+S313FF2000000600020001000300010004000400B8
+S30BFF200000020003000000D0
+S311FF200000050004000A800000010000003B
+S311FF200000050004000F8000000100000036
+S311FF20000005000400108000000100000035
+S311FF20000005000400118000000100000034
+S311FF200000050004001E8000000100000027
+S311FF200000050004001F8000000100000026
+S311FF20000005000400208000000100000025
+S311FF20000005000400258000000100000020
+S311FF2000000500040026800000010000001F
+S311FF2000000500040027800000010000001E
+S705003F1801A2
-- 
1.6.0.4



^ permalink raw reply related

* Re: [PATCH] Add prism 2/3 usb adaptor firmware for use with staging/wlan-ng driver.
From: Luis R. Rodriguez @ 2009-06-30 19:17 UTC (permalink / raw)
  To: Karl Relton; +Cc: dwmw2, linux-wireless
In-Reply-To: <1246388712.4949.52.camel@localhost>

On Tue, Jun 30, 2009 at 12:05 PM, Karl
Relton<karllinuxtest.relton@ntlworld.com> wrote:
> Signed-Off-By: Karl Relton
> Signed-Off-By: Mark S. Mathews

The commit log is empty. Where is this driver? Is it in staging at
least? If so does this get users of the driver a usable firmware? What
is the future of the driver BTW?

  Luis

^ permalink raw reply

* Re: need help figuring out what makes my wireless"iwconfig" not respond
From: Justin P. Mattock @ 2009-06-30 18:38 UTC (permalink / raw)
  To: Larry Finger; +Cc: linux-wireless, linux-kernel
In-Reply-To: <4A49980E.2010405@lwfinger.net>

Larry Finger wrote:
> Justin P. Mattock wrote:
>    
>> from 2.6.31-rc1 to present there was a couple of commits for
>> wireless. prior to that the wireless on my machine(imac)
>> was o.k.,
>> Now the wireless does work(streams music,t.v. etc..)
>> but when I look at iwconfig there's nothing no info.
>> (I use wicd as my connection manager, and in the bottom corner
>> of the screen the transmit power is down to almost nothing,
>> causing wicd to constantly reconnect)
>>
>> out of a random guess what commit might have caused this, so I can at least
>> fix this over here(that is until the manufacturer comes out with a new
>> version). I can go in and individually revert all of the wireless, but
>> before that
>> I want a quick lead.
>>
>> any ideas?
>>
>>      
>
> If you have a git tree, use the "git bisect" commands to find the bad
> commit.
>
>    
Well, I did the git bisect start routine,
but realized, this takes longer than expected,
so being easier for myself going the the web interface with firefox
seems better.
But after looking through all of the changes through
mac80211, and reverting most of them, and having my machine
scarcely not boot, as well as osx, I decided (f^*k this s^*t)
I'll just leave my machine(imac) with the kernel that runs nicely.

But positive side with all of the changes to mac80211, my macbook
is running all of that just fine(seems to be running a little hotter,
but that just might be the outside temp doing this).

Thanks for the reply,
(I'll just be patient until the later).

Justin P. Mattock

^ permalink raw reply

* Re: ath5k and Atheros AR242x - No scan results
From: Luis R. Rodriguez @ 2009-06-30 18:34 UTC (permalink / raw)
  To: Joel Roth; +Cc: linux-wireless
In-Reply-To: <20090630182534.GA5758@sprite>

On Tue, Jun 30, 2009 at 11:25 AM, Joel Roth<joelz@pobox.com> wrote:
> On Tue, Jun 30, 2009 at 10:52:09AM -0700, Luis R. Rodriguez wrote:
>> On Tue, Jun 30, 2009 at 10:09 AM, Joel Roth<joelz@pobox.com> wrote:
>>
>> sudo ip link set dev wlan0 up
>
> Hi Luis,
>
> I've tried this, with no obvious change.
>
> I've not used the 'ip' command before in my networking
> explorations, always relying on ifconfig to bring up
> devices.
>
> Ifconfig reports that wlan0 is UP. Is there any other
> kind of UP that I need to understand?
>
> Another question: From the point of view of setting up
> wireless, if the wlan0 device is UP, should
> 'iwlist scan' return a list of access points?
>
> Or are there any other conditions to be met?

http://wireless.kernel.org/en/users/Documentation/Reporting_bugs#Identifying_the_bug

   Luis

^ permalink raw reply

* Re: ath5k and Atheros AR242x - No scan results
From: Joel Roth @ 2009-06-30 18:25 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless
In-Reply-To: <43e72e890906301052l5a0b8984od8437fefa38e0dff@mail.gmail.com>

On Tue, Jun 30, 2009 at 10:52:09AM -0700, Luis R. Rodriguez wrote:
> On Tue, Jun 30, 2009 at 10:09 AM, Joel Roth<joelz@pobox.com> wrote:
> 
> sudo ip link set dev wlan0 up

Hi Luis,

I've tried this, with no obvious change.

I've not used the 'ip' command before in my networking
explorations, always relying on ifconfig to bring up
devices.

Ifconfig reports that wlan0 is UP. Is there any other
kind of UP that I need to understand?

Another question: From the point of view of setting up
wireless, if the wlan0 device is UP, should
'iwlist scan' return a list of access points? 

Or are there any other conditions to be met?

Thanks.

> 
> > $ iwlist wlan0 scan
> >
> > wlan0     No scan results
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Joel Roth

^ permalink raw reply

* Re: ath5k and Atheros AR242x - No scan results
From: Luis R. Rodriguez @ 2009-06-30 17:52 UTC (permalink / raw)
  To: Joel Roth; +Cc: linux-wireless
In-Reply-To: <20090630170916.GB5137@sprite>

On Tue, Jun 30, 2009 at 10:09 AM, Joel Roth<joelz@pobox.com> wrote:

sudo ip link set dev wlan0 up


> $ iwlist wlan0 scan
>
> wlan0     No scan results

^ permalink raw reply

* Re: [2.6.31-rc1] iwlagn (4965): regression when hardware rf switch is used
From: reinette chatre @ 2009-06-30 17:44 UTC (permalink / raw)
  To: Frans Pop
  Cc: linux-wireless@vger.kernel.org, Netdev,
	linux-kernel@vger.kernel.org
In-Reply-To: <200906291128.05639.elendil@planet.nl>

Hi Frans,

On Mon, 2009-06-29 at 02:28 -0700, Frans Pop wrote:

> But with 2.6.31 I get this:
> [disable]
> wlan0: deauthenticating by local choice (reason=3)
> iwlagn 0000:10:00.0: Error sending REPLY_ADD_STA: enqueue_hcmd failed: -5
> mac80211-phy0: failed to remove key (0, 00:14:c1:38:e5:15) from hardware (-5)
> iwlagn 0000:10:00.0: Error sending REPLY_ADD_STA: enqueue_hcmd failed: -5
> mac80211-phy0: failed to remove key (1, ff:ff:ff:ff:ff:ff) from hardware (-5)

Here the driver is trying to remove the keys from the device but with
rfkill enabled it is not able to do so.

> usb 3-1: USB disconnect, address 2
> [enable]
> usb 3-1: new full speed USB device using uhci_hcd and address 3
> usb 3-1: configuration #1 chosen from 1 choice
> 
> A lot uglier with those errors. And after that I have to run ifdown/ifup
> before networking is up again (ifup only does not work as it will complain
> "interface already configured"):

yes, as Johannes mentioned this is a new required step to get networking
back up after rfkill state changes.


> BTW, would it make sense to bring back the first two lines shown with .30
> (or at least the first one):
>    iwlagn 0000:10:00.0: Radio Frequency Kill Switch is On:
>    Kill switch must be turned off for wireless networking to work.
> IMHO it's good to register the reason for the disconnect.

It would be nice to get this from the upper layers, but the device can
do it also as it is getting the interrupt. 

Could you please try the patch below? It will not send command to device
when rfkill is enabled and it will also print messages indicating that
rfkill state changed.


>From 9935d8bab97448f9ab5418602849172dcb0ba00a Mon Sep 17 00:00:00 2001
From: Reinette Chatre <reinette.chatre@intel.com>
Date: Tue, 30 Jun 2009 10:14:25 -0700
Subject: [PATCH] iwlagn: do not send key clear commands when rfkill enabled

Do all key clearing except sending sommands to device when rfkill
enabled. When rfkill enabled the interface is brought down and will
be brought back up correctly after rfkill is enabled again.

Same change is not needed for iwl3945 as it ignores return code when
sending key clearing command to device.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
 drivers/net/wireless/iwlwifi/iwl-agn.c |    4 ++--
 drivers/net/wireless/iwlwifi/iwl-sta.c |   12 ++++++++++++
 drivers/net/wireless/iwlwifi/iwl-tx.c  |    2 +-
 3 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index ad50022..32aebd7 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -960,7 +960,7 @@ static void iwl_irq_tasklet_legacy(struct iwl_priv *priv)
 				CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW))
 			hw_rf_kill = 1;
 
-		IWL_DEBUG_RF_KILL(priv, "RF_KILL bit toggled to %s.\n",
+		IWL_WARN(priv, "RF_KILL bit toggled to %s.\n",
 				hw_rf_kill ? "disable radio" : "enable radio");
 
 		priv->isr_stats.rfkill++;
@@ -1133,7 +1133,7 @@ static void iwl_irq_tasklet(struct iwl_priv *priv)
 				CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW))
 			hw_rf_kill = 1;
 
-		IWL_DEBUG_RF_KILL(priv, "RF_KILL bit toggled to %s.\n",
+		IWL_WARN(priv, "RF_KILL bit toggled to %s.\n",
 				hw_rf_kill ? "disable radio" : "enable radio");
 
 		priv->isr_stats.rfkill++;
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.c b/drivers/net/wireless/iwlwifi/iwl-sta.c
index 2addf73..ffd5c61 100644
--- a/drivers/net/wireless/iwlwifi/iwl-sta.c
+++ b/drivers/net/wireless/iwlwifi/iwl-sta.c
@@ -566,6 +566,8 @@ int iwl_remove_default_wep_key(struct iwl_priv *priv,
 	unsigned long flags;
 
 	spin_lock_irqsave(&priv->sta_lock, flags);
+	IWL_DEBUG_WEP(priv, "Removing default WEP key: idx=%d\n",
+		      keyconf->keyidx);
 
 	if (!test_and_clear_bit(keyconf->keyidx, &priv->ucode_key_table))
 		IWL_ERR(priv, "index %d not used in uCode key table.\n",
@@ -573,6 +575,11 @@ int iwl_remove_default_wep_key(struct iwl_priv *priv,
 
 	priv->default_wep_key--;
 	memset(&priv->wep_keys[keyconf->keyidx], 0, sizeof(priv->wep_keys[0]));
+	if (iwl_is_rfkill(priv)) {
+		IWL_DEBUG_WEP(priv, "Not sending REPLY_WEPKEY command due to RFKILL.\n");
+		spin_unlock_irqrestore(&priv->sta_lock, flags);
+		return 0;
+	}
 	ret = iwl_send_static_wepkey_cmd(priv, 1);
 	IWL_DEBUG_WEP(priv, "Remove default WEP key: idx=%d ret=%d\n",
 		      keyconf->keyidx, ret);
@@ -853,6 +860,11 @@ int iwl_remove_dynamic_key(struct iwl_priv *priv,
 	priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_KEY_MASK;
 	priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK;
 
+	if (iwl_is_rfkill(priv)) {
+		IWL_DEBUG_WEP(priv, "Not sending REPLY_ADD_STA command because RFKILL enabled. \n");
+		spin_unlock_irqrestore(&priv->sta_lock, flags);
+		return 0;
+	}
 	ret =  iwl_send_add_sta(priv, &priv->stations[sta_id].sta, CMD_ASYNC);
 	spin_unlock_irqrestore(&priv->sta_lock, flags);
 	return ret;
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c
index 753fca3..acff7a2 100644
--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
@@ -939,7 +939,7 @@ int iwl_enqueue_hcmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
 	       !(cmd->meta.flags & CMD_SIZE_HUGE));
 
 	if (iwl_is_rfkill(priv)) {
-		IWL_DEBUG_INFO(priv, "Not sending command - RF KILL");
+		IWL_DEBUG_INFO(priv, "Not sending command - RF KILL\n");
 		return -EIO;
 	}
 
-- 
1.5.6.3




^ permalink raw reply related

* ath5k and Atheros AR242x - No scan results
From: Joel Roth @ 2009-06-30 17:09 UTC (permalink / raw)
  To: linux-wireless

Hello all,

I'd appreciate some help troubleshooting my wireless connection.

I have a Toshiba Satellite L305 series laptop running Debian
sid with a recent, stock Debian kernel version 2.6.29-2-486.

$ lspci | grep Atheros

05:00.0 Ethernet controller: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter (rev 01)

I am seeking to connect to a D-Link 614+ wireless router.
For initial testing, the AP is unencrypted, unsecured.

My wife's G3 i-Book with AfterTheMac USB wireless adapter
connected just fine, on the first try.

I believe I have the modules I should have:

$ lsmod | grep 80211
mac80211              139680  1 ath5k
cfg80211               21576  2 ath5k,mac80211

My wireless network interface is present:

$ iwconfig wlan0

wlan0     IEEE 802.11  ESSID:""  
          Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated   
          Tx-Power=0 dBm   
          Retry min limit:7   RTS thr:off   Fragment thr=2352 B   
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

$ ifconfig wlan0

wlan0     Link encap:Ethernet  HWaddr 00:21:63:82:82:40  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


However, I don't find the D-Link 614+:

$ iwlist wlan0 scan

wlan0     No scan results

And of course, dhclient fails to find a server.

Am I missing something? What could I try next?
I'd appreciate any pointers.

Thanks.

-- 
Joel Roth

^ permalink raw reply

* Re: mac80211 and broadcast frames
From: Luis R. Rodriguez @ 2009-06-30 16:20 UTC (permalink / raw)
  To: Valentin Manea; +Cc: linux-wireless
In-Reply-To: <4A49EEC3.3060108@mrs.ro>

On Tue, Jun 30, 2009 at 3:53 AM, Valentin Manea<linux-wireless@mrs.ro> wrote:
> Hi,
>
>   I've been working on a small project that basically sends broadcast UDP
> frames from an Wireless AP to multiple clients. While I can send UDP frames
> just fine from the AP to the client the only a few broadcast frames reach my
> client. What is really puzzling is that on the client machine using tcpdump
> I can see all the broadcast frames arriving, my application sees only a
> small fraction of them.

Keep in mind when you use tcpdump it will modify the RX filters of the
device you use but if you say you see them on tcpdump and at the same
time do not see them on the application that seems fishy and non
driver related.

  Luis

^ permalink raw reply

* Re: iwlagn: possible regressions from 2.6.29 in 2.6.30
From: reinette chatre @ 2009-06-30 16:17 UTC (permalink / raw)
  To: Paul Collins; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <874oty9tlf.fsf@bulky.wgtn.ondioline.org>

Hi Paul,

On Mon, 2009-06-29 at 22:30 -0700, Paul Collins wrote:
> Two things I liked about iwlagn in 2.6.29 no longer happen with 2.6.30:
> 
> 1. reassociation following resume from suspend-to-ram
> 2. transmission of packets > 250 bytes following resume from suspend-to-ram
> 
> I can script around the first problem just by doing "iwconfig wlan0 ap
> auto" on resume, but the second problem requires me to ifdown/ifup wlan0
> before I can usefully use my network again, so fixing the first problem
> doesn't get me very far.

For reliable reassociation you need to use a userspace application like
wpa_supplicant.

> 
> When I say "packets > 250 bytes" I mean 250-byte packets as claimed by
> "ping -s 222 mygateway":
> 
>         PING cornelius.lan (10.2.4.1) 222(250) bytes of data.
> 
> The above will work, but "ping -s 223 cornelius" yields no replies.

Are you saying this works before suspend, but not after resume? What do
you usually do to get this working again?

Could you please try this patch?

---
 drivers/net/wireless/iwlwifi/iwl-tx.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c
index 753fca3..3f3147e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
@@ -873,7 +876,8 @@ int iwl_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
 	iwl_print_hex_dump(priv, IWL_DL_TX, (u8 *)tx_cmd->hdr, hdr_len);
 
 	/* Set up entry for this TFD in Tx byte-count array */
-	priv->cfg->ops->lib->txq_update_byte_cnt_tbl(priv, txq,
+	if (info->flags & IEEE80211_TX_CTL_AMPDU)
+		priv->cfg->ops->lib->txq_update_byte_cnt_tbl(priv, txq,
 						     le16_to_cpu(tx_cmd->len));
 
 	pci_dma_sync_single_for_device(priv->pci_dev, txcmd_phys,
-- 
1.5.6.3




^ permalink raw reply related

* Re: [PATCH CRDA] Introduce separate HOST and TARGET compilation steps.
From: Luis R. Rodriguez @ 2009-06-30 16:12 UTC (permalink / raw)
  To: Jon Loeliger
  Cc: Johannes Berg, John W. Linville, linux-wireless@vger.kernel.org
In-Reply-To: <1246373403.13176.3.camel@jdl-desktop>

On Tue, Jun 30, 2009 at 7:50 AM, Jon Loeliger<jdl@bigfootnetworks.com> wrote:
> On Tue, 2009-06-30 at 08:59 +0200, Johannes Berg wrote:
>> On Mon, 2009-06-29 at 16:29 -0500, Jon Loeliger wrote:
>> > The regdbdump tool is really a host executable that is used
>> > during the build process.  It could also be installed and
>> > used on the target, but two separate compilations are needed
>> > to achieve that goal.
>> >
>> > Currently, regdbdump is only built for the target, and thus
>> > cross-compilation of the tool is really feasible without
>> > this patch (or one like it).
>>
>> I don't think John is the correct addressee, Luis maintains this still,
>
> Oh!  Sorry!
>
>> afaik. The only thing I'm not sure about is the separation into host/
>> and target/,
>
> Do you have another suggestion?  Another approach would be to
> leave the "target" stuff in the top-level directory straight up,
> and bury the build of the host "tools" in a sub-directory?

As Pavel suggested can you split your work into separate patches? You
seem to do more than one thing and this patch is pretty large as is.

  Luis

^ permalink raw reply

* Re: mac80211 and broadcast frames
From: Valentin Manea @ 2009-06-30 15:48 UTC (permalink / raw)
  To: linux-wireless
In-Reply-To: <4A49EEC3.3060108@mrs.ro>

Hello Again,

    I have been studying the network statistics for this problem and 
they don't really make sense to me, if I bombard the wireless device 
with broadcast packets *RX packets* in ifconfig increases very fast but 
*RX bytes* does not. However when I'm doing the same thing over the 
wired device both of them increase very fast.
    This doesn't really make sense to me, I don't understand where those 
packets are going exactly.

Thanks,
Valentin

On 06/30/2009 01:53 PM, Valentin Manea wrote:
> Hi,
>
>    I've been working on a small project that basically sends broadcast 
> UDP frames from an Wireless AP to multiple clients. While I can send 
> UDP frames just fine from the AP to the client the only a few 
> broadcast frames reach my client. What is really puzzling is that on 
> the client machine using tcpdump I can see all the broadcast frames 
> arriving, my application sees only a small fraction of them.
>
> * I have suspected some bug in the application, but the same app using 
> the same computers works fine when using wired ethernet.
> * I have used both 2.6.30 and the latest wireless-testing kernels, the 
> results are the same
> * I have used the latest hostapd in AP mode
> * I did the same tests in ad-hoc mode, the results are the same
> * I used both atheros and intel wireless cards, the problem is not 
> related to the wireless drivers.
>
> Any ideea what I'm doing wrong?
>
>
> Thanks,
> Valentin
>
> -- 
> To unsubscribe from this list: send the line "unsubscribe 
> linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* [PATCH RFC] iwmc3200wifi: connect API port
From: Samuel Ortiz @ 2009-06-30 15:45 UTC (permalink / raw)
  To: Johannes Berg, Zhu, Yi; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <20090630115301.625487032@sipsolutions.net>

This is the iwmc3200wifi port to the new connect API.
With this new API, we basically get rid of the wext entirely, and we'll be
able to rip wext.c whenever cfg80211 exports its wext handler array.

Signed-off-by: Samuel Ortiz <samuel.ortiz@intel.com>
---
 drivers/net/wireless/iwmc3200wifi/cfg80211.c |  197 ++++++++++++++
 drivers/net/wireless/iwmc3200wifi/rx.c       |   15 -
 drivers/net/wireless/iwmc3200wifi/wext.c     |  366 ---------------------------
 3 files changed, 219 insertions(+), 359 deletions(-)

Index: iwm-2.6/drivers/net/wireless/iwmc3200wifi/cfg80211.c
===================================================================
--- iwm-2.6.orig/drivers/net/wireless/iwmc3200wifi/cfg80211.c	2009-06-30 17:18:40.000000000 +0200
+++ iwm-2.6/drivers/net/wireless/iwmc3200wifi/cfg80211.c	2009-06-30 17:40:51.000000000 +0200
@@ -305,6 +305,28 @@ static int iwm_cfg80211_set_default_key(
 	return iwm_reset_profile(iwm);
 }
 
+int iwm_cfg80211_get_station(struct wiphy *wiphy, struct net_device *ndev,
+			     u8 *mac, struct station_info *sinfo)
+{
+	struct iwm_priv *iwm = ndev_to_iwm(ndev);
+
+	if (memcmp(mac, iwm->bssid, ETH_ALEN))
+		return -ENOENT;
+
+	sinfo->filled |= STATION_INFO_TX_BITRATE;
+	sinfo->txrate.flags |= RATE_INFO_FLAGS_MCS;
+	sinfo->txrate.legacy = iwm->rate;
+
+	if (!test_bit(IWM_STATUS_ASSOCIATED, &iwm->status))
+		sinfo->filled &= ~STATION_INFO_SIGNAL;
+	else {
+		sinfo->filled |= STATION_INFO_SIGNAL;
+		sinfo->signal = iwm->wstats.qual.level;
+	}
+
+	return 0;
+}
+
 
 int iwm_cfg80211_inform_bss(struct iwm_priv *iwm)
 {
@@ -500,6 +522,178 @@ static int iwm_cfg80211_leave_ibss(struc
 	return 0;
 }
 
+static int iwm_set_auth_type(struct iwm_priv *iwm,
+			     enum nl80211_auth_type sme_auth_type)
+{
+	u8 *auth_type = &iwm->umac_profile->sec.auth_type;
+
+	switch (sme_auth_type) {
+	case NL80211_AUTHTYPE_AUTOMATIC:
+	case NL80211_AUTHTYPE_OPEN_SYSTEM:
+		IWM_DBG_WEXT(iwm, DBG, "OPEN auth\n");
+		*auth_type = UMAC_AUTH_TYPE_OPEN;
+		break;
+	case NL80211_AUTHTYPE_SHARED_KEY:
+		if (iwm->umac_profile->sec.flags &
+		    (UMAC_SEC_FLG_WPA_ON_MSK | UMAC_SEC_FLG_RSNA_ON_MSK)) {
+			IWM_DBG_WEXT(iwm, DBG, "WPA auth alg\n");
+			*auth_type = UMAC_AUTH_TYPE_RSNA_PSK;
+		} else {
+			IWM_DBG_WEXT(iwm, DBG, "WEP shared key auth alg\n");
+			*auth_type = UMAC_AUTH_TYPE_LEGACY_PSK;
+		}
+
+		break;
+	default:
+		IWM_ERR(iwm, "Unsupported auth alg: 0x%x\n", sme_auth_type);
+		return -ENOTSUPP;
+	}
+
+	return 0;
+}
+
+static int iwm_set_wpa_version(struct iwm_priv *iwm, u32 wpa_version)
+{
+	if (!wpa_version) {
+		iwm->umac_profile->sec.flags = UMAC_SEC_FLG_LEGACY_PROFILE;
+		return 0;
+	}
+
+	if (wpa_version & NL80211_WPA_VERSION_2)
+		iwm->umac_profile->sec.flags = UMAC_SEC_FLG_RSNA_ON_MSK;
+
+	if (wpa_version & NL80211_WPA_VERSION_1)
+		iwm->umac_profile->sec.flags |= UMAC_SEC_FLG_WPA_ON_MSK;
+
+	return 0;
+}
+
+static int iwm_set_cipher(struct iwm_priv *iwm, u32 cipher, bool ucast)
+{
+	u8 *profile_cipher = ucast ? &iwm->umac_profile->sec.ucast_cipher :
+		&iwm->umac_profile->sec.mcast_cipher;
+
+	if (!cipher) {
+		*profile_cipher = UMAC_CIPHER_TYPE_NONE;
+		return 0;
+	}
+
+	switch (cipher) {
+	case IW_AUTH_CIPHER_NONE:
+		*profile_cipher = UMAC_CIPHER_TYPE_NONE;
+		break;
+	case WLAN_CIPHER_SUITE_WEP40:
+		*profile_cipher = UMAC_CIPHER_TYPE_WEP_40;
+		break;
+	case WLAN_CIPHER_SUITE_WEP104:
+		*profile_cipher = UMAC_CIPHER_TYPE_WEP_104;
+		break;
+	case WLAN_CIPHER_SUITE_TKIP:
+		*profile_cipher = UMAC_CIPHER_TYPE_TKIP;
+		break;
+	case WLAN_CIPHER_SUITE_CCMP:
+		*profile_cipher = UMAC_CIPHER_TYPE_CCMP;
+		break;
+	default:
+		IWM_ERR(iwm, "Unsupported cipher: 0x%x\n", cipher);
+		return -ENOTSUPP;
+	}
+
+	return 0;
+}
+
+static int iwm_set_key_mgt(struct iwm_priv *iwm, u32 key_mgt)
+{
+	u8 *auth_type = &iwm->umac_profile->sec.auth_type;
+
+	IWM_DBG_WEXT(iwm, DBG, "key_mgt: 0x%x\n", key_mgt);
+
+	if (key_mgt == WLAN_AKM_SUITE_8021X)
+		*auth_type = UMAC_AUTH_TYPE_8021X;
+	else if (key_mgt == WLAN_AKM_SUITE_PSK) {
+		if (iwm->umac_profile->sec.flags &
+		    (UMAC_SEC_FLG_WPA_ON_MSK | UMAC_SEC_FLG_RSNA_ON_MSK))
+			*auth_type = UMAC_AUTH_TYPE_RSNA_PSK;
+		else
+			*auth_type = UMAC_AUTH_TYPE_LEGACY_PSK;
+	} else {
+		IWM_ERR(iwm, "Invalid key mgt: 0x%x\n", key_mgt);
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+
+static int iwm_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev,
+				 struct cfg80211_connect_params *sme)
+{
+	struct iwm_priv *iwm = wiphy_to_iwm(wiphy);
+	struct ieee80211_channel *chan = sme->channel;
+	int ret;
+
+	if (!test_bit(IWM_STATUS_READY, &iwm->status))
+		return -EIO;
+
+	if (!sme->ssid)
+		return -EINVAL;
+
+	if (chan)
+		iwm->channel =
+			ieee80211_frequency_to_channel(chan->center_freq);
+
+	iwm->umac_profile->ssid.ssid_len = sme->ssid_len;
+	memcpy(iwm->umac_profile->ssid.ssid, sme->ssid, sme->ssid_len);
+	IWM_DBG_WEXT(iwm, DBG, "SSID: >%s<\n", iwm->umac_profile->ssid.ssid);
+
+	if (sme->bssid) {
+		IWM_DBG_WEXT(iwm, DBG, "BSSID: %pM\n", sme->bssid);
+		memcpy(&iwm->umac_profile->bssid[0], sme->bssid, ETH_ALEN);
+		iwm->umac_profile->bss_num = 1;
+	} else {
+		memset(&iwm->umac_profile->bssid[0], 0, ETH_ALEN);
+		iwm->umac_profile->bss_num = 0;
+	}
+
+	ret = iwm_set_auth_type(iwm, sme->auth_type);
+	if (ret < 0)
+		return ret;
+
+	ret = iwm_set_wpa_version(iwm, sme->crypto.wpa_versions);
+	if (ret < 0)
+		return ret;
+
+	if (sme->crypto.n_ciphers_pairwise) {
+		ret = iwm_set_cipher(iwm, sme->crypto.ciphers_pairwise[0],
+				     true);
+		if (ret < 0)
+			return ret;
+	}
+
+	ret = iwm_set_cipher(iwm, sme->crypto.cipher_group, false);
+	if (ret < 0)
+		return ret;
+
+	ret = iwm_set_key_mgt(iwm, sme->crypto.akm_suites[0]);
+	if (ret < 0)
+		return ret;
+
+	return iwm_send_mlme_profile(iwm);
+}
+
+static int iwm_cfg80211_disconnect(struct wiphy *wiphy, struct net_device *dev,
+				   u16 reason_code)
+{
+	struct iwm_priv *iwm = wiphy_to_iwm(wiphy);
+
+	IWM_DBG_WEXT(iwm, DBG, "Active: %d\n", iwm->umac_profile_active);
+
+	if (iwm->umac_profile_active)
+		return iwm_invalidate_mlme_profile(iwm);
+
+	return 0;
+}
+
 static int iwm_cfg80211_set_txpower(struct wiphy *wiphy,
 				    enum tx_power_setting type, int dbm)
 {
@@ -549,8 +743,11 @@ static struct cfg80211_ops iwm_cfg80211_
 	.get_key = iwm_cfg80211_get_key,
 	.del_key = iwm_cfg80211_del_key,
 	.set_default_key = iwm_cfg80211_set_default_key,
+	.get_station = iwm_cfg80211_get_station,
 	.scan = iwm_cfg80211_scan,
 	.set_wiphy_params = iwm_cfg80211_set_wiphy_params,
+	.connect = iwm_cfg80211_connect,
+	.disconnect = iwm_cfg80211_disconnect,
 	.join_ibss = iwm_cfg80211_join_ibss,
 	.leave_ibss = iwm_cfg80211_leave_ibss,
 	.set_tx_power = iwm_cfg80211_set_txpower,
Index: iwm-2.6/drivers/net/wireless/iwmc3200wifi/wext.c
===================================================================
--- iwm-2.6.orig/drivers/net/wireless/iwmc3200wifi/wext.c	2009-06-30 17:18:41.000000000 +0200
+++ iwm-2.6/drivers/net/wireless/iwmc3200wifi/wext.c	2009-06-30 17:42:05.000000000 +0200
@@ -22,361 +22,17 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/netdevice.h>
-#include <linux/wireless.h>
-#include <linux/if_arp.h>
-#include <linux/etherdevice.h>
 #include <net/cfg80211.h>
 #include <net/iw_handler.h>
 
-#include "iwm.h"
-#include "umac.h"
-#include "commands.h"
-#include "debug.h"
-
-static struct iw_statistics *iwm_get_wireless_stats(struct net_device *dev)
-{
-	struct iwm_priv *iwm = ndev_to_iwm(dev);
-	struct iw_statistics *wstats = &iwm->wstats;
-
-	if (!test_bit(IWM_STATUS_ASSOCIATED, &iwm->status)) {
-		memset(wstats, 0, sizeof(struct iw_statistics));
-		wstats->qual.updated = IW_QUAL_ALL_INVALID;
-	}
-
-	return wstats;
-}
-
-static int iwm_wext_siwfreq(struct net_device *dev,
-			    struct iw_request_info *info,
-			    struct iw_freq *freq, char *extra)
-{
-	struct iwm_priv *iwm = ndev_to_iwm(dev);
-
-	if (freq->flags == IW_FREQ_AUTO)
-		return 0;
-
-	/* frequency/channel can only be set in IBSS mode */
-	if (iwm->conf.mode != UMAC_MODE_IBSS)
-		return -EOPNOTSUPP;
-
-	return cfg80211_ibss_wext_siwfreq(dev, info, freq, extra);
-}
-
-static int iwm_wext_giwfreq(struct net_device *dev,
-			    struct iw_request_info *info,
-			    struct iw_freq *freq, char *extra)
-{
-	struct iwm_priv *iwm = ndev_to_iwm(dev);
-
-	if (iwm->conf.mode == UMAC_MODE_IBSS)
-		return cfg80211_ibss_wext_giwfreq(dev, info, freq, extra);
-
-	freq->e = 0;
-	freq->m = iwm->channel;
-
-	return 0;
-}
-
-static int iwm_wext_siwap(struct net_device *dev, struct iw_request_info *info,
-			  struct sockaddr *ap_addr, char *extra)
-{
-	struct iwm_priv *iwm = ndev_to_iwm(dev);
-	int ret;
-
-	IWM_DBG_WEXT(iwm, DBG, "Set BSSID: %pM\n", ap_addr->sa_data);
-
-	if (iwm->conf.mode == UMAC_MODE_IBSS)
-		return cfg80211_ibss_wext_siwap(dev, info, ap_addr, extra);
-
-	if (!test_bit(IWM_STATUS_READY, &iwm->status))
-		return -EIO;
-
-	if (is_zero_ether_addr(ap_addr->sa_data) ||
-	    is_broadcast_ether_addr(ap_addr->sa_data)) {
-		IWM_DBG_WEXT(iwm, DBG, "clear mandatory bssid %pM\n",
-			     iwm->umac_profile->bssid[0]);
-		memset(&iwm->umac_profile->bssid[0], 0, ETH_ALEN);
-		iwm->umac_profile->bss_num = 0;
-	} else {
-		IWM_DBG_WEXT(iwm, DBG, "add mandatory bssid %pM\n",
-			     ap_addr->sa_data);
-		memcpy(&iwm->umac_profile->bssid[0], ap_addr->sa_data,
-		       ETH_ALEN);
-		iwm->umac_profile->bss_num = 1;
-	}
-
-	if (iwm->umac_profile_active) {
-		int i;
-
-		if (!memcmp(&iwm->umac_profile->bssid[0], iwm->bssid, ETH_ALEN))
-			return 0;
-
-		/*
-		 * If we're clearing the BSSID, and we're associated,
-		 * we have to clear the keys as they're no longer valid.
-		 */
-		if (is_zero_ether_addr(ap_addr->sa_data)) {
-			for (i = 0; i < IWM_NUM_KEYS; i++)
-				iwm->keys[i].key_len = 0;
-		}
-
-		ret = iwm_invalidate_mlme_profile(iwm);
-		if (ret < 0) {
-			IWM_ERR(iwm, "Couldn't invalidate profile\n");
-			return ret;
-		}
-	}
-
-	if (iwm->umac_profile->ssid.ssid_len)
-		return iwm_send_mlme_profile(iwm);
-
-	return 0;
-}
-
-static int iwm_wext_giwap(struct net_device *dev, struct iw_request_info *info,
-			  struct sockaddr *ap_addr, char *extra)
-{
-	struct iwm_priv *iwm = ndev_to_iwm(dev);
-
-	switch (iwm->conf.mode) {
-	case UMAC_MODE_IBSS:
-		return cfg80211_ibss_wext_giwap(dev, info, ap_addr, extra);
-	case UMAC_MODE_BSS:
-		if (test_bit(IWM_STATUS_ASSOCIATED, &iwm->status)) {
-			ap_addr->sa_family = ARPHRD_ETHER;
-			memcpy(&ap_addr->sa_data, iwm->bssid, ETH_ALEN);
-		} else
-			memset(&ap_addr->sa_data, 0, ETH_ALEN);
-		break;
-	default:
-		return -EOPNOTSUPP;
-	}
-
-	return 0;
-}
-
-static int iwm_wext_siwessid(struct net_device *dev,
-			     struct iw_request_info *info,
-			     struct iw_point *data, char *ssid)
-{
-	struct iwm_priv *iwm = ndev_to_iwm(dev);
-	size_t len = data->length;
-	int ret;
-
-	IWM_DBG_WEXT(iwm, DBG, "Set ESSID: >%s<\n", ssid);
-
-	if (iwm->conf.mode == UMAC_MODE_IBSS)
-		return cfg80211_ibss_wext_siwessid(dev, info, data, ssid);
-
-	if (!test_bit(IWM_STATUS_READY, &iwm->status))
-		return -EIO;
-
-	if (len > 0 && ssid[len - 1] == '\0')
-		len--;
-
-	if (iwm->umac_profile_active) {
-		if (iwm->umac_profile->ssid.ssid_len == len &&
-		    !memcmp(iwm->umac_profile->ssid.ssid, ssid, len))
-			return 0;
-
-		ret = iwm_invalidate_mlme_profile(iwm);
-		if (ret < 0) {
-			IWM_ERR(iwm, "Couldn't invalidate profile\n");
-			return ret;
-		}
-	}
-
-	iwm->umac_profile->ssid.ssid_len = len;
-	memcpy(iwm->umac_profile->ssid.ssid, ssid, len);
-
-	return iwm_send_mlme_profile(iwm);
-}
-
-static int iwm_wext_giwessid(struct net_device *dev,
-			     struct iw_request_info *info,
-			     struct iw_point *data, char *ssid)
-{
-	struct iwm_priv *iwm = ndev_to_iwm(dev);
-
-	if (iwm->conf.mode == UMAC_MODE_IBSS)
-		return cfg80211_ibss_wext_giwessid(dev, info, data, ssid);
-
-	if (!test_bit(IWM_STATUS_READY, &iwm->status))
-		return -EIO;
-
-	data->length = iwm->umac_profile->ssid.ssid_len;
-	if (data->length) {
-		memcpy(ssid, iwm->umac_profile->ssid.ssid, data->length);
-		data->flags = 1;
-	} else
-		data->flags = 0;
-
-	return 0;
-}
-
-static int iwm_wext_giwrate(struct net_device *dev,
-			    struct iw_request_info *info,
-			    struct iw_param *rate, char *extra)
-{
-	struct iwm_priv *iwm = ndev_to_iwm(dev);
-
-	rate->value = iwm->rate * 1000000;
-
-	return 0;
-}
-
-static int iwm_set_wpa_version(struct iwm_priv *iwm, u8 wpa_version)
-{
-	if (wpa_version & IW_AUTH_WPA_VERSION_WPA2)
-		iwm->umac_profile->sec.flags = UMAC_SEC_FLG_RSNA_ON_MSK;
-	else if (wpa_version & IW_AUTH_WPA_VERSION_WPA)
-		iwm->umac_profile->sec.flags = UMAC_SEC_FLG_WPA_ON_MSK;
-	else
-		iwm->umac_profile->sec.flags = UMAC_SEC_FLG_LEGACY_PROFILE;
-
-	return 0;
-}
-
-static int iwm_set_key_mgt(struct iwm_priv *iwm, u8 key_mgt)
-{
-	u8 *auth_type = &iwm->umac_profile->sec.auth_type;
-
-	IWM_DBG_WEXT(iwm, DBG, "key_mgt: 0x%x\n", key_mgt);
-
-	if (key_mgt == IW_AUTH_KEY_MGMT_802_1X)
-		*auth_type = UMAC_AUTH_TYPE_8021X;
-	else if (key_mgt == IW_AUTH_KEY_MGMT_PSK) {
-		if (iwm->umac_profile->sec.flags &
-		    (UMAC_SEC_FLG_WPA_ON_MSK | UMAC_SEC_FLG_RSNA_ON_MSK))
-			*auth_type = UMAC_AUTH_TYPE_RSNA_PSK;
-		else
-			*auth_type = UMAC_AUTH_TYPE_LEGACY_PSK;
-	} else {
-		IWM_ERR(iwm, "Invalid key mgt: 0x%x\n", key_mgt);
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
-static int iwm_set_cipher(struct iwm_priv *iwm, u8 cipher, u8 ucast)
-{
-	u8 *profile_cipher = ucast ? &iwm->umac_profile->sec.ucast_cipher :
-		&iwm->umac_profile->sec.mcast_cipher;
-
-	switch (cipher) {
-	case IW_AUTH_CIPHER_NONE:
-		*profile_cipher = UMAC_CIPHER_TYPE_NONE;
-		break;
-	case IW_AUTH_CIPHER_WEP40:
-		*profile_cipher = UMAC_CIPHER_TYPE_WEP_40;
-		break;
-	case IW_AUTH_CIPHER_TKIP:
-		*profile_cipher = UMAC_CIPHER_TYPE_TKIP;
-		break;
-	case IW_AUTH_CIPHER_CCMP:
-		*profile_cipher = UMAC_CIPHER_TYPE_CCMP;
-		break;
-	case IW_AUTH_CIPHER_WEP104:
-		*profile_cipher = UMAC_CIPHER_TYPE_WEP_104;
-		break;
-	default:
-		IWM_ERR(iwm, "Unsupported cipher: 0x%x\n", cipher);
-		return -ENOTSUPP;
-	}
-
-	return 0;
-}
-
-static int iwm_set_auth_alg(struct iwm_priv *iwm, u8 auth_alg)
-{
-	u8 *auth_type = &iwm->umac_profile->sec.auth_type;
-
-	IWM_DBG_WEXT(iwm, DBG, "auth_alg: 0x%x\n", auth_alg);
-
-	switch (auth_alg) {
-	case IW_AUTH_ALG_OPEN_SYSTEM:
-		*auth_type = UMAC_AUTH_TYPE_OPEN;
-		break;
-	case IW_AUTH_ALG_SHARED_KEY:
-		if (iwm->umac_profile->sec.flags &
-		    (UMAC_SEC_FLG_WPA_ON_MSK | UMAC_SEC_FLG_RSNA_ON_MSK)) {
-			if (*auth_type == UMAC_AUTH_TYPE_8021X)
-				return -EINVAL;
-			*auth_type = UMAC_AUTH_TYPE_RSNA_PSK;
-		} else {
-			IWM_DBG_WEXT(iwm, DBG, "WEP shared key\n");
-			*auth_type = UMAC_AUTH_TYPE_LEGACY_PSK;
-		}
-		break;
-	case IW_AUTH_ALG_LEAP:
-	default:
-		IWM_ERR(iwm, "Unsupported auth alg: 0x%x\n", auth_alg);
-		return -ENOTSUPP;
-	}
-
-	return 0;
-}
-
-static int iwm_wext_siwauth(struct net_device *dev,
-			    struct iw_request_info *info,
-			    struct iw_param *data, char *extra)
-{
-	struct iwm_priv *iwm = ndev_to_iwm(dev);
-	int ret;
-
-	if ((data->flags) &
-	    (IW_AUTH_WPA_VERSION | IW_AUTH_KEY_MGMT |
-	     IW_AUTH_WPA_ENABLED | IW_AUTH_80211_AUTH_ALG)) {
-		/* We need to invalidate the current profile */
-		if (iwm->umac_profile_active) {
-			ret = iwm_invalidate_mlme_profile(iwm);
-			if (ret < 0) {
-				IWM_ERR(iwm, "Couldn't invalidate profile\n");
-				return ret;
-			}
-		}
-	}
-
-	switch (data->flags & IW_AUTH_INDEX) {
-	case IW_AUTH_WPA_VERSION:
-		return iwm_set_wpa_version(iwm, data->value);
-		break;
-	case IW_AUTH_CIPHER_PAIRWISE:
-		return iwm_set_cipher(iwm, data->value, 1);
-		break;
-	case IW_AUTH_CIPHER_GROUP:
-		return iwm_set_cipher(iwm, data->value, 0);
-		break;
-	case IW_AUTH_KEY_MGMT:
-		return iwm_set_key_mgt(iwm, data->value);
-		break;
-	case IW_AUTH_80211_AUTH_ALG:
-		return iwm_set_auth_alg(iwm, data->value);
-		break;
-	default:
-		return -ENOTSUPP;
-	}
-
-	return 0;
-}
-
-static int iwm_wext_giwauth(struct net_device *dev,
-			    struct iw_request_info *info,
-			    struct iw_param *data, char *extra)
-{
-	return 0;
-}
-
 static const iw_handler iwm_handlers[] =
 {
 	(iw_handler) NULL,				/* SIOCSIWCOMMIT */
 	(iw_handler) cfg80211_wext_giwname,		/* SIOCGIWNAME */
 	(iw_handler) NULL,				/* SIOCSIWNWID */
 	(iw_handler) NULL,				/* SIOCGIWNWID */
-	(iw_handler) iwm_wext_siwfreq,			/* SIOCSIWFREQ */
-	(iw_handler) iwm_wext_giwfreq,			/* SIOCGIWFREQ */
+	(iw_handler) cfg80211_wext_siwfreq,		/* SIOCSIWFREQ */
+	(iw_handler) cfg80211_wext_giwfreq,		/* SIOCGIWFREQ */
 	(iw_handler) cfg80211_wext_siwmode,		/* SIOCSIWMODE */
 	(iw_handler) cfg80211_wext_giwmode,		/* SIOCGIWMODE */
 	(iw_handler) NULL,				/* SIOCSIWSENS */
@@ -391,20 +47,20 @@ static const iw_handler iwm_handlers[] =
 	(iw_handler) NULL,				/* SIOCGIWSPY */
 	(iw_handler) NULL,				/* SIOCSIWTHRSPY */
 	(iw_handler) NULL,				/* SIOCGIWTHRSPY */
-	(iw_handler) iwm_wext_siwap,	                /* SIOCSIWAP */
-	(iw_handler) iwm_wext_giwap,			/* SIOCGIWAP */
+	(iw_handler) cfg80211_wext_siwap,	        /* SIOCSIWAP */
+	(iw_handler) cfg80211_wext_giwap,		/* SIOCGIWAP */
 	(iw_handler) NULL,			        /* SIOCSIWMLME */
 	(iw_handler) NULL,				/* SIOCGIWAPLIST */
 	(iw_handler) cfg80211_wext_siwscan,		/* SIOCSIWSCAN */
 	(iw_handler) cfg80211_wext_giwscan,		/* SIOCGIWSCAN */
-	(iw_handler) iwm_wext_siwessid,			/* SIOCSIWESSID */
-	(iw_handler) iwm_wext_giwessid,			/* SIOCGIWESSID */
+	(iw_handler) cfg80211_wext_siwessid,		/* SIOCSIWESSID */
+	(iw_handler) cfg80211_wext_giwessid,		/* SIOCGIWESSID */
 	(iw_handler) NULL,				/* SIOCSIWNICKN */
 	(iw_handler) NULL,				/* SIOCGIWNICKN */
 	(iw_handler) NULL,				/* -- hole -- */
 	(iw_handler) NULL,				/* -- hole -- */
 	(iw_handler) NULL,				/* SIOCSIWRATE */
-	(iw_handler) iwm_wext_giwrate,			/* SIOCGIWRATE */
+	(iw_handler) cfg80211_wext_giwrate,		/* SIOCGIWRATE */
 	(iw_handler) cfg80211_wext_siwrts,		/* SIOCSIWRTS */
 	(iw_handler) cfg80211_wext_giwrts,		/* SIOCGIWRTS */
 	(iw_handler) cfg80211_wext_siwfrag,	        /* SIOCSIWFRAG */
@@ -419,10 +75,10 @@ static const iw_handler iwm_handlers[] =
 	(iw_handler) cfg80211_wext_giwpower,		/* SIOCGIWPOWER */
 	(iw_handler) NULL,				/* -- hole -- */
 	(iw_handler) NULL,				/* -- hole -- */
-	(iw_handler) NULL,                              /* SIOCSIWGENIE */
+	(iw_handler) cfg80211_wext_siwgenie,            /* SIOCSIWGENIE */
 	(iw_handler) NULL,				/* SIOCGIWGENIE */
-	(iw_handler) iwm_wext_siwauth,			/* SIOCSIWAUTH */
-	(iw_handler) iwm_wext_giwauth,			/* SIOCGIWAUTH */
+	(iw_handler) cfg80211_wext_siwauth,		/* SIOCSIWAUTH */
+	(iw_handler) cfg80211_wext_giwauth,		/* SIOCGIWAUTH */
 	(iw_handler) cfg80211_wext_siwencodeext,	/* SIOCSIWENCODEEXT */
 	(iw_handler) NULL,				/* SIOCGIWENCODEEXT */
 	(iw_handler) NULL,				/* SIOCSIWPMKSA */
@@ -432,6 +88,6 @@ static const iw_handler iwm_handlers[] =
 const struct iw_handler_def iwm_iw_handler_def = {
 	.num_standard	= ARRAY_SIZE(iwm_handlers),
 	.standard	= (iw_handler *) iwm_handlers,
-	.get_wireless_stats = iwm_get_wireless_stats,
+	.get_wireless_stats = cfg80211_wireless_stats,
 };
 
Index: iwm-2.6/drivers/net/wireless/iwmc3200wifi/rx.c
===================================================================
--- iwm-2.6.orig/drivers/net/wireless/iwmc3200wifi/rx.c	2009-06-30 17:18:41.000000000 +0200
+++ iwm-2.6/drivers/net/wireless/iwmc3200wifi/rx.c	2009-06-30 17:40:51.000000000 +0200
@@ -521,7 +521,12 @@ static int iwm_mlme_assoc_complete(struc
 
 		iwm_link_on(iwm);
 
-		memcpy(wrqu.ap_addr.sa_data, complete->bssid, ETH_ALEN);
+		if (iwm_to_wdev(iwm)->sme_state != CFG80211_SME_CONNECTED)
+			cfg80211_connect_result(iwm_to_ndev(iwm),
+						complete->bssid,
+						NULL, 0, NULL, 0,
+						WLAN_STATUS_SUCCESS,
+						GFP_KERNEL);
 		break;
 	case UMAC_ASSOC_COMPLETE_FAILURE:
 		clear_bit(IWM_STATUS_ASSOCIATED, &iwm->status);
@@ -529,6 +534,11 @@ static int iwm_mlme_assoc_complete(struc
 		iwm->channel = 0;
 
 		iwm_link_off(iwm);
+
+		cfg80211_connect_result(iwm_to_ndev(iwm), complete->bssid,
+					NULL, 0, NULL, 0,
+					WLAN_STATUS_UNSPECIFIED_FAILURE,
+					GFP_KERNEL);
 	default:
 		break;
 	}
@@ -538,9 +548,6 @@ static int iwm_mlme_assoc_complete(struc
 		return 0;
 	}
 
-	wrqu.ap_addr.sa_family = ARPHRD_ETHER;
-	wireless_send_event(iwm_to_ndev(iwm), SIOCGIWAP, &wrqu, NULL);
-
 	return 0;
 }
 
-- 
Intel Open Source Technology Centre
http://oss.intel.com/
---------------------------------------------------------------------
Intel Corporation SAS (French simplified joint stock company)
Registered headquarters: "Les Montalets"- 2, rue de Paris, 
92196 Meudon Cedex, France
Registration Number:  302 456 199 R.C.S. NANTERRE
Capital: 4,572,000 Euros

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


^ permalink raw reply

* [PATCH] cfg80211: set conn.state properly in the connect() case
From: Samuel Ortiz @ 2009-06-30 15:35 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <20090630115301.625487032@sipsolutions.net>


We need to set the conn.state to ASSOCIATING for the ->connect() path. By
default, it is set to 0, i.e. SCANNING, which causes sme_scan_done() to
eventually call conn_do_work(), which then would call assoc() and auth()
blindly. That's why we also bug on those hooks not being defined there.

Signed-off-by: Samuel Ortiz <samuel.ortiz@intel.com>
---
 net/wireless/sme.c |    3 +++
 1 file changed, 3 insertions(+)

Index: iwm-2.6/net/wireless/sme.c
===================================================================
--- iwm-2.6.orig/net/wireless/sme.c	2009-06-30 16:39:58.000000000 +0200
+++ iwm-2.6/net/wireless/sme.c	2009-06-30 17:17:14.000000000 +0200
@@ -103,6 +103,7 @@ static int cfg80211_conn_do_work(struct 
 		u.auth_req.ie = NULL;
 		u.auth_req.ie_len = 0;
 		wdev->conn.state = CFG80211_CONN_AUTHENTICATING;
+		BUG_ON(!drv->ops->auth);
 		return drv->ops->auth(wdev->wiphy, wdev->netdev, &u.auth_req);
 	case CFG80211_CONN_ASSOCIATE_NEXT:
 		u.assoc_req.chan = wdev->conn.params.channel;
@@ -115,6 +116,7 @@ static int cfg80211_conn_do_work(struct 
 		memcpy(&u.assoc_req.crypto, &wdev->conn.params.crypto,
 			sizeof(u.assoc_req.crypto));
 		wdev->conn.state = CFG80211_CONN_ASSOCIATING;
+		BUG_ON(!drv->ops->assoc);
 		return drv->ops->assoc(wdev->wiphy, wdev->netdev,
 					&u.assoc_req);
 	default:
@@ -455,6 +457,7 @@ int cfg80211_connect(struct cfg80211_reg
 		return err;
 	} else {
 		wdev->sme_state = CFG80211_SME_CONNECTING;
+		wdev->conn.state = CFG80211_CONN_ASSOCIATING;
 		err = rdev->ops->connect(&rdev->wiphy, dev, connect);
 		if (err) {
 			wdev->sme_state = CFG80211_SME_IDLE;
-- 
Intel Open Source Technology Centre
http://oss.intel.com/
---------------------------------------------------------------------
Intel Corporation SAS (French simplified joint stock company)
Registered headquarters: "Les Montalets"- 2, rue de Paris, 
92196 Meudon Cedex, France
Registration Number:  302 456 199 R.C.S. NANTERRE
Capital: 4,572,000 Euros

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox