summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-01-25 10:48:33 +0000
committertzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-01-25 10:48:33 +0000
commitd717b83056e5076a64c9471dd85573de409582d7 (patch)
treef46ebf64df73d8f513989d29f54e5b22b8bce2a5
parenta11cf4664ea4fd14478f88c9118acd0f87ad7008 (diff)
* Xbus protocol version: 2.4 (Zaptel 1.2.12/1.4.0 had 2.3).
XPS Init scripts renamed accordingly. * Performance improvements for multi-XPD (span) devices. * Astribank BRI driver (in next commit). * Changes under /proc: - XBUS and XPD numbers have two digits. - Every script wildcard should be replaced from XBUS-? to XBUS-[0-9]* - Added /proc/xpp/XBUS-*/XPD-*/blink: echo 1 to start and 0 to stop. * Several countries (South Africa, UAE, anybody else) require a shorter ring delay. Adjust FXO reg 0x17 (23)'s bits 0:2 to 011. * Use tasklets to move most of the interrupt PCM copying out of the interrupt. * Debugfs-based code to dump data to userspace (used to debug BRI D channel). * Pretend every 2.6.9 actually has later RHEL's typedefs. * fpga_load supports /dev/bus/usb . * Fixed physical order sorting in genzaptelconf. git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.2@1966 5390a7c7-147a-4af0-8ec9-7488f05a26cb
-rw-r--r--xpp/Makefile20
-rw-r--r--xpp/README.Astribank95
-rw-r--r--xpp/card_fxo.c76
-rw-r--r--xpp/card_fxs.c253
-rw-r--r--xpp/card_global.c161
-rw-r--r--xpp/firmwares/FPGA_1141.hex651
-rw-r--r--xpp/firmwares/FPGA_1151.hex1222
-rw-r--r--xpp/firmwares/FPGA_FXS.hex1214
-rw-r--r--xpp/firmwares/USB_1140.hex308
-rwxr-xr-xxpp/init_card_3_24 (renamed from xpp/init_card_3_23)0
-rwxr-xr-xxpp/init_card_4_24 (renamed from xpp/init_card_4_23)6
-rwxr-xr-xxpp/init_card_6_24414
-rwxr-xr-xxpp/init_card_7_24414
-rw-r--r--xpp/utils/Makefile31
-rw-r--r--xpp/utils/fpga_load.822
-rw-r--r--xpp/utils/fpga_load.c428
-rwxr-xr-xxpp/utils/genzaptelconf41
-rw-r--r--xpp/utils/xpp_fxloader51
-rw-r--r--xpp/xbus-core.c421
-rw-r--r--xpp/xbus-core.h30
-rw-r--r--xpp/xdefs.h16
-rw-r--r--xpp/xpd.h31
-rw-r--r--xpp/xpp_log.h52
-rw-r--r--xpp/xpp_usb.c138
-rw-r--r--xpp/xpp_zap.c496
-rw-r--r--xpp/xpp_zap.h4
-rw-r--r--xpp/xproto.c102
-rw-r--r--xpp/xproto.h51
-rw-r--r--xpp/zap_debug.c2
-rw-r--r--xpp/zap_debug.h6
30 files changed, 4720 insertions, 2036 deletions
diff --git a/xpp/Makefile b/xpp/Makefile
index e0a9152..deaadcf 100644
--- a/xpp/Makefile
+++ b/xpp/Makefile
@@ -1,15 +1,33 @@
-EXTRA_CFLAGS = -g3 -I$(SUBDIRS) -DDEBUG -DPOLL_DIGITAL_INPUTS -DWITH_ECHO_SUPPRESSION
+EXTRA_CFLAGS = $(XPP_LOCAL_CFLAGS) \
+ -g3 -I$(SUBDIRS) \
+ -DDEBUG \
+ -DPOLL_DIGITAL_INPUTS \
+ -DWITH_ECHO_SUPPRESSION \
+ -DPROTOCOL_DEBUG \
+ -DZAPTEL_EC_TYPEDEF \
+
+# Useful for Astribank-BRI debugging, and maybe more later on.
+# Requires debugfs support in the kernel.
+# -DXPP_DEBUGFS
+
+DRIVER_DIR = $(SUBDIRS)
obj-m += xpp.o xpd_fxs.o xpd_fxo.o
+HAS_BRISTUFF := $(shell cpp $(CPPFLAGS) -dM $(DRIVER_DIR)/zconfig.h | sed -n 's/^.*CONFIG_ZAPATA_BRI_DCHANS/y/p')
+
# Build only supported modules
ifneq (,$(filter y m,$(CONFIG_USB)))
obj-m += xpp_usb.o
endif
+ifneq (,$(HAS_BRISTUFF))
+obj-m += xpd_bri.o
+endif
xpp-y += xbus-core.o xpp_zap.o xproto.o card_global.o
xpd_fxs-y += card_fxs.o
xpd_fxo-y += card_fxo.o
+xpd_bri-y += card_bri.o
ctags:
ctags *.[ch]
diff --git a/xpp/README.Astribank b/xpp/README.Astribank
index 221ef3a..4e83142 100644
--- a/xpp/README.Astribank
+++ b/xpp/README.Astribank
@@ -22,9 +22,10 @@ firmware and initialization files for the Astribank:
make -C xpp/utils
-In order to build the user space utilities, you will need the libusb-dev
-package on Debian (and derivatives like ubuntu) or libusb-devel on RedHat
+In order to build the user space utilities, you will need the libusb-dev
+package on Debian (and derivatives like ubuntu) or libusb-devel on RedHat
(and derivatives like Centox/Trixbox).
+
INSTALLATION:
""""""""""""
@@ -130,11 +131,54 @@ number. So you need to re-check the value of NNN with lsusb. Typically
this will be the old value + 1.
+Firmware Loading with Hotplug:
+"""""""""""""""""""""""""""""
+The Hotplug framework was popular for hotplugging and usually also
+autoloading drivers. If it is used on your system, you'll see
+/etc/hotplug with many files under it. Hotplug will automatically load
+most relevant USB and PCI kernel modules by the relevant USB and PCI
+IDs. Again: if the framework is in place and the proper configuration
+files are in place, the firmware should be loaded automatically.
+
+In order to get hotplug to autoload the firmware into the Astribank,
+the configuration file xpp_fxloader.usermap and the script xpp_fxloader
+should be copied into /etc/hotplug/usb/ . This is done by 'make -C
+xpp/utils install' .
+
+xpp_fxloader.usermap includes a map of USB IDs and the command to run
+when they are encountered. It instructs hotplug to run the script
+xpp_fxloader from that directory. This is done by 'make -C
+xpp/utils install' .
+
+When xpp_fxloader is run without any parameters it assumes that it was
+run by the hotplug scripts. It will then check if the even is an "add"
+event (and not a "remove" event), and if so, install the required
+firmware file. It will be called twice, as after the load of the USB
+firmware the device will reenumerate itself and thus "unplug" and
+"replug" to load the FPGA firmware.
+
+
Firmware Loading with UDEV:
""""""""""""""""""""""""""
-Firmware loading with udev should work but is not installed
-automatically, yet. See the comments in the beginning of the script
-/etc/hotplug/usb/xpp_fxloader .
+The UDEV framework has replaced Hotplug in most recent systems. If you
+have a recent 2.6 system with no Hotplug and files under /etc/udev,
+chances are you ude udev. udev does quite a few nice things.
+Again: if the framework is in place and the proper configuration
+files are in place, the firmware should be loaded automatically.
+
+In order to get hotplug to autoload the firmware into the Astribank,
+the configuration file xpp.rules should be copied into /etc/udev/rules.d
+and the script xpp_fxloader should be copied into /etc/hotplug/usb/ .
+This is done by 'make -C xpp/utils install' .
+
+xpp.rules instructs udevd to run xpp_fxloader with the option udev and
+the USB ID when an Astribank is plugged and needs loading firmware.
+When xpp_fxloader is run with the option udev it assumes that it was
+run by udevd scripts. It will then install the required firmware file.
+It will be called twice, as after the load of the USB firmware the
+device will reenumerate itself and thus "unplug" and "replug" to load
+the FPGA firmware.
+
Loading The Modules:
"""""""""""""""""""
@@ -301,6 +345,47 @@ When loaded, you should get one span, of 8 extensions, 2 output ports and
13 XPP_IN/0-12 FXOKS (In use)
14 XPP_IN/0-13 FXOKS (In use)
+Sample dialplan (extentions.conf) for all the above:
+
+[phones-zap]
+; 401 will dial to channel 1, 420, to zaptel channel 20, etc.
+exten => _4XX,1,Dial(ZAP/${EXTEN:1})
+
+[trunk-9]
+; Dial through the first FXO port availble.
+; This assumes that all FXO ports are in group 0 and all others are not,
+; as in the sample zapata.conf for 8FXS/8FXO below, and as is generated
+; by genzaptelconf by default.
+exten => 9.,Dial(Zap/g0/${EXTEN:1})
+
+[from-internal]
+; The context of FXS ports: analog phones.
+; They are allowed to dial to all other phones
+include => phones-zap
+; They are also allowed to call through the trunk:
+include => trunk-9
+
+[from-pstn]
+; Calls from the PSTN enter here. Redirect calls to an IVR
+; or a default extension in the s context here. In this case we
+; redirect calls to Zaptel channel 1:
+exten => s,1,Dial(Zap/1)
+
+[astribank-inputs]
+exten => s,1,Set(ZAP_CHAN=Cut(${CHANNEL},-,1))
+exten => s,n,Set(ZAP_CHAN=Cut(${ZAP_CHAN},/,2))
+; 11 is the number of the first input port. At least in the sample
+; configuration below.
+exten => s,n,Set(INPUT_NUM=Math(${ZAP_CHAN}-11))
+; The sample below just logs the signal.
+exten => s,n,NoOp(Got signal from input port number ${INPUT_NUM})
+; Alternatively:
+;exten => s,n,System(run something)
+
+; No. We did not forget the context astribank-outputs. Output
+; ports only get calls from the PBX. Thus they don't need a context
+; of their own.
+
/proc Interface
"""""""""""""""
diff --git a/xpp/card_fxo.c b/xpp/card_fxo.c
index 7187d08..5d5bdc5 100644
--- a/xpp/card_fxo.c
+++ b/xpp/card_fxo.c
@@ -29,6 +29,7 @@
#include "xpp_zap.h"
#include "card_fxo.h"
#include "zap_debug.h"
+#include "xbus-core.h"
static const char rcsid[] = "$Id$";
@@ -65,7 +66,6 @@ static /* 0x0F */ DECLARE_CMD(FXO, REGISTER_REQUEST, byte chipsel, bool writing,
/*---------------- FXO Protocol Commands ----------------------------------*/
static /* 0x0F */ DECLARE_CMD(FXO, XPD_STATE, bool on);
-static /* 0x0F */ DECLARE_CMD(FXO, CHAN_CID, lineno_t chan);
static /* 0x0F */ DECLARE_CMD(FXO, RING, lineno_t chan, bool on);
static /* 0x0F */ DECLARE_CMD(FXO, RELAY_OUT, byte which, bool on);
@@ -152,7 +152,7 @@ static void handle_fxo_leds(xpd_t *xpd)
for_each_line(xpd, i) {
if(IS_SET(xpd->digital_outputs, i) || IS_SET(xpd->digital_inputs, i))
continue;
- if(IS_BLINKING(priv,i,color)) {
+ if(xpd->blink_mode || IS_BLINKING(priv,i,color)) {
// led state is toggled
if((timer_count % LED_BLINK_PERIOD) == 0) {
DBG("%s/%s/%d: ledstate=%s\n", xpd->xbus->busname, xpd->xpdname, i,
@@ -421,46 +421,41 @@ static int FXO_card_tick(xbus_t *xbus, xpd_t *xpd)
/* FIXME: based on data from from wctdm.h */
#include <wctdm.h>
-static const int echotune_reg[] = {30,45,46,47,58,49,50,51,52};
-union echotune {
- /* "coeff 0" is acim */
- unsigned char coeff[sizeof(echotune_reg)];
- struct wctdm_echo_coefs wctdm_struct;
-};
+/*
+ * The first register is the ACIM, the other are coefficient registers.
+ * We define the array size explicitly to track possible inconsistencies
+ * if the struct is modified.
+ */
+static const char echotune_regs[sizeof(struct wctdm_echo_coefs)] = {30, 45, 46, 47, 48, 49, 50, 51, 52};
static int FXO_card_ioctl(xpd_t *xpd, int pos, unsigned int cmd, unsigned long arg)
{
- union echotune echoregs;
- int i,ret;
+ int i,ret;
+ unsigned char echotune_data[ARRAY_SIZE(echotune_regs)];
BUG_ON(!xpd);
- DBG("cmd: 0x%X, expecting: 0x%X, pos=%d.\n", cmd, WCTDM_SET_ECHOTUNE, pos);
switch (cmd) {
case WCTDM_SET_ECHOTUNE:
DBG("-- Setting echo registers: \n");
/* first off: check if this span is fxs. If not: -EINVALID */
- if (copy_from_user(&echoregs.wctdm_struct,
- (struct wctdm_echo_coefs __user *)arg, sizeof(echoregs.wctdm_struct)))
+ if (copy_from_user(&echotune_data, (void __user *)arg, sizeof(echotune_data)))
return -EFAULT;
- /* Set the ACIM register */
- /* quick and dirty registers writing: */
- for (i=0; i<sizeof(echotune_reg); i++) {
- char buf[22];
- sprintf(buf, "%d WD %2X %2X",
- pos,echotune_reg[i],echoregs.coeff[i]
- );
- /* FIXME: code duplicated from proc_xpd_register_write */
- ret = handle_register_command(xpd, buf);
- if(ret < 0)
+ for (i = 0; i < ARRAY_SIZE(echotune_regs); i++) {
+ DBG("Reg=0x%02X, data=0x%02X\n", echotune_regs[i], echotune_data[i]);
+ ret = DAA_DIRECT_REQUEST(xpd->xbus, xpd, pos, DAA_WRITE, echotune_regs[i], echotune_data[i]);
+ if (ret < 0) {
+ NOTICE("%s/%s/%d: Couldn't write %0x02X to register %0x02X\n",
+ xpd->xbus->busname, xpd->xpdname, pos, echotune_data[i], echotune_regs[i]);
return ret;
+ }
msleep(1);
}
DBG("-- Set echo registers successfully\n");
-
break;
default:
+ DBG("%s/%s/%d: Unknown command 0x%X.\n", xpd->xbus->busname, xpd->xpdname, pos, cmd);
return -ENOTTY;
}
return 0;
@@ -471,6 +466,7 @@ static int FXO_card_ioctl(xpd_t *xpd, int pos, unsigned int cmd, unsigned long a
/* 0x0F */ HOSTCMD(FXO, REGISTER_REQUEST, byte chipsel, bool writing, bool do_subreg, byte regnum, byte subreg, byte data_low, byte data_high)
{
int ret = 0;
+ xframe_t *xframe;
xpacket_t *pack;
reg_cmd_t *reg_cmd;
@@ -478,7 +474,7 @@ static int FXO_card_ioctl(xpd_t *xpd, int pos, unsigned int cmd, unsigned long a
DBG("NO XBUS\n");
return -EINVAL;
}
- XPACKET_NEW(pack, xbus, GLOBAL, REGISTER_REQUEST, xpd->id);
+ XFRAME_NEW(xframe, pack, xbus, GLOBAL, REGISTER_REQUEST, xpd->id);
#if 0
DBG("%s/%s/%d: %c%c R%02X S%02X %02X %02X\n",
xbus->busname, xpd->xpdname, chipsel,
@@ -487,7 +483,6 @@ static int FXO_card_ioctl(xpd_t *xpd, int pos, unsigned int cmd, unsigned long a
regnum, subreg, data_low, data_high);
#endif
reg_cmd = &RPACKET_FIELD(pack, GLOBAL, REGISTER_REQUEST, reg_cmd);
- pack->datalen = sizeof(*reg_cmd);
reg_cmd->bytes = sizeof(*reg_cmd) - 1; // do not count the 'bytes' field
REG_FIELD(reg_cmd, chipsel) = chipsel;
REG_FIELD(reg_cmd, read_request) = (writing) ? 0 : 1;
@@ -496,7 +491,7 @@ static int FXO_card_ioctl(xpd_t *xpd, int pos, unsigned int cmd, unsigned long a
REG_FIELD(reg_cmd, subreg) = subreg;
REG_FIELD(reg_cmd, data_low) = data_low;
REG_FIELD(reg_cmd, data_high) = data_high;
- ret = packet_send(xbus, pack);
+ ret = xframe_send(xbus, xframe);
return ret;
}
@@ -521,17 +516,6 @@ static /* 0x0F */ HOSTCMD(FXO, XPD_STATE, bool on)
return ret;
}
-static /* 0x0F */ HOSTCMD(FXO, CHAN_CID, lineno_t chan)
-{
- int ret = 0;
-
- BUG_ON(!xbus);
- BUG_ON(!xpd);
- DBG("%s/%s/%d:\n", xbus->busname, xpd->xpdname, chan);
- return ret;
-}
-
-
static /* 0x0F */ HOSTCMD(FXO, RING, lineno_t chan, bool on)
{
BUG_ON(!xbus);
@@ -557,7 +541,7 @@ HANDLER_DEF(FXO, SIG_CHANGED)
if(!xpd) {
NOTICE("%s: received %s for non-existing xpd: %d\n",
- __FUNCTION__, cmd->name, XPD_NUM(pack->content.addr));
+ __FUNCTION__, cmd->name, XPD_NUM(pack->addr));
return -EPROTO;
}
priv = xpd->priv;
@@ -567,9 +551,10 @@ HANDLER_DEF(FXO, SIG_CHANGED)
for_each_line(xpd, i) {
if(IS_SET(sig_toggles, i)) {
if(!IS_SET(priv->battery, i)) {
- DBG("%s/%s/%d: battery is off. ignore false alarm.\n",
+ DBG("%s/%s/%d: SIG_CHANGED while battery is off.\n",
xbus->busname, xpd->xpdname, i);
- continue;
+ // FIXME: allow dialing without battery polling...
+ // continue;
}
mark_ring(xpd, i, IS_SET(sig_status, i), 1);
}
@@ -587,7 +572,7 @@ HANDLER_DEF(FXO, DAA_REPLY)
if(!xpd) {
NOTICE("%s: received %s for non-existing xpd: %d\n",
- __FUNCTION__, cmd->name, XPD_NUM(pack->content.addr));
+ __FUNCTION__, cmd->name, XPD_NUM(pack->addr));
return -EPROTO;
}
spin_lock_irqsave(&xpd->lock, flags);
@@ -658,10 +643,8 @@ xproto_table_t PROTO_TABLE(FXO) = {
.RING = XPROTO_CALLER(FXO, RING),
.RELAY_OUT = XPROTO_CALLER(FXO, RELAY_OUT),
.XPD_STATE = XPROTO_CALLER(FXO, XPD_STATE),
- .CHAN_CID = XPROTO_CALLER(FXO, CHAN_CID),
.SYNC_SOURCE = XPROTO_CALLER(GLOBAL, SYNC_SOURCE),
- .PCM_WRITE = XPROTO_CALLER(GLOBAL, PCM_WRITE),
},
.packet_is_valid = fxo_packet_is_valid,
.packet_dump = fxo_packet_dump,
@@ -672,7 +655,7 @@ static bool fxo_packet_is_valid(xpacket_t *pack)
const xproto_entry_t *xe;
//DBG("\n");
- xe = xproto_card_entry(&PROTO_TABLE(FXO), pack->content.opcode);
+ xe = xproto_card_entry(&PROTO_TABLE(FXO), pack->opcode);
return xe != NULL;
}
@@ -896,7 +879,7 @@ static int proc_xpd_register_read(char *page, char **start, off_t off, int count
int __init card_fxo_startup(void)
{
- INFO("%s\n", THIS_MODULE->name);
+ INFO("%s revision %s\n", THIS_MODULE->name, XPP_VERSION);
xproto_register(&PROTO_TABLE(FXO));
return 0;
}
@@ -909,6 +892,7 @@ void __exit card_fxo_cleanup(void)
MODULE_DESCRIPTION("XPP FXO Card Driver");
MODULE_AUTHOR("Oron Peled <oron@actcom.co.il>");
MODULE_LICENSE("GPL");
+MODULE_VERSION(XPP_VERSION);
MODULE_ALIAS_XPD(XPD_TYPE_FXO);
module_init(card_fxo_startup);
diff --git a/xpp/card_fxs.c b/xpp/card_fxs.c
index 5e5674b..5177f81 100644
--- a/xpp/card_fxs.c
+++ b/xpp/card_fxs.c
@@ -29,6 +29,7 @@
#include "xpp_zap.h"
#include "card_fxo.h"
#include "zap_debug.h"
+#include "xbus-core.h"
static const char rcsid[] = "$Id$";
@@ -64,14 +65,13 @@ static /* 0x0F */ DECLARE_CMD(FXS, REGISTER_REQUEST, byte chipsel, bool writing,
#define SLIC_DIRECT_REQUEST(xbus,xpd,chipsel,writing,reg,dL) \
CALL_PROTO(FXS, REGISTER_REQUEST, (xbus), (xpd), (chipsel), (writing), 0, (reg), 0, (dL), 0)
#define SLIC_INDIRECT_REQUEST(xbus,xpd,chipsel,writing,reg,dL,dH) \
- PROTO(FXS, REGISTER_REQUEST, (xbus), (xpd), (chipsel), (writing), 1, (reg), 0, (dL), (dH))
+ CALL_PROTO(FXS, REGISTER_REQUEST, (xbus), (xpd), (chipsel), (writing), 1, 0x1E, (reg), (dL), (dH))
#define VALID_CHIPSEL(x) (((chipsel) >= 0 && (chipsel) <= 7) || (chipsel) == ALL_CHANS)
/*---------------- FXS Protocol Commands ----------------------------------*/
static /* 0x0F */ DECLARE_CMD(FXS, XPD_STATE, bool on);
-static /* 0x0F */ DECLARE_CMD(FXS, CHAN_CID, lineno_t chan);
static /* 0x0F */ DECLARE_CMD(FXS, RING, lineno_t chan, bool on);
static /* 0x0F */ DECLARE_CMD(FXS, RELAY_OUT, byte which, bool on);
@@ -80,6 +80,7 @@ static void fxs_packet_dump(const char *msg, xpacket_t *pack);
static int proc_fxs_info_read(char *page, char **start, off_t off, int count, int *eof, void *data);
static int proc_xpd_register_read(char *page, char **start, off_t off, int count, int *eof, void *data);
static int proc_xpd_register_write(struct file *file, const char __user *buffer, unsigned long count, void *data);
+static void start_stop_vm_led(xbus_t *xbus, xpd_t *xpd, lineno_t pos);
#define PROC_REGISTER_FNAME "slics"
#define PROC_FXS_INFO_FNAME "fxs_info"
@@ -89,6 +90,8 @@ struct FXS_priv_data {
struct proc_dir_entry *fxs_info;
xpp_line_t ledstate[NUM_LEDS]; /* 0 - OFF, 1 - ON */
xpp_line_t ledcontrol[NUM_LEDS]; /* 0 - OFF, 1 - ON */
+ xpp_line_t found_fsk_pattern;
+ xpp_line_t msg_waiting;
int blinking[NUM_LEDS][CHANNELS_PERXPD];
};
@@ -137,7 +140,7 @@ static const int led_register_vals[] = { BIT(4), BIT(1), BIT(0) };
/*
* pos can be:
* - A line number
- * - ALL_LINES
+ * - ALL_LINES. This is not valid anymore since 8-Jan-2007.
*/
static int do_led(xpd_t *xpd, lineno_t chan, byte which, bool on)
{
@@ -147,6 +150,7 @@ static int do_led(xpd_t *xpd, lineno_t chan, byte which, bool on)
xbus_t *xbus;
BUG_ON(!xpd);
+ BUG_ON(chan == ALL_LINES);
xbus = xpd->xbus;
priv = xpd->priv;
which = which % NUM_LEDS;
@@ -186,7 +190,7 @@ static void handle_fxs_leds(xpd_t *xpd)
for_each_line(xpd, i) {
if(IS_SET(xpd->digital_outputs, i) || IS_SET(xpd->digital_inputs, i))
continue;
- if(IS_BLINKING(priv, i, color)) { // Blinking
+ if(xpd->blink_mode || IS_BLINKING(priv, i, color)) { // Blinking
// led state is toggled
if((timer_count % LED_BLINK_PERIOD) == 0) {
DBG("%s/%s/%d ledstate=%s\n", xpd->xbus->busname, xpd->xpdname, i,
@@ -207,6 +211,21 @@ static void handle_fxs_leds(xpd_t *xpd)
}
}
+static int do_callerid(xbus_t *xbus, xpd_t *xpd, lineno_t chan)
+{
+ int ret = 0;
+ int i;
+
+ BUG_ON(!xbus);
+ BUG_ON(!xpd);
+ DBG("%s/%s/%d:\n", xbus->busname, xpd->xpdname, chan);
+ ret = SLIC_DIRECT_REQUEST(xbus, xpd, chan, SLIC_WRITE, 0x40, FXS_LINE_CID);
+ for_each_line(xpd, i)
+ xpd->lasttxhook[i] = FXS_LINE_CID;
+ return ret;
+}
+
+
/*---------------- FXS: Methods -------------------------------------------*/
static xpd_t *FXS_card_new(xbus_t *xbus, int xpd_num, const xproto_table_t *proto_table, byte revision)
@@ -337,9 +356,11 @@ static int FXS_card_zaptel_preregistration(xpd_t *xpd, bool on)
cur_chan->pvt = xpd;
cur_chan->sigcap = FXS_DEFAULT_SIGCAP;
}
- spin_lock_irqsave(&xpd->lock, flags);
- do_led(xpd, ALL_LINES, color, LED_OFF);
- spin_unlock_irqrestore(&xpd->lock, flags);
+ for_each_line(xpd, i) {
+ spin_lock_irqsave(&xpd->lock, flags);
+ do_led(xpd, i, color, LED_OFF);
+ spin_unlock_irqrestore(&xpd->lock, flags);
+ }
for_each_line(xpd, i) {
MARK_LED(priv, i, color, LED_ON);
msleep(50);
@@ -387,6 +408,8 @@ int FXS_card_hooksig(xbus_t *xbus, xpd_t *xpd, int pos, zt_txsig_t txsig)
return ret;
}
ret = CALL_XMETHOD(RING, xbus, xpd, pos, 0); // RING off
+ if (!IS_SET(xpd->offhook, pos))
+ start_stop_vm_led(xbus, xpd, pos);
#if 0
switch(chan->sig) {
case ZT_SIG_EM:
@@ -403,7 +426,7 @@ int FXS_card_hooksig(xbus_t *xbus, xpd_t *xpd, int pos, zt_txsig_t txsig)
case ZT_TXSIG_OFFHOOK:
if(xpd->ringing[pos]) {
BIT_SET(xpd->cid_on, pos);
- ret = CALL_XMETHOD(CHAN_CID, xpd->xbus, xpd, pos); // CALLER ID
+ ret = do_callerid(xpd->xbus, xpd, pos); // CALLER ID
}
xpd->ringing[pos] = 0;
#if 0
@@ -438,6 +461,107 @@ int FXS_card_hooksig(xbus_t *xbus, xpd_t *xpd, int pos, zt_txsig_t txsig)
return ret;
}
+#ifdef VMWI_IOCTL
+/*
+ * Private ioctl()
+ * We don't need it now, since we detect vmwi via FSK patterns
+ */
+static int FXS_card_ioctl(xpd_t *xpd, int pos, unsigned int cmd, unsigned long arg)
+{
+ struct FXS_priv_data *priv;
+ xbus_t *xbus;
+
+ BUG_ON(!xpd);
+ priv = xpd->priv;
+ BUG_ON(!priv);
+ xbus = xpd->xbus;
+ BUG_ON(!xbus);
+
+ if (pos < 0 || pos >= xpd->channels) {
+ NOTICE("%s/%s: Bad channel number %d in %s(), cmd=%u\n", xbus->busname, xpd->xpdname, pos, __FUNCTION__, cmd);
+ return -EINVAL;
+ }
+
+ switch (cmd) {
+ case _IOW(ZT_CODE, 60, int): /* message-waiting led control */
+ /* Digital inputs/outputs don't have VM leds */
+ if (IS_SET(xpd->digital_inputs | xpd->digital_outputs, pos))
+ return 0;
+ if (arg)
+ BIT_SET(priv->msg_waiting, pos);
+ else
+ BIT_CLR(priv->msg_waiting, pos);
+ return 0;
+ }
+ return -ENOTTY;
+}
+#endif
+
+static int set_vm_led_mode(xbus_t *xbus, xpd_t *xpd, int pos, int on)
+{
+ int ret = 0;
+ BUG_ON(!xbus);
+ BUG_ON(!xpd);
+
+ if (on) {
+ /* A write to register 0x40 will now turn on/off the VM led */
+ ret += SLIC_INDIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x16, 0xE8, 0x03);
+ ret += SLIC_INDIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x15, 0xEF, 0x7B);
+ ret += SLIC_INDIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x14, 0x9F, 0x00);
+ ret += SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x22, 0x19);
+ ret += SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x4A, 0x34);
+ ret += SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x30, 0xE0);
+ ret += SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x31, 0x01);
+ ret += SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x32, 0xF0);
+ ret += SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x33, 0x05);
+ ret += SLIC_INDIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x1D, 0x00, 0x46);
+ } else {
+ /* A write to register 0x40 will now turn on/off the ringer */
+ ret += SLIC_INDIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x16, 0x00, 0x00);
+ ret += SLIC_INDIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x15, 0x60, 0x01);
+ ret += SLIC_INDIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x14, 0xF0, 0x7E);
+ ret += SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x22, 0x00);
+ ret += SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x4A, 0x34);
+ ret += SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x30, 0x00);
+ ret += SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x31, 0x00);
+ ret += SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x32, 0x00);
+ ret += SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x33, 0x00);
+ ret += SLIC_INDIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x1D, 0x00, 0x36);
+ }
+
+ return (ret ? -EPROTO : 0);
+}
+
+static void start_stop_vm_led(xbus_t *xbus, xpd_t *xpd, lineno_t pos)
+{
+ bool on;
+
+ if (IS_SET(xpd->digital_outputs | xpd->digital_inputs, pos))
+ return;
+ on = IS_SET(((struct FXS_priv_data *)xpd->priv)->msg_waiting, pos);
+ DBG("%s/%s/%d %s\n", xbus->busname, xpd->xpdname, pos, (on)?"ON":"OFF");
+ set_vm_led_mode(xbus, xpd, pos, on);
+ do_chan_power(xbus, xpd, pos, on);
+ SLIC_DIRECT_REQUEST(xbus, xpd, pos, SLIC_WRITE, 0x40, (on) ? 0x04 : 0x01);
+}
+
+static int FXS_chan_onhooktransfer(xbus_t *xbus, xpd_t *xpd, lineno_t chan, int millies)
+{
+ int ret = 0;
+
+ BUG_ON(!xpd);
+ BUG_ON(chan == ALL_CHANS);
+ DBG("%s/%s/%d: (%d millies)\n", xbus->busname, xpd->xpdname, chan, millies);
+ xpd->ohttimer[chan] = millies << 3;
+ xpd->idletxhookstate[chan] = FXS_LINE_CID; /* OHT mode when idle */
+ if (xpd->lasttxhook[chan] == FXS_LINE_ENABLED) {
+ /* Apply the change if appropriate */
+ ret = do_callerid(xpd->xbus, xpd, chan); // CALLER ID
+ }
+ start_stop_vm_led(xbus, xpd, chan);
+ return ret;
+}
+
/*
* INPUT polling is done via SLIC register 0x06 (same as LEDS):
* 7 6 5 4 3 2 1 0
@@ -460,6 +584,65 @@ static void poll_inputs(xbus_t *xbus, xpd_t *xpd)
}
}
+#ifndef VMWI_IOCTL
+/*
+ * Detect Voice Mail Waiting Indication
+ */
+static void detect_vmwi(xpd_t *xpd)
+{
+ struct FXS_priv_data *priv;
+ xbus_t *xbus;
+ static const byte FSK_COMMON_PATTERN[] = { 0xA8, 0x49, 0x22, 0x3B, 0x9F, 0xFF, 0x1F, 0xBB };
+ static const byte FSK_ON_PATTERN[] = { 0xA2, 0x2C, 0x1F, 0x2C, 0xBB, 0xA1, 0xA5, 0xFF };
+ static const byte FSK_OFF_PATTERN[] = { 0xA2, 0x2C, 0x28, 0xA5, 0xB1, 0x21, 0x49, 0x9F };
+ int i;
+
+ BUG_ON(!xpd);
+ xbus = xpd->xbus;
+ priv = xpd->priv;
+ BUG_ON(!priv);
+ for_each_line(xpd, i) {
+ byte *writechunk = xpd->span.chans[i].writechunk;
+
+ if(IS_SET(xpd->offhook | xpd->cid_on | xpd->digital_inputs | xpd->digital_outputs, i))
+ continue;
+#if 0
+ if(i == 0 && writechunk[0] != 0x7F) {
+ int j;
+
+ DBG("%s/%s/%d: MSG:", xbus->busname, xpd->xpdname, i);
+ for(j = 0; j < ZT_CHUNKSIZE; j++) {
+ printk(" %02X", writechunk[j]);
+ }
+ printk("\n");
+ }
+#endif
+ if(unlikely(memcmp(writechunk, FSK_COMMON_PATTERN, ZT_CHUNKSIZE) == 0))
+ BIT_SET(priv->found_fsk_pattern, i);
+ else if(unlikely(IS_SET(priv->found_fsk_pattern, i))) {
+ BIT_CLR(priv->found_fsk_pattern, i);
+ if(memcmp(writechunk, FSK_ON_PATTERN, ZT_CHUNKSIZE) == 0) {
+ DBG("%s/%s/%d: MSG WAITING ON\n", xbus->busname, xpd->xpdname, i);
+ BIT_SET(priv->msg_waiting, i);
+ start_stop_vm_led(xbus, xpd, i);
+ } else if(memcmp(writechunk, FSK_OFF_PATTERN, ZT_CHUNKSIZE) == 0) {
+ DBG("%s/%s/%d: MSG WAITING OFF\n", xbus->busname, xpd->xpdname, i);
+ BIT_CLR(priv->msg_waiting, i);
+ start_stop_vm_led(xbus, xpd, i);
+ } else {
+ int j;
+
+ NOTICE("%s/%s/%d: MSG WAITING Unexpected:", xbus->busname, xpd->xpdname, i);
+ for(j = 0; j < ZT_CHUNKSIZE; j++) {
+ printk(" %02X", writechunk[j]);
+ }
+ printk("\n");
+ }
+ }
+ }
+}
+#endif
+
static int FXS_card_tick(xbus_t *xbus, xpd_t *xpd)
{
static int rate_limit = 0;
@@ -476,6 +659,10 @@ static int FXS_card_tick(xbus_t *xbus, xpd_t *xpd)
}
#endif
handle_fxs_leds(xpd);
+#ifndef VMWI_IOCTL
+ if(SPAN_REGISTERED(xpd))
+ detect_vmwi(xpd);
+#endif
return 0;
}
@@ -484,6 +671,7 @@ static int FXS_card_tick(xbus_t *xbus, xpd_t *xpd)
/* 0x0F */ HOSTCMD(FXS, REGISTER_REQUEST, byte chipsel, bool writing, bool do_subreg, byte regnum, byte subreg, byte data_low, byte data_high)
{
int ret = 0;
+ xframe_t *xframe;
xpacket_t *pack;
reg_cmd_t *reg_cmd;
@@ -491,7 +679,7 @@ static int FXS_card_tick(xbus_t *xbus, xpd_t *xpd)
DBG("NO XBUS\n");
return -EINVAL;
}
- XPACKET_NEW(pack, xbus, GLOBAL, REGISTER_REQUEST, xpd->id);
+ XFRAME_NEW(xframe, pack, xbus, GLOBAL, REGISTER_REQUEST, xpd->id);
#if 0
DBG("%s/%s/%d: %c%c R%02X S%02X %02X %02X\n",
xbus->busname, xpd->xpdname, chipsel,
@@ -500,7 +688,6 @@ static int FXS_card_tick(xbus_t *xbus, xpd_t *xpd)
regnum, subreg, data_low, data_high);
#endif
reg_cmd = &RPACKET_FIELD(pack, GLOBAL, REGISTER_REQUEST, reg_cmd);
- pack->datalen = sizeof(*reg_cmd);
reg_cmd->bytes = sizeof(*reg_cmd) - 1; // do not count the 'bytes' field
REG_FIELD(reg_cmd, chipsel) = chipsel;
REG_FIELD(reg_cmd, read_request) = (writing) ? 0 : 1;
@@ -509,7 +696,7 @@ static int FXS_card_tick(xbus_t *xbus, xpd_t *xpd)
REG_FIELD(reg_cmd, subreg) = subreg;
REG_FIELD(reg_cmd, data_low) = data_low;
REG_FIELD(reg_cmd, data_high) = data_high;
- ret = packet_send(xbus, pack);
+ ret = xframe_send(xbus, xframe);
return ret;
}
@@ -538,21 +725,6 @@ static /* 0x0F */ HOSTCMD(FXS, XPD_STATE, bool on)
return ret;
}
-static /* 0x0F */ HOSTCMD(FXS, CHAN_CID, lineno_t chan)
-{
- int ret = 0;
- int i;
-
- BUG_ON(!xbus);
- BUG_ON(!xpd);
- DBG("%s/%s/%d:\n", xbus->busname, xpd->xpdname, chan);
- ret = SLIC_DIRECT_REQUEST(xbus, xpd, chan, SLIC_WRITE, 0x40, FXS_LINE_CID);
- for_each_line(xpd, i)
- xpd->lasttxhook[i] = FXS_LINE_CID;
- return ret;
-}
-
-
static /* 0x0F */ HOSTCMD(FXS, RING, lineno_t chan, bool on)
{
int ret = 0;
@@ -563,6 +735,7 @@ static /* 0x0F */ HOSTCMD(FXS, RING, lineno_t chan, bool on)
BUG_ON(!xpd);
DBG("%s/%s/%d: %s\n", xbus->busname, xpd->xpdname, chan, (on) ? "on" : "off");
priv = xpd->priv;
+ set_vm_led_mode(xbus, xpd, chan, 0);
do_chan_power(xbus, xpd, chan, on); // Power up (for ring)
ret = SLIC_DIRECT_REQUEST(xbus, xpd, chan, SLIC_WRITE, 0x40, value);
xpd->lasttxhook[chan] = value;
@@ -605,10 +778,19 @@ HANDLER_DEF(FXS, SIG_CHANGED)
BUG_ON(xpd->direction != TO_PHONE);
priv = xpd->priv;
DBG("%s/%s: (PHONE) sig_toggles=0x%04X sig_status=0x%04X\n", xbus->busname, xpd->xpdname, sig_toggles, sig_status);
+#if 0
+ /*
+ * Not needed anymore. update_line_status() returns immediately
+ * if !SPAN_REGISTERED(). Now we maintain good status even if
+ * we are not registered.
+ *
+ * FIXME: Need to notify zaptel later (when registering).
+ */
if(!SPAN_REGISTERED(xpd)) {
NOTICE("%s: %s/%s is not registered. Skipping.\n", __FUNCTION__, xbus->busname, xpd->xpdname);
return -ENODEV;
}
+#endif
#if 0
Is this needed?
for_each_line(xpd, i) {
@@ -631,6 +813,7 @@ HANDLER_DEF(FXS, SIG_CHANGED)
DBG("%s/%s/%d: ONHOOK\n", xbus->busname, xpd->xpdname, i);
MARK_LED(priv,i,LED_GREEN,LED_OFF);
update_line_status(xpd, i, 0);
+ start_stop_vm_led(xbus, xpd, i);
}
}
}
@@ -648,7 +831,7 @@ HANDLER_DEF(FXS, REGISTER_REPLY)
if(!xpd) {
NOTICE("%s: received %s for non-existing xpd: %d\n",
- __FUNCTION__, cmd->name, XPD_NUM(pack->content.addr));
+ __FUNCTION__, cmd->name, XPD_NUM(pack->addr));
return -EPROTO;
}
spin_lock_irqsave(&xpd->lock, flags);
@@ -720,14 +903,16 @@ xproto_table_t PROTO_TABLE(FXS) = {
.card_zaptel_postregistration = FXS_card_zaptel_postregistration,
.card_hooksig = FXS_card_hooksig,
.card_tick = FXS_card_tick,
+ .chan_onhooktransfer = FXS_chan_onhooktransfer,
+#ifdef VMWI_IOCTL
+ .card_ioctl = FXS_card_ioctl,
+#endif
.RING = XPROTO_CALLER(FXS, RING),
.RELAY_OUT = XPROTO_CALLER(FXS, RELAY_OUT),
.XPD_STATE = XPROTO_CALLER(FXS, XPD_STATE),
- .CHAN_CID = XPROTO_CALLER(FXS, CHAN_CID),
.SYNC_SOURCE = XPROTO_CALLER(GLOBAL, SYNC_SOURCE),
- .PCM_WRITE = XPROTO_CALLER(GLOBAL, PCM_WRITE),
},
.packet_is_valid = fxs_packet_is_valid,
.packet_dump = fxs_packet_dump,
@@ -738,7 +923,7 @@ static bool fxs_packet_is_valid(xpacket_t *pack)
const xproto_entry_t *xe;
// DBG("\n");
- xe = xproto_card_entry(&PROTO_TABLE(FXS), pack->content.opcode);
+ xe = xproto_card_entry(&PROTO_TABLE(FXS), pack->opcode);
return xe != NULL;
}
@@ -988,13 +1173,18 @@ static int proc_xpd_register_read(char *page, char **start, off_t off, int count
int __init card_fxs_startup(void)
{
- INFO("%s\n", THIS_MODULE->name);
+ INFO("%s revision %s\n", THIS_MODULE->name, XPP_VERSION);
#ifdef POLL_DIGITAL_INPUTS
INFO("FEATURE: %s with DIGITAL INPUTS support (%s activated)\n",
THIS_MODULE->name, (poll_digital_inputs) ? "is" : "is not");
#else
INFO("FEATURE: %s without DIGITAL INPUTS support\n", THIS_MODULE->name);
#endif
+#ifdef VMWI_IOCTL
+ INFO("FEATURE: %s VMWI_IOCTL\n", THIS_MODULE->name);
+#else
+ INFO("FEATURE: %s NO VMWI_IOCTL\n", THIS_MODULE->name);
+#endif
xproto_register(&PROTO_TABLE(FXS));
return 0;
}
@@ -1007,6 +1197,7 @@ void __exit card_fxs_cleanup(void)
MODULE_DESCRIPTION("XPP FXS Card Driver");
MODULE_AUTHOR("Oron Peled <oron@actcom.co.il>");
MODULE_LICENSE("GPL");
+MODULE_VERSION(XPP_VERSION);
MODULE_ALIAS_XPD(XPD_TYPE_FXS);
module_init(card_fxs_startup);
diff --git a/xpp/card_global.c b/xpp/card_global.c
index 22456bc..17e94ef 100644
--- a/xpp/card_global.c
+++ b/xpp/card_global.c
@@ -25,6 +25,7 @@
#include "xpp_zap.h"
#include "xproto.h"
#include "zap_debug.h"
+#include "xbus-core.h"
#include <linux/module.h>
static const char rcsid[] = "$Id$";
@@ -44,64 +45,23 @@ static void global_packet_dump(const char *msg, xpacket_t *pack);
/* 0x04 */ HOSTCMD(GLOBAL, DESC_REQ, int xpd_num)
{
int ret = 0;
+ xframe_t *xframe;
xpacket_t *pack;
if(!xbus) {
DBG("NO XBUS\n");
return -EINVAL;
}
- XPACKET_NEW(pack, xbus, GLOBAL, DESC_REQ, xpd_num);
+ XFRAME_NEW(xframe, pack, xbus, GLOBAL, DESC_REQ, xpd_num);
DBG("on %s #%d\n", xbus->busname, xpd_num);
- ret = packet_send(xbus, pack);
+ ret = xframe_send(xbus, xframe);
XBUS_COUNTER(xbus, DESC_REQ)++;
return ret;
}
-/* 0x11 */ HOSTCMD(GLOBAL, PCM_WRITE, xpp_line_t lines, volatile byte *buf)
-{
- int ret = 0;
- xpacket_t *pack;
- byte *pcm;
- byte *start_pcm;
- int i;
-
- BUG_ON(!xbus);
- BUG_ON(!xpd);
- lines &= ~xpd->no_pcm;
- /*
- * FIXME: Workaround a bug in sync code of the Astribank.
- * Send dummy PCM for sync.
- */
- if(lines == 0)
- lines = BIT(0);
-
- XPACKET_NEW(pack, xbus, GLOBAL, PCM_WRITE, xpd->id);
- RPACKET_FIELD(pack, GLOBAL, PCM_WRITE, lines) = lines;
- start_pcm = pcm = RPACKET_FIELD(pack, GLOBAL, PCM_WRITE, pcm);
- for_each_line(xpd, i) {
- if(IS_SET(lines, i)) {
- memcpy(pcm, (byte *)buf, ZT_CHUNKSIZE);
- pcm += ZT_CHUNKSIZE;
- }
- buf += ZT_CHUNKSIZE;
- }
- /*
- * BRI: Software workaround for firmware limitation.
- * The BRI firmware count PCM channel number globally across subunits.
- */
- if(xpd->type == XPD_TYPE_BRI_NT || xpd->type == XPD_TYPE_BRI_TE) {
- lines = lines << (xpd->addr.subunit * 4);
- RPACKET_FIELD(pack, GLOBAL, PCM_WRITE, lines) = lines;
- }
- pack->datalen = sizeof(xpp_line_t) + (pcm - start_pcm);
- packet_send(xbus, pack);
- XPD_COUNTER(xpd, PCM_WRITE)++;
- XBUS_COUNTER(xbus, PCM_WRITE)++;
- return ret;
-}
-
/* 0x19 */ HOSTCMD(GLOBAL, SYNC_SOURCE, bool setit, bool is_master)
{
+ xframe_t *xframe;
xpacket_t *pack;
byte mask = 0;
@@ -113,9 +73,9 @@ static void global_packet_dump(const char *msg, xpacket_t *pack);
mask |= BIT(1);
DBG("SYNC_SOURCE %s setit=%s is_master=%s (mask=0x%X)\n",
xpd->xpdname, (setit)?"yes":"no", (is_master)?"yes":"no", mask);
- XPACKET_NEW(pack, xbus, GLOBAL, SYNC_SOURCE, xpd->id);
+ XFRAME_NEW(xframe, pack, xbus, GLOBAL, SYNC_SOURCE, xpd->id);
RPACKET_FIELD(pack, GLOBAL, SYNC_SOURCE, mask) = mask;
- packet_send(xbus, pack);
+ xframe_send(xbus, xframe);
return 0;
}
@@ -177,11 +137,13 @@ HANDLER_DEF(GLOBAL, PCM_READ)
unsigned long flags;
int i;
xpp_line_t old_lines = lines;
+ bool is_bri;
+ int subunit;
BUG_ON(!xbus);
if(!xpd) {
#if 0
- int xpd_num = XPD_NUM(pack->content.addr);
+ int xpd_num = XPD_NUM(pack->addr);
NOTICE("%s: received %s for non-existing xpd: %d\n",
__FUNCTION__, cmd->name, xpd_num);
#endif
@@ -189,44 +151,59 @@ HANDLER_DEF(GLOBAL, PCM_READ)
}
// DBG("lines=0x%04X\n", lines);
- /*
- * BRI: Software workaround for firmware limitation.
- * The BRI firmware count PCM channel number globally across subunits.
- */
- if(xpd->type == XPD_TYPE_BRI_NT || xpd->type == XPD_TYPE_BRI_TE) {
- lines = (lines >> (xpd->addr.subunit * 4)) & 0x7;
- RPACKET_FIELD(pack, GLOBAL, PCM_WRITE, lines) = lines;
- }
if(!pcm_valid(xpd, pack)) {
static int rate_limit;
if((rate_limit++ % 5001) == 0)
ERR("%s/%s: old_lines=0x%04X lines=0x%04X subunit=%d\n",
- xpd->xbus->busname, xpd->xpdname, old_lines, lines, xpd->addr.subunit);
+ xbus->busname, xpd->xpdname, old_lines, lines, xpd->addr.subunit);
return -EPROTO;
}
- spin_lock_irqsave(&xpd->lock, flags);
- if (xpd->timer_count & 1) {
- /* First part */
- r = readchunk = xpd->readchunk;
- } else {
- r = readchunk = xpd->readchunk + ZT_CHUNKSIZE * CHANNELS_PERXPD;
- }
+ is_bri = (xpd->type == XPD_TYPE_BRI_NT || xpd->type == XPD_TYPE_BRI_TE);
+ do {
+ spin_lock_irqsave(&xpd->lock, flags);
+ if (xpd->timer_count & 1) {
+ /* First part */
+ r = readchunk = xpd->readchunk;
+ } else {
+ r = readchunk = xpd->readchunk + ZT_CHUNKSIZE * CHANNELS_PERXPD;
+ }
- /* Copy PCM and put each channel in its index */
- for_each_line(xpd, i) {
- if(IS_SET(lines, i)) {
- memcpy((u_char *)r, pcm, ZT_CHUNKSIZE);
- //memset((u_char *)r, 0x5A, ZT_CHUNKSIZE); // DEBUG
- pcm += ZT_CHUNKSIZE;
+ /* Copy PCM and put each channel in its index */
+ for_each_line(xpd, i) {
+ if(IS_SET(lines, i)) {
+ memcpy((u_char *)r, pcm, ZT_CHUNKSIZE);
+ //memset((u_char *)r, 0x5A, ZT_CHUNKSIZE); // DEBUG
+ pcm += ZT_CHUNKSIZE;
+ }
+ r += ZT_CHUNKSIZE;
}
- r += ZT_CHUNKSIZE;
- }
- XPD_COUNTER(xpd, PCM_READ)++;
- XBUS_COUNTER(xpd->xbus, PCM_READ)++;
- spin_unlock_irqrestore(&xpd->lock, flags);
- xpp_tick((unsigned long)xpd);
+ XPD_COUNTER(xpd, PCM_READ)++;
+ XBUS_COUNTER(xbus, PCM_READ)++;
+ spin_unlock_irqrestore(&xpd->lock, flags);
+ got_pcm_from(xpd);
+
+ if (!is_bri)
+ break;
+ /*
+ * Handle BRI subunits
+ */
+ lines >>= SUBUNIT_PCM_SHIFT; /* B1, B2, D, E */
+ if (lines == 0)
+ break;
+ for(subunit = xpd->addr.subunit + 1; subunit < MAX_SUBUNIT; subunit++) {
+ xpd_t *tmp_xpd;
+
+ tmp_xpd = xpd_by_addr(xbus, xpd->addr.unit, subunit);
+ if(!tmp_xpd || !tmp_xpd->card_present)
+ continue;
+ xpd = tmp_xpd;
+ break;
+ }
+ if(subunit == MAX_SUBUNIT && printk_ratelimit())
+ NOTICE("%s/%s: subunit=%d lines=0x%04X\n", xbus->busname, xpd->xpdname, subunit, lines);
+ } while (1);
return 0;
}
@@ -238,14 +215,12 @@ HANDLER_DEF(GLOBAL, SYNC_REPLY)
BUG_ON(!xbus);
if(!xpd) {
- int xpd_num = XPD_NUM(pack->content.addr);
- NOTICE("%s: received %s for non-existing xpd: %d\n", __FUNCTION__, cmd->name, xpd_num);
+ int xpd_num = XPD_NUM(pack->addr);
+ NOTICE("%s: received %s for non-existing xpd: addr=0x%02X\n", __FUNCTION__, cmd->name, xpd_num);
return -EPROTO;
}
DBG("%s/%s: SYNC_REPLY: 0x%X %s\n", xpd->xbus->busname, xpd->xpdname,
mask, (setit) ? "SET SYNC MASTER" : "");
- if(setit)
- sync_master_is(xpd);
return 0;
}
@@ -257,11 +232,13 @@ HANDLER_DEF(GLOBAL, ERROR_CODE)
BUG_ON(!xbus);
if(!xpd) {
- int xpd_num = XPD_NUM(pack->content.addr);
- snprintf(xpdname, XPD_NAMELEN, "....#%d", xpd_num);
+ int xpd_num = XPD_NUM(pack->addr);
+ snprintf(xpdname, XPD_NAMELEN, "#%d", xpd_num);
} else {
snprintf(xpdname, XPD_NAMELEN, "%s", xpd->xpdname);
}
+ if(!printk_ratelimit())
+ return 0;
NOTICE("%s/%s: %s CODE = 0x%X\n", xbus->busname, xpdname, cmd->name, errorcode);
switch(errorcode) {
case 1:
@@ -298,7 +275,7 @@ static bool global_packet_is_valid(xpacket_t *pack)
const xproto_entry_t *xe;
//DBG("\n");
- xe = xproto_global_entry(pack->content.opcode);
+ xe = xproto_global_entry(pack->opcode);
return xe != NULL;
}
@@ -312,19 +289,27 @@ static bool pcm_valid(xpd_t *xpd, xpacket_t *pack)
xpp_line_t lines = RPACKET_FIELD(pack, GLOBAL, PCM_READ, lines);
int i;
int count = 0;
+ uint16_t good_len;
BUG_ON(!pack);
- BUG_ON(pack->content.opcode != XPROTO_NAME(GLOBAL, PCM_READ));
- for_each_line(xpd, i)
+ BUG_ON(pack->opcode != XPROTO_NAME(GLOBAL, PCM_READ));
+/*
+ * Don't use for_each_line(xpd, i) here because for BRI it will ignore the channels of the other
+ * xpd's in the same unit.
+ */
+ for (i = 0; i < CHANNELS_PERXPD; i++)
if(IS_SET(lines, i))
count++;
- if(pack->datalen != (sizeof(xpp_line_t) + count * 8)) {
+ /* FRAMES: include opcode in calculation */
+ good_len = RPACKET_HEADERSIZE + sizeof(xpp_line_t) + count * 8;
+ if(pack->datalen != good_len) {
static int rate_limit = 0;
XPD_COUNTER(xpd, RECV_ERRORS)++;
if((rate_limit++ % 1000) <= 10) {
- ERR("%s/%s: BAD PCM REPLY: pack->datalen=%d, count=%d\n",
- xpd->xbus->busname, xpd->xpdname, pack->datalen, count);
+ ERR("%s/%s: BAD PCM REPLY: pack->datalen=%d (should be %d), count=%d\n",
+ xpd->xbus->busname, xpd->xpdname,
+ pack->datalen, good_len, count);
dump_packet("BAD PCM REPLY", pack, 1);
}
return 0;
diff --git a/xpp/firmwares/FPGA_1141.hex b/xpp/firmwares/FPGA_1141.hex
new file mode 100644
index 0000000..dec62cd
--- /dev/null
+++ b/xpp/firmwares/FPGA_1141.hex
@@ -0,0 +1,651 @@
+#
+# $Id: FPGA_1141.hex 3190 2007-01-24 13:25:57Z dima $
+#
+:020000040000FA
+:80000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6AD6FF400060110A006AD6FF400060110A006AD6FF400060110A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4455544455557475577775577675577775577765566665563625523235D2E37C2B51111551111551111551115D
+:80008000155111155111155111155111155111155111155111155111155111155111155111155111155111155111155111155111000000000000000000000000000000000000002552222552222552220025522225522200000000001AA1111AA1110025522200000000001AA1110000000000000000000000002552222552222F21F11211
+:80010000122F21F112122552222552222552222552220000001AA111255222255222255222255222255222255222255222255222255222255222000000002F21F112122F21F1121200002552222552221AA1111AA1112552222F21F1121200001AA1112F21F1121200002F21F112122F21F112121AA111002552222552220000000000252E
+:80018000522200001AA1111AA11125522200255222000025522200000000BFB7F77B7B8F89F99898000000000000000000000000001AA1111AA11100000000000000000000000000002552220000000025522225522200002552222552222552222552222552222552222552222552222552220025522200000000004F44F444444F44F491
+:800200004444000000004F44F444444F44F44444004F44F4444400004F44F444444F44F444440000004F44F444446F64F446466F64F44646000000004F48F884846F69F996962F21F11212000000CAACCC2F2DFDD2D22F21F112124F48F884842F21F11212004F4CFCC4C46F6DFDD6D62F21F1121200006F6DFDD6D66F6DFDD6D66F6DFD71
+:80028000D6D600000000002F21F112122F21F112120000004F4CFCC4C46F6DFDD6D62F21F112128AA8882F21F11212004F44F444446F65F556562F21F1121200006F65F556567F7CFCC7C79F95F55959006F65F556566F65F55656000000008F8CFCC8C8AFACFCCACA255222000000CFCCFCCCCCCFCCFCCCCC008F8CFCC8C825522200CF20
+:80030000CCFCCCCCCFCCFCCCCC000000CFCCFCCCCCCFCCFCCCCCCFCCFCCCCC00000000CFCCFCCCCCCFCCFCCCCC000000008F84F44848AFA4F44A4A255222CFCCFCCCCC0000CFC4F44C4CEFE4F44E4E2552220000EFE4F44E4EEFE4F44E4EEFE4F44E4E00000000CFC8F88C8CCFC8F88C8C000000008F8CFCC8C8AFACFCCACA255222CFC875
+:80038000F88C8C0000CFCCFCCCCCEFECFCCECE2552220000EFECFCCECEEFECFCCECEEFECFCCECE00000000CFC8F88C8CCFC8F88C8C000000008F8CFCC8C8AFACFCCACA255222CFC8F88C8C0000CFCCFCCCCCEFECFCCECE2552220000EFECFCCECEEFECFCCECEEFECFCCECE00000000CFC8F88C8CCFCBFBBCBC3AA3330000008F8CFCC8C83A
+:80040000AFADFDDADA2F21F11212CFC8F88C8C3AA33300CFCCFCCCCCEFEDFDDEDE2F21F112120000BFB2F22B2BAFABFBBABA00EFEDFDDEDEEFEDFDDEDEEFEDFDDEDE000000008AA888BAABBB3AA333000000CFCCFCCCCCEFEEFEEEEE2F22F222228AA8883AA33300CFCCFCCCCCEFEEFEEEEE2F22F222220000EFEEFEEEEEEFEEFEEEEEEFFE
+:80048000EEFEEEEE000000004AA4441F14F44141155111000000CFCCFCCCCCFFFFFFFFFF3F33F333334AA44415511100CFCCFCCCCCFFFFFFFFFF3F33F333330000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000008F84F448489F95F559591F11F11111000000CFCCFCCCCCFFFEFEEFEF3F32F223238F84F448481F11F1111100CFCCFCCCBB
+:80050000CCFFFEFEEFEF3F32F223230000FFFEFEEFEFFFFEFEEFEFFFFEFEEFEF00000000CFC4F44C4CFFF4F44F4F3553330000008F8CFCC8C8BFBFFFFBFB3F33F33333CFC4F44C4C35533300CFCCFCCCCCFFFFFFFFFF3F33F333330000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004554444F42F224242AA2220000008F8CFCC8C8BFA2
+:80058000BFFFFBFB3F33F333334554442AA22200CFCCFCCCCCFFFFFFFFFF3F33F33333008F81F118189F9EFEE9E90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004AA4446AA6662AA222000000CFCCFCCCCCFFFFFFFFFF3F33F333334AA4442AA22200CFCCFCCCCCFFFFFFFFFF3F33F333330000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFB
+:80060000FF00000000CFC4F44C4CCFC6F66C6C2AA2220000008F8CFCC8C8BFBFFFFBFB3F33F33333CFC4F44C4C2AA22200CFCCFCCCCCFFFFFFFFFF3F33F333330000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004F48F884846F68F886862552220000008F8CFCC8C8BFBFFFFBFB3F33F333334F48F88484255222008F8CFCC8C8BFBFEE
+:80068000FFFBFB3F33F333330000BFBFFFFBFBBFBFFFFBFBBFBFFFFBFB000000004F48F884846F68F88686255222000000CFCCFCCCCCFFFFFFFFFF3F33F333334F48F8848425522200CFCCFCCCCCFFFFFFFFFF3F33F333330000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004F48F884846F68F88686255222000000CFCCFCCCCCFFFF93
+:80070000FFFFFF3F33F333334F48F8848425522200CFCCFCCCCCFFFFFFFFFF3F33F33333EAAEEE7F75F55757000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004F44F444447F75F557573F31F11313000000CFC8F88C8CDFDAFAADAD1F12F221214F44F444443F31F1131300CFC8F88C8CDFDAFAADAD1F12F221210000DFDAFAADAD7C
+:80078000DFDAFAADADDFDAFAADAD000000004F44F444445F55F555551F11F111110000008F8CFCC8C88F8FFFF8F83AA3334F44F444441F11F11111008F8CFCC8C88F8FFFF8F83AA33300008F8FFFF8F88F8FFFF8F88F8FFFF8F8000000004F44F444445F57F775751F13F33131000000CFCCFCCCCCDFDCFCCDCD1551114F44F444441F13D4
+:80080000F3313100CFCCFCCCCCDFDCFCCDCD1551110000DFDCFCCDCDDFDCFCCDCDDFDCFCCDCD000000004F44F444445F57F775751F13F33131000000CFCCFCCCCCDFDDFDDDDD1F11F111114F44F444441F13F3313100CFCCFCCCCCDFDDFDDDDD1F11F111110000DFDDFDDDDDDFDDFDDDDDDFDDFDDDDD000000000000000000000000000053
+:8008800000000000DFD2F22D2DAFAAFAAAAA000000000000000000000000000000000000000000000000000000000000FFE40F481800000000000000000000000000001400000000000000000000000000005F22020000000000000000000000000000000000000000000000000000000000F04FFE80840100000000000000000000000029
+:8009000000400100000000000000000000000000F02522000000000000000000000000000000000000000000000000000000000000FFE40F28000014000048400128004840012800000028004800001082040000800400002148000010F2BA5E000000000000000000000000000000000000000000000000000000000000FFE40F00000070
+:800980000000000000000000000000000000000000000000000000000000F04FFE808401800200000010020000100240010021001400000014804201001488288008008828002800EF140200808401000020010000000000000012000040010000000000000000000000008FFC094818148002800414182810820416012810A211400128BD
+:800A000010A2414001002B11484001280048408188022148008828108204F05C6580840180020000001002000010024001002100140000001480020040818802000088280000F04CBE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000100200000000000018000000000000000080080012
+:800A80000000280000F088A60000800200000000000000210014001002800100001001220000112002000088000000E7DF000000000000000000000000000000000000000000000000000000000000FFE40F0000280000000000000000000000000000000000000000000000000000003F8D0E0000000000000000000000000000000000BE
+:800B00000000000000202802000082220000F01BFF0000000000000000000010021001000000000000002800000000000000000070420D000000000000000000000000002400000000000000000000000000000000EFE209000000000000240000000000000000000000001100000000000000000000706C0F000000000000000000000055
+:800B800000002001800100000000000014000000000000004B8700000000000040020000100140010000000000000000000000000000000000F09FCB00120018180020010018000048420000001002000000240000001001000000000000008BBC001200121800000080010000420011000021000000000000001001000000000000004664
+:800C00000D0000000020010021000042140000000000000040020000000000000000000000BF920100000000000000001120018001800830111800000000800100002008000000002002F06EE9000000000000000000000000000000000000000000000000000000000000FFE40F00002004008200000080080000000000002800000080CD
+:800C800008000000000000000000EF8C0D22000080022280820400282800000020044A0200A081800122800118004222420000008084022008884F16070000002800822200002200000000000000200A0000008800420000000020040000822F480D22000048002200480000288200000042A0240000188001228001180020820400000029
+:800D000080022008F0F32B000000000000000000000000000018800100180000000000008200002800000082BF660D00000028202284220400422248208402000028000032480022000020020000000000002A4421048FD60C0000000028420000002004482800002082010038000000002002002008008002002800D0B4080000002200E1
+:800D8000208204004828000000000000120042122002000000000000000000481148889F1408424212000012A012001A8204004A0122008005000000280000A01480042024048A042800A082800200008F84072004224820020020820200000000122A21048001121880210200420018200200A028000000800A002F6A070028003218285E
+:800E0000002400C0112200000042002081028004002232001A02220000000020020048200242DE9300002280031280422282812481024A012200522248808101181222182022031822A02180220482000028A82082042880F4FB6F80042A0142A012282001004001000000800400220042002200001242004800428008000000A800F02212
+:800E8000FF0000200400000058000000006800002248200400000000004800A084008002002002284282FF39054800280048481818800120064A0120020000808101000012001212122001280000820000220000002F790A80240120042004528002200600421880018001000020010000220000800880020000880080A882AF470700005C
+:800F00008002480000800200200400200100002001222003420000000000A0288200000048004F5E0C22280028180028006800002A01000022188024020080040000000000280022222004000082C848F094EA000042122220020020820200000000008001000000000048220000008280020000800400EF69018001180048200112200177
+:800F800048220000800200001200802222010000000080022008008008140088429FEC0600122005002800000012208205008002008001002082020080822201280000002008A20040016BDB202204000018208204808201000000210028882220022214008083842185010020280828200228000021F08388001220040068582842200250
+:8010000042802582810222A0112081230500682A01001218421800220082282A02C200888811884A4281F237982002188021242405A0514AA241802605A04442202401008001221880022880023280022082880C8200002AA2282800C681D8430B4AA26412325AA62348A02312208103182A22030012282222A0423222124220023AA11272
+:801080008005186AA211588082028A8888882282080048C8C88AF46525000020080000000000000000000000000000000000000000000000000000F0141A80820118A033A0221AA1225AA42212A0552AA2112AA211002A022A026A062AA2112A026AA62280023A031AA1441A0300228AA822004AA4228A8802A088A0884AF41FCF80A6332B
+:80110000125AA14D1A012AA231285AA42212A013A0112AA2554012022B22A0CF222AAA112A021F16A6321C81023A071AA1661A0380A222A022006AA4228AA8A88A088E822B448A9CC25F5A075A87A5222AA3447A072AA3546AA7112AA3754AA4552AA3546AA6557AA7332B331AA132A0E6A0221AA1221AE117A7233AA2311AA1633AA22395
+:801180005AA4213AA22220A2882A82024AA4228AA822AAA822EABE22A222EAFEE36DA0713AA3233AA3673A23A4324AA7745AA5765AA5445AA5766AA7665AA5333AB332E323A322A0C632AAA2112AA2117E713AB131A3311AA1233AA2237AA6213AA22228AAAA882A82A888CAAC228AA822AAA822EABEE2EE2AAEE29E680000000048000002
+:80120000000000000000000000000000000000000000820000000000CFD50B00000000000000000000000000800100220000000000000082000000000040E1940B2AB41182B111A2161B6123B411B262B111B242B911B64219B142A9432F142BF242912AF442912AC4B12E421CE822E415E222641D2E4296C1429AE222B591C2421B292C4D
+:80128000B191A2161B292B141B6823B681B24298612B84112B84222B84A22BA4222B84AAA484AE42BFE4062A91412A95212AB111B462B11132621B412B821B612BA41B6129A9412F14AA432DB13AF442B123D112EB22E514CBC25EA12E42DE212E52DE213CE118E22235912E521B682E521B286AB181B422B181366213386219B6429A2174
+:801300002B84AAB4422AB84222BA423AA22B24A6F2F5A700824800000000002800000000218001880000400100210000000000A0280000000021F02981208201A0124818001200480000484200422024022242588003002A040012280000A20000200888822A0C80CA81EFE504528A02A880031828E014010040018021A24380860280A5D5
+:801380002128424823279532183200001A22A242A2E0222804828022A2422820A4481C84D2E70628DA022AA8214A2381818221056200140080E22205425220A841382A012AB5318424A325200418282820A628288242228880024A82286624A086A29F1B0858000000004001000080A41400482822288082248404211221A012000012229A
+:8014000000822602002088228822088A04F0AC3200000020022001004002000020A2240000800200001A0220021800000000000082200282001F3105802202182280040062000020033A840180240422181280A221182800809122222228228008A2202894224820B24188848284FA732D002200000000200200003220840122424200124C
+:801480001200122022010029820200008008882C84028240012024F8B28800800212282248200148002400003820220400222002222818200280031228222820082800004220228E240A22EFE50B484211C02218002118282828002082014A0221800320130200285260243820142224820228280028214222882800222122F09F3C80614C
+:801500001420210422182280082842420000002902182004124800420018005218284A01008004A80000808402218228AFA701004001000000200490120018200300420048A04118002822000000800400290400A0242002882A88046FFE0E4A0130112C84810222208A0248421822121820810220244422055218484A812207C012006A28
+:801580000148808204004222E800282AA828AA84D2F40310410122001221120042400200A042280022001A0242002200B0220120210622200224482C080020A2240000F05F3E0068800228422880021902002248222002230222200322A042002200482880041002808808000000008A0480F429C60020020080240420A142002C04202141
+:801600008401280000000000200200200442000080080000000000CF9F0A2A0420248481011220040012004262200228290100000022001222420028222002222002A08428808208808288F28FEE0000180000408123218186040000000018480000001800208124021200002820822802820000C042F0D876200112142248A212A02180F1
+:80168000040012221022051200220010020018188021C1120000A04288004800202418024200F0FE1E8004200110020000220020010000121218A021200223820400000000220020080088822220022C823822F0A7350014288004800400200148488021011800000000220021200180820200000000100288001902428842FF7B0528A2E4
+:8017000012A0212A8122028027028082220620820280268222822202182082062002180020022242222302800228002228142CFAC91520A11420820852200300008001122800122180018820018042012982022A042828288002280000862202E2003022D094056AA42B22A06E7A22A77222182AA42212002E326A26B512A4363818182AFD
+:8017800083A2261AA2222A22228384228122A172122A86C22248284228A828823082A2CA28226A12A0428661227EFB0013881381818124A41122521C81054A068083822481C22200182224124A022C22E1228481022A0248222822202A243242882A8412829A82A02EA82E81CAF29656A0314A24A137002903481C8223A52242125A84010C
+:801800002A01222321A2412200002420A2122023264122218221022A82280A2A0288882A024A022C042C86F48AD2000000000000000000000000000000000000000000000000000000000000FFE44FA1441D117011A1442C9142A031285A054AA4444AA4441A61222326E421A1122AB14204A011242B112E222B114E4223E224B41203221E
+:801880002E222B33A02220A244224A64222B44242B888EA22BCC2CB2C28C42A2248AF84263CFDD4EA1771F1B237151A1663E322B776A8282A2662AA2444AA4466AA7762632626AA22223A2136AA622BAAA332EA22B332E222B111F34B412E1349422A0512E222B33222AA2222AA266AAA2EE2E222B44242B8AAEA22BE62E222BEE2AA2427B
+:801900002B66AAEA26F6E5E7142AD411051F11A112242326A4556AA613A0645AA5554AA4754E4221A0312981A15428881A43B21243B212E136B632E327B532A3223AE723B332033AA311A044884AEC28B8C24E12E228B8C24CB242A4A88A3842C0827F7C41A1731F1B23F111316AE727B772A3375AA5777AA766181AA1516AA7762E222BCB
+:80198000767AA7332AA2336AA6222AAA33AE222B332E222B336E632B331F26B432A3333AE322B232013AA3332AA266AAA2EEAEA22BCC8E822B88AEA22BEEAEA22BEEAAAACAEAAEEE6EE3DD5F0000000000000048800400000000000000000000000000200800000000000060A1200222001A2282042002180022001822002082220222288B
+:801A00000022000028220028800228800200A2200240210222EF9C09481B21181B214AB11136421B212B161B212F1499612F1419F14292322F14A9422F14AB432D913AC4B12E424E812E4216E122641D2E429E212CA4292E521B2D2CB591C2121B2946B29136421B682394212B8419B24238812B842AB44228BA4228B242AA4A4AE82AE481
+:801A800044062E1119C651282E131B612B161B2123B611F42281682F14BB11F24292323C8AD412AB432DA12B412F14EA22E514EB22EC11EA22E51D9252DE212F12E51CB22235C12F22B581C6521B292F26B191A6161B682396612F22B881E624BA817642A2422F24AA4A4AA2482BA423BA42227A290820880400000000800280080000008E
+:801B00001880080000140000000040020000280000000014D08403921822E02221A31268621E21800542004A02681A082065240020222481064A22042A0500182212420042488004A200CA82242C286C123FA9094882142820480125021414C01246812101122229A1182820024A812511012A24812311021C0215022140410282C82024A5
+:801B800014220A862282C42148DF3D02A01C288092A21262281C034621823142182A012A01258289A5412922A8412084219621783A84A14142281091220000006242486220A22846C2C2C0C162EF56015840818221611270420214128044014220248B012800002A251101480030224001189012481430428A8408201822282488A24828BB
+:801C0000E0C10D0022122E11681412A021262308401101009218124200A024200442298822228428C111F0221200482A28088A4401204822080000F0E1C1A0124001202182048220041A084A8112011C24021AA24248802103182832421810018002481B1821904219088004482A28A224232C24A884F0DA6EA012102111A13411002826A0
+:801C80000120488101004A01124222428021222481968248806418121228272248144288C2140048808C3A224A02428882F0D4180080021A02281A041A08290C12904122119081322023048026010032223200100112E021082602884A1801008048220C2004775520210500A02480242102282118298288C21220344216C111214E8100A9
+:801D00002C04884200192204521800001C0400281424428A8202280020F42283004220012C012AD112AA82001A2A04124821002821424A818C2A220142181438808123220442220021222086820888482304422A344262245FF3030011222A0112200812261101100124198422010000158226A221462222882604800822204801001429F6
+:801D80005422C0220022200880F8EC5E8021011A021823828224A212263111298411A38425D2212422878444A1484822382AA4241A081A8226868202126200142D41224083C4812129FA4222202224086028BF64040014A012A0141227129200880032208201001CC14230211429042921B422240813810598002888000068240048882A48
+:801E000004224A82A42448AF610800222260149011138181A21422409111181A08A04819A821338A88081324042C02A2A018144224284001200888000021212C040000F05824808102100122420060128880040016A1120082002200112211C0411A0820A818821152314A88842C542213C8818002A24824888229C4C297AB80062810211D
+:801E800026044033611A1801284A4102880028A08100501290114221002904004681010000248681021928C44240028004F0F62A0012481442122086842A094AC183822286A18200C041314021B1312822018268809421601120018A92212D22800400482A0422200820C282287FBB0A802421021480611100001081280820210200140096
+:801F000080810E20A834001C8148B1216814181002409121C04288000030422A04D7B90080341162281214424800A024C0228013818824B12234412290528004001631818858481A24280442460182602488288224428088220421287FEF061C81110100282032118820492111011112111482004248A02129082A014A0228110000230A2B
+:801F8000603C1001D02208802818220400F0EBC30022200400802208881148828818242A88A2812211200A118A05200400181288001218240028482A041081042150224840012F1D413141144820822124024216712122A638801411018224122B411A0222884001881345011C04284818822502221434822094212002809441822221F03C
+:8020000065D8F01111B021B21164161D21483A253421E013611C1213B291AE18281AA8188E11AE911F1CB18186AA41121A325128121B14DA34D1281D111BA820FE11932D112B212582A8482D422B243D2142290848828632234242A6016F854281B431230119A2557AC22113E13CED11A8281B731F3CAC881C7111F1921139A121C8281A9C
+:802080002433A12CD231C5538E4186F181A2298288F432411AA4541A81A1241F2E7C41A3823394A1C2202CB841D422AE862C94422CA4C82AC243C6F268D9A02442E01282240213E41227B1A197C129081C2596821B828E212E816632512AD212C9412A28B26188A1436A84A422B81B9C60118AF81381821A021B648E412394811DC32AD821
+:8021000013683A622592A24A2854228A24A4221F730E00008200000000000024000000002100100200000000000000000000000000F0D42E145AF5313115F11131421F11F361211F12D211F211311F19D131B842E414AD556E63211F12F221811F12E22985D411D512A4446AF611116E623F18ACC8BA29A1B34E411F1ABE81F8312150118C
+:8021800017141BBB17242B223F24B462D611F821233F34D413E828FC82822B882F24B842F461622B88EAAEC82F22FE289E145AA5731F12B21191211F15F761211F13F331311F1FF7B1111F23B1D3FDC1D11F13F5A1E335F131233F13F821B11D912F19E118F161E11F16EE237A13E133F292911F36F6D1D31F15A4C99AF4B1F1CAFCB1B17E
+:80220000981F1DF951133F2E7E43F263E23F24FCE3633F14F8E3E13F34F443C23F2AFC22222B882B8423F462612F28B8E2AEC82EE2CC4BE115D51154111F112386F221611F12F671711F17FBD1B11F36BAD2FF41911F1DED26FEA2A23F1AF3B1311D819A9DC21F11ADFACAACC415F362623F1AAED92B9B2F1DAC3B821F19AD111F1BA62BAA
+:802280001BBB1F3CB891F9C18123F8C3422B661F1CFC21233F3C5E1346F2E2A22F2EFE62A22B66EEE22B882B4882AEA22FCB4AA1773AF331311B331B6E5AF771711F16E516E71FFBD1A11F26B3C3FDC1D11F1DFD61E33F3AFBA3B33BBB1F12FB61F1EEC19E911F16F4E1C12E223F37F772732F1BFB71733F3BFFB2E1FAA66F1F1BAE451F25
+:802300001BAAA31F1BF2F1233F2FBFF3BBE3FE83C23F3EF6C3813BEE3F3CFCC3C23BCC2F26F6C2C22F26BAE2BEE2BEC2BCA2A66ECEE21FA1091420028044A141148A641292A048141B48200913081230814A020080A8240088C09180083C093440A24814483482248A440200420082FF3C05181110211221022213011904190412241138FA
+:80238000003214002412400110220400120000100100101221040080142208B06A092AB41182B11162141B212B1419F2421219B24299212F3419B14229F24291222F1429F342B11B424E912E421CF821425E211F22641D1F2265192E429AE222B5D1D222B49142B39132621B692B161B682394212F2498212B84112F1428B242AA422F24F0
+:802400002892822AA4A42E421F3D0A2A9441581AE21491212B1419F2421219F24292282F34BB11F24292222F342BE21429F142A133BA42E122C19119ACA53722CAB22321F922D386A152137D22A2692E411B2923B281B42299412B8619F262821B284A82F6428190A2AAF44222A2A829B4426A22DF210420880400000000800200000000DB
+:8024800080018800004081011082040000000080020000005012F032FE80E212814121932114A04112A212804431134810A1524A198104304120E216218402A2186220021E8218822A042C44822402488800282C64288888422CB84F05132188221281443221192224159181186022884AA2148222002632C10019042A9111684A01144AE7
+:80250000220828241B4218112F1822088810C243241482231221264401C7631418F22214182240B121A514AA44312118242A31C2221C25E6284201321B48C6012A94411A3431229A6611686262208131825A42218A1822223242130C25218256222A0C1C3482DF380E26118181621219448302802181884411014820A91420440200111A91
+:80258000220248001120088A129261002734202408400220186218A04800BFD6070000240028422082142288011081A24814002004009081100220C1811200142002227042A24814008220582282202804BD6F8063118022218223048A0613C94324C833D412A24812145A621D4888002220840482622242230626032342B111A42482C8C7
+:80260000002460242A04420020842264B980C211800280A14280021A4C43224831211C8882C4411EC18088042280C481240020240626112202260188822142240088801822082082F417512001001223820248C828142924C85248214818138803480000004880A8422816621812401211218586222494821160244A024810028A24048F5B
+:80268000C34981A114C0111C018008211180821882216428008221121002292692811200182A981198224288218A0146314100282810024002228A140242D77D00130428283828116621052A041302423013A220110218C0810024C042140000B04289A2248002A08282218A0210A2848012022308F0BA1700000090129A122282422128C2
+:8027000084042908111001421C2804342422006888422248211114008224200424800424108224084888F0C38214C01130311C0129A1211CA243191281384148B0829412260113014282487062C122131202428A216C1212282B8134428AA182241C84869822214002235822682322888488F4BD21800100221A2212714202800682211A14
+:80278000041398828008181502111022882134222022C1C240A128220019048200884821200420282408F06144202104146212181410014846218884221C21891A22D421AA218A0224202128089814005280120240810200408284842A028008248887C11400004003482282482150218221202822142182810C42423021488006A0484038
+:8028000011024A283443802824922288400221422448002984F639B180A41280041091222602201A12029012222B244218110021282002008220C431222308428813A228208406002028024880024A88082F960A40112121810246228432822113A82411230800824288001302312008130168001122D0120823084A0AA04835224401237D
+:8028800004A068210025023F640222000012282418281842211398C268230882200288864101212AA4481414258228A44820281802501228002800111B82904200200448B05A0300001902182813042120080011884200D0232422082C0822002AC421222823880422148200802828BA2198A20028804842022B28488F510918130180044F
+:802900002100C2200200A042141001482280944240028223088018012C824211220214A8141424424800828A9242688242C0827FA1092018611113014814118084881582A34822400148004611020011468104482602A22128824813A12400286018142D82118A02886018288214F01D588024820480622240C24182002814112002282EE4
+:80298000821B8221A0142B281C080030811488C04111884003882C48229842004A22040028002821D0E40378AA551113A121325219C21217224A682A1F246124C0429A8AA88D2AA862EE411B2237182EE2281324021DC3F0A1428AA8821D41684E118223C8832AA8261388A62C172A3D821BCEF083818A84A2A246E21882A4861CF44242BC
+:802A0000DF4E4721F1812140E11485C3222F3654128EA18E52A84827182D83EAA242AA42E114A481118EC24ED225E12244D122B2812CE41CA1A42AC562EAFBA1832BCA2F22DA1132811E431CE412EA28A8424A8A52321F2488642682CAA46829F482A28A6434A85FEC034212A0141342B323011B662B44212B442F1898811B7C3978425184
+:802A8000312AE6287241826A112A32C1235C22482E31821D82A024C641021D22E026B842B483B283283422199842A6012F18642629B262082B826200AA28B8160C00000000004001000010010000000080020000000000000000000000400200F05AEB144AF431317011F1C1623F11F311513F14F613112B8A1F31B5E2BED2CD822F25F56C
+:802B0000E3E32F1EA48AEEC11571A1A366F0C3C31F38E822D331E42654131F12F221632D622BA88EC11F32D233742143521117141F13F3C1C11F3AF883A3243F18C8233F3CF483833F1C88AAAE2EA2212F12FAA2826AA6E62F24E4DF41A1721B731117111F34F613311F17F561633F15F3A2A23F35F5E3E23BFD2BC42F25F7A3E32F1EBEF2
+:802B8000A1F861C11F12F2A1C12BCA221F3FFF21A3AEA23D416E423F1CF461633F3AF683432B288EC23F34F2E3C2173A2CB2637243F131311F1CFE81A33F3CF8612337123D213F3CFA42833F1C88A8EE2EE2212EA32BCE2BEE4AEC24FE4C85143AF231711A51111F35F552722B713F14B613F3C3E11F3BF363633F15E724FC52533F1AFE41
+:802C000062633F2EFC43832F22328231881F3AF9A1822F22FA21634E623D211F1C5C312F34B6C2A6881F2AD223F621632F2AFA81811F3EFE31711F1868223F38CE423F1CDE31FA83231F38F883C3AAAEAE2C58222F2ABAE2BE62A6EE6E426B4E147AB731B311F111111F3FF573633F15F741633F15F3C3E33F3FFF63623BD52BC42F2FFDE2
+:802C8000A3E32F3EFEE3E23F34FA63633F1CACEE6AFEE1F31F38E822FE23616E623F1AF2C1C337282F36B4E2E62EFEC3223F2EFEA1238EA23F1AF263613EF11F1EEE2EF6E3E31F36FE63E13DA13F3CFCC3C33F1CACEEEAEE22BCE2E82ABAE2AE66CAEC2E7AC2050014E032013C81641282348A448144B28104822819A4241130814A1202CA
+:802D00008012012B82422A08271220023C0826012E8360328A442348A14828008228824A22F8518820020000804202000025012800A08480021C0810024001004003241110811801000048002100488004F014A9C0411B21141B21421B21272419F2421219B24299212F2419B14229F34291322F1429D312A9434E912E421CF8214216F188
+:802D80002342D6E122651D2CA5292CB5D1C2521B293CB19132421B6923B481364219F6428219B24218B14228B242A8422B842229A842882E423F51041CB511C6511B21421B6127241B2125B211B662A8212F34BA913242322F34B831E42428C3812B4B27142E121CF921C25ABA2324D422E91CC2118E212D521B242C89C6D31B2923B281AA
+:802E0000D622B181061B68272419B2429A212B84222D828AE4242292822B4229C842D5082088040000000080120100000021008008000014000048000000000028000000002501DFD90E800226C12180652590412B1E248812C24602008A3542200CC21120922252202463218A8238113022A22682E81802148213188184642420622428FC
+:802E8000202282F47197202429826121182712215E22A2B02195512C448161221AE214011B28192382148224A141C82420A248A041562222A2814E1213AD144262882846A284882119A8C282A8A086141C24B8BE0742E2222832121A2484E724A2381E231B4A1839A814283811522388A1242F21846818121A868C1522A44214588A314307
+:802F0000222AA9282F21A24819AA2419A828C6E1128C1CA2842322821C8264121C94428F950F200113410327321225328142481848425022A014824E2113820842484082022022C9128A82A42124A0141B4818480000212044A184822822A88022F8136E004001220011B0112684142208118810024E1182420020041200A024222888C081
+:802F800081800110210442482521088200004A2802702409141922E2129111581923A421C0118E311B411814C219E21124A26928141AA2C2408102421E812A242A89A5411B14209222192CC1816AC8221031A224004224CA028A0200486FAF0D14141118144A2102381B1413F4211218181180C212A069528818821081044AA1814A8282AD
+:803000008284210811218A8181C8C110C24123141202882008828A0400BF940C20829221329011190422124A984182B04138811924021C128126062002100188D82A81B61104A2284601112268002A18810842242A04222002484FCB0D1A02003280021904001C46611518283822B02114C2211C85E41408589022141C22288481014280A0
+:80308000C211483CE2146822209422460186420248488228001F4906111A621328483A0413232202119AC28270A2012411222428181828882B1223A24848601421101101134583040028290813A22840A224802C02108244F2C9D400001041C211429012008004248A24240112008200111001288007622924020088282100003082004862
+:80310000000088A0847F1907130111282A84D312B21172618203141368281CA4822BC2681321228162114681C2422CA3251728681C22B62229F44122132432113448960133621E2E82C021212F14088E224829A44280280A2CBC2204221AA212C01148184800004A91412C3111209122E0140228824211142004004220810100222006252F
+:803180000280840824482008480042F0D33300800210011100C2C200A2A04900823041822084A8218288428880CA21A0821908E02208C811001002130888299842222400C0426FF10440018224221418241C084092418001281414B28826220148A04113A12146A184484219A1412088013A08A0241114422302004002800800FBA6800651
+:80320000141800422004C0411A241421021210210414002682020012111214222006821840028826B24128820C8228808298228002F0487E00281213428101621242801881822408A0141A422122025831192C080080040000141344022A082908191801232424848C04808888FA469F142002A04180028028040020A48200A828882400AB
+:8032800000800411002848286018200820E41402282904800EA602222662222042D17A031880120180214101408104422024440192402101221021180188001848422064249A04226024002AB4424282028004803242421F620E111800226810021110028224C012A6814A1261121081089820218A06800400281C081468240000C08260B3
+:803300002800A08400001D1A8004168182A1416220048A011413288138210000A01800136414141414008A0248C0812238124A1252122446810A2C28044800888A0488C622F24699C0211148122601906111480082281C28061B141A260142218211128848A0848A224621C82180120111A0128213A828428E2211281022622A10A2823044
+:8033800022824FB3041B212813C2214E334A44E11246F18141A0481E41C691812368114E411F1225B191A868388AC1811BD41CB4C1A888E01E44A1421B841A041CA4A25E111437252B8266412228368262865222C6022388E62408A286E12874B943611413A2211B121323A2612B141F2124A484304119A43C2AA6A839ABA58AA8221712C9
+:803400001D8225A144144A011AD1118E2BA884282E11E8A2B081B8D1A9821823B822F263818E232EC327382714C82BE22E822C3AE22B68238AA246A88F91062A64111C21011E3162132184A8583F14C882881CA4856A25031F12D312A584A62141A2223B231CD511A41E116AAC382E411B246AB1417A8181E222A4784E6219FAC1C12C9628
+:80348000C34A92E1C8E2B082A6462C28C2A288A823F6E49F00000021100221100221100221100200000000000080080000002400000000000000003F94076AD411511117111733173617161F34F443434EC21F1DFD41433F34EC24FC91D18EC23F39FC82C22B88DED22B991BCC1B9917188E822B222E51488E911F16F6A1A119A2888E61BB
+:803500001AD211B281FA81811F11FB81813F11AA451F38F8C1E33F38FAC3E13BEC1F28DC22F842822F2A32822B8AAA18B2A2A222B082F8142BA0445A25F1114117371F37F141433F34F54353CEC21F3DFDC3432F38DA31F891F32F2CFCD3C14AA499DE522B993BC41B9937383F18F831212E311B8C1F18F961611F1AEA18AA88CAA6651F62
+:8035800014F681A11F1AEA15CA813F31BE52F483823F1CFE82A22BEC1BEC1D822D822F22EC2AA648AAA4CA29F4A2222B22A0AA9FE90E5E511D511531111F13F362215E533F15F451413F1CFCD1D33F15F551F12B441F21B582F511511F19ED2DBDD2B591F983811B991F18E128B822EA13A7411E111F11F291319E31FAAFFB1F1DF3A13177
+:803600001F18FE81811F19FBE1E13F1D6F281F38F8E1E33F38FE63E1CAEE2CFE434337342F2ABAC2A28EEABE42B2A2B2A2AAA88A98AEA0551B51121F157271F172315E515E533F15F5C3811F19FDD1533F1DF9C3C11F1FED2EFDD3D33F12E53CBDF2F5D1C11F1EFC919317383F18F821613E711B4D1F1DA56F9E319AA7BBDAFFD1711F1CED
+:80368000F781A11F12FA91A1FEF13F3DFFC2423F34FEC3E33F28FA83E11BEC1BCC1F34F441C3EEE22BCCEAACCE422BAA2B2288AAF65F932002260114482601148A4401148A442188B28104112882281308114A02100188800814C0814001003440013482248A44022482202804FF1F0B2E410019E21211016846014A084219044820828112
+:80370000840B14004810018082042A042A84C28192421082E212A8482F262808480028224A2A028042F11EF380B51182B11122B411B242B111B24291212B9419B24219B14229F34291222F1429F242912AC4912E421CF8214216F12352D6E12265192E429AC2421B292CBD9162221B2966B291B242B181364219B24298212B84112B84223B
+:803780002B842AB4422892822A84E822E4B3052A95412A35116A91212B161331421B212B941B292BB41B212B9413B34228F24291F042B123C3912F22C5911BC2143F226D1C2E929E212E5396E122B541E222B591E622349166A2483CB9812696612B8619B2428AF642812229AA422BA42229B82294A22CF49F270080040000000080020056
+:80380000210000001880080000140000480000000000280000000021F05CAD20122122414321964128C0833042181E8219C441422400800210128162154268182A011A84E112882801869122112BA480328100208262240080042CF8B2EC202422011222183270229142194733410080A1C1284228808482A212248023818284880818296F
+:803880001121810242601888805421823082204C02828681F2A38880E2140290111CA2211B2550238AF41223621E41982D41481A849D222C84021A6422A2001C84A442227886A148181B1C121812138212219C818AC2816290822C822A94C224802838A2CF980B48A01212242004222814483400400100002800E0116222122A2181012045
+:80390000012829180182214823020010010000004840F2D8A1000012184081064082420200210048290100002824000000422100800124190420240882A048288002004248778D6012200214422B1212122CC4C119C5515882298422810662324A8824084823A1481A228683A4342D216828293212C8C280022A1C9242272846424282B8BD
+:80398000820482224222A27F850B1902222061241E21280090214E115286C242228026341220840480321248324A22810466B142020020042F14022C221482D8220C4E822E82C82282002242BF210900201101208521F442812B4110020012004A822308828044220880025E2200222332129A840800C2E02804002100002242488AF27A9F
+:803A000041006212115022008082A5242C02112282A0120021A014802881C4C300A014001230D22082082824248290221180280800428024F437F680278422018002114240C261C28021820180B1420218804822011A2222048812A82266818B440314680028A84840028A02002324C222CF130F002022057032A241A02820081800210075
+:803A80008220811202800248800200000010222C04004200480020221402004F960E5200121A042362231CA424BA84D2129482A0128A828102122A24C122002CA1611DC25A2222242588816B221CAA12682C2848410229888228048682A828222084042CF6A3FD208AA212194202248001808488C41140021880088004000000220000800D
+:803B0000214812218426068014122104008014024A02472D0012208204208222822428071222808224024A082302208226010018200400200800003022488880880400008A04DFDA0E4828488002484258822818A04842982088810C202264222212122081A28488881A02521A08002129B842480220022150224848002280FC19CA1482D0
+:803B800080022002244001214072212284042100230240C282228890621022040024400228240020048200008622088800F0FEFE60128064114002008814A89081800888800888211218480020880800485888C89A020040228888048008824210128204F0234B00400120C4211100001904482428002A14822243220248800680064882E2
+:803C0000220021200442484220084828888800008064141F850E808664142A24018046824402212021842102680042001822212C0488002014820422214810024E8280942210C22200400229084F7B4D810418181180A4241991212086C141001280010042A048808804288A028282218001A84A082188821002201882120280044A0882C2
+:803C80005F8C052213392148121902121120114103250122002002208124010080C1224200C0622800288006222094A200200624200822286F5A01860148221142190200142304288006222A044A81944222A04288E0222108601220218288244422014082084082C682002229E422048A1202AF61051C26C82111481A32416AA262AAC868
+:803D0000532ADA31859C41EAAA428880A814886AA2424A96522A2286A168E0248841228884B182A8128221212F28C4428AC28222422334222B82233C2200A06E46E128F8A5C510213E1118142CA4422411281129B44272C36311293142224A21AC62AA021A6122A8182CE42326642BA02CC84816E2294482AE843246A224882B848229AC5E
+:803D8000288A0CE0222434C266D2228828A846BF864621B61123E217B66133611CB211E41551112336D11230621A84E328A3632A16B24284F5422288622B418A032F2289AA6AC8827AA1264AAA1286C2224E228038C2242B44422F224CE2286828A82CCC42292408E8F08F6E00140040011480083C082C082C088880088880180200211021
+:803E0000020000211002000000240000000000001FE601CA96212819A16E7A1D91215AF5C1633F19A7E63F29FCC343371888FAAC6EDAE126FAB2B28AA45925A288E22AE126A418889AE92C34222CB482CC221820E224F412122B44AAAA4CAEA22B8CF0C2C28E828A88E22CB822A244EAAE884A062BA2971DA0441B621F11B321A3E61F1776
+:803E800017F161615E511F3EF613F11F36FED3E23F3CF443812EB22BDFEAA6D52EA22BBF2B4C1AE926E42AAECB6AE52694926EE22BBB1F3CBE62C6432BD91E722B3A2423EE26F6525223A4AE8AA8AACEC22B882F2CEC28A8822A622E2F2ABAC2ACEE8E822B64C8AAFE161D141F14B41155111B337AA4D717121D716E511DA33F13B7E2F7DF
+:803F000013B13F35FD13132B2A1AA8C642EE222BF329AC51AEB2216AA8555E62DE727AEC2DFDC2C32B133E722BFB4E221E521AE223F352522F23F34242AAAACCAEA22F2EBAE2FA82A22F2CB88298222F28B862A644EABE42B4E22EE62EDE8C41E11EB631F311113AA3631F177721F161716E512EA33F37F7E3733F3DF553D22F25F5A23283
+:803F80002B197AAD778E222B7B2AAC55EEC22F26B662AE757E622F23FB72C22F2DFDC2E32B7F1F23B7B2EF24F632322F21F232322F27F7727242EAAACCEAFEE2622BEE2F2CEC2C18B222E22EBC6296422BEE2B442BEE6AE82EFEEC894001002601224822482248800448808402422004288002280000884200008840022C280882248A4432
+:804000002248A24820082004BF7C03800228800400601440120190224820022A042004800424800800002C08240000004800000042100260188F3F03481B21181B214E121B2127241B212B1419B242B911F24292112B94322F3429F342912AD412A9421CE922C4812E4216F12252D6E12265192E42DAC2421B292E521B292E121B29621B67
+:804080002923B481364219B64298212B84112B84222BA4222B842229A842A82E42FFA60558681C95214E129AF242131A7242B311F242121AE234B211E22421633432343AC4112B432D112AC5112F224CB1226D1429E11DF22251D6F122121B282B521B482B5213B962B191B422B181362219F6628219A2A419B242082BA4A22BA4222BA4D8
+:804100002B4829E222F455D60082580000000000280000110000901480080000140000480000000000280000000021427F2A0730312012E2849211221826480182840080A2422123084346220240628246229482A041001682981886420290222280812884242C24A4822D82422A8124B287026A614812D024242834118E4400938A643129
+:8041800015944220012A1184068A1284162496C42B216021C024D0244914C522A042642004AA944200618400212088549448FF390D1A34B580364286385128412618C129E216181202A042282582344412218241226B822C84B411184204F0421640022942148282222CA182424881602426C2822C84C34848CF310A22800145820613A1DC
+:804200001C0082104185043224124C288222CA242A044883B4220121A0529094D014E88182881402230426820450428A24048880884424F2D9A340010018302468002A2881414802468104504882422C0400229012A0828218420088139114281811260100200800128110280882CFC8064B24121903196491181D1888A712904114114892
+:80428000898432388C062838112241222D3458A0242D6812624B2421282063222817212AA414A0412112421721424AA8848AA68216228A91E82AF48745003011A041812268821782880014248C1421B428044488422C442432363A042B1225A8382A985421282033112993112B2442144A01002C018A0428A2A028888984F8D1BB7064810F
+:8043000021021413C1149C41022219C511844820963800892213210200004268808482048028122482C11122102221C4814220AC8581161288A1282AD46B08512A84D34882622262414E2C211748142932848B41C25052222441848AA112284CE82411C8A28C11744112984284005A928246BC1892228C8222C214838302004A22328281A5
+:804380007082E886C1324F4C04008021641184002C6141222825022F2201460248308248582C8808122004192281C21A422A210C80648842004C68242800260248224A022906185FC5014A8111150345288112039018000012182002400800110060892008492201808102124582418204882001823018180000FF9F4B3151124D1236A9F9
+:804400002487238B244CF2224DA0818B2121904222211F24012C4214A881422C48B41134188A628116A424862294144A01322B8122282F897244B822612282AC210818222326B488C118C06856083F8A094168264104158401241225114132848D129AC412412848203848222800219042834832182228211A8208C3E4810428004A810642
+:8044800000802892222A048228223DF430444538140024224840A45228261898429042004420112424C4121624044218301280A4248420224202120043084E84002624249228422002129FA103008C5442460A811AC24200402228412408A18A8229847421621800122C181521A28259918225289484211A08E084884408188362858858BC
+:804500008C212C012602222CF46BDA002A012082014D42263411221502003280A241002648648190246043482E120020941800200418C8830228818212A05224002283A224898828F28E98401821E18254421742422081D2820812590A822E18008552814416082A3142811133014382D414044946992E301423B884D21812E4827186C25D
+:80458000118903444400200444482342F8953F144308402104811481458161918184000042490884C04880221108833A1824891108008480612289C1421812A301444218260A808504228A44F1D18D0000009044830184814C04001084044AA1282AC162221914C844222608193448304200800220043880826246B238144921811488123C
+:8046000008A0483F870C1A24732402408812022A644429B2142851282A54218F486281953244101201002C4411032F43886A21F04284233912100441608449240415C88888884E28128021288481F2AB890080225484D44445981452400844493344364408002011024028C8188A618C60A422228022321800002821888848828181200204
+:8046800012848308A11D37608144484C12810128134428C8D480229C1889048213B72DB18494A2A012468418A386482892148049081C94A22D4998E82948A185444480028062414088819142821FCD094E144F88E24391224E478F61712854E8414F81C4688D388B814348F416E8CD54241E48AEEC8B81B2682A226886211F52DD92B98431
+:80470000B647A4DC4BD12B154DDA48613A38764449A1C749F8282369F151841AF221C48E9C124CC7186AA2638B648CF932E826B122F45996141A24C12AD9548C26F144283B248F617561B26479119324988B516CA12BAD888846C2418F84F264149F94942318C361A19F257231F9382836F488284712232F7C28922886581AB2B7688F855C
+:8047800016E2237A88A8124F88B348847828BA5294544A21132CAC844E3AFFA202412E154166865285484B534E218D3583B9E2C41A85AFA46246B964B248F11D117FCAD344E5A198126E434D64CCB542A24A2B948E13AC7262C24A2837629E6845C332FAE924CA28AAE185E5CC94368B8C8325B1ADB514B8282259888CA162818AB788D816
+:80480000980F100441100221100221822182250121822504440024441008858458485048504188158C58C1504150411001114008801894880000BDAF243F5CA4238F81D2ADF4C749FFFDF547477F64F54745EF62F283932D723F195122AFE4F4EEB67FDAFB64662FA5F54BCD9F9A79A8B884784A7B23F36E2A12AFB4FE43C3BFEEF6266629
+:804880006F6BFE36362F61F537777D277F71F3BBBC4F53F3DCDF7F5B63AC6D25EFD9D93BF8CED89F9BFBD999C5FCD5472BEC8784AA72849418CFE9E98CAD99E7CECF6F45F243454B768D28DD4CDFDEF67F7FFF54F66D74DFD6F62E663F58F928289F18F21A12AFC4FCECE45FB8FAA6AEAFA5F5DEC9DFBE7DBEFC98A8BF947761F1E8AE5EC1
+:8049000044BF14FE7353AF6EFC3E7EAF1AFE3828AF75F53E3E2B641FB1F7ABAC4F53F3585B3F1FFFF5DF67D2EFF8FEBBE3BFDDFDF8F88F89FD8959EE5AAF86F6F8D8AAF2C45CCF45F5D8D82F8EAF99CFCEFF76A1343F56E743E64112F52127CFC7F77B7DDFC4F565679F5BFFABAD9D319FB94BF85AD8DF56F27C7AEF47F778789FFCFDAB3E
+:8049800091AF8EF5BCD89F96F12141CFA6FE6868BF37F7DB5BFF1BF7A92D8FBFFAFAEAEFA1F7127E2F25F5B3726F9BFBB8BC9FACFF9A3A7FF5F182F8BFAEF9AE9EBFDCAD99DADAC4F15D1FEFEFF97A18CFC1AD468F88F95C5C2F8EFFB8F8CFE671754BF3E3754F43F7182CDFC6F22D2FCFCFF71F7F7F46F7797FDF5BFF9B9BBF13F3999B8C
+:804A00001E18AFA5FDFFB5CFC9F9BCBEAF8BFFFDFFFFDEFDEE5CCFEBFF69691F36F46EEECFC7F7FB7BBFBBFCBFCBBF7BFDFEFEAF2BF85F782F69FB5757BF2BF3A6A9AFCBF95DFEBFBDFF727A6FCBFFDBFAFFFAFFEAF88F8FFFD1511F14F5481A6FE6F1EAD8CFC3EF86F1FC9C5E58EED88F8BF5ECEEFFCF0D69011884407824C148432221EC
+:804A8000E2810484441381C248811B4920A124A0242094114A92124A921242184221800129012AE181041220099A041A44C448281A3448828324F883CD100241116115045014190440014604441048482442040044248200801202002722001042D822E888820840480289028180221268325FFF0F4D421F41523C1F417248F21124A72431
+:804B00001D24AF24D141F24A9219F24A9251AF343924AF3439242F347924D852F924485CF9A44A1CF8264A16F5264A96F5244A96D5A4E449F2244A1F49F224421F49522C1F49326C1FC9324E1F48B24ED141B26A9921AB9451AF443924AB9443B24A792498924F8284F9244A1F78014FA2E441762C3311C3F611648B141F4132441D288FD4
+:804B800044D141B248B315F2488526F8481543E35443E8543B225CB12785B124EC51E2226C595F2264194D431E214F2234194FB2B591D434B411726CF11148E7141B28ED1119F666911D44AF149B212F543924AB1443734A7424D842F1364829F9245ACF7B02848248000000008084020000001002180000440014008480040000004004C2
+:804C00002800000000001F144AA14128004C64122921828504929A44C844608426B4244424213224C4214352822F14614122B014A6218B14221E269220018842B04C58488490111032822086E988F22214222684F2F88C402468185941D384C1614341820211144C34131D442158A0122242481181481822C8418741904843021C24421197
+:804C8000E22102448122421890884004AC416866808C5818884F320C1E44CA025143343E2A91344A2114341172C4794565841848182C81A4242721848E64C011431144B841439838A0612F850A18388244818D2447841270A8049082E082A4848C6A282826E829F2965800C0811214112714408202821C880448214B424C322428224455CD
+:804D0000082483B122242C6241415A924428450134400242A08410081C0125048D12C036F042348244F015BAA012002841108802484E1200482440044482812200812A44044241302428411222002822008C049608122008000082892801F03B3D4064122E14442AE151341289F118441782A81642682144C698A24688EC24C225808464B3
+:804D800022818B2421008D2220CC628A241C043044935242885C0221800142861822C8C81A9222148A94E8FEAC80024C426443561268834604721825481294884938484B488A342522008422AC020026382222412B4900004110E688C424888001008220E88824B222981142847F580E49C121122840250116F82841822120052934220012
+:804E00002C1208484828A9C44480140441C84A02E24480A2248D2100118D1200128242842100928180A84A6FE903442304230128002D4C7022E48384136A8528821022042311A114824C0A29311100891281921420B1420BC0248F4A0490244C03A24412444244401448889128CFB84F82E424322830464561C41414254415821204801407
+:804E8000149428431102DC438A5812C1830225C8421D22409A2422430400182182818748A021A90889BC24A82481002422189F6B0118188062810023A121421A1401346021160836C8128228808802282441814A2181282882043012309800848084142814B422219118E200C048E06D4FE26481032351844972447812E1C462441C9648DA
+:804F000012453B182E128E48413038211A12B128E8A8922423321612A41242A2232AA324182F4118021E2489088618B498263418A94494D26AA152CA42048428848DF22008A382B2421101D032012D121B2124200418D04A83C4940059044041DA580283E4A20140148622220186F86412008C028038841847824C58848110088B1422FD72
+:804F800019802444341458A0414863011281284044B2140490442C0224004848418004538E0120080090280042B0942688814404208408A049812AF147D54002848420149214844C140A231182989182904211421430A18C4402812A44840188133944244344126824441444244414004146420624818488412941B84B0A82002880044809
+:805000004820140227448C04304888286014880012A024212484242248224200810042228008A08484188C41282304188E18A0485F2706141B2116141318411101994231194211291154848031888881841E4282002142B08484C145828214247084420423022142258852322482A085468441066028244F4A038041C848100800800180FF
+:80508000C9848312889348228504480021488542A412826048428308802104001E4480C1A8824482188218102814489888289F1C0D120000211E4281253422844644146815611024814402304AA9A482888283324A7028441B0884400828848C14C848840036A834AE48204484D428014112E0B4062C0410C218002024098219018C228477
+:805100004801816A4808205821811112445129141284143414414C08002119011A3418290450422768248E1467128604005FC404128210041E828582425828434822C88A0048488C485484228908104AC824C121211183020021008C820276084E88303840284248080012401178860284441C044E81AD2400161146C224814942D2280429
+:80518000100200428021840800AC053C044145081C04C88002C0144064282C4B8148244182148812029DBC206448C7C1421AA1C11A311816D188B9199188118D88825F447482AC428DC84D4CCFC2568989A8548E425E498354E46FC262468F44F517E287C4274C444D8400448764224AE68312E88458582E389A844142F8948C4B352D52A5
+:805200007D12184F81E831A8269DD5141E122F1A05C5FD88438D21BF2444F348564D652D822F1491B26F5CF12E188399C84E1129B169287C62612421AB8423DA827448A144257A8242B922CC518B48464214E884A862454AF14E521F24F484521A6F288726AF4CE84AF78E828B5448878526088E149488CFFE04192441B322618427E4B08D
+:8052800046568627224D48ACF21C42241F657C223A54C5228DC282E088F4812A842424AA7218B214F4148966F484328CB86418F1164216758E8298288342847118648E8B8179E9A1F45A814C1152624B888F44F49E8883B688D188F17E6410011110811101131174110811441A448144214121085018501840018581181814881801848873
+:80530000151852812115181211528140080010088110F8C63B141573475D4D7CD1BAF12F2721AFB2F34A535F32B242F4F3F1BF1FFD4E48D794CF1FFF5DDDDFF6D61374247D24B7A14AF183C819E426F643437FF4F415514FA7F783872FA155424FCCF481811557E7A57386B6C2D433522B777237117D96AF37F563419D817F24F8CED16F8B
+:8053800021F942844F6CF8C6863FABFB96944F42628826FABF22E025F51755D5FC1417AFB5F56F67BFB4F56A7BAFF4F53337BFF9F93A32AFADFFDFDBAF85F9F4FD7F15FD7C7E2F81F5A4AD4F9CFCE8E917149FACDDA3F469EB3F94F4646E6F43F7686A7F58F8585E25F4C948CFCCFC44467F4155FC6768EFCEF62F27BF86F664448F84F4E5
+:805400001F96AFFFB5C2F448EA7F25F15E5B6F61F192D22F28F8C6CE7FEBFF929AEFC2A3192F83D39C0B5E427D46A5F71E149FA5F53C3E3F35F42A2ABF27F36E22BFF5B5EAFEDAF2EF84F49D99DFCADFFEF52E6E2B9DD7C45FC8FCABE88EC98ED986F82BAB2D42EFE2F4361C3F93F3D65C6FB9F592CC3E284FCAF684467D46E5F78F87FFB8
+:80548000F4F64D64EF54F42C24CFE5F45CD4BF477D28F2CAE2BD82AF3DFDDED62F2DF9EAAAEF66F27E3EAF89F926B44FC1E98AB9DE071F35F51716EFF1F11E1C9FA5F17F37AFA5F16A2AFFE7F36F2FAFADFD6A62BFB8F88F8FAFC5F9E5FCEFF4F52F6FAF8DFD6D6C5FCAFEA8E99F98FC88CB2FACF46A6ABFB4F46F6FEFC5F56969E7C8EFF2
+:80550000EDF59AECAF8FFEA46C5F78F41716E5FD8D8DDFF6F66D64EFF6F26E2CD7F4CF45F9DBD88FA8F1DBDBBFA9F9DADBEFE5F5D2D2EFEEFA663E6FE6E289F9AEBCCF69F928387F410A00490180041A242249E288048E48608924960848202824280410E24482219494422901889014908220A241A048A049249A4422091E48249A041067
+:80558000083F9E0F8250241608848502814421124245981249C4848C3448228D8400800881490441122128884440140225814221412141C128341234124443181A14628188228DF1E032F4112487321F417248F19124EF14F11124EF14F11124AF14D981F24A9153F14A955B42AF14B935F44291578A2D915F82C4915FA2C4A17FA264119D
+:805600005FA264193FA264594DCA9E24ACF491243CFC912485F391248F24F89124A7241F48F24A121D24AF249921AB9451AB9443B24A3924AB944782AB944F82B448F9244AC79B7024A941EF32E441726C43F46C111AD21EA1612F56C82CAF14AB21AF74B921F448B45B432F447AA5B8427127D818DB27D518FB25C21EA15FA27498F12118
+:80568000428F59D234FC98252E4256CC8B9E643CF4912C4F24F8916847241F88F244121D288F64D941A2B41D282F44F92448AB9441ABB44782ABB42782AF44BBA4F126770000008200000000000000002100400800001400848004280000000028000000825012F0BCB8D01684D39222021885028C242715DA81C11CC61811D4C1648C11C8
+:8057000084460489322848212144AB414C24843A120022814958841E892661814100141A38188B181280E24442088CA128883FF20B6048411283D582825D241D846182462208D0222498122128448A1108302414424857226082C449026B414441B01304C3011822A88111803428130200B60816A1426507467174D2488263A1188B142587
+:8057800074C568464129B42A791884D41214F24A112548512412A02122472A8014746AC2441F8442982285A2414A427C847251CC9936896141284B82841189E18D92181C2282061E221668112B29AFEE0E614001428C22082522A19484149088C084414A2812B884144818884411229415008E2449014144000041840010810920024044D6
+:805800009888808AF411540000800118406288248001A3E48904001E4800904142210044002280018810022D8140024182001C0124128B84000012890A7F6407610089425328448745893411115214895121001E8281881784180044816F21245122105442002682A4211682AA61D04111281212F1825284278111884C91928AA481100847
+:8058800082CFE1030000150241567C4862911118127049C2984012289148004242D02241121442020010021092117011140A21112314931A1129618C218882108888B8884E12046082128522018008231471180242A081608C1112404154824C84011094242021226C23182AB88206004922088AC118008816A4814212806182F07AE32043
+:8059000027044444111951824212B51411D14111240110045221D0281494A84123A4B400304121E44150844B81802141022148621AC212C3210AA0212A5182488B4118DF2F08314A9228002122241D28818644AA2920011289A2414C312121AAA112814D811100451A24D1832275210828421418001081F222181129420421608441811237
+:80598000162A92586FAD0D0012004312080020012184259444800845C8884454001864008911088608182192212092446A81040000800112240088407469062716288B21414473522110C21A99D818D122C91116DC428195284B1843C11C89B814485CC243621169A4A1C5D284911828A3CD21642847892585014904C0228C662240761827
+:805A0000A62960811889721268854E1885F4EC2B800100008B1284871600401104400442E01402281B4250814424420024830444290120091A82A161273480914118120080C42612208882F4DB782061810042848125682418C018C01441889210C4184CC8154301D016211404808234882D22102401C0242311088009888298A042164262
+:805A8000028022911481EFE94D2102848222144842403888219B18D08134414881843041844004105412561408830120C421266812421C011489480314813C0484C048822210822282F28AE61012182401430818301290115131118CC82AE081C811181C8108101213281894121212212880584883498232148902C08900A0814A08102455
+:805B0000230C001F2B07484CC44151812444156C816011230200004C11514200CD21812718C21E6413544242241082A48146189291228848218021048986838426812882180821006A0A8200441092221420220760812444496118118082886861414881463881237842412452142800008002889122841882181904208142424488081FE6
+:805B80002D09554811420B111150142068848A0181100882842450228001A0182118121028048C7112022001890282188288112008502281808218CA828F9E0D42412870581108E08411490884C014801448048890129964845418412A44084E289AC4181E482714C82043011129A32180120200241A04D88218185828BF420E0015485882
+:805C00003400401514815224410086B11284119113411120020012290180542100100A8424000022181A044190842884380020E19E0945C812498405449412002254D01802A1444128008121E05419888801130425428121688160218800A0414084C1248096181A1A084038882121F0819C344D448E1685711DD71454928D4A5D111F514D
+:805C80007411EC3452915417513C94822A71126851C423CF144F116851235847322F81249F4A24A9B312D892A1944812318B68183018881A43A4128781284219A1782F48F822122A88B22641E84188FA68A33021C351C58C65A185D2517218189C289F81B87AB31CD88A911C53F858858DD117888D11148D8822CD421D6E8C497441D6564A
+:805D0000F4911A2F1165C4181F6294685F3201873A2A7924C1221D2DA36238929D896AF1C141921EC83AE88121D88E2193481A8926F24D91A0141D48290293564521484E1A29A11AF0811A4115DC88F4844A4594BC33D1617915F1811E844F14E814F44758CF18C1924684E221F4C86A52272B522FAEE9C1217199B26211E28917A9348A17
+:805D8000B282EA218975E824F4484228CAD2A8E9289A228C7118F28EE4244A42828281022880120221102251122221A2212A14A84A812220021B8244400444221504158C584162152456412334812111214318120443084B419044E0BE45B312F333383F43F325277FD4F62D2D9F22F223217F34F467625FA2F3A2AAAFE85846ED5A6F7AB9
+:805E0000F6BFB6BFD7F72E1EFFA3F3B7F29F86A6554F48FA8DAFAFB25332FF82F2782857565E738FA2F2BEAE6FECFC3B332F715156FFCAFA2163AFD4F47677FFE5F543198FBCFD54571B881FA6D4235475DF9DFD2CAA2F68F976D6AFA1F9EAE36FCAFBDCFCCF8DFF786ADF6E4CF151733F23F71D1FFFD1F15D7DDFD2527F75F557533F27A2
+:805E8000F67B6F2F2BEB7B5A666F61F78EC7DFA9F9EEEEEFEAF81F195F28FCEBE98F8FFE9DBF7F78FE2BEBBFB3F24F4BEF89F9E3814F55D7FCF1BEEE2F39FD777E35F65717AF9BFAF5F6BFE9F92727AF96F6EDAEBFA8F93537CFFCFF2B8B2DF745F6DD89CFAFFA92966F66FC3E9EFFEEFED2FACFC5F79CBACFEAFBCEF4141F17F41172D516
+:805F0000F415167F56F44D6957F46FD4F16E73F19FEAF92A2A8FA87B16F44C5F7F6DFD94DFBFD7E5E8FB9F9DDFCCD99BB4B1FB48588FAEF84ACA8FE7F64D48DF99F8394B8FB1F32C2FCFEBDBA2F293E85F21B296EF19F9B192FD2A6F21F35A1BBF83F79D9C2B917CB8E2EE1CFA43859FF1B8A2FBECFA6F67F596B47E722F86F7BABCBEB4D1
+:805F80002CF1B81F343F57B413F32F2FFFD1F16D4DDFB4F66F2FE7C4EF37F713129FBFBF32F39CB2E741EFE7F5DFD4CFBBFF7B55BFD8FB9D9DDFDFFB2F791F19F9485A1F7EF8686F8FF1D4BDF4BFF9DFF3F5587B8FA1F1F8FA5F64F6D2F26D236F31F79F9C8FAFF81E2B6F35F75F1C8FA2F69E9D2F17FF49FC9F22B3C7FD42C49FF5BCE207
+:80600000FFECFA2F26F4B8B88FAEFE363CAFC7F6F8FC85FADB98D014011C4158148C54141E4845E189048414845486081A546811441341348146143348184298812B1283B42221F42291A092843C012E1116A8820012A048E089846289852288229828823F5D0427384022511860121122116212882034114E244588389528860845885257
+:80608000840040C82441812D82446048652118A4211886541482148E2814400464C024848F4428C11422DFD7032CF4112485F211248B141F41324A1D24AB141D24AB9419B24A19B54A3924AF1439A42F147924F84A914F8AF448914FA2C4814FA264114FA264192ECA96C54A9E242E4A1F49C2421F4952281FC9B268F89164A7261F48F648
+:806100004A121F48F64A9219F64A9253F84A9243B24A39A42B94478229F92448984FAAF48679E022F4114CCF227411B4687111344A1D24AB141D24AF449921AF449B25AB8443F24A9143F842B14782AD9167888DB16F22C1814DDA1EA1ACA4212ECA9645EB49E2B2F4912CACF49164F0116CAB8217C9A72217488D121FC9D268D841F248DA
+:80618000B25B298724439298439A1A478229F926482B944FAAF1B3AA4008000000400844800200000010021800000040010080840100000044000000000025011FB24D4201C4102241A1145618648C80088A81011572111AA52C18161844522112258AE1110421B28964214E2243D29218214248A82847842B218E2111C2C1248C6822A492
+:80620000288B4292122E14F0E12E00274A1611C511251C1238222F22A121873284E551828D211384024612492C02FB8249221211592ED9215EA22447189230148D121692152C518418550821AD12D01461448341941127414287424601CFB20E1163941834122911E224E1243324CBD283322A552AC1391CC421347CE4241A8461615D22AA
+:806280008E242F211218D1C215F721C28E3A848F18B1127442D658293132E321B12C68C1CD314B8225B16A5184122DCC22A5867222E429E442C11512FFDE0D2128454144414C4118281112C182908800901A501816982890881150218311311821C042442A88021508118502460214C082400589011CE18104844A023D4B0010A22118608F
+:806300002220227128012008222111291181020050821211282C0143022088012621B1248104D02231118044214821C826402488223148482F1F4293351AD2140B892242311844E31832D1115859E899E4228168448AB2C4011B6928483062122914A442218AA121101662C92542038F21829121241729004810A2582CB6189212490422F2
+:80638000F0833D245CA3128E34128C022884495224998201124CE892ED2142A141142A0C5A084224223422412AC424182282001D14212D36200129439191108144034B816843A11849849148247E850024142818281582419298601C148A4441022C48A42843011C824242882581C41224808841D224018C8A412134282341911221290479
+:8064000082802816722A02228082F4B91290124304AA41C428704451C2242624661200102A0428816951411314968200004430812127814B5249958400604824160185242181C444434A8C252389384240F41CCE406114254424111221214204182C42542C22439118184014021822C81242215870281285410A2846E2910889014018686D
+:806480004129F44822C9018054848430182B28412E1A3FE10C2622021C084321021C041341319A425800C02C20882211084C22064130124A21012A042160221A48A6521A42D42421281242022901241028044A02FFF14D3321490243C3121628D224455D242AE1369118488925721418684222C9684117411558424C262414A64163B1486D
+:80650000D32629B12235544C43349A828D164CAC126D196C21B812B242715492443E8460A18C92188B498210FCD1B2E02811111611C42414116240053C184406211A94180022808412A22100000000272280982129012A0140981848854248028744498421082AE44422F2514F30111C12011542140111008A143712008A012344241882D7
+:8065800041C423200400144082092008001211001687B442081686B81208320028C284E0FC0626820427826170420846322882221A4491842D24803618218011084B48128992C16C66422248412CA4421684022566444A2A44F4422400121345410141484D28C562844160827FEA0382008501280024648C010022100C002049820433241E
+:806600008161112041A2412941A9211604204215A6141AB22291948A8188048694926CC118284B8400644FE3430244914B416912031931131842142C48D412012144884A321290812C0226C2815582E4114424210843C1421412260800290282D04214C688100242200883F11282F01D9F2011010018000082214412C0242121006100209D
+:8066800088042440C4424820622450811118001A061224164581441204106223005084145F790B660829A2121C1441117928048B162E181C6888C82588DB21843212880016A61224A8421F21823626200840743282284224149124200244211E244260412443C824224CB222096E980050241118837418024AC14840C3182C64814A41B908
+:806700001CD814C824941CB2430146890810081E81858251142615014C522516C383823C081C04441400832484081800212E846F3F0441864208828722906830342183018C080016081120240440611100184212421D421842812D34A0431A1214622443C44190A44828448829028941B442819458CB8650A243E242041E288858242260A6
+:806780002244481C6212182C26A2211218112388868182B814021180581449426282882C041184321AC48100441228122400103212702602FF5D0736E318629247231E87A146913B8B162B12AB231B4AFF413558AD94AD26289CD21A7A33061B824A69252F22662229E242D9A2E745B25125F146124D8116F424563CB11552226F16E51E65
+:806800007143E422F4542275F542469A7486F1485124C3A8182F66428C93188AE53613F6CF9C90566768859219F3F644AA3F81C5492F417454E888E58161182FC8F8F1231AB14CB918FC145249D384C84195D14424EC1447B11424F12611474A4E9A1A68667F86A625FB832F22A1221992434D514F4CC1C14A1D91124C6C214F1C42D264B7
+:8068800088B12CF81E862726C74583C8A47E9E34281B427D242F948273311148D231D268E224D83AE224D831014376B2FB6616A2422F19B112E129A4221D8D33B87971417361D521C423488E443B713C11E3886248D74116F414AABE223B212B123E224F19F141821B174D8429F1528423A5C12F2163824F4826F2148C8F83F4151A0045A9
+:806900000114842A8914C44880048224001160884C42088608844088528142848008002190180040030014502848244824001220081941F3E347157F295FF38DA23F24764DF5642547626F43F3E2984E81AF46BDC9FC888AAFA7F65B695F72F6152FAFAA5AAB8F97E781F1EFAFEFE2D28BE1A4F65E4EEFF5F73A7A2B7BCFC8FC94544F48A2
+:80698000F61D65F04232EFC959CFA57242FAC292AE261B156F2452263F3DF8DA9FBF9CF8D1F18FC9F992923E528F29B9A6F8DAD2CBD44ADC66F4EB1B343F75D553F425277F73B24EF656F267D54FF6F25B5B6FC7F7E8BC7EA2AF45FE8392BFBCFF6262FFD1F5ADE59E88CFEA5A672BFE8ED8DFFBDF66F643C11FA4F45E5F67715F33F5B33A
+:806A000073EFD8FC94544F78F4365C2E461F77F696947F61F55B272FE4F2D6D62F68F653726D322F35F482922F2E7B43D1B9B192E929F9F492EF2AF9A682EF4CBD6EFB5CECCF6BEF8549F372636F5256FD75D76EF2476F9F35F533337F55F5BEBC2FEC5D2AABFCDF1DFD9D9BAFA7F6D4DC5F52F78D976FEABAA1FA63618F19F9E5BF3F7E63
+:806A8000FA61A2BF23F2366E6F23F13276FFCBF3C4872F29F914767FF1F656227F39FF96967D24EF23F5E7BA2F6EFBE1271F61F136262F41F1C3832F39FF82832F1DFD9C9C4BC93E548F697B3EFA5E58EF84B5C4FD24542F1E49F3E2637F52F22D2FFFE3F3EE6E6FF5F75A4BBFB2F25F5DCFCAFBE8FAAF23B39ED915F8FDDB2F26F69EDC47
+:806B00001F13F7D8D26FEEFEABB82B668BDD5FFEFFABEF3F36F63B336FE3F77E7B7F73F6BF6F6F6DFCD2827F65F635715F75F715776F69F87F3AFF77F4773D1F4DFBC1373F66F7F6F63F2CFDC353BFBCFFCA8BEFFCFD16966F4DF8F4966F6BFBBEAAEF8DFF6C78CF8DEF4AFF3932D0160141842D1348341E48419A049648E289446788F000
+:806B80009148449A041301824C1221941210A3246929B42421A412F02681702281E43228E12228492149A249149220D92822B848229928F019F200114110CA240060C12314314220648146164114942282464122045021445814002D820092000029892404214810410624122412006018150C4D421F41523A1F417268F11124A3D441B68F
+:806C00004AD141B64AB981F64A9251AB9443F24A9143FA429147822DB54F8AC4914FA2C4814FA264115FA2641D4FA26459ACE449C2CA1F49D224F49124A5F29124C3F49124E7241F48B24ED141B24A9921AF2419F54A9243F24A9643F2429447822D944F8AC4944FA2E4E1064FA2E441F42842162454C1E392612F16D1C1F42A941F48B468
+:806C80004A1BB54A1BF44AB143F842B1412F54BB86C4316F22C5814DD21EA14D42DA622296C5431E24BCFC912C481F89C6421F4822B491324A8E248B1419F24A9628AF441B95B84B4289A9424A793498826F8AA4946FA2F53B5F402808000000000000100400000018000000880040080000000040042800000000009F3704437111521C3E
+:806D00006D2185411918E1C14649022181355281141189944583084113622411534115024981216122322117211C3218809242111051388954128446646141478B242482412283D83E032632848068221684311C1198288C1168154624A421812621521472484289622422282842998862628F4154418E524362A153882585C1282D4182B0
+:806D80004A1881E448911268423046478162A24591243F5F0B12274DB57422042D1C8CD11851148D1141872183925833D418144159814651254A33443E418D42137C124407428E14112E162E1A93C34276D12A53494836227121924111C117241B428331464A22B484D242D4A2612228284F89F248FC302411308187121140B468216822FC
+:806E000000116480034A322489080028C021222850182A01494494924414921848428420E83448084388311425648110A484434804BE67004485022212001011020042002014048041624424000000009200411608841031280000000000102208483F8B0B18130143A14122278211853124821248154288B1194884881285044B42826068
+:806E8000418062221A28A25283448431168849021A188AC4112688C12188450290522229922C902C44C3F2A29300188502582827821049030014230416094241148061248604230128800858818A012544B41C028F2801C0112210014502002C825248214160428FF6011854C0542812400149C2841842C028128241822844483024524044
+:806F00000480321222284845882181880440C8418C42684122888042220520028B284446F827CC200112453814C44C14148481021012C4142041287214080080024116080021002212E141CC014C0228C3A228A0148480C288308881124484C3F88AE72002408222222101108141010043612200200146280200430222220010047012020D
+:806F80002A041260250000504200008018042F8F4D024400102302124280028248008061414AA224224445423C24218002A0214800000000004008308230884218200400E0230E290312459A14F32291141260121234884904438112322449A724C04C22E32252424F8221022C8281048051624C3114284C022287422608528308A6B48842
+:807000008431888118403488CFC508400420024306411A0428003014209118128112284004440080022800430281108A0412A041290824404208004830848141BFD30B200100002004001800410000000028848524022A14080000000084000088820000008122008822CFCE05002082014800208224042022044244424890244141C048CE
+:80708000100818524A81010084180022484822A084100830288888402812F4E8AB00128004002004260458800242002024044112818181C04884A014581608008C8401000000429028008C22080028227D83004AA4446218800400457444B424A22222260480144402A0131E349614A44280021901508885B848A4444240082242424DA4C8
+:8071000047484B2A2A220200848A4242286841BFA9072001002001000000484200488400000022000000000000008120040000480000000081D90C85C44842581004004044C42422288004124450A29012122A298808284011414148C8484248802121024014C4242228008004502290122F880884800480012200504480020044200410CF
+:8071800042C8188008002242140084800500000040042800480084821002A7AC004A0400000040042A0200000000A011000040080040085A0400000040042A020000200481003F6C02001200002200000042200440080000000000000000000000000000424800004008F085A210B848044200000041B02402220040084042A211202128E6
+:80720000082200111181B04884210400004014B824022220240842882424D099028484484A04121800404444A4242A02001248002121181A81888804001414848CC148484A0441200200448584A62242008184002121EFE70E808101220000000000420042400810042222220000000018000084000000000000104804418F5E04181084A0
+:807280000100000000001800001048042810080022000000002800000000000080040041B0AC09120018001828000000424248448C018400C180C2282280020000A0111A01800100000042424248A0444E488400F065E3001A4104901400000000481800428F840485081008220020220400120000108802001008800400818A181814F822
+:80730000A33410041A2181222121020000428024041A44041004222200488382020000008042C41822480081004820844808508410B4780767222F21E222B112219112C0122582E8317111A198967948E818E48424D49114815489814F847448F424444B244F4222C224805244412E2467222B212AB112A1812B98C0922582E8317111B1BD
+:807380008868998F84B888F44848428C04488558484E48EF16036F2252242A2123118281512229C8111B1119E88938188D414242941D4148C485C8488F4414BC44326422442828444584F22622242A21A38123A818182592829CB11191818E88818B48832C448884445C888CF4AC9F0000000000000000000000000000000000000000005A
+:80740000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000AE
+:807480000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000002E
+:8075000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000AD
+:80758000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000000000000100400E7D4000000000000000000000000009B
+:807600000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000AC
+:8076800000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000002C
+:80770000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000AB
+:807780000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000000000000100400E7D4000000000099
+:8078000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000AA
+:80788000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE002A
+:807900000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FA7
+:80798000FE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000000000000100454
+:807A000000E7D4000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000002A
+:807A80000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000028
+:807B000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000A7
+:807B8000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000000000000027
+:807C0000000000000000100400E7D4000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000014
+:807C800000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000026
+:807D0000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000A5
+:807D80000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000025
+:807E00000000000000000000000000000000100400E7D4000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000012
+:807E8000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000024
+:807F00000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000A3
+:807F800000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000023
+:8080000000000000000000000000000000000000000000000000100400E7D4000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000010
+:808080000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0022
+:8081000000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE4B0
+:808180000F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000000000000000004
+:80820000FFE40F000000000000000000000000000000000000000000000000000000100400E7D4000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000E
+:808280000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000020
+:8083000000000000FFE40F000000000000000000000000000000000000000000000000000000100400E7D4000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000000000000000000D
+:80838000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000001F
+:808400000000000000000000FFE40F000000000000000000000000000000000000000000000000000000100400E7D40000484915A41248480020420448001E24684A22011280011018941889018142A0218084410822A0480022E044828202440000842C0E426818004846B42491244B2443229214302443C2246E148418831198588180F9
+:808480002481C1148C8194448C84448834488C413848488CC6486222282243180443449424222A688E8C688882DF460900180046C4141E240000286042006828588C054008800100124842009048208481048128880000438432244100C08840F85ADA004A02A0410020624428800180C424901C2830188904800412C14440440848208399
+:8085000011688481842220220282004304003068908882CFB70F480042418004484024020028C014002800122001800148008304000000680000282244220028800A00F09587000000208244840210140444000000180000008C419818008148100800808484044004000026048800E0EF0300000000008004000000000000000000421011
+:8085800004008002000000000000200100002B3A30512820220142901142282F84A214586082324E2140880691280000168804122881284C8141149818A0681029A54225886C848842006828C024A0825F8F4B0210C1161316981185044C2204108411044C014982E182215184248362248B21448C813544184200419124102491284A922A
+:8086000028882800424B125048844443880446F8B5F7904122B014B253024A113C11422CE682848521C12C2AE115022684C7389961C22480E482618183A4411E442881284C61418511D882019A163849522AD482A2484688E84401A02449024C028BC2BF9D01290114008414004C02004904004140080000260821441800124800100440E8
+:808680000428228C8208004222508481C0844800EFD40F2190144424441812423048206481002524C2111301102802801252186924048021015034190210548100181A34480050228031244C8984B224F4E28580511427828D1213E121C2222E4826C21821273118158274116813ED9124422322214368284623458D8111FA26188F24E28E
+:808700004488A41645028D122287312E114A2142C848D02171183294124B2C8C634A25C8688E388A041F570A234104182361221227815082A4182195021311C118008031380090228581711214B2240141483844442A01124111222024C4182480512689E22821E2C8828982F6B9260014E9435C214C21222686314211521842812F42D17A
+:8087800043CA1127152302C028822D412C45448974481268A65A2821444213392295E212B11804848C817141921849096A886142C11AB428841CF433F29021705814041681711211E242C43C18264A2244A8214FA10248D04262822601848B412311C12428400216CC2448441C42341810084B1416448113081283424486A6122324042F9A
+:80880000680800662101509441144044A812440044428741444421800160184221A41890398C6282181E44408414444282058524A424808484011800A90A2CF1C11FC01218302150C2800240C122428001001CC2228A911816012C462482228241A8140014212021682222484114002658821883C1220088100212C8AF974A3111188D14E8
+:808880004D11D09651211114436682818B14B04241981476DE81732462412E188D31222642D481E5221561223858AC83D234B31482C1145CE824923C2C54241C85216116563818482C464834942926E28C2225FCDA6F602260122800C9E14112021CA121251204800244488841102144881282D28411084008400428410084C04481842105
+:808900009018123800901200F055DC142442403218E4105282202172114804818410088114A0848184234118210616C222208802504283288131211214248416048501004228222280E4290725815128191284C1241911143C8882248398144024C1124431841426084445011005419024444D828182884902412D187140C4124263C41481
+:8089800018AD24D0420125544881F041EA10C12600372894856482588C22642151116122701812CC28302400840043542244225B241228124C81012C0124850100A30184908228924C14441804CC01AFA846020081802218564118100190284141A2002E128641283881140018301184008C022AA8C1102102218092213D24412D310042AA
+:808A0000290121A41042F887E200004A0124840000A4121068811648428241011001260230119185414AC21820028011044C074C644270280240212102800452A0129FEC0E84318D240020331122442200201185822212911889022F818201168102281218008280D2630438003031182031814228D042042944024528085FC24B8122815C
+:808A800061124C3114001280C884D0C201880018860444448002441611088210488402C60888E081028D1124112144C02810028012280218845DE500E01211020022142232228110C2220028280081211100172100430249084C219114214110C428490212CD21A041C0224C4282818302122C42F495E44068224C441419A214C542284849
+:808B0000584BA02142002508169822D012022AC14888442C881188E21182011518822434128840C222A01414114D212180814292440021B0530EE021E241734254C387116289D18E21C8488B18C52B215458899118121EAA33D299484B312189B4157124C1131D1883C9223AE142C12CB84E9435929660231F24F321112367224797979205
+:808B80006FF1D824641AF044286686B16434224B11A88724EF2105159115255239CF217126F81A3837A1684CF1A8A22CB813E12881911427222E82A9D144A11190258B2E8D21265F421F2451822F46E2827368518216A8891216E24868692F81BA8853C8ACC217183D36A0548D14E023B182A1116B452450821826F86692342D222B42C783
+:808C0000923A42C11645F624251751CF82A2111F9202E57D3EEC825AC41E284FA2722AD198F22624812F81688840711834914551514FC1E16892264B124772AF8A2281F425144443731A94253F5112F812321137143FE192263E46212E26AD284D2C8D64C7816371BE0F0090140040024008124C48C881845C28810889082008000041104A
+:808C8000061011140111411004000000440040042041F48ED114243FA352BB3D26357218B252B425F22325AAFA94923C7A8A7686B2C456647F7BABA88A7821E928B8A8AA883F18A88A6E723D136F62E238588B8FD958882F487A28F8B8B11EB32DAA7F58F885851DA19EA41F34F421251F14C5246F865699AE973F61F113314341F2625252
+:808D00002B148548F26848AAF82E2AC75540F2336237326F61731252EAEFC4D4F4F22B3D8F49F9B8B61738BFF97B82B2C8F6B5B7FF7BAB32F0AA982B9BEFC2028BBB8E88CFEEDE66F126A6AFA8F82A284FCBD9B9F38EAC87C2AEB91EB77F79FF86866F69F91A88DFDBB958F525254F35F51536AF86F729299FB9DFFBD4117234E425F46281
+:808D8000662F44D4CCF62C28EFC6F4A494CFC3F325B924111F2154DB3F62F21B12AF21F14A4A5FC2F22B298F4ADA48C8A2AF29D36EF95C541F7AFA36347D3557D25FFAD893322A228A618A9FD6DE71F126266F69791AFCB8AC85FDA2A685F894BC1F61F3A6E42F28F896968FC1F298BC1F76F621372F16F71214AFE4D78AF3CAFAEFE5F56C
+:808E000016126F21F144526B46EFA5716E5E8E6F46E68AFB2C3A1F394BF323231F23F32F1F7F73731AFB1E1EEFE7D7F5F23B3D8F4BBB38FBA123EFB9D9EEB86AF43436FF5BFBABB19792D7F22F8AFAAC8C4F5AF828B82EA8CFC6FE15176F6BF29E9EFFC3F2BC8DCFF2F2BEBE87C34F4BFB31366F6BFB97976F69F91D2DDFDBFB5C74CF638E
+:808E8000B376F73634AFA4F71B3BAFBDFD1F1E7F33F136166F67F56666EFE5F16E2CEF82F26C6CAAFB2C3EEFBE0A002F12012543A812841492264248220117814C628128803281819028114421109228228163022E11D014092A012E12603212264348C34834C0224824902812005F2B07008502002522018E2824111884448011D122487E
+:808F0000D818012008004931182548812111042C11512450181140880100188021011280042240F3639DD024F4112485F2112483F61124A7341D24AB141D64AB941F81B64A19F54A954782AF147934F842914782AD914F82E414F9A44A1CF8244A87154FA2641D2E4AD6C54A9E242D4A1F49C2421F4952281F497248F29124A3F48124EBCB
+:808F8000141D24AB9419B24A3985AF4479A4B84A7924F84294478229F934484E944FA2F43EBAF0224A1B418D421B21C3E641521A19961819F642941F89F64A241B282F14F1A4484E1136F84281A6D81291424EB17FAAA5144FA2EC15DAA5A4254FA268554D8B1E25ACFC112C4DC21FC9D628F41124CF24F81124EB841F48961A19D64AB901
+:8090000081F64A3413B84233A4AF44092B9443F242942F8BB442D824F5BB6400440000000000820000000081008800000040010000001008004004280000000022D09409301110D14814410A810084814603A460439024960C382414281088C1928C85018144602218263C42266384266881288001412001004382A24158E0F5092428113F
+:80908000272132C921713182C11200182D188711111FA291883AC4492362821098288015C44381448724284C942260112622E1819818980010088200C48B21C125044B144021F267CF004A4202A375114C1823211146782832411834122FC1A2125D684FA9022A612191A21A548416F388128B419911421E081B142145EA81E481F2421815
+:80910000266881224588211204C11A421C16E421A44142325DD84032111413312480A121A100806181A541D8182228042126088428002004444828484C02282E121A8218810800008800128100224C0218F054D78011D118010030114024A221A501201202608242802218081A22022E82302480012382D224012A0149410484814001445F
+:8091800040A2422081C14828F01CBA00242A98221845D8921372C168A116D3188471887141E8C184F2221A19636422128711C562228C524A6588D396B1183212844B286321082147B1544F84A2282981889622A924686946F81A2418986220A612463424DF630F4031B8211850121481166423389C21887468542228269144230215D868BE
+:809200000883723238242A7182622212812674120626227111C41122AA5142008302884D8250842C818306228C932449F257442001252102C48F2221B18144581217842194852121921829C128421832C0282141A1F02C111668428009A250248562424D484112822E4821A3148161E41A024A0818584848F0539AA0412C048F41C244844C
+:8092800085821288442854221E498053869092183127441AD418A18428671C46D4810C1A087028628214421596A1425601298222023C62C965430480868A426344286CF9228B248014140122C0182116E248D11821018444C22A0120110298508282A9025648519241218416B644A1A144890140021AC4348CA42410C814230412442224DA
+:8093000084182F280419028410123624424D61282022084A718248424165468608002114842C9114004C81011002848311123C844351849081000021400846629820016F314A335124C48F1211322A812D1827125A2239392B8116B918748274826823E04452810089B882942223F418464F81384819C1142CC122222C41E482D994896118
+:8093800014444951822A24E28472CA42538490424A8263462143E48182F8212C2002403444444382364C108A448204366864115C29919249A414115081853522468121588244845016124583324A16CC82284322C191111841244301848890A800414F140C1123882184C1181280042E81120000121222258201301880094022A281320080
+:80940000800128816018848F11BA86028412128081811A2412A2421282F0CD6C800748844D2811C144418B298995488301181125012D411744142654341742456162144D1AA635542E4130C41886044B82444C0821222148C3889228258821021012082504246CF4622780A128808486C24194A11611022011A1214100A0C2886890224828
+:809480002820C612002A21D183858121A221C01222848382840888804882218222820152225FFA0B2213E1829424248C0428806812391612181882A2124C8302428A21141822B112D2482118A848608828C6112318E328648286812589C8118B4122D042A421809492A0841A06F0A6B84003121181204684011814250812301800218022E3
+:8095000081228402221022246281281200120012001028018008801202604348445671230984344D43852211016032002815028534280018160200242001008110424108C4403C1429421412C21480827212C2421422909420012150247EA9000044884F21188C01D142890100104299424A024D414448445364441524A1421942842474EF
+:809580002222D222014A82258641264442C884598481B442182282A12C848E248922FADF4300B2A1382428282B4226410221441D128812888382688112810042211A04213012468B6212C44C68C210928C80AC244094440042108261212011022902BF640F8443D4140680143119812281441691282484260240A4248A71E248A81285E2D5
+:8096000042289C488281494887082F8442C2C1242E118C9418501862A048248A82A1484624883484209812823FC90A266149AD1B16A4E28B29267221BC29647A83B1117413D481512137A2AF21C81225E282A211DAA4224E522E22DCE442E221B1389844AB641F44E683B412732EED2661C38D846FF39284ACA8114A797CE9C8D285B268BB
+:80968000D12181A8182C61214F22328A1AA814382E6128EF45061B211F18A321472487212D18B9925C1CB318FBE37A858201AD181AA12287125BA6793483841F49598A17C46B9573D158FA417AEE1A1F8131A449F288881AFA96842DA26B29428F1AF71831178A85EA48A644218A68898E122B65AAB682F19284324B1A9E4CBA5C8463FA86
+:80970000448A144E12272657429F82D684F161454FD4E53152843548F1623985391A4B818992151E281AE565A1664F52BA4CF4212469E422E224B52454462BA12E83ACE944E932C45219D61461329827252F46F44AA22F539692C9B8F8E1A1B646B25254252B856E244AE124E324F2262243A4195EC6EF9801440000450220918400401147
+:80978000445184144001141214501860147088058318220C130813081788B0810413A88219849841884381A84188844C48C8841688F87B39141CF6372FF7E1EFE1F3FF39DB7BC5585FFFB4F46BC3BD9AAD2325FF16163F197925F484873E127F7958EF6F54F4686C9FD2F37B4EA5DDECF377273773276AAD8E3F597BA8FCDC4EEFF5FC8F79
+:80980000B7474857C8CF72FAAFADFF88F2D464BFB1FC9FFFFF4CF414B6BF9CFCC9691E946D967F59BB86F532946F42FAACA4BF4AB212F92CDC8F8DFDDE4E5728E036F6B666E5FE36345F1CB777732DF92F3DFFB5F5FB5BF7E8BFB3F222254F61F19FBD3F22F282935FF3F38393FFE3F37667FFD6F62D1DFFE4D556F2A7A77F56F67456FF74
+:80988000F8F8C266BFF1FB2785CFEBF8DE1EFF73FB13955F49FDAC27DFD29FC5DFDDFC9A68DF75FF5BDC5FFBF3CE689F94FEA1B73F39F592526DA22F4AF8E474CF4EB71AFA9ADAAF8AA44C6F43FBE739247F73F33373FF31F31E36FFD7F339749FB6F33B3FB57D8CFE8A3EAD3B3D332D12FF59F938118F8BF9391B7F7BF8BE9F2BCDFFD24C
+:80990000F63139CD5DC5FC2DABFFF3F67A6E2FA372AFFB36BAEFF2FB5C4EAFADF647FF7D854F41F5BD36EFD2DA9EF87C648F8FF26EBDEF56FE9C362FC9F131B3BFB1F3DA5A3F19F164922F43F1A424BE384F72FA1E186F4EA55D4F46FF9F44247F73F6B232EFE3F33634DFF6F77BB6FFB6F32E3FBFF3F33FBFBFF7FB3B3B5D315F71F1BB2D
+:809980009B2F32F2AEB4CFE2F3F2B2EFFBABEFEFC6E2A37B4C5D46EFE2FE7E6EFFD7F69E1A7FB7FB3E3A6FFAF7FC6E2F27FA363E6F6CF6B4349F62F86E3DEF3AF3EE6EBF97FE6C3FEFD9F53CBE3F57E32AD7AEFB5BDB6F45F1A4322F47FD64F46E584F6BF376D4EFC6FF587A4F4EF58334D014016D118001260314122662816081640012E8
+:809A00006C0228128B242014C224209412422B12814B12422B1210042B12E02201608126420812808402641A84024A02CF140222702802181E2881442284A7141181101A840342C0144B482822E02284B224012A0441000080C124244420011220019012D022211308C0488981F4ED71D022F4112485F2112483F41164A3D441B24AF18171
+:809A800024AB9419B24A19B54A3925AF1439252F147925D812F935481CF9254A1CF8254A16F1254A96F121CA96C5CA9E24ACFC91243CFC91248D831FC9F248811F49F24A811FC8F24A911F48F24A911B28AF143995AF1439B4AB9443BA4279A498924F8B84F9A44AEF4C0225FA11648D421F4152181B61839461A3B481F64A1419F24AB415
+:809B00004B28AB9413BA4A79A5B84839A129F93348983FA295885F22AD8517A283F521C287413CEC55C28A1E2C4DC11E683CECC1C2811E6C6D81CCF64E938AD45AA1682D314F89F44A21435B2A4B4A2B14A22D164B4B442FAAF548998032824C0400000040048C0200000010020088000040014008484002002008448002280000002501D5
+:809B8000EF42012457234022C4225CC1238124871880511A818440C4122608944C03002D1889A5210043E1820822A02185116C25830880149622121F8954182D181A321242200283219424EE6C343882874A1A2222C1488CB11404581D38848810418882443182882052A4835224265224832381128294924592849082813634121280B264
+:809C0000480130120081A7228349A249421C02DF4949023398862C05124964338945F28558288333888494002C4578825218221244259A185E824127821817618942B128084A08C9B818943A1820C4264B12702851291232AC618429092C8941E161F2D61AA0121E2483822286D21A4118047011481201103824302120C8142281224427B2
+:809C8000821A820122822C2451241E24850360482112243048124E9212811022122832428CA424F0822A002008880080080000000000000000000000000000000000000000110010011400775EE02436225B114422894223042D28412AC41390825E484921F82181C0161AA82415E818048F624208169141238C847148A4A21047A41289D0
+:809D0000C2814221A4418AE43209215E48492128D22248042816F8F3F3D0222411C554B068420140B846A52A1E8384A3249154A08A50781E18281B4C5C18C4228483F2114130C2482AF148242D82106548588BA24641022538251CC612882368814925E42A1842044AE289F4375E0020088800800800000000000000000000000000000090
+:809D80000000000000110010011400775E40825224844112C0244008804888381142138231215081815302801202210046146241400400444004482D12121841003843024138458802FFA7031810022648C63881CC81A12112181C11C12441432114684643E24481C4462631444615E48413B822012A011B1A169211D0437128C251A01441
+:809E0000838224D28198484D11844664A4188C422832C48C945A808112028116044487418C01001781113604804509228151641449C2454429120800B0218111014941880452841812898104844C83141288C1284881AFCD0824502484264462838C022083A181801831445B1220E24412BD442126842214021E48243246A6124C21488653
+:809E80004142C1261941042C6624228651481D148074248891248C12C4A4488D1E8082140133A11211234242442434292538446830141121200189419884112974124804458844944C443054A2848F218213240282803182009082502A8482005FB145424642A84184848149C1281296042942011C982A842308155482142C214289A182E5
+:809F00000041C0229C11C81220162805441C611818446822548C841208CC01244481183F540C80014100000014810089014822182400181014220440480812201122422181424128220100102811020028446041443F6A4B522416128931182A512143C22A43A1188C04A531582EC1A3E4815232244416681181295284114A921241454856
+:809F800084931A4F21C4162249B1883368BC41CC31130988221287488D122281888CD12A42286881444B4B20024054128481120014501A4004284198400100851423151248088446110400260118282A41242201482419220424400444412504EF99024444202401000020011128290249124CC1184C010048429A040060411C914800143E
+:80A000001248805681800120142804800440826221F0325C1091220021002448830800838104281429078682440A204118A41420110421291201248D2226028004828022A24800A018484008009F41014301402881010082B028C11200602118701801130210D82841066082841D8234C8800A88C088800284228411101108008042884530
+:80A08000B228F4AE1100122C6421C04448204142111282921A2502814002200818419830428861C028831154E138440049428402591844024C0A22C18849D12891449044443F19062318220190182881800100114001141200004604480011208222813224002211289480117521883232143022302827C29024250284141F2E068C8202CA
+:80A10000000000441880010010348C44622230214214200232134124164108901100003488C041200240022005800448E75A00122003235221180062D01484D181C12A8C0C2C22123A488C128851221E488B14E54254624E1840841472324238484C44E498342840042CC8484D68E0840A1825E28824212831849BEE803144400440942493
+:80A180001240C62250241114D02803200112118187481061218608194189024C189C345883084308830C9C92820083C28441A1442BC144988584DB6A0A250825011410C212141229028022180C213018409122248A414142143814282DA245D1841C2206C84C12444841144508151491314484580020143C42F06EBE006B191224901C2927
+:80A2000062211E418E8A3D221A11941612615A5816837221388266E982722713B819F548484A985AA3F212283F19E7C2618A8B448645FC85A583F282E287824F5C147941F1A9889326F868418CA8424F8E3264C97D56A4F84FE4B584775CA748CF5E42C2126E24F012642F11B11202A58441B444912A137111D38BD331922A1FC1B21277CA
+:80A280001AA143359418807CC4BB1231364532144547B21EF418A225BE216A211AD142722C5844190285EC11C2253D93297295C52CD04A711288746E18E2818825F1AAD5F016255012890142598413A2112226B24241C8C38782248F22D1C4D824D188A161828C444A54241D5E56E9E8AB124FC2C8227F54B524D224B42233281F85654490
+:80A30000118B822E7D6B884544AA22118B44A189482ACA121612384284EF46FA42CF10211231281183125128118B821311080014400134501850184001850182488308C221131C6488432258128698168298804988094C89C486C084128D8480FA5DFA145F47F3242F8F92D257D123F17B799FD1F12527BF22F2A72DDF9E7722F24B476552
+:80A38000BE9AF917173FBFFD27177FC858FDBF93F331211F13F377659F38585F5F71F46765EFF5F8BE6E7F76DF47F8D4D44F2CB62BFA21873FFFF8A3235DE7CFE4DCFDF8A1414F7BF96BE59F9AF3F9799FB3FBE145DFFCF1D7554F25FD8E48CFEAF7CA18CD8C8FAFF6DC5C8F8CFC68CACF6C42F371744F73F3383BFFF4F44B4A2F23F33A71
+:80A400003CDFD3F329226FC2FB48DAB7B2AF6456F7BF18FA1717AFBF7D27F7BF9DDFD2E2B5F533218F93F3657F2F38F84F5DC7F57FDAFACE9DEFE6FAFFFF4F5AF2B4346EF11F1AFAA5672F38D53FFB8DEBCFEEF6ACA6C97C8CFBFA799F12FBFDFD9F9AF2D1F1DF74FD9795BE32EFCAFE28FEAFECF9884CFEF42F45FC58DC8FAFF79F89F0DF
+:80A4800014154F42F6191AFFE2F326376F44F4585CDFE6F75253EF65FC6AFEA5FA4B7365FED2DBFF76F6E2E95F72F3ECE8DFFCFCFAF9FFDFFE9CBDDFD6F7C8CBFFF4FC1C4FEFF67656F436E6FD3FEFFCF7BE38AFA2FA2228175A1F7BF42B8BFFF1F3EE4CFFD6F4298BE7DA9F9CF439A95E67AFBAF24B69CFE5FC5B4DCFACF47E7A4FE27E34
+:80A5000052F2FE3EAF87F35EDC8B848F2EF7514AF074354F43F311127F66F27677E5FE73777F66F75253EF6DF5C35335F35E527D1D9F9EFD6767AFAEFE3537DFEFFFEFFF2F8DFDBFADCFCBFB656F2F28F85F4D8FA1F5E67F2FA5F9FA2EFFF3FB7EFCCF43F3F97A3F22DE77FC1615DF79F15FBFEF86FE6EECDF6AF21E1D9F94FCB9291F7FC7
+:80A58000F63BBBBF9CF4DC463F5DF464EEEFCFF7AC7E6F6DF16EEEEF4FF7DC5CCFC5F568DA7F650E2601002C012E1112242022412301842416081200008314624439119816901683B4260122901280012682444128420848448C041608802201D065072728282C410816981C00848150228424222042048324018400850400444588024CFB
+:80A60000120426429C148C06C42AE14142214151814CB1340441F0144828417024F14621E022F5112485F211248B841F41764AD241B24AF18124AB9419B24A19B54A3924AF143924AF747924D812F924481CF9244A1CF8244A16F1244A96E1A26C59ACEC4DC2CA1F49D222FC91248F22F891248B841F49F24A811F48B24AF98124AB941B16
+:80A6800028AB9453B84A39A4AB9443BA4279A498924F8A94B84FAAF46C51F0244A1AF62C4316746CF11144A5C264CF12E148D45AD94196BA4B68AD154B4BA5A54AAD178AD458F38648AD354FA8C1252EDA8F51C84A9E251DCA8F59D2A1EC59C2881FC9D2A6B891D62CF891688F34E849B24CF88128A9F98124AD961F48B2487B85B84A2B39
+:80A70000DA6A29FA4896B28F4438828F44F986129F6A0584800400002008440000001114002180018848000014008400000000004400000084008821421FBA0D4014721448841654841200849911018A81C118111081240154412215921416D88209208182321183011CD11448E182314A9B4329818801D028C4182D2828E8882842422F7E
+:80A780006C0B20C9146021446011A44288004A887442784902326E999014284D6846D821229416422036782C054D1282233A22828B822E18124C1491868372784118D18281B1448239148C3144441CC1248F6C0FB04421711864414C449414832114041783149052BC341816B18141A214186F835494471830114961812D981F81265412C8
+:80A80000C362225E21362838193E891CB144C149FB144B211DE88302818B1468A9B224A1872C4484E545F2CAA200100624285081248048088A2464881880E282441184024226A2246522044A02121812292818022A48048C12A228A11218112901AD149240C88422007F47062A51412001408102115081100411209128304884A0428141BC
+:80A88000008126026522488282410400B024410882A0484018084C28E244014A528488486FC30F4714291331244D282A112461412A6125288A941810F218411D24581C654149F18814418E242412494546A41412B024A181421A7221C424124F820151684538222A1158422C644123418698284781184C059FFD09702214614120031A224B
+:80A9000061125814C2C10056912489862134188C28C2844123011084449482269422181E241D24226042164421460A2A115884AC044B184D224B8522C9414884545D7071C41120C22C5041402401278280013184168131418D144149614489026045C42932122901188A21044024C11828C4604828C224004D1200108896145A08AF240A06
+:80A9800023066828E01288922810D2489121268109293888181830942158EC04836812E0261824511841C283242205230226022032121242C0426800218C84026328C2829FB80190121A0412D0680983C249448018120443032A08282F440190248AC2582211002601100828891208898CE5120150412110C81844A01441844788214B4132
+:80AA000089F59F2800401404893881441800812548921840825242C04828C440024150481E48414220022DD20053312800422D48828491841C012518081842282884E0AD4D2114A22120D11862C226FC28124860B21948921429B894C222B8608B4AC344874425227234819245214981440448EA81C2288F119228872E1A04A482997142FE
+:80AA80004858384E1825448881C428888AC218F095A2302212414C02C01300159818D0282219088522410446149418C0248483048B284D586082A0C250221A444204001B6123260111281A048424488D14488D24414E248E484D4A008644280400208202008002122022048B421364448004120088244800808811040024182001882001DE
+:80AB000052208128816241F07872C028182110280480018A229488802904C21081818841A2248086248C2403829B1820993800A081481A842818288981628292888A04200C4262BFC20A42821001408803440020416A422118200100004422641681021818400811162205801183080080080042400800F0D1EC0028488480049028848917
+:80AB800081664184805C18222A894203105214281C0100204481B511882204401441244224028A04308282C18182008282241F2D044A02224214143025C032002124281A02228100800283042528282421028901008C021150848424004134811422200C002100F0BB3560818110016428004064411800118284928128441024021200245C
+:80AC000010410118581244812012028110420C28440088438402282312F816E70022298402388004489828C0E48881144E84214C9E41728CA48288B1C816C81849EA843884A2881B6857886938882283018A7448048D1400888941382820035A28C8481E42F0B45220210880280812181420011681C182184021B122212111584222004047
+:80AC8000A8418B180041223084495442924C0144100822000000400414328F3E4342188196144028C24AA04170810C8A0629011820280C25288811C188C088889440210484C04289894141318848817028048B6882842508234801233882425F8549B122A1182246849821281E24232272124898148B5188AB8E114A62184B9311E9B21963
+:80AD000031242DA21334399283C8248D411B118AB298E918B411C82416548C4D141CF2541416791464CAC78119B812E8A85484A2A9B8880D4A088E48EE411AF6C7BBA024930A1B61118825E88281B31937A4FA718238852B1A4C4329EB8242C8D1EAE582C48647C6244A63C42DC8A236E8C4F842981CC4148E148F9294981D74129B89F0BE
+:80AD800028442B8C8901D28181BA0A4F892432141CE121A8A21E8322DFE90B1AD424D2825218845E4C221B44163844981926A1841E2A1E432B91C9BD12B9C1B672226124C698412E2D8C84B151E1A5A8BC8212421F81EA22A6994728231DCA14AF1874C21208218D28A21919F8188842422B8C837AC2044C61848B9A244200830283068393
+:80AE00000483048304830483242804002098288A044889825448488584440400840041844949B844094A41881184518418411C11A41441283F6A012B213D2B85F834749F12FE555FAF84F47D372B519D5BEF8CFCA9232F4AD5FDFCCAE8A073CFE4FCE331CFE3F5B3934F44A566EF64F44662AFB6F652418BE6EAF66C467F5DBDD9FD3424F3
+:80AE800047559F13F344666FC9FA84885F5AFE282C5F717112FE16862FC4DD64F85AD81FB7FEC29C5DC58F89FB3CA66F4CF964262B113E362764CFC2B214F5EAECDF720427213F12568ADFD1F569A15FF1F16A68DF76F26A281F31F7CACC9F3FF6FA285F78FCCAEA9F95F479A94F6AFA1B79CFEBF7B3D16F45B548F49CD6EFC4F4A8FBAF56
+:80AF000017B428BEF8F72862BF1DF59CC5CFCBFADC8C9F93F224262BF947C85FDBFE2828DFB1F1121A6FA1F842D84FA1F91E9C9FBBFAE2B85FD9FD9C9C8FABFACAD84F67F756541F62F25214EFC2B254F5F8DC7F214DA2673F32D688F23D3D15F13D372F84F2357F2B111F3EFBC2BC1FBCBE827B45F7DA888F86F63131CFE2FB63B1CFF3C4
+:80AF8000F7FAD9EFCEA77ECFEEFF66C6AFA2BE52D488A45D8FA2F4F3F1CFD9FD78288F85F5B4BC4F67F7B6E4CFC9F8B7B58FC3F39596BFC1F18496AD8C4F6DF592141FBAFBCAA81F19FD9C9C8FAAFBCA888FA3F316942E2269F45E584E448F8CFF5E2C245E423F1292225F555311DF77D782F6256F2B239FBDFB92F81FB9BB92FBCD8F2BD9
+:80B00000CA3AF3B9B94F6FFF9BF9CFFAF7FAD9CFCDF5D858CFEAFF6EEEBFB3FA7B798F88F15858CFE2F2DBD98F89F9FCBC8F8DF5B5AD5F73BAB2F39C1CFFDFFB383CDFE9F9DB9EEFE8F98A8CCFEC748AFCE9FBAF8CFA8DCD8F88F8A8BAEFCCFC64662B443E326B48CF87E746FEC8D8DFF70D221002142022212221220812241228802229AA
+:80B080002401401402188089921442188001490918C012480040088200A04800200882FF8301480040010018822001122400821832182A044120020060410040B424044110A6214014042008403484004634843024424B421DEDD034F511248D121FC132481FC1324A1D2CEB141D2CAB941D28AB9455B84A7924F84A9547822F147924D846
+:80B1000012F925484E915FA2E414F8244A56F5254AD6F5224AD6C54ADE242D4A1F49C2421F4952381F4932481F49326A1F49F26A111F41B24AB911F24A9253B14A3934AB944783AB94478329F93448984FAAD46A0745FB11644F32F111684F247111FC46131D2C4F34D1C1F242971D2C2F344BE8547321F8429617828F743921AD947F829A
+:80B18000D45AD1A5D518F125C287417DCA87593FA27418F5224B8F51F222421E2C1CF4912CAF32F4112C473416786EF19128E7321F81F628861F41D638FA1548AF347A34F84AA243F348A24393A863B34A9A54FB5F4028080000480000242800000000008A01A8000000008440080000004004008004800240017FE50D1341049C018460F3
+:80B2000082484E2A281E8892C4874110B235148891484A8145C84824C361248F1248B64861651228281212118C426411121688E581041BC1489C84311830122124881A1428F2E53840A62981C042004C0800661201002C412A0231266182222481488561216800451A2881C42418172812821C88044008822485024031284251881C0A5F25
+:80B28000FA0E5721478D8187114612088B82B04832248B38131B3C1424904E8440E314C16883334827884D5846E1897242C6181351E226B828216186129372128431818B14528B14C146A182833418A100812486A218A629F25EDF0028000040240421482110081813932212A32482014002A414224249240180644114823081180000925B
+:80B30000421121122416912248544800AFAD0500200100100A00002901211002100400002200008240040044814440240400002141882210040048FBA320840245112863842218106882839441001608804221024984E222048C042229011A82242304000029241808290881E08428028021024840B2F344812402530122421002106884AA
+:80B3800048290112240011430241224A022E480000224244420044408464488944220884244849828802412004488FB50300008418842216088422100124810028002004100280921280092A010040480200000060880020210200F0574D802221022200442210020000100111808802000085C44444008004000000008400002400480051
+:80B40000800470E80844141341141208001486081301D012182402420000000000248100902140141208C011813502421810040043120220085F3C0C000010024004140011110081004914040014002428420022004001212002284A082044028226A88130188180042B84C0241CB12141224208414902A30812144011D4180219044988A9
+:80B4800002400140CA44000090210025420822C028A714004A41422668825841A301428A04CFD50D00404402001041011440230800604400000040246244250822420045010030112018820400008228100800BF58050000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000045
+:80B5000000000000000000000000000000000000FFE40F8004000000400428000000002180018800004001400848000000004480020000001002183F5F0B0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000026
+:80B58000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000ED
+:80B600000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F006C
+:80B680000000142210040000000000000010080090220000000088000000480000000000D0E60112240000100818000010084228008004002041080080020000820000000000000018260800AF790F4144410021411845022001A1002C02801108220020024942042142290141208292218042480140088A0420628900418004DF760750F6
+:80B70000240000800118804112088126828422410868000018C40080A421400428281480020010088200289800890200B7979014100424104458240000000000000000800228411002210000A082008414000048004008124420048F9501221301502811008042A2218344581811184308411004004112221A820800180020220150181A46
+:80B7800022820212004200903284982024B2A80B4428118169C148122781181E88288384D1422DA94BF01328411028E48896818F44B241C24884493466A9656F89019027241C51281C49A83820688114A1864138184823324A8D4440888141F887B2202211014CC148181800902246628800241C1904842002C1305828466644A14C0218F5
+:80B800005041901184218196A112224002008C8144C242480000229F2F04441C0284A542411228B13888E28164814B418F11B8E1817124084130444E888621D61406842AA128589A941A00230223226119C02820E88142C118191828042942983C8489898145F8CD8CA0146A312428422621021844441E4212223082881C0441151826A56F
+:80B8800014418400A284981C826388122F1822142542088B188C42582A5484124841804812B42804A904184DAD00461418088489242242C23484A2428D44008001C2212880A248A042C012704821243428200412481A0A001AC81420028A211A021200211818BFDF0D001149912200144400004D8818846428252132228854852298241828
+:80B900006C9144442280088024D182080080210420028181442081020044E0AD09584C41E82182629283C6214C12B42231582988B4187482187421229124994844C54849BA4C82B114B4A6448E4A8899482A91811893A82183249B1889914880C12812428648062C313468103814E08E03807224412C0400180080718448042C8844012B9F
+:80B9800024824AC31200200218122AA42488B02204610080884262892501C0284C218A08400848009FBC0818441844800100004024480880028112000082182612041A02402908008481C812898408122001261814028021021822BDDE4034488448002100210084909200002A9842285880118428446123002C42228103200884816081DD
+:80BA00004280524800901890184224128928F4A9940018008504120040043200508189011011EA1498121100184C01488C644141208843086012908814148100004230842A3424232108F0D95D400C1E4400448444C02421984988C82481008381C8849840C854263844414242A2182501813200A02844921C228801C44828620032884269
+:80BA8000282A1102CFF50F822800A422105484800400888009484008820012200818130918421246428421081B84812602412D1420024212400828800426F1115140180216014C11CC23400460881481100A2941881C28219118831408120011858101211343180A226044204661415081188004800100F068A720015082501810480200E9
+:80BB00005082101101C0111822404101180050242A0425180200494248C8211812200412491348082C044088A24145F2A2D5001145880200200583F1811240283418001418119840022829628120021840D4142208402102289280018488818820A14800186028F054EF408881444842280400406421280044895148100825048981D1140E
+:80BB80000C404822629220480848208831824009941761841A022E188C382832004C1822F5A9BBC0141F886461005D2281C9427224A4141B199215722848D89A88734849082A4164114187614D718E241D446E282F28B121421292129A8252281DA82AB218B822F8886C25A8744A217222381418848096383828E01164219F8706168253EB
+:80BC000088DD28241668C515941A2181884D988F88A88C8501812D148DB1CF14B812AA818D12812E4884184981A1E283B13CF2144C9ACAD22A415848878857828328E519412451818DD419E18626D188F8E814B22C44B82292982B462FFB0D414391141A54C8AD140046444204AD26214321D14161811296F2915887881F2C051D49B85657
+:80BC80006485232161512B542D188553E1221741128288CE611F81E312998916519F8B11128598888F66A1158C984276A4134BD98249F21627000040080000000045084110044B4190448004002004800100400884428462001E4820010084408862814088F259B7143E263555E83F53B328F21B112B441F32B272F728285AD5B9D94A59CC
+:80BD00005FEFCCFC9C866B11643F54F52C241FBFEF45EC45FD5242F5FD6C727F16A6E67AF7687A5F7333211AF144495F53E22CF4571D85F2A7AD8F84F4C85AAF8CF6E5F6BF84F56566FF82F371732FCFFD4D4D8BCC3AB3D8FDD8DA2F8DF978388FA3F17C7C5ED86FE7F676DA143E323F11F5181ABF13F32C2CF5FD4644DFF2F27674EFC2D6
+:80BD8000F2525495FB9AA8BD81AF84FC9D87FF9151683FD5F53CBC5FD7FE124CDED44D56B5F9A8AABF97F664644F47F7787A5F77E715B412F14E4EFFFBFAD2627F55F71812FFDAF6E8289FBFFF7B19CFEEF7DA185F67F63B3C9FB7F7DAF8DFD5F588B83E388F8DFDF8BA2F8FFF78781AF3F6F45E584FE6F5AC36142E363F517518FE3335EF
+:80BE00002AF21D154AF425272F2555EC5E549D9BA95B19CAFC94823F517118FA475985F8C4CCABE34BC52CF54E4CCFA6FE275149B414F138385F5BEB3455A84FA4F4373DEE727F53F7181A7F5AFA48289FBCB7EAF2CDF6BF84F57C6EAFC5F419132F895BDD8F8CFC38388F8DED2FBDEAEC87A5336F47B768FF2C361FC24FF134367F515143
+:80BE8000EC7F53F32822FFF1F15A58DFF2F25252E5BE52D5B9F19A92BD836F44FC9C8ABFD17118F25759DFD1F951C98F83B2D45D75B5F96CEEFFD7B544B454F5587A7F7BFB42522F21F15E5E7FDBEA2DF437758FA1F1E72586F8F9FBAF83F3ED5FBF9CF17D6FBF95F41913AF88F915158F8EFD78788F8DFC78BAABD55E788F82F3F4F48B3C
+:80BF0000FFCF64F6A1E880011800841884002001008440180881120081808201188011981480014008842A01200112608120018228800200B60D82128100000000100820018021018002801408422280818201A0210022848112811088A214100881122001A094146FC40E2CF5112485F2112483F4112CA3D441B24AD141B24AB981B24A88
+:80BF80003995AB944782AF1439242F347BB4D812F9A5488D914FA2C4814FA264115FA2641D2FA27498D5A4E449C25A1F49C2C21F4952281FC9B24CF8912CAB861FC8B24AF91124AB941F81B24A19F54A9243F24A9447822F647934D842FB2448984FA2B434036FB2A441EF12A421E73616782CB3117666D381E464F98168AF74B385D23867
+:80C00000F1A548AF2431252DB35F8994227F8AD41AF13542983FA2EC5558A38F5D322787156D81DE21257851DCB6FC91646D4317816F34E8C1F24683C4EF34E941F242971FC9F648B113D87AB384D462F924486CF914482F44D982D442CB588F2A04004800000000440000000000000088000000000000000000000000000000001FF207FE
+:80C0800000411A1232198130285D88121598C181852109258128621211281082624658465848220016024212811D880030881426C4191B58304C003014818128421241690328B212103C2441581226722108161A240C184140880C83618886822461824CA14112182A48A8431C828AC914B0823118228BA5238806142C08A28181214304EA
+:80C10000224D81F04F8A004A012E1285C41D811889F328847B21853171411F88848951148883E2320436381827283034984F84F148143211A8B028A5424A628187412418812E888B864B825F86B1C12172C814221A9814A1482C22361412FFC80322284901801284041181D0284808400200881120082A24E482040018C01A402189388150
+:80C180002088013C01001400008450840088415F7B05291401001224102801200424438A082003848394444A42228121048001200100128196088C02006840882188388481431208001FE90B121800848B4229E212B411263E181A44A8182D1889E42164CF46426481CA118442CE4C902A45AA4146CA828116A4C223A48225283212224B59
+:80C2000084528564881E488321A918824E2889B42805811E848B289088FF9D4A021400818D1280B64182C4181A04188184D08289840189410C8344284168C42B148116021282481048028B218A945841884A6184188B8188484E888B5884844C210286B853034A2101004A221233181A0A30488682B1468ABD244492248C218CB4449224A2
+:80C28000635422320046224818C472A028213889214884421848288308188C0A430249C2888C0870650A42418B61274284444800C02C2229881C74118254218A42228821110228822914322460254442432208C22741182282232442820488004241160288B2008D144F5641922180042826094028442424123848211E2442A025620029D0
+:80C300008542242802002601A1A417444B4285144812081890244C12284214048C22220250424278AF4B0824100142003D124C011901001240084480912842102824016E1124D82504281228211482682C6181608818181212818149A14846240148A836087F124B9221449B212514480C25C11C804202488C351347852482582A381880EC
+:80C3800034284B24182722582229E96154244E282C6314218D8481528722898141983468188A111C14E4C4CA5618882AC1A44E3849F65852C0420028621922241182D4188186688844902219C424222B14224A011800481C1224342200444B824C4263492622C182482A0829410C28811A042228A08400847F960510080087424812800497
+:80C40000602281A041888AA448296421811860844218A44698124388A4824638B820422802220042828504CC2828A96982891224280820F1A188E0448185856624584D124842200461608119984200118004130122004100234A0260A21A14022656482222266286A26AC1128C02001088A624A8282887F300444441005048214781120093
+:80C480004E12C81840881118028004004190481281002121008284A0414812421AC484008444402C0D1220011F8F09D4288C0481501220012543E48401260438001A544880024C68812092142C022400601482244084511810081481418242B0180200008288DF3305820041424084628441A0142E441008828200424088880410084888AB
+:80C5000015A294292C018628280C4008421A28041028A28120192401234142F1CBAE000000C0424604282187220014824220440A121E4212828088840481C89481218210420A430120011200121C08005242128223013F2F06B0144498488427810020044415DA280281C01112214001488411C975910419512200A024128002408894224E
+:80C580009028B0123231C0128487210026022638822AF4BEF70000002400211289B44A2181884D981883011242488184000010180810B148984261008608128100828C388800841024088800F05E87C04840031440186811814004520044D042021A82514280B31898C81823818244480920089C542814004885811148041A3248008A81F1
+:80C600008201182188CF2E0A45F4A448448342582A8744C74125715838132F8132132C34881F81AC81864842E881B4487518648149C21947856CD144754872C238A21246E38DC882A915E8AC5866448781F01841121F418C19013AB48211F894848F4124AD8592968179380A484A41C84487348CD12324A4154CA1442CE5C237425EC887DB
+:80C6800028C28D412F44B11BB54433122A25E4882884E59126944249F949C22F2844C872FAE4485882400919B16244AA82B028B4B8F98818988548180A68248C4A82F69C79B04161418D134384B43494142D6A89D424562883744CF298187B12188F42A5919A66242114A419BD48B49812388CA3E1935328848F82B88A342A3126E218329A
+:80C700002A8B82CF83A1468CA2168F8CF7E8182F8952E41A78C9E841AE1B8CB3C4AB122B382A812BFA2E3B1001111041528124115081241124534871244831A43443423134463184144001142128884A021188198298212111211121112111214821222184218C0448F02C7D145F51F1451DDFE1D156F448491F31F51C1C6F57F716555FAC
+:80C780005326F529219F14F5C7478B918F5EFB51DDDFFCF6D771CFD6F675175F57F76D61EF5BD85552995FD1F4444E7F74F4272F7FFBEF25FF626A2FBBFB51D11F36F4553D9BBB8F1AD254DA77F2626A2FB5F76A493F3BF7BE2ABFB2F63B9DAD8A3F34F92AF22F82FB2416AF24B27AAABF8F86AA822F27F6AE88F014545D1DDFE1714EEDE6
+:80C8000014F41B517F51E117F71E555F53F75117AB77AF67F5CF4F7F52E95EFAE1E5CF649FF6AFB6F77B59EFC5B41CE116F5C9E1CFC4FC5848DFF57447F7262E4FEBFFD3FB2FAAFA727A8BD52B5F7F59FF1B1AA738EDADFD273F96E695F72849BF3FF6BB2DAEF88FC2FA1B8BAF84A3D88FA8792EF2CE72ABB3FEB2AF86A282EAFEE979F0E0
+:80C8800064741F43F73C3FEFC2F269688FA77711FD7A6C3F21F536349F55F13822AF25F64A4AFFDDBDC1F9BCF1CF24FC6ACEBF87E515B74654489B568EE98F82FE34649FF7F67664A5FAE2E8AF3EFC8AA2AFA1E1AFEF27F585E485F388825762C7C23F16E686F6797AFAF7FB7D8F85F318BA8B983F1CBD98F9889AEFC2F1447CDEE2AF8BDA
+:80C90000BE22AA76AAFBBDDFF02575DF43F3383BEFC2F26162BF377712FE782ABF21F537758FA5F17A78FF11F75F5F8F8CFDF9B8CF98FC5DDBAFC7FD6B4AEFD5F75D498F43B361F48CEDDFD2B678F678627F57F61B192FAEFEEAC92F2CFE525AFEFA3F3FF187A6AFB2F28A8AF7E2D7132F26F662289FA3F73969AFAFB6CADBBDFA9999AF41
+:80C98000AEFD9A988F8B7B2CFE467CCEF2AF8ABF22A267AAEAE5090040088C440245628120011A048E48A0412021241108830481188118818883142294121002218400A049E08104960884608920019220F8929720280160241242128044028901290818F048828001184888006045212821824882201828182421E481028E28620082424F
+:80CA00008011848884220AA6F17A6FC0421F4152281F41724CF21124A7241D2CAB141D24AF249961AF243985AF243924AF143BA42F347B24D81AFB34484EB14FAAC4A14FA264114FA264192E4A96F5224ADE242ECA1F49E222F491248F22F891248B861F49324A1F48B24AD141B24AB981B24A19B54AB924F44AB443B2427B24B842F9249C
+:80CA8000484AF9244A1F8403ACA4418924714822714442B84841F44A968CF44AB643F84A32418F247984E8245184A999462B944FA881D8A4AD854D4A922E4AC6F4225BC6E4A269C92E4A4CF628D29E248B869E2483E448B248C1248F44A9288F449B2489A9488B34414A7BA488712688F924189F640284800400000000800200000000004B
+:80CB0000000000400140080000A042000080020000200421F0BF4930142322012D4880112841C43A8848C0482016814C2208828843289444206214502818A02120D11838142B14185C82C89160148120B88894484480C9C20000EDBC902182250C41272245836212422B8446882961282CC188B018E284F1211C4A4164842124128536144A
+:80CB8000E0423562D04804233C82203828481A0448982D18161118721491148AA48442B0649988C6017F8E0D162112C84248297211148843342C89A45230483082142A81D1232B85A8C18886B214442A62141E44990685942846E2849189169268125986B8812599558D112618B2443B4844489A24DC62048812FBC87024026901C1502287
+:80CC00002814482F24298828C182128B24B048C848850444A44448106441805222124812292808868481840100A100828531144A2808806B8842F04A9700800145836414194282440318924C0110C114228324182842140111421110A22422A042281440012412001001848D821246224802308420F89A5F10A112E08231124B12305A8979
+:80CC8000112818182144C17DB0482368144B184601D42582C254284C61824A816221482B12111602602148275A606A4A71C28804D819E44C62811832C92322842AF42AD70028128D2249E142512142124882004A197144091E68821CA45814844D2940011446641246022CA524281418219011214418301242001AB881C41456886122368C
+:80CD0000084E8480F86E4440210112152224D481434A4813C811C0142A011143215248C2002534224E1428128412222824124A824201C0421DA230A442278813048354282A0C23884124022A8834E11042045508A0421116413618947028945428414E251450424C881502E6C911245884601528291288222144A834221021482602408839
+:80CD800044B86228120816D442A812F01674142814291412611484182984241AC2442611D152C848248C88B2812242D4420DA0484411444814215048214896E212088A21C812491468CC282B822B140010829422822142187FFD0842108882648251108401422331C220941200801468121149480400502100C644810511490140148A225C
+:80CE0000120180289122841A282B045284813FF9074A4247521C482E494E2419F1441116628335AA148E485B146F24C218241788B08582D241D1410853C411442501116022435C342021D18581230AB91126B28AC222E08984942229088A91621A38541648FADA3D1002812814501810C24488482451308146B4250422237484A824484CEB
+:80CE8000688242205584422D5220022A053CA828421249086A486C14C0822818848F2422BB480244824A02DFF20F481C0448004021544800821004824848C0118C840184295182104481C8288A524811C0C11422603881848190180015028821884C180200123F530422242481228014D42A4181F848828061144A298122C12189A28245C0
+:80CF0000132442CC4484E0210282848210422208842813C88116E22104238208132284018031428011F4C461142400848C048100204108150283D48404115082448881210082314C04431288081121844082041210880A12B08454822A2888A4218100F0148F0000404411044162460228303888006189912411101284C441444905122C49
+:80CF800004488004482024210C30C2C01121290A2A01608142182188F0181820488181218404218344091C0414421425024A818415848161821548D829048CA441838184B4120488414311389C8C618442121D12139892800618244A08698188A2824F9548818415490112409811128D111812100289821452C2801184820588230140013D
+:80D00000180052CD1313021211468308002002804C021002121830FEC0118042024146614724240082281301188D151126018C18414431244301A426D1A20220012528125818002222A34A928810C82A152812B818820320820417E4400414104441481196444A0814100842A1444220028421C2315419018608A8841111008B42241002B6
+:80D080001200282008A991262082021290844F1A0C9400004251AB41204941C42200811742164182011395229014142C88111882F212421400AC0178A014800188A681C284112D2888C082120080D88208AF430245B1C31428014A548CCF45724C6C8189B443242A911316F1C21F282551A289F66C2C1952622E21A718F0884C1F61C15A6C
+:80D100002ED9A1AA3488481CD478BA2A62428D426A7193B8C878C8BA1377892A6A1286123A128F62022F8C1132442140F21DD5141B4614D088C44C111F34C44B5815B5D2F1881A2C5B218F51B488B81C344B55F2697143E1186C1145D8CE746456387721A1548D223EAEABA18C44612133D941D88826555889C83198881AD321BB1A988883
+:80D180001D816ED82339381E461E12128A8134245FA60B12123F11522343665144397113B2EED51108141466E884A4224FB1E54535141F82B111F1841683031D587FC5C4114D493B2623A954844F257811B24381C41913C1183F29E81457822B21872C2B8225E12851924F2EF68822982B982AAA262D183AB8B8E948E9870F4C024C022851
+:80D20000412824400200301420410485044282282004804114431442144204004800222002148450842841284588C248C04828DFFC4DF227426F23517E6F637723A51785F8282ACD1CD7C8ACF91B9B3F6A487718FC69AF7F13681137548F92F3647F4FD8729D59AE1F36F6A7357FD1F55F5D5D155F76F6B2ABBF8DF48C86EBDD17511F17AF
+:80D28000F7D785FFDB51558D1A7F7CF5C3C11F38F8CBC9A7A4A5F818182B13F5FF43436F27763ADE64F156D2BD1AEFC6F358983EB8CFE6FEE6A5246F26F476126F73F37E3E3F16A417D5FB283ACD1CEFE8D1EEF913933F6B49F6584CCFEEF893A73D113F15F17A782F82F157FDDFD1F81E1A5D237F56FE5F5DFFF4F545511FB6F6FEEEFF09
+:80D30000DDF5F4F6EF3DFD535F1F17F697CDFFD9F119198FA5D4FFF9F3F91F1DFDE9EBBFB7F62EAE8F81F11236F5FF4F676F27F43A3CCFC9F97EFAEFF4F462222B37FEF8CFE5F52EBB141D652B51AF12A2115D255F45F12D28A5FA3E3CFFB2FA129EBFB9F983A22CF11E189FFEFBB79B7F52F26F2DEFC2F3363C7FD4F61535CD1A75F36712
+:80D38000E7FFF1F55F5D5F55F57163AFBFFFFEEFEFECFEDADE3FB5F475743F19FCBF9557D28D1AFFF9F9C3C1FE72AFACFCEABAAFC8FB2122BD23E5FF46472F27F71E3A3E16AFE7FD62726D442B918BF74FE2FBAA98144E652B512F21F13A3A7F14F655155FB6F21B1B6FC7F33EBEAFC5F991915F29CB126F85F5EC9EBFFDFB3735FF97F3F1
+:80D400007E7C2B335FDDFF95B7CD1A75F3636DFFE5F54F5F5F65F5754DBFBFFFFAFB2FA5FFDBDE3F35F57565AF19F89D959F11F1584AEFF5F5F1F1FAFFE8EA3F3FFF8ABE1F22F21F9BB5FB2BC3AF25F73CB88FCBF972F6EFE6D688B432B3B8FA647EFF3E054501450100418C54148E48141A44035484241B4124112813C124504831851429
+:80D48000534821892202989014F02211C012841C6981241226224822482249028502811281F08DF470860224C400109112123C484811441544440816681443180842411200411A120665280110C42842009224822217810046244246D84841D8482312089F870B2E421F417228F2112483F6116CA7261D24AB141D24AB9419B24A3915AB76
+:80D50000944B43AF143B24AF14F924482F14F9A4481CF9244A4E814FA264114FA264192E5A96D5A2E449D2A2F491242CF4912485F2912483F69164A3F48124AB141D24AB9419F24A9151AB9443B24A3BA42B9447822BB44F8AA4944FAAF4CADA60A21D448F2275117424E181746A5141AF26D141F248941F48B24A3B15A9BA95B44A2AD22D
+:80D5800052AB42AF5479A6C8117FA2A5944FA2E815FA244AC6F1215AD6C4CBDE258C64CD2F32F4914C8DC21F49521C1B69A7248E444E114CF44A954CF242B1412F141BB44A39842B144D482B94678A2B144FA8F19DED008004000000400428000000000018000000000000000000004004000000005012F016BD14212C1168929324041587
+:80D6000018EA24611434890484448941D8414474E108811D42262CF4142122DC148848D284982290248219192A04481ACA841D2298B08811C4828B162524949249BC9CC4284246E434064D42436843214B2149111432641489128841633493314448AE188533148F14C144818A140C838402ACD4482252481964211742281154828C714123
+:80D68000EC24938C289304460A805184265C2922C081284FBF4F532450861F82B419E6414416E18462145D28912F824493492D11CC31485B69C1DF22D518C148871127C28E181E25814F924428982B27C8819384B1C5E21A11CA448889F18835EE14903491B2468418981687248C68B48D924061452F3F084816E42201410084611223040A
+:80D700001800452804811129884484A48449042A043048412863024722001114208444F2812C2988144858223A04414C33844E2426A884222D5E2002498132428C021054812E824818920044C01480080010C42100189016800522110000221084A28200100221C084100888F03B267042849222E042C1145022421E42121E8A42257851FC
+:80D78000C4589B248CF4A14A484C6284A6A824226247842F429434282B246849626290142810F228C488496C2DAA016088841EC4841A3A84116688A32C4AC868488FFE4F6242604128498141023041294928A4181D444A51141039424328C4A86290444346842303412013B2248102E082048AA448298BA2828C18C814812288C048328696
+:80D8000088E8840A2F5801482682022B428D244062448381F2924218252841E88264844EB4201208808242B9421244A22429C72443041001214388C824124400008A14A21861144B82802604422FA30A80C143321D62478224A885E41482184846C168C24210A141530442AD811024D882E39108400210280444882412701A6141448062A6
+:80D880004A21451298882850122038884CF194D80043A224814113A1121440628222444B48281665881B124F8811041034228322240AC0422A4469244481205218682146222102AB1884604285A514A84120A42436784224A1143B992428211618045049861C024012011828218422228420410480014225C4181024221212848101412217
+:80D9000040081C0180011A044C21534110C824846FDC062312D281F22A141762199318DD22858462828C5223538CA1292DC817821E8D78D3044CC5AC83426421328D41422F811298444C6222424C7219845922460427936C318817812058C14721688426247542C4188CC818CCF4C711001E241820447C240390412908008394452081124E
+:80D9800004001180844228192644022100808402122B121068418042222164894C2881228292444C0ABFB405E0C201001858C042801208424880461418942810988487281048149824811422212418844901004004418A018290111843982418188F28018AA424EF3845C2682C14F82214400452186684012AD12441744384314842114A23
+:80DA00001184512146042924352430128064255220012B218622210164A880490243828802488C28A2821845F8B2B824245042100210D4220281214260812224288890220000498821024C01002524D222023084002228121200808822020000836824F04D73C021813048168442294208142C030023114CC812283022800222224014226C
+:80DA800026840160D422234228C1441420420868188CC384481800289014009F74068241832241622224102A22024100200489280244264802212028020040011048040000116011221200284908122A0100A89FD50C241A02801228140C00C421D014042841422C012A0188224942CA121800A021106281214094244118002062418604E0
+:80DB00000032268824242302D0660B1A041244002A811144180215622112104203481648914444C4115219163841A16D2246B138844408101222022942044421112824894122244222082D384CF475F7100444218B2116141CCA548430221A5484405424384440044100D0241204200280A212202682480426242112240220880800811166
+:80DB8000104819F859266081C051265814802242C114C41654282881328C81C8124B41002322A212248800324227471441814E2843D112A42125C118C04C127888C4A0611200122846081221E07F0E424B3887A11634182362A56F82741AB112D4A392189D422D1816B631F4141CE9B458B564B1680287814D828F2A42D32886F5282A4C53
+:80DC0000D128B142E722B53565242AE384A2124F68DA265A44604117434B28288E181B918B484758AB1E45A425228F183498AAC2434784BF1D4FB234F232424CB14CF32435C9B227F118164E3647C212272163616123941266629364357612FC241448282744613E1CEE2747411E422F8466221AA2242B532721AF6251262941A1115B217C
+:80DC80006548924853221584888B2232228B2422988FC1E1947128D476073D5285DC1672220A1E148986D2849428C3E282A23449D48DD544926A8E242F88A861182D214F4272A154842EA4233416F0242122452554E289F24144125C323816E484A2122A96343E149AB92262281A2123A1B985A4515E382B222938B8E887661011142112F7
+:80DD000001114111261201190411344027C8258C44C148148E48148414845484442548041504118918314A11A314314E11A316314A41A3042148A5211808448F9C42F3252157D691CFD3F3B83F3F32F24E484FD4E136F763354D3A3D1BBF77D1BBB456F57C3D5F76F6E73D9FF4FC464FBFF7F37D111F11F1CE4FF7FEFF16F22141CF84F649
+:80DD8000392BBF56D475F54E58EF85E452F717437F75F6132397A1AFBAF66AE9BF33F3364E7FB3F57B597F37F9D6CA3FB5FFFBDD3F6CF8CACFAFA7FDB2948FA4F44A12A78E8D988CA9F66FACFC9977F064625FF2568DCFD1F1383DDFF3F24F49CFF4F144517F56F3213D8D188F27D3FFF557538FD7F17D7D6FCEC3C4EF75F173376FC7F17D
+:80DE0000585C8FD5FD67876FA6FB7A5ADFB4F517176F84F5687EBFF4F55C5C4F26F7567E2F24F4776737232F3BF55ED9BF37F7376D4F83F5585CBFF7FBB39D1EA88F8DFFCF8E6F18EA43FBFCFA25F24A12A78F8FA3FBA2A88BBFCF87F1C399247E623F43F61A198F83F3393E6F63F25B498FC4F4617E2F67F71B3D2D3AAF24735EFC5D592A
+:80DE8000FFE6F76667EFA6FF7AF85FA4F5325169F24C685FE2DB76FC22C2AFA6F4454D3E226F26F47A7E2FF7F57262EFA7F7727A2F26F6377426F3B212BF2AE2877727F57C344E12CF8BFF93B58BB9DEB29F88F48681BAEB6BF84A786AE7A6B282F9B2B8FEF84F82F13957F07363BF43F33E39CFA2F28B3CDFF3F25A488FE4F7677C7FF7CF
+:80DF0000F73A388F83F35933FFD5F15E5ABFE6F77A7DFFB6BF32DF2DF53A797F53F33434DF66FF2EEF3F33F67252CF65F51F1F3F74E527F77E734F27F77A7E6F24F647473B518792AFEFF1CB421F93F33636EF47F34D1F5F5BFFB2B2ABFD9FBDF981C42F7AF9EAFCCF8EEE22B362F3712A2B992F8AFAB8B8CFC2F1D5F21004618429014583
+:80DF80000222122662814008844416C8264024810210C2240029A12429012A012B12B026016B12B0240122122200820028102898281228F0DC338004A021240028188400429012160880888403204A1424941228240000B022040029082041414421019214120018AA042014F4437ED026F4112487221F4132481F41324E1D24AB161D248A
+:80E00000AB9419B24A9945AB9443F24A9143FA429547822DB54F82C4914FAAC4814FA264114FA264192E4A96C54A9E24ACF491242CF4912485F291248B841F49324A1F48B24ED141B26A9921AB9451AB9443B24A3924AF44F9B448A9F924484CF9244AFFFB096F22C56C8F226541C386B24EC164EF2681F44A944CD22A8BF648964B42AFC8
+:80E0800024BBA4F44294412F44BB22F442944F2AA5144F22AC812E42D63424926F3224DD26E489D224E48996481E24AB849E6483F48164CB141F48F648948E648BB419F448B4AAF4489449D448FBB448816F8AD44899548F11048482000000000000000000101812810100000014804108000000000000000000002501CF7D08406472D0E5
+:80E1000052012226127124C8422221504841916140942281406C428D264634531A022982528432241829210844842886484108844008CC2896448A322C83813148F0725280B282819118842E544D111A44241888045B144A18D24288D2238C92442E142A04850218101155494D82C82168433224324435423414422A818AE12A0486948140
+:80E180004A92148C11084428544F82F4169780628D1B21255A491E2411182574887444C822224AD1A4443689433241472247224983361843F286282D4613B5214154C31F28724804839432232751244161124AC81130142042641885B444925C2E8881CD12184D49CB42DF710C2444411218484B12681428244810850864D02208428410A3
+:80E2000014081200112841822B122841442A081484434228E288028E68218608AA840130242002F0A2C99012100840884104200481458808250110842258584142454A0400284852002240018302201122091225018004800A284120D8F10422D012732598471D444A8264814EA893F2328914D613243838CE145B4223DC48848122748444
+:80E2800022B42165842A744C52A1284998146B81411843A32912441397848B38104368218E4835A218497C26D86AC458928A614AC1BF5844820283512D1446A4344904484E239348D13C0C86C2384C78443182418A41C14486D684F4122500464A01414125840219212802139414A81A1861811D128F285421C042CD224608184B1860C8FE
+:80E300004F530118242681C244940089B12848A82184124C08144A2162444E28D08402422094486841ACA2428A8521192431242AC118443886628124002100CA6148604AA3A528E04802BF7E45C122D44E22403861A5B24443644397482C21B884D182324849C812114CA45244283F4112724C319223440868471321839138421A0420E1E2
+:80E380001209216E884A61C411AA044822214512F42812844E1244F07C2C24608113C411280091230212834204285C0A908820881C3C12842882220021148B425094C044A021844182121341128169412322A11841901800278820F63DA31004212210C41410714A221241588244124889E241240280248C02812418402834842A0C22707E
+:80E40000810428214C12180282001C552880988880A81A4484418F410F6C9215272211224396185B2117422F6132A88D2123B88A11E252C14438AF596444A24247824712A126CE1A901290224332ECCA3215624147182AE182E15308A12F8986619C16A1482714166A28494856848B12A3F114488443F2CEB81002141A121851268C14C2EF
+:80E48000481C21111854488E48888420A2144328A4482819042A140883C452C01828200140024B8212144821821812423260881882A882442CF47B9D2004C02810685260C597282A08442988B58882012081828284025A8204182122182114A5042E4A104112250438882C011001432431248C1884624C82F0EC670028944831595222CB75
+:80E500002400490481842908823028904648002284439212841B34508418C8384729184144410090444248201544042121228B1C44C0144AF8BD710085012125414828013018E022286182841400800228D0814404502283810342002A41042A41820141228249086908802104298424290124AF5F0219324468118986C446401414110811
+:80E58000502410C82215544219114484042031C214904148865512C2429148250824A042C03C2400258A0582214D1822101802CF390382411009000030684A2118882822C1182218421C0146044621412304008252304120C12441902200108104415721486029004C22A842F04B24400C91001400B018C882008602A08219022851009064
+:80E6000011288810588120118482091421142A0100522282001C934210049A26E2840123084FA50100240016C22166082C04904280415422501234185021181034444C012CC41125641186424124C12421E041621512441418008058280080011024F8E31EB041C2212141624A8241A41225C41289842171449211A4C118250480230282EB
+:80E6800011202102842443C122260212522214384C02440023022241A0824018F822142C6184376A400E6800108831424E31111E24C024001411100128218041822844012440814254814382061A4448C418809141C4A021241094144444828C94422CE14649E122A44825518A4E28DD2A912E146E52CFC8F2C2B91AF1422A244F886D817D
+:80E700008E19299319472113A114244B22848D115CE52D7111CA5A17228D14186B11474A25F41A582F63A1434654174B141AE24121A2458443DA6EA125ED449614B434D284E1288BB444B9D2D47B064F147228512815D112A4466F52C36865DC11D561A424F01E9827655B229D8247822692112B245CE2122284D224224191122B261A13C4
+:80E780007414A6881BA15BB4459724414383A1214F82B164F499B41D8225824411672465B232F84A888F4B544852BE4488CF3B0315D445F221282E46136211AC345E125E8283D38AE4482928328A2353396D2127524F5225B244A1411D41EE444F2492468D4197111C7452B882FC61632D583E431B22D05BC3321E2E3B42468492448E1574
+:80E80000422331116C8D81E468E348A5244F83F4AC9C40FAC1FF00403822480045024581446281441A442248440820044221422110314821424142884241302C108C140C818A14088584041224488524C82400DF4F0D2E662E2EA7A2D7C21F24F452514F44F76464C5F49EF6BFAFFD78688FE5F58E8E4F68F997173FB1F9121AAB13CB119B
+:80E880004F23F724445F52742757AAB5B952F2544425FA62688781F5FA94929EB63F7BF214826FA1F11F3B6B111F9564C18F84B46CF678689FD6F64959A1A5FC1D191F1CFD5E581A91848F8CFDFCE8EEEA3E2C9EC48FA1D8EC0F1F66F62567AD2ADD2CBFA6F43A59DFD4E366524CBF74FFFEFC7E688FA4761EFE9E94DF5BF31193E5BE38F4
+:80E90000F33C146B137F52F215557F73F14A4AFD8D5F15F7545425B22AF138188FB1F1D2C62F7BFAF37E1E822F41F43B2BAFC1F175591FD3F25848CB567E741F47FE989CA5B2225224AFCCFF464225F2A482EF8EF9F4F8AEBCEF81A1DD8D1A2B2AF024261F6256BBF57448F27B536F64F55E46ED4EFFF9FFBBDCAFA3F2DAFAEFE8F9CEDCC5
+:80E98000DFD3F3ABBABFB3F3331857915F53B722F621614F46F721215F76FC76625F5454B33FB6F61312C5FF96962F6FF7B7BF6F65F537776F63F31F1F2B55CF41F148544FC7B434F6F5E59F5545C8227F31B1C6F9181E2F41B186F8CADCCFCBFEF8686FC7DF44F448589DABF064665762BFB2F22F2DAF36F47B53FFD6F76E666F64F4D7CF
+:80EA0000F7AFEFFF7A2AAF2DFD1E92EF65FD3F373F28F927276FD3F3371C6F57F565655F71F564749F96F66D4F7F37F756563FB4F47B7B2F35F55A5A2F6DFDF3E67F6FFF52523F71F33A2A3F71B176F53E348F41F1745C3E749FC7BCD8FD424A29F21D1BEFCCF954566F61F1B4A2EFCFFDDCFC8FCBF36CE8CAFCC8C8DF7A084712501240D0
+:80EA8000C148141222921486482208164862812812301100002800114A120443024D1110062D12004800140012344864824C22314892462478B30A82302A5022286A61C1C726826210084A21C1B111145332424322044A528144197458116211A4424B82C22128800215B4468192141AA6840041001812814B42880014ED17C0421F417264
+:80EB000028F2112CE3F41164E3D441B24ED141F24A9119B64A7915B84AB9A4F44A9143F2429147822F14F924484E914FA2E414F8244A16F1254A871D2E4AD6D5A4E44DC24A1F4DD224FC9124C7221F49324C1F49324E1F48B64AF18124AB941B69AB9459F44A944B4BAF24B924B44AF9A4482D944F82C4944FA2F4B586C04A1F41B62C749A
+:80EB8000111CFE1164A72419B648B181F22A9719C6B45F81D62AB9A4F44A1543F2429147822F147926F842914FA2F148856B824E817FA274D824625D65EB4CC28A1FC5D224F8816CCF22749114BC9116FE8164AB141F48D26AF991648DA21B488D144B4BAD124B4229A94A2D146D48ADB44FA2F511820000000022000000000010011002C5
+:80EC0000000000000000000040080000000082000000E0430F2531115082AD14C5312C512C81D28113E188C14183C14859041B842B424E114C3144416688B2458142A2214E149044B044111284C8142813427424C84487211A480846887118E484638940140246D424F2F9B17044A2285C323119042F346183A39411883042D0412412689F
+:80EC80001287411841C228131A56862246211314D822628844214223CA222622784204182A1112C812984931822F2442946421488F48465418F05A831447145A8252291D54D137453C93582D21479334AE481484621984925C4AD261B1143C244F21582C83E842A1422227414D1A15C288D06A65246A88721682F82641303C418C31148962
+:80ED0000B1A2711C622983C2785A024974C61264C44B21BFB20B251251341A12088722C420810818484E15848514C18312422034214A3224461121212224624441004488282210046E12908A0048B0145442478821902800F0EED4C0112821128112211FC15428603200406588250242001914082841428C0421901400822410C4242D915C
+:80ED8000123428241224822D82843014A524BA4821C18492008F9F07293212174124572885A4212642D42C3988389D1217C8A0211D84AC5194872C1D68A09486542410BE16C234C71147A48B848B822741611584D812411854A416CCC44CC169C681518116D4488122F1421886D268B43804C48CF449B22424281921516A12184E245082EF
+:80EE0000198A521825012E9A49486844888712A0494C08C0481AC414838184218871825424D016912C25C412E04448C26800256141413829E181648427841EA48240F889B960132C110419489C22972185B414582A1812C34805112D1215384823C4418190246125942E2C52418574CA648261108108E011584857A1221634111B482B8181
+:80EE800083186A8141E4A2986C914812C142FFCA011644E41461124B24D0483441C4A48E221C5242242822228C421428A4842E54AD144938288A21D4240E5921DD81748258A55CC6441508445C810228428A02442622043742A9D182654190A23849F9E7CAC0211F8162442CC188DB2190165226C419128F62B845889412424038221048BD
+:80EF000078126282448606993114702A65421028B13244548684201149144CC8198D5422A08452004682120648CE85C0422428211A0890282823048400CC6114442714192171212C416114421562848506F04288006C0282A08214A88484562221BA11042129C11A819908224018488CF2B434F041142771471125D38462438C943CCC7120
+:80EF800026BA897331C2822C448EE442F42A4116AD2117448B4136616446D8A562A48D448D524CF14287BE484D28AD2215C616B02848D984529483311125B42CB888C71BAC41E2A194C88743182142224CA2124BC23F6E042228221AA21415582419248644421838854A31310024848922784854814C0A1644E258028311249484E012EC24
+:80F00000415234448812228CA4124814202401F04282848B3443116A888504BFF109222281414008445440819218701208230580082843181801C044188594228141441FA1888C12741881648424412308008465284218C8184A21810189D848F1D14500005048239421628022B249018751284220440A8C11848436282932242822D08450
+:80F080009C168B4842293431442688B8216142268421B25208882188A0A1424AC2842148C880F26D34001901841394242541C22446A18140518288663484190295428868412410481119C31152481088048114C481006A286441148C08128C3116C04424442A884288F8699EA041419041241374485483502446280428424068241662422D
+:80F100008810420444168808294419440244250244685962214280012D98803988291A98921068812512A85242FF9E0C2A9424846042001242132809202118A81C6C62422A8889110810564216287528848B824442B4412AC1288846F2451A10D22402242C7118068901C0182644048830245F734652418448144A5181897221461248D114
+:80F1800048110439210883411808841B4829E28281A28228220088448E4488164484048860414C0844256442101404414CA84890464A01F05FA8402804002480041226441118819412210020421442028400610023B128C81100422082212202928AE6810282008238000080082FAC076328091E2899A821426082431468221601811035D1
+:80F200001128112818248905488470486134148E4821211A42844231148280A44244C0A11601184314B442C8828C419814601524BF3F0A150858804214941A2CE1222144249822344D9881841C814181D882011888984341861124C21183114118A14111C420113142115048C02288100C1001122962843F240E2F1774881528E4EC924170
+:80F28000D0CFB468F2478433B32154A21D14118FEDB41AF12D612D2B17B316D1C4F1C81A12A1A1D5F8981A47441FE4D18B792EF484488F417412914453F421152AD99CE322F47242424F263BC13D218B88A568C92F42F9942C8C75CCB41E381821A3FC18914FE6D2A34D5241CAC21819521DA3F4214526D2267118F28C294E11197812F166
+:80F300008241A84D8456AA12AB88AE181AD214F8482C8CC26E284D24B9723AF1C445DE888F4152275F2CB892711204CF58E24FD88E837397B612F41254C3F913184B1969B8489218474B8CED24D512E14581E91284F91FCA90244B13701CA9434FF3F24E2A5E31542E714AFD1828CF1151A88FA59B16CE4918C3C12489AA881E442F22747C
+:80F380002132A43E1466E13395443E222CE724E88CC17C1F56BA28D28C72519841174545A4E286D424EA82C9222CD8287194D822B84AA821A65CE44B4A1AE68C92488E1100418081C4128424502448002440A24810411201002144000021426312A88242450140180449886412204248244844089028008285F47515241F16E6C3B318B189
+:80F4000021F2E12829F2525C7F47F353515F2AB96EF221332F48B988B848E545F5C987EF62F227249AF888328B191F1DB542066E6A6B111F93F1411117323F9AF2F1842BDECEC88329A1338F12F3BDB11FFEFF43712AF221654F69F1B6B26F29F993918F49C912AB5C4F2BFBF2F84D46A7A1AFB414A2622AFAA4A2ED46147F16E641F71860
+:80F48000181F12F231793F92F65F5DDF67F55B4D1F7EFBBAE49F22F69BB89AB858A7D59D53AFA2F5363C8F8BBA89DBCAF1C949AF8717F864CE27812E2A5F75F131233F9BEB9EFC9C94CF19FC1459CAAC718F42F1892D9F1EFE4D754F63F2A3E36F45F5C4948E951F1AA8B98D885AFEA8BAEFCEFF6C6EEFEAFA4C5A6F61B1E2B628FBF8BAAE
+:80F500006D78241F53C374819F92F278383F42F24E4EFFF7F773555F6AF9C99D1D23BF98FA89913F1CAD519FFDF83F35DF42F299819F1BFB9E945F5DEDA247F864EEEB115F9373117931F3ABEDDEA72BFE4E48FE387AF331718FD2F3BDB51FFCFF33732B223F52F3A4547F7AF4BB973F32B98A8BB1CAB524FAF8F8CF2EFE7EEAEFE4B51265
+:80F58000B162E58AFDA4FAEB3E347F56C63485F821219F96FE6B6BFFF4F47F7FBFD7F6E3B7AF8FFF597BBF99F98192ABDE5AFDDBDBBF96F7353DBF93BABBDBCCF1DDDF8FA657A84FE6F61A185FB27355FD3123BFABFFDCFCCFCFFBD9CA6F2AAEEC1F51F3293D8FD9FBEDFDDFD77734F6A7F76BFE5F1EFBA8991F18F98898CF88F9F8DAEF12
+:80F60000E8F9CEDCCFEEFE76EEEFB6F736342B7E8BFACFAEFF38E7B0220118844712844112266189141E48141648E28844A441892219088504105248118394168B2498908480014342A8828C842141026089204102A0414440242124F81CEF8044042014714242BC484194822820180285025411218489880484100457A28250482C0C1C37
+:80F680005C4118C0114443A4284314814808844C688A8524C2828C84219288F0D8BED026F41124C5F3112487241F41764AD2C1F24E121D24AB9419F64A9251AF6439A4AF14BB24F4429347822D954F82C4B15FA2C4857FA264554FA264192E4AD6D5A6F49824ACF4D1244DC21F49522A1F49324C1FC9324E1F48B24AD941B64A9921AB948E
+:80F700005788AF443924AF447924B84A79A4989A4F8A94984FA2F42DB9D036F41168CF32F411248B141F41B6625141EB1419F248941F48B6489B24AF5439B58BB45B422F1459852DB57F8384DB87E544DB81E845DAA4E119E2A2645D4559582C7DD1DC84BC91D438F49124C7249E28C73428AF14F91144AF76C9244EB317888F44A1432FE3
+:80F78000645984AB944788AB14678AA9E122F5A8872028080000000000004800000000180000000000000000000000800200000040018FBA4641C1248D121514724245A814448C72428808936439462CD52E836442278117424C94281372413432121A724482924E212E44132323419C166624E2243321E31489126185188E482548D88448
+:80F80000B4C4220248A0C24F810A2D32820019012911A54119A8813189351445A81831884B288325EC8431884C348622811022524888431828682815846288A1275181CCA4124E942B412D88881B4841961446311A16BC42C118471141EF684E1231C68C513211D082E114E1446112C111624D1153E984A8142F22E846B84CE1A178388176
+:80F88000F434482E81868541824336247728C0688F1861234F148132842FC214A3246B24C9E471382439E8822578C49A9CA18D442FC281D12235584D114F2DF2DF88A0122840C4121D44400486F842928289C14885321425711408222394448D8424442E428982012A14C8488614848208C56281E041921815B822C1484A4188B811044041
+:80F9000014A18447820000CFD4061011240100280081118084011843A2141218100800121816212201126041400486041301111800800110048021021088F4759B00258492226063874411560412182331112348D4824202441998181024420830422441890123011218841C02101208542A481A88A414200450681843C494841FB20A5020
+:80F98000122001101A210584112116224844482414C4814048048400464102002144104478A104008041811238184858444220419C12424C01AFEE0940D42422021E24468412044C8181934118B022612218181883011828208131122216C4181218838121050016039440244882020000800244899848BFE80A903425064C92494E1240F0
+:80FA00000812001841815014A4488C4124048142842B12842C8204C022123222418A41A824838102248C021041223924508281800183F4B9FE00800100441605261818021D82121614784A2214288432188032214C4148152C91246668844C3281188551244C931200648C1411C258204814084C6441286884F0642A1001004002C022414A
+:80FA800023080040313460432241984411435484002A8411280143082160220081288B14620000A91438481028020042A84FB80111122D1220429A547931286D2A8B18003C991445E9227141E6C3346252A84C153128663514AB212E4116961849E382B48CF622121B122A7121C6942D32422628E2445282231222D412446A48435228447D
+:80FB00008901428489FA6D8C004C120441190400400200205148844058484311084644180885648242004084088110EC8182E18104488501894188E88114088B2441283242481F7306401404000022120000208221018442122820840449050020010012A02120911884810000000020042810082FB10E28001684C214120020818121815C
+:80FB8000110490140040688484281284001608A0426A810200890420024608000084848100812820F425F5200200000080C114808221018021110818815848223048000020321822522021041828810080021018084240284208F71700434464412216240122504447414B232A2262421810044602221E188B11D212160490181118488DA3
+:80FC00006885B848A4444A42281148084618042AA222220081002C02A0417FEF0920014C01000000181800800100008184001008282004008081010000000000200400008400FFDC06818C24840400800144444C228202000050A2102281298A0881401141C118848C24A4410080024014C424224A02000050229012DF6D09C4A0410000BB
+:80FC800000804104388001000010028C21C288008002141850888004804108810044800220044008101AF8DFC300000044800340042A020000848100A011000000120040084A0480010000002A020000000000CE7A0044440041182200001200000040080000002002000000000018220000000000200400F039A790188321240418000070
+:80FD000041B024822102124481844042A2112283A12882420030111181B048044A8101000010B424022220048044582824F063C74048888405000012404484A22200004008A12991181A83880A004214148484841AA4440012000044444AA2220010080021212C01442001222001180012000000001048440800810000802101120022184D
+:80FD8000000010082004004884000067F70000440000000000120080010000000000220000000000000000002004000000F0BC2700802101411200001A011200189018850810088782842884002A83041818A0118081038400000042484800844A040081CF8A0745C414124C0112800200A011181812008400848400202282A422200412FF
+:80FE000012001A21011880420810082024040000851808AFBA0312124141284418321A81210100001241008518185488A02281811008200100002021A11122000000004A0442854808001F1E0167226B212AB112219112C0122582E8317111A1988659888E414E48D09114815489C14E488744CF42B444F22424224C02284514A4326722C8
+:80FE800029A2122B111AB892092C5922881E1397118A689987848B488F8424C448805488814E488F1A0B6F2242A21232122118182592821CB11191819E98818D414242941581445C888CF44844414B244326428482425444282F2242A212321A388282182592829CB11191818E8881893448428448488485C8484F190F0000000000000080
+:80FF000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000023
+:80FF8000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000A3
+:020000040001F9
+:800000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0022
+:8000800000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE4B1
+:800100000F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000000000000000004
+:80018000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000000000000A1
+:800200000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000020
+:8002800000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000A0
+:80030000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000001F
+:800380000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000009F
+:8004000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000001E
+:80048000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000009E
+:800500000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000001D
+:8005800000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000009D
+:80060000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000001C
+:800680000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000009C
+:8007000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000001B
+:80078000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000009B
+:800800000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00001A
+:8008800000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE9A
+:80090000000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F066
+:800980004FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000089
+:800A000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000000000018
+:800A8000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000000000000000000098
+:800B00000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000017
+:800B800000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000097
+:800C0000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000000016
+:800C80000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000096
+:800D000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000015
+:800D8000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000095
+:800E00000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000014
+:800E800000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000094
+:800F0000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F2280011890142002222200444428444428520012442A040020346842222002848C448884C548002012488802284828682800846F550D00004141284C126442449024412828412877
+:800F80002220020042C02418899218844038484628B4480120456882224A228602228034282002201408E03B010018800128414440040044004120220480C1444A02008142834268868100002084022A04008400848024024008F0EBA1800200004901002022120449022200220000302420028004002889013018C0582608000084488014
+:801000000280A4420084DF5906000010042830240041002002490218000000128140080042484018080042A0420028208202220000005C01000044002002280080024100000000000018004800200448428400002228000000800200F04C6E000000000000000000000000000000000000000000840021000000000000004FF24912E4211D
+:801080002241044440041A02850230142844008302412A7424C128818504284250845082000081188182484218222C2124A414001014086848229F7B0F13422412381270118493248111502100A7483036282514B4110400156424844C44692188284684A421505826428CC224C02DA82014999AC127828726168884E2820481482F440487
+:801100004C420685141294118012485128002447824441224120A424118912C4442588C64924C1D0C2848402859428AD14224B284887428A23E221944123143C286618182432484AC24868CFF20925A1212A011810E44112A4210034C0148224322426483415302450818140041288280018400140086014001068894E12402221448802A4
+:80118000009FEC0C290120110418848522C88212818C841151421285B421C4112285414801854462448042982841421828181127121D2825B2115224004061884C0185042502301400DF674E6146269413254273112842A241CD3236612A163113F0C8341E42421A1676247848A161418D44423961541F8211F449164CCA528CD22611D503
+:801200006351498CC118188754812F84B8A891388D9312437142E2A82293B84B4B4A32A4A88A5284AD88142F444294112125470184F0863A98821629014B81181289159414132445480412442311745854861E684C227116311225213118124974111888081E8125E181F8124488266CA83A8464428A2212EC160712282112608132305AAC
+:8012800060122B12212D491866794286342427161D2826C829414689541E19D41C0626210A25CA44D014321C153A211D28B562224C9C3A8B12841841248392122AD1242882C81488F02FF6F011244618484248912223616442441722502242AD1122384501430A2A94128429125A48532154821615B61452824AC1428F491292480023C252
+:80130000146C8182524A6541C8184CAA14C0464938424C2454D3142446267212B41404851114C218004C28D11402402201C04C143943044120229211841721C02851688002902C112D488C840D163428902421432281A2148D2280F1A512304222161401C342444141120118301847265016222C44A818434124446C3230421210A2484000
+:8013800042421451182604304410420948203142428562828901188489F222D33456C6262E1A5C21D521C22C143D44560A268298121D486B34224127112C64884E185644D42494242558481B52622D19C1C22B2129D2141132A6944902897262741834449E6126E2845118899158274A8D7423B11C22AC344483F2BCFF60121004E1C4348C
+:80140000164402141118D04251812532314C024C32841C3221818CC8A5254284012D1216140429C4248D132883044111272416180A2441244322048982D442413848487FC80848841222511324C212004365222C041322242238121242A0828829022124141220818441644826054622114492181E488C082944E81168261A0846E484081C
+:801480006042A8217F3B0A00301242611E46665841935A1A00144290113D141482218C883121D012C28437C252242C824412213112212641C4411400228061A140022420024124008AF492F91064118445C828403111128414111564A81649028410341440011342D8812141C4182424182C02411014E2888182D2422782DA280843618876
+:80150000009824222C22014826E23806250A11151284311E44844C0160214810180888C0824C0442894184088449381449D324C2440012221E6140924C3440249221004CB8825448101408844412BFC20A10341C182400219F44011A02188081F683145282181A12A1121164821721822C04002A8504272181822111411014321129041460
+:80158000004CC168421289581200144FE80A104802124D4821974424002C41C81480014062484A28012382C1281028429841141480C228490228C18440C8C420E144130829041A4838420020A14A3DC5C02832001CA421681042044C8C042C048B42A2222A04AA744261244846031744212232001241002144244A2288024E28C398882C04
+:80160000242408205A28188CF5884428819F694C0221636282234119280221B011021E4A84B30130214065112051411281386C02801482921148420041242608845240C1121314245624C1008C06007FB805CC148154418302006023284C44912110042CE4218484022314B44809A8829C2184A482459184A18C82011C018141144C11049A
+:80168000863681CCC211202218644282A26944F464C890249912F92134378746FA4C481E584663C82F137171F24141AF917C4AF93D122FA4F841143B1316C4F183E13134858F861858518F22F916471E1847221F43A6216E148F6112E62162484E651FD131424F4812FE4814D784ACE829F6111225D316AD814F88F84C8446F42A8C2F84E8
+:80170000D588EA12F422285F5C0B25E6C1415634742D152F41A124D16B31C41C5C222CE1215782DF11C1C2CE222D8266F482541B121A942586A121963449A9D412D722B142D53618E1217E6C84A21383F82C248F22F471322E483EE4AB3513D216D881C4242E524E14A66882388863DA44A1885F6442A34425F13618A781C9B71DF6212267
+:80178000F7722FC17128936138CB115314A1442A32B81CB8E435941F16A82C6E232D473FE2D7AAD197E682634A524A7824A66169E142D11261327169445B82D46B298A3184AF947948B8DC682C63FC38222CB68E55248B214CA42C4B54BF420920426812702442088C9484C083C082122CBA11C422114C0228130113584811874431CA9236
+:80180000128221822B12C21C21482148225834008C44A1415440A641008524784804441FED4AF2561265F62624CF4354A8BFB5529BBFD4F26373AF22FBE2B23F3EFA8B8FE5F79BCBEFEA781A5ABB3F11B1E4F8C1D36AAC816B2E4FC4F224244F467725F183816FE8F8D7D76F4FF634A43CF8DFF32F4CF491BB3F18F883819F36F6E2E22F77
+:801880006EFE7773BFDDFD51D36FA1F11A92AF45F155515F7DF446566F42F184846F49A9664FC3E38AAAFBEF87F6F54A246F65F577676FC3F23C558D6ABFB5F32A36BFD7F27B63AF22FBE4F63F37F67B6BEFFCF9DAEBEFEA797EFE23233F17B5E4F9E5D32BDEBAF8A43465F42CACCF46F73BABBF37F36E7E7F7FFDF7754F43CFF23FBCFEBA
+:80190000D6467F7353133F1BFDE9FB2F26F66E667F7FFF5B799F35FFDA5C8F87BBEAFB55115F3DFE66E66BDEEEA46F49F9787A6FEBFFE268BAF36CF87FAC45B216F53666EF42F23C2256FA7B2F9FB7F62F2F3F72738BFA73F63F16F7193BEF7CFC195BCFE6F29A9BBFB2B321F174A41F15B9E2AE9949F9C48C1DA62FE3F3474D37B52FA720
+:80198000F6F3536F77FF342496F2B33B6F64FE12732F13F33323BF3FFE4A4AEF66F67676BF9DF951FBAFE5FD5B9B2B75CFD57995F3D652EB5F4F6EFAB6B44F61F33278AF8EACBBCD9C7F774AF214547F73F63F2DDF57F3787EBFF7F37F7FEFF7F73B3FBFF9F173F73BDE9FB5F74E1FBF3FFD6E3EEFFBFF7BFB1BDF6F47F3F7F52BFE1BBB73
+:801A00004D84CFD8D8E8F23A36BFBDF4531A6FEEFFF5574F57AB31BAF7B3336F67FE36376F5BFBF3B3AFB253428F6AFAB6929F95F659EB2F8DFD5992AF8DFF5CDF5F5BB866BAFEFDEC266FCBF39CBE2F83F7E2ECBADBCCE859071830224081342448450124408244C248241788002028044A02441889024220043026F02411302448221E3F
+:801A800048A049001486088A0484444800288247A5202841E28102161C2A31228427241B218522C812C091502243081B41427048F123424417A21E242446D424814242C4928088F222938C54241F8112C8248128293111292113628288478340E84448F15A49C0431F417228F2112CC7341F41324A1D2CEB141D2CAF24D981F24A9353F1EC
+:801B00004A9253F34A9353F242954782AD955F83C4955FA2D418F8254A87555FA264592FA264592D5A9E242D4A1F49D222F591248D131F497248F39124E7341F48F24A111D24AB941F81F24A9151AF343934AB9443B24A7924D84AF924484CF9244ABFFE026D431FC1D434644183341146D141B24AF191682F54A9288F443B158F543814FE
+:801B80008F44B814C4941F81D41AB916C4846FAAD548E122BC58E88224C98A86C4D99E249C7DC1CC5B8E648D129E2483F49124CF14E848F248921D24AD958E2CAB2448AF4429D26838242F2438A42D9463D248F8225AAF210C0048000000004002000000008004800800000000800400000000800200000000F0DC4C00250289C1165395F1
+:801C00001A433152242C24991A8125C314184467218011148824021C942429914231411238006D112514CA94148C2242E94104A71813416811493342803124812A1114B4DA0D43214B421538284422E42624C821822565888421D0188472C22824C82829946829114225D248AA9422F0128148802262A62634121125D2A122018CC8524D74
+:801C800042C02A8002484029F299D610642624944C71623C1A4CB244712236842DA3A2D1A35848124572589522AF281524B81832628E681A44D43621F623881F4824A2218D814823342429E2451237221952834D614981E81368A149C124A9042260A432811E242E2FC01212604181131124110A42128D12402311020080148804241423F8
+:801D000002408421412201174121848988921840628125528181484623C1228031240044D01F0B1428181E282911018C020090820040024C1884028524021088014D483022442A8C02502428E081928A1A5228114008C014504284644842D048E282F49EDE242216C12465D1181A6CD2128711B83D1A1C58181A7841F4182615DC28C12858
+:801D8000297212E48423E444784AE4C4324226F8126E1E224D7856E4210448274D16E48241358621442D4A174B6E1489621129C51285F21844842C04EC63428584018F82488222A321BD22911187122815A883152208885364816127812D8649322222422A64448470288292263A9452482B48426B58128C53618227818634788E2C1CC541
+:801E0000281D1242901442454848148256841283F6B4E910114164411A4A4C941812701218918B12C02491608290144E18C18654822E468924E1C4E184514A26C4142822105424284428A12592112D2410882151826D18212C04478761D084028EAE24288483140C184C42952824150844172884001116A8418484222548AC428B42120022
+:801E8000182048C88844485012008480246242006342084836C68446022781E024F2F3F7806182542F15127128314880114AD4181192141CD392B11408212614951283C1461E42864D223481492252142121841825A22441B086A2485CD1488111618425EC129114D08498888CB12891244F228445FC4AEB00004014041002189081818056
+:801F00000428102888C44414A89012644342182244A42144420028260C41212185860180883422212304800444D02A0300153C1D44914784418301C01313C81E911CE441C82384CC0258CB1289F4826A46B41A6441139A2C2B124125C42886241402288CB28292C86D1256482241126858CB412592CC8BA44B818F2211B42894542E486F53
+:801F800057092B12282428141E242211272284AD118430812C618100181AD45848281445742188DA2244048024981290147022524141444111411E2C26C148241220423214A1484A321450245F48042244118961418125120C008D124002874280881828384862812242844212184A4868248B4146028C08438805488189C144122C9544C0
+:8020000029C54410C2526024122024F1637B4068242242222110116191224001008289C128C018188CD8228489288501002A440820058328C224160624430246124808218001244144898441F81B351410022525C12C418502901228194901802381410280012216820820C1141243011A5A2212448301420048000049042584A41442895F
+:8020800003490222CE5640188121021901239218218287180016421288028A018A9122490B8488A60AC902490A82118C280242C90884442824812604284462302400842082F48BC1200817422A1124222241281102481301821889781842B428018901420048812138218502498431249800408A015820512CA012121870481264224E142E
+:802100008114DD28001518126C22118002842A4116042A11088018C84481428382014E2884296282480083044E2818893414484548644641A042841084C4220028100463013F2F0B262241081508154832412886896228288424812622822288228811042D820080084B684188442123228803228483D18482D14226A12100242443314814
+:802180002100F0F5C58041881101430115240114104402B8260270820242208804A028854232244440A42120048188222C04008424100821244C9224209128A4322A4802226C041410822172821164588042024880046882214C8489E622081844A0C11410F824882CB81404848C15A41423C41A2844422829B2143444001820D14272447D
+:8022000078DE0329B28BC424CF41F434132D1144A57341388817189A285C111642A63683E12AF82E8843F4C888CAD288B442F44842A9E62A65A1814B944F4CDE44F48858812BEE6418727EAC844F44F448724F4483B548E38661242D444229E26595424B2416F212184E3487142D581F1D448161218F31B121D148922C95F23124A1359948
+:802280003E19521624A1A948EA8A3A488AB1888591582F42A32888468AA8122E322C32288912E663C41423D3487288348CC7218962412F83F44C262D4AA5925A4D1A4D244B43F044348C71464852884D1CCB246FB30326D29432272D291117E329D284E133E121A38387B21F4198122AE18B329A182F8143F232A83AE483B8D4B82428A325
+:8023000012AF84127A16EC4BA411CE1A46E41C7B14E28CFB96884D98584E74A465186881321A56C4522F22E5641162232F62D4487724B434A423321FC20DE012414841184448012284144061880080840228400428000024E022084100008443022484260224122412240012240010F881FC2427211E38CF43F32523B7581AF138324F62C9
+:80238000F34252BDB3FF38F982122B541F38F88B812CF85AD82D82AF89F9BC9CCFE1F998788F81F2ACCC4F48EC22F11212AF217112E282E222B232FE5A3ECFAF7B48A2A64FABFBAAA84F4BBBC8FC5C545E1625F2522EAD262FA1D522F44216A552266F627346F422222F22F122222B764B544B126F93F2258B2427218F26F23C3C5F7256B6
+:80240000DB5F11F3383A4F62F25A5A3DA1BFF9D922F362723F38F88BA98E82ABDDAF2AF89A9AEFE3F97A98AF85F558486FCBFC84447EE22FA1F13AB83E384FE2F236341F35F65E7CAF97E385F172744F6BFFBCB8CFCBFAD8447AE565F52672AFA6F34A7AAF64D52AF45276ED166F21F326366F65F142422F21D1AEF142526F46F6343C4F69
+:8024800082E2914BF212222F11F73C36FD27B5F51915818B328FA4F5ABB3BF48F998923F2DFF1212BF11F18892AF8CFD8292AF8CFC34BCCDCCAF89FFB8A8CFCEFDA4C46EC22FA3F4326A27218FE3F3D2F44F5BEECFFA7E6EFEFACEA26F29FEBAA44F4ABAA8FA5C3446E664F15A78CFE2F21A5EAF24F54A3AAF24F516166F66F362662D3204
+:80250000AD1AEFA2B222F26E5C2AF12C588FFB4AF232222F22F73E3EEFF7D2DBFA1D3DEFE2F22D2EAFA5F5B3B3BF99F9B8BA2F2D5F22BF93F1A8BA8BDEAF2AFBDAD8EFE3FB7AF8DED88FAFFFE8D84F48AC663E282FAFF63A3A8F82F2F4F62F1DFEFEEE9F8FAEEF2F6DFC84A6C748CF49F9F8FC4FC7E3E4F466762F86F76872AF24F75A5258
+:80258000CFA5F54A524F67F564362F67F756522F25F12E38AF82F36A688F83F32C498DE890123022D012014F22012420020034922C22C9220012428200819028414A12042A014B12B02449988410441804404842480644C026124E24F04824F021EC0040411426111201118812148214008240F8481412C04846842401202204812A0100F9
+:802600002A0881D028811688542228460224414A8274427424180810F47EF4D034F4112485F31124C7141F41324A1F41F24A111D24AB9419F24A9151AF143924AF547924F842914F82D412F924481CF9244A8D856FA264114FA264192E4A8759ACE449C24A1F49C2431F4952281F49724CF2912CA7241F48F24A121FC1F24A9219F24A92FA
+:8026800051AF243934AB9443F24292478229F9344889F9244A1F820C4D4B4C54281E6C837411784AE1C112F2114CAF64E888F248B643314847822F547924D812F984482F14F986482F14D984F54895696C156F8268182FA275C8D5326D552D8ADE282D891F49D62AF48124CF22F1914CA3F6914483F4114C8D841B618F44BB1594984B4372
+:802700008BA44B432B944782986F8394886FA2F5ACCB6088824800000082008002000000008001880000000000480000000000280000000014704E0E10411C0920113C1889328A138301414181231192640060C48628022614222141724892482005208811384243914226744A82944812214934522418C5227114886B72EF4C052622C8A9
+:802780001224703212C8215041120097218224412849C11A86480410D22444088C1158228323022D16241E842CC1264C644218863818881AC212102281012280012A440137CD142C628C8C11082D3283118951C1C9C1212A71191244562C324147A7861204874129A85884263218AC2131212D4846781AE421242D41644581128B1818499C
+:80280000BA2E21F422488021246522128D1216C2541EA13287EE001145121102C024812829280180080029018100488147221004002D182821104244A228214C324244A30446224122113214210041608210F4229900400129219118151464812480010081902800848304A04240C2218C012416041614048012E88102112722122182215A
+:80288000160880025084102404FF5343514151326598A48144A921011668112532118216A8428F4168419836A8219A1204106E411E4643C412184002281DB44B12A12E14414933181EC4842227118004CD12884C982E2A31688420F2A6C610041F221118228101C018C01125128108841E8841128C22C388002281167454321830124002A2
+:802900006018182342C8244CD218616C80C2110060412182612E1C2A4408287F9D0F115410644B84E4CD111604AC01181830186241892388118817042C44443221492441C21430144CB21492248143331812242AD128412218C25840281A342810188444E2A842C224848C8221411478485114449A062E4420F15825824C820C2501501E1F
+:802980008AC2241E486031701202244426384449C4888180013CC124241684312810981245C888202461248244AF510E50C24C1412211284811158811826069582480AC014221243921248824184261418084C22F1124812222906411B284944048B24302226F48114482818442284A22442F01BFA80011981420600304200D01408104487
+:802A0000C81842200440445822128442C0A821282008142212A50422181819324821806184A01489612245584820F82B6FC01425C4242B126C3124C11816278486414251813D1C454A88CD46224A11149964C9F2124816F82916469812895262282B424A5124288982B18492445D224C81C1312518721421D18246241C58283E88C30444DC
+:802A80001F670723028D114001D08104C48D9120348418AA843824811214801284084421008129889214124988D218084572110812228C16A2618182832491184781382A44044A28F8665C2412101154419440081418840081424184414908844422800184400C1218842243218221861202104888311A0012430216082741221200BDBF2D
+:802B0000C02149C22481281828B04A024A024D41481906A28872186634843A086E84444302328226046041414A8815140800812008282243082031A429A4244880042F7D0300812812281682021E28242C122111221232744432892103122222212221260418811880033829810100283024100843024508412082044CD47403A4408201D4
+:802B8000CC049440048490611244488C38883082884188818210544830584240325810884488C848288C921426041E4A8001AC0412608148128426F88A1520038302439214222822A0124A08808381428482E44112888302412884282228222004000000008147810000000000492124C4541E3450A2422C8442082116D258B1440A16428C
+:802C00000480A2418039884094822582592890562B14482311A814220040285182C0181888D08441B42811C818D028123838C4848100CC04511441181440110110014228C6E9484404002C0848C14450480000C850844144802414542282412C810229085022886024428A06822486B8E50D829A2201001012048423829114008425421842
+:802C80000428841884281622522850688022A21222325022122822222820220284418C8382922C40048383F265F540188C4425C1219D1449C4419CC5414C041C123488822A85A4428118218218C0880020049488424608E82230188055241E42400458265224244400205222F0CEEA2413628A2AA223CB324F83F122311F82F32C387E5146
+:802D00001B322E5A4158144B242AEB82F338384B74EAFA28342A7224E28282AA22CB21CB238DE46E285A86F11C1C3E285A83A2818D489E14A7812399381E184F8BC114AB21904869F1682C36F87828415A38447AE484A5268FCE0425674C8D1F4D181641341825D512D4CCD21814F2424547311DB8AE42484F44FC86C43646A489C8B8CF95
+:802D80004478247216EEA2D48261224D44188F8182DE42914489A1322723268202268CD24856224E888B32864C06C125E4E415AC628C8852CA6F3F031AB31712544315F4492155D2287441948156B2489A1113F47844CC79CC3698428E88CFA15184CF69618982CC11584248618B11278848224B442E843A542C4A132AB428A241C76A21C2
+:802E0000CB232E12841AB138F216822D224F28B12AE2C2C71C1885B214FCEBCD14601240412844180488841C0888008444108804484448810020088308822008860C866C24862C24A884844A28E12448A8848028C18212881288AEB6242F26F6373C1F12F339223F1DF4717677742F21A5114D515F38F9B2F2DED44E14CF4CFDF4B44F6CF1
+:802E8000FCE4266B334BF24FECE9CEBA18F9CAEA6B844F66F356526FC3D322F832B42F6FBE72A6C58FC7FCFCC44B491EBC4DA26F29FB62626F49FB96F48ABC58F742A22BCEEAEC4CFC44944F4CFEF6C6EFC9F84ECCCFECFCEB8AEFAAF868288F88FABEAC7F4144D376F177741F12F33D36F7C2CF63727EFE2A42EF97F5EDC19FFFFD6A631B
+:802F00002F55F74144DF5DFFF4F4CFEDFF6C766F86F7ECEC4F4DFB6EBCCBF48FA7FE66ACCFEFFA5E7C6FC2F24AEAAFC3FBF2FEBF9EEE87FF24AD4FCFED4CF614A4CFA1B8FEFEFEEEEF45D7CEB688FFC8D2AFA6FBBEB88B125AB544F9AC9AEF63F25E6E6FC2F9DCDA3FA6F75A582BFEDEB8EFC6F3FE1C243F23F33373BD12BF33F23F28DF4E
+:802F800063734FFF3A763B119F9AFB293FAF23B352F7C1D5CFC4E58FF7ECEECF6EFE9698CFCAFBA4F46F42BA7CFF2CBE6F82FE2CEA6F27F73A3A2F23F3B2342FE5F4FAA95AF4F4444FCFB674EC43F7882EAF21F3AEAEAB75AF83736CA4BDEFA9F72A8C8B328F85F38456EFE1F83E16EFC3F1CE7ECFC5FF6A58AF87F5EAF88F81F3687EDF25
+:80300000F642F313133F31F72B12FF33F32FADDF77767FFF2A66BF97F569619FBFFFEBE37F15F5C1C4DFD7E5CFFFFCFECF6EFFC2F8CFCEFEBCFCCFC2BB2CFB6CFE6FC2FE2CEA6F27F72E2E6FE7F7B2382FEDFF6A698F87F7AD2C4F4FE746FE342487E9AF2FFA7A6AEF61F3AAA8CF4FEB25F1AE7EAFE3FBE8F28F85F1845EEFE1F9FEF6AF89
+:80308000A7F7AE3ECFC5FFEAF8AF85A5768FADFBECEE5FB20F2290148441402111042412A048541608000000004084614420A4820080080023020024842400844440460848819028F044BD30224441004012112448014A0842414E8240044C0840082440022C0D200444480000120040041022018011344841001074CA022E421F415228E4
+:803100001F41B248F11124AB141D24AB141F41B24A9921AF243915AF243924AF1439342F747934F842914F83E414F9244A4E814FA264114FA264192E4A96C55A9E24ACF591246D521F49F22C121F49B24CF19164E3F48164AB161D64AB9419B64A9945AB944B42AB944B422B94478229FB2448984FA2F436BAC01A1F41F42A421D24AF22A5
+:80318000D1C1B62AD181B622F1116CAF42C868AF643B158F243824AF146B8BAD234F83D41ABAB6D452E28AD558F326CA8F157A24F298214F22F48825BCD558A2D21FC8F2265A19F62C9215B84CF91128CB861F81B26A7891746AF4912CAB345B288B14478A8B3443BB427394B842F3B6484AF1A6582FDF0484824800000000000000000009
+:803200000080018800004001400848000000004480020000005012F043B5002810022A018420420840048001A8450848C022C02200819016100218421028414814083024817018021038128021A218A084685FB70B205948145042209218414A81810100001800004508411068212608221E24810012002022820200004181100182C42AEE
+:80328000244211FC7D9200D28542012743C0288143D28421A1124400002A184882048C12E2280184162A129221218183812445280149128802265484004189123811A081436224228E414B43DF5D0980120400001820040000188011040041302400406841E0410200001008220000D0280100210084B800842F560F4094145024161804A8
+:8033000024403211463111002C014422180000410000406241221624E24112426422122110020023041884428021014189083F6904442341D8860110911A124D111210528223414A0C1662E184200141218D12188D12248C3132301A2212001638124E282E1284E082213222842548781482B21A6882C52202284AF2138C40225124160460
+:80338000844481D041011813C412404204433126000024400284C01840C2184381912400186688120A1828008116082722841628110284424F7607444489114826119112122118354252811881AC0160A11608181014941812122125E22162412228281602874123321229012189022972421802C921848952482241A228AF710A414D1AFF
+:803400004481C0118C41430820440C404A4882014190180060210010242201C420C5244309234284C3188184818420C11400414781412442F063AF241342986900401488C2188E18C01412104204824440644229012884101688094840C82642200212100220836142812022018128602440F24EFD00001430220000195418502C432101C1
+:80348000494248220210180200842002241686830183010000C014C02280181812A22100B28440F414FC2415145485816012C485C2288CA1588484184CD1285184262251242244161418022424448149091AD42231344F2102CC9324A02130221688A1218120183822298142982443138844E6CA0C22122312412281110150181984518408
+:8035000025021094884004890220321810082822100420019224102401C4811A124A88311420416481884800CFD70A18C14008414400C41812200484401C12420A4484801112721208C01200008002002021129828830200122112000010785C064200390110021D56484880816114C0542941044E1481122004121242458211221134227E
+:80358000841241180028288502490423923221C0424821880080F23DF9002C018100002181002011120883410284120000400C12802102243028808661828001842884848082078C0381242824181A062781110023C1111241142C012448204144028B41416140682181400210180884281816088301D022C462A4282A012148C0448400DD
+:803600008076220418241FB30D8001001854100434400214002001004100006021000020020028000080020000222082210222006FD5035041411490411004118111D94423050041004418502481405C8200A4180084808201002800008B128582140288100A2041F2C9E50010015084235492462A04CC048C1428440440048448C4004800
+:8036800040446224444200444008419044C0188283250D1A0CC0424220019082818F4D028282806181400812490124240000008129018001000080018CC222122100809128A4004460224018085028240040013F360C46081D4C61291868118D42002D538D449028C0448C45C24800182124450AA908448341081484815698284810880482
+:8037000081212C41C2544848188F2874180446C4532AA1182524F2884F344A64A845148BC818C14D4E4B118B51911FA4E421D48241314C528971481AF25A18184D1C81A5DAA2815124E51ED48864818963822B328053881AF118142558288F822372189C682F85041E8229F128188F24D1AA8171321222C81526F2186B00130854291141C7
+:80378000058D4153E43501D11D42BB55448D4627210045148A54A44304A582011AE12151621E484183B11201324A02684C1452882223E622FA2A2A4E4883F24242212A7C42E6989434211E83288F5D041AF1141595E3A13118C7753B15B13764259E42A3314283058C9414C46F4155E4701428A111448054CA5A51A8211823C222244C74C7
+:80380000289824227068A22616D22283CB1E89A15489B144A4294CA425B04823A223D088F1E5A324008441841484148414841484148440085048484448444881488044845448488584440444400CC4E041C4821288122C781488781488B8148438141014F8B68234214FE1F11A12773177792B554E423F11F558522D1469F412522F65F147
+:803880004342AB554F45B518A1542D122F25B552F14C14186F247442F242122FA1F1565E6765E72467217E626F47F7547AEF21B262F6343CCF81713CF878226F62F646644F44E684F5E4E42F8CAD24CE866F6CACEC6EA48F4EFFE4A4CF8AFB2DEC4D864F4AB2B4FBBEAE6F324F61217F45F51912FF71F5CF4FA3F158489F41F55852BF64CA
+:80390000F11A5EAF21F57B7FBF24B54BF75C548B11CF44F4141EEFE5F5561EE7C45AF5584A27A4AF8DE8A5F552DA2FA5F14E1A6FA5F56F6F6FC3F3141B6FA3F366744F43F71C38CF83F76C66EF66F24A488B768F84F74C64EFC7B5E8FFF2D26F64F57C5C8F66FFEAF4CF46F72C389F82F932926F4AB2B4FBA89A6F5841F145455F6155AAEB
+:803980007771E7E1FF65F54E4EBD418FA5F54256AD4EAD52AFA4F74B43AF85F14444CF85B544F5445AEFE4B416D54EF14C5CCD1E2D4AAD8A2F25741EFC1442A5E6A5741CAD338D2E2FA556462A56C832C7E52F22F64A6889F2141C2E322FC4A5FC8F85F74258CFE5F5EA62EF85BD64E645F5EA382B196B2A8FC8F9A8BA8FFC4BF357477F6F
+:803A0000415589FFF5F14E4EF771FFF5D47BF45A5AFFF4F55B5BBD53FFB4F74B539F96F54C4CCFC5F54C4C4FE5F54E4E4FC155CE4B11CFC4D5E6D48A7812F2DE4E6FA1D5EAF1121AAF94F47C7C95FC727229F134348FC1A3378F84F46C2CCFC4B438F31E3C8F29FB7A5C8B768F8DFFC6D48FA5F5FA72EF85FDFCFA5E54AF8EF5B6146B2AAD
+:803A80008FC8F9A88A9F6D01001C0141484523418244224182041A0440060081002180411402229012422302188426020020088A44E288442288A24824822081025D7340424402410000000000400421124400001008004440140441004441100641200450849044004C5284008514F42CE6C0521F4152281F41B248F11124AF14D141B207
+:803B00004AF11124AB9419B24A3915AB9443F24A9143F342914782AD954F83C4914FA2C4814FA264114FA27498E1A26559ACE549E2A2F491242CF5912487221F49B248F19124A3F68124AB161D2CAB961D28AF2419B54A3924AB9443B242792498B24F8294984FA274F40A2D1A1F41D624D4C1F248121D2C8D12CCF644111E2CAD851D68EC
+:803B8000AF44FB14282F147824D812F93448AD812E48AF14B932F442812E5A8F54F924C85E816FA274C8B12475C8D1B6F5D8214FA27481D8A4B591F62C4213B84CF19168E7261F8964261FC1E4667911BC48BB11D24AE983F44A86B648E489D442F3A2484CF18252CF1408848258000000000028000000002180018800004001400848005A
+:803C000000000044800200000040016FA20880010015022400000040022011080000100221244002800200408812081828121008842602008C220800CFE10E24822C2801430182000000008C0121000000002001001800241A522812420022000000008501212414841484DF8E05208C086061C0820041200240120840480200A01800234A
+:803C80000110210181E0851208420028801204008C820200812542486181FFCB0E241224121001000000008001290100004002002440028042022412812881800118100800B11022C28100F0FC69000000000080010000000000000000004002240000001008000021000041000000BF3A080000002164004002C0114410044400000018C9
+:803D000000000000008441890100008001C048224002410010F88E38000000101214020000191104004100000018000024400200844484000000100242224014420400848FB4020000000000122400004004000000000000000000001240080080014008000000004DB70000000080010000800100001248004092140000834802000021DD
+:803D80000012205182400242181008481840087B860024111014028301000014210040080040088484004800124441240018004440040000210000100440F4753320021004002121001800880022000081200428400181440000004100000080018A110400410000845F14060010441402A3110280011423280128840020044840321411A5
+:803E00004840648144212400490140044418A118241A984612101804008181AFC10E2250120000800100000000002011480884890200812008440000210012000000000080C4140041EFAA030000001008001001000000000000000000222088020000000000001008200100187046080000100800000000000000000000000000000028A1
+:803E800000000000000000000000F01DE100008400001002000000000000000000000000000000000000000000000000EF320A00100884001002000000000000000000000000002800000000000000000000F0F216000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000400200000011
+:803F000000000000000000000000000000280000D0F50300000000000000000000000000100218800824000000810000000000000000006F8A0C0040080000000000000000000000000000000000000000000000000000005FDF0C0000000000000000000000000000000000000000000000000000000000F04FFE00100100000000000015
+:803F8000000000000000000000001200000000000000000000001FDE04000000810000000000000000000000000000000000000000000000180000F0F7B5000000000000000000000000000000000000000000000000000000000000FFE40F00148400840000000000001002000010021820080000001008000000000020020000EE1D00C2
+:80400000000000000000000000000000000000001002180000000000000000180000F0DCCC000000000000000000000000000000000000000000000000000000000000FFE40F0014000048400500800444001002400400218001882810021880088400008042080000280000F0291D0040010080045485880221484004281002400428107A
+:80408000828401882810828441848842188204441828842148E041012810A21140C43500000000000040050080044400000044000000002800008008000000288400000000CFE20B0014000048400500800444001002400400218001882810021880088400008042080000280000F0291D0000000000000000000000000000000000000037
+:804100000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0010020000000000281002008002000080028004000080044480022148400400214840040021EFA20A0000000000000000000000000000000000000000000000000000000000F04FFE0000000000004001005E
+:80418000000000000000000028000000008800000080420800000070820E0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000008002000000000000000000000000F07F4D00000000000040010000000000000000000000000080080000002884000000002FDBFBFFFF52
+:2E420000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3FFFFFFFFFFCA
+:00000001FF
diff --git a/xpp/firmwares/FPGA_1151.hex b/xpp/firmwares/FPGA_1151.hex
index 6e733bc..6bc0b97 100644
--- a/xpp/firmwares/FPGA_1151.hex
+++ b/xpp/firmwares/FPGA_1151.hex
@@ -1,589 +1,643 @@
#
-# $Id: FPGA_1151.hex 2876 2006-12-06 15:51:49Z dima $
+# $Id: FPGA_1151.hex 3190 2007-01-24 13:25:57Z dima $
#
:020000040000FA
-:80000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6AD6FF4000581B09006AD6FF4000581B09006AD6FF4000581B090000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4455544455557475577775577675577775577765566665563625523235D2E37C2B51111551111551111551115A
-:800080001551111551111551111551111551111551111551111551111551111551111551111551111551111551111551111551110000000000000000000000000000000000000025522225522225522200255222255222000000000000000025522200001AA1111AA111001AA1110000000000000000000000002552222552222F21F11211
-:80010000122F21F112122552222552222552222552221AA1111AA111001AA1112552222552222F21F112122F21F112122F21F112122552222F21F112122F21F112122F21F11212255222000000002F21F112122F21F1121200002552222552221AA1111AA1112552222F21F1121200001AA1112F21F112121AA111002F21F112122F21F149
-:8001800012121AA11100255222255222000000000025522200001AA1111AA111255222002552220000255222000000005F59F9959500000000000000000000000000001AA1111AA1110000000000000000000000000000255222000000002552222552220000255222255222255222255222255222255222255222255222255222002552CB
-:800200002200000000004AA4444AA444000000004F44F444444F45F554541AA1114F44F4444400004AA4444AA4440000004AA4442F24F442422F24F44242000000004554446F61F116162F21F11212000000CAACCC2F2DFDD2D22F21F112124F48F884846F61F116164554444AA4446F65F556566F61F116164F41F114144554446F65F59A
-:8002800056566F65F556566F65F5565600000000002F21F112122F21F112120000004F4CFCC4C46F6DFDD6D62F21F112128AA8882F21F11212004F44F444446F65F556562F21F112122F21F11212006F65F55656FFFAFAAFAF2F28F88282006F65F556566F65F55656000000008F8CFCC8C8AFACFCCACA255222000000CFCCFCCCCCCFCC30
-:80030000FCCCCC008F8CFCC8C825522200CFCCFCCCCCCFCCFCCCCC000000CFCCFCCCCCCFCCFCCCCCCFCCFCCCCC00000000CFCCFCCCCCCFCCFCCCCC000000008F8CFCC8C8AFACFCCACA255222CFCCFCCCCCC55CCCC55CCCCAACCCEFECFCCECEE55EEEC55CCCC55CCCEFECFCCECEEFECFCCECEEFECFCCECE00000000CFC8F88C8CCFC8F88C51
-:800380008C000000008F8CFCC8C8AFACFCCACA255222CFC8F88C8CC55CCCC55CCCCAACCCEFECFCCECEE55EEEC55CCCC55CCCEFECFCCECEEFECFCCECEEFECFCCECE00000000C55CCCC55CCC000000008F8CFCC8C8AFACFCCACA255222CFC8F88C8CC55CCCC55CCC4AA444EFE4F44E4EE55EEEC55CCCC55CCCEFE4F44E4EEFE4F44E4EEFE4ED
-:80040000F44E4E00000000CFC8F88C8CCFCBFBBCBC3AA3330000008F8CFCC8C8AFAFFFFAFA2F23F33232CFC8F88C8CCFC3F33C3CC55CCCCAACCCEFEFFFFEFEEFE3F33E3ECFC3F33C3CC55CCCCFCCFCCCCCCFCDFDDCDC00EFEFFFFEFEEFEFFFFEFEEFEFFFFEFE000000008AA888BAABBB3AA333000000CFCCFCCCCCEFEEFEEEEE2F22F22270
-:80048000228AA8883AA33300CFCCFCCCCCEFEEFEEEEE2F22F222220000EFEEFEEEEEEFEEFEEEEEEFEEFEEEEE000000004AA4441F14F44141155111000000CFCCFCCCCCFFFFFFFFFF3F33F333334AA44415511100CFCCFCCCCCFFFFFFFFFF3F33F3333315511100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000008F84F448489F95F55959BF
-:800500001F11F11111000000CFCCFCCCCCFFFEFEEFEF3F32F223238F84F448489F91F119198558884F4CFCC4C4FFFEFEEFEFBFB2F22B2B955999855888FFFEFEEFEFFFFEFEEFEFFFFEFEEFEF00000000CFC4F44C4CFFF4F44F4F3553330000008F8CFCC8C8BFBFFFFBFB3F33F33333CFC4F44C4CF55FFFC55CCCCAACCCFFFFFFFFFFFFF33E
-:80058000F33F3FD55DDDC55CCCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004554444F42F224242AA2220000008F8CFCC8C8BFBFFFFBFB3F33F333334554444F42F224244554448F8CFCC8C8FFFFFFFFFF7F73F337374F42F224248F85F558588F87F7787800455444FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004AA4446AA6662A87
-:80060000A222000000CFCCFCCCCCFFFFFFFFFF3F33F333334AA4442AA22200CFCCFCCCCCFFFFFFFFFF3F33F333332AA22200FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000CFC4F44C4CCFC6F66C6C2AA2220000008F8CFCC8C8BFBFFFFBFB3F33F33333CFC4F44C4CCFC2F22C2CC55CCCCAACCCFFFFFFFFFFFFF3F33F3FCFC2F22C2CC551
-:800680005CCCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004554446556662552220000008F8CFCC8C8BFBFFFFBFB3F33F333334F48F88484255222008F84F44848BFB7F77B7B3F33F333330000BFB7F77B7BBFB7F77B7BBFB7F77B7B0000000000255222255222000000CFCCFCCCCCFFFFFFFFFF3F33F333334F48F88484255222008F61
-:8007000084F44848BFB7F77B7B3F33F3333325522200BFB7F77B7BBFB7F77B7BBFB7F77B7B00000000455444655666255222000000CFCCFCCCCCFFFFFFFFFF3F33F333334F48F884846556664554448F84F44848FFF7F77F7F7F73F337372F2EFEE2E2DFD6F66D6D00655666455444FFF7F77F7FFFF7F77F7FFFF7F77F7F000000004F4495
-:80078000F444447F74F44747355333000000CFCCFCCCCCDFDFFFFDFD1F13F331314F44F444443F35F553534AA444CFC8F88C8CDFDEFEEDED1F16F661614AA4444AA444DFDEFEEDEDDFDEFEEDEDDFDEFEEDED000000004F44F444445F55F555551F11F111110000008F8CFCC8C88F8FFFF8F83AA3334AA4441F11F11111008F8CFCC8C88F30
-:800800008FFFF8F83AA33300008F8FFFF8F88F8FFFF8F88F8FFFF8F8000000004F44F444444F47F774743AA333000000CFCCFCCCCCDFDEFEEDED1F12F221214F44F444441F17F771714AA444CFC8F88C8CCFCEFEECEC6AA6664AA4444AA444CFCEFEECECCFCEFEECECCFCEFEECEC000000004AA4441F15F551511F11F11111000000CFCC8E
-:80088000FCCCCCDFDFFFFDFD1F13F331314F44F444441F17F771714AA4448F88F888889F9DFDD9D91F15F551514AA4444AA4449F9DFDD9D99F9DFDD9D99F9DFDD9D9000000000000000000000000000000000000DFDAFAADAD7F71F11717000000000000000000000000000000000000000000000000000000000000FFE40F48180000006E
-:8009000000000000000000000000001400000000000000000000000000005F22020000000000000000000000000000000000000000000000000000000000F04FFE80840100000000000000000000000000400100000000000000000000000000F02522000000000000000000000000000000000000000000000000000000000000FFE40F34
-:8009800028000014000048400128004840012800000028004800001082041400004800001082040000216FEA0C0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F4818002800000000210000002100140014210014000085
-:800A0000000028000014882814000088280000F072F300004818000000120000000000000020010000140000001400000000000000000047FD8084410128004840818102214860118002211A01148002211A041400B01281041480028004148828108204808802214800CF550648180028000000002100000021001400100240010000006E
-:800A800080020040818802000088280000F08EFF000000000000000000000000000000000000000000000000000000000000FFE40F000028000000000000000000000021000000000000000000000000000000F0524900000000000040020000002100000018001800000000220000808802000082220000F09777000000000000000000D5
-:800B0000000000000000000000000000000000000020080000F0CEBE000000000000000000000000000000200100000000000000000000000000F07CBE00002002000000000000000000008001000000000022000000000000000000F0C94600000000000000210000400200000021000000000000000000000000000000F0AE7D00000023
-:800B8000000000000000000000000000000000000000000088000000000000F0B381000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000028000000220000F0652B00000000000000000000000000000000002400200200000000000000000000DF68
-:800C0000DC050000180000800400000000000000002002201242020000000000000000000000D0E20C000000000000000000000000000000001002218002000000000000000000003FFD0A0000120000800400000000000000002002800221000000000000000000000000FF4D0400000000200100008A410100000000800100000000008D
-:800C800000000000000000008008F0DE8D000000000000000000000000000000000000000000000000000000000000FFE40F0000180000000000000000000000000000000000000000000000000000001DF50000008004000012000000A0410000200442200400000000000000000000000000F0F5540000008004000012000000A0410044
-:800D0000000000000000000000000000000000000000910000800100000000000000000000422004420000000000000000000000000000DF1F0A0000000000000000000000000000000000000000000000480000000000009FB102000080010000000000000000000000000012000000000000000000000000F085FD0000001800000000FA
-:800D80000000000000000000000000000000000042000000000000DD9B000000000000000000000000000000000012000000000000000000000000F092A600000000000000000000000000800100000000002004000000800400000000D02E0D80040000000000000000000048A012000000000000000000000000000000880047930000EB
-:800E000000000000000000000000000000800100000000000000000020040000001FD8070000000000000000000000002082010000000000200400000000004800008200DF1908000000000000000000000080040000200100000000000000004800000000006FB204000000000000000000000000000042002004000000000000000000C6
-:800E8000004200005F310C0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000001200004200001200200400480000420000008E1C000000000000000000121200008004420000128004480012000020240420840442004200002FD70E0000000000000000000000000000B7
-:800F0000000000200400000042800448000000000014BF9702000000000000000000000042000000002004000000000000000000000000F07C43000000001200001800000000000000000000001800188004420000004842000000001F940F0000000000200100000000000000000048800100000000000020048004420000F0FF8400808B
-:800F8000040000120000280020210142100218A0810000402104004820010000200428800400001042F1BDBA000000001818008001000000000048000000482004480000004200004248A0442004480014F0947B000000000000120000A011004200008004000080852405200100A044424A0448424A044A04424200002F6C02000000001D
-:8010000000000000001A010048002001421220A144000080A11142000080040000000000F0B6620000008004120020010000001A044880044812481248122001000020040000000000000000F06E82000000A0444AA41100120000A0111AA1115A81044AA444A0114AA4151AA5114AA4544A055A05A0115A04A044004242484AA4444AA4E9
-:801080004420240400F0F1C5004A0448004AA4440020A1228002A011121AE12591424AB45205CAAD554A2C84A4111F15A5544E511AA1444A041AA5554AA444A0442024A4664AA4644AA444A04440120221AFBD0E800400001A0100181A0300A0111A0148214AA45480A8445A85044AE411A1445A041A81041AA1554A044AA4444AA4448026
-:80110000A6444AA4440042421002F0CACC00482004001AA11100181A0322001AA11180144282A1441A089A81A4115A45A14413A5554A84045AA111A044A044A0448086A446424AA4444A041042024F870B000000000000000020010000000018800118421842180080010080044880040048800400F0632B200800000000000000000042A0
-:801180002004420048800448000000004880040000004800000040E1980F481B21B01122B411324219B24291212B9419B24219B14229F24291222F1429D212A9421CE922C4812E4216E12264192E4296C1429AC2421B292CB49142B29122B49132421B282394212B8419B24218B14228B24228B2422892822A84E822B42C01481B61481BD3
-:8012000021421B21211B612394212B941B212BA419B24229F24291222F1429D312B822D412E922C5912EC21CE82265182E5286C1538E212CB591C2421B692CB49122B49132421B282394212B8419B2429A212B84222B84222B842229B82294822E42F60F0048000000001280020000001003188008000014000048000000000028000000B9
-:801280000021E06D038200000000000000000012000000000018004800000000000000004842000000144F9E012008221A020020040000000020240400420080010000420080040000420080040048800214D042062004A02100004200220000001824482001C2000010010042420048000000200248424880042C02008FAA0700800200F1
-:8013000000000000000020040000008021018004000000000042000000000000D0210F000000000080041A0400000020040000004200000000800448000000002088020000EECC00000000000000004800002004800400480000184822000000004820088242420080280220F872BC00000000000000004200000048800400000000200259
-:801380000080044200800888424220088002008F8B0B0000000000800452000000200400008004420012420000000080040000002022080082FFFC0942200400482004000048000020024200004848202404004848200200008004288800422088220800CFCE0322202403280000002800208401802408180000000000004800200428486E
-:8014000000A0244800000000002FA60B00000000000000800120080020040022000000000000004200008200828820028008F0FF5C8002A0122082044200008084810488808408420080820400008004800242004880044200A048200A00004F930548000000000000000012002820040080042084040000000080060080A84820080022EC
-:801480008882007FB8080000000000000048420000200400120042420000000000008004420048E20020088002F0A4760012004220240400208402000062200222004800000000482820040000000088200822800400F09BA1808424010000000000004800000048800400006822284A8202004A820422208222820C00A20022828822F094
-:80150000243C00802401000000002002800248002800004800000000424800280000008002220042008088F8ED98000082485200001800800400000000000000008004008002000042884800202C28088A042008BFE30A48180000000000000000420000800148800100000000002004008088A82400000000007F2A0D000000480000005D
-:8015800000420000000048000000200200008084028004422200880020088822006F4605200842820020040000000000420018800400420000000000000000A042002024088800141CF229FE00A041004800000080020028282880140278808804002814282AA4242248802204004228428082A424222004203822F0C4E820A4181848C29B
-:801600004A0448000000620080820668A024284A210420042228222A24820420860200226A24A28AC2C2EAAA2888A0E488281C8AE85B0B48821280044200800148004A84A42220024222124A04484852002822284AA224228082A2442022A444284A0E4868486AA828CA2428A88826011F410CA04180011248200400004800202424040033
-:801680008004428004428004482880842422044880084A0488008008202228F217D8001800480000000080040000222002200442000022202224028024028004482200482882A04820882208DFBF05CA242101A01148A044A01100200480A2262A82A4662A22828204481AA5448082A264284A82022A8286A24480048A8EA2CC428AA48237
-:801700006A048842882A28A2228FA90C4A8405A0445A81044A041A012A024A2204286AA6622CB442042B1328CA8C84AC514A041521E214A442482A042A2224A6442024A48CEAA8EC4A24AC24CA8CA8C4882C98228AB8A2FA59BAA0441A2401A0554A24A444A01180024248A0226A026AB642042AA124C842485AA544C021284A86A22468EC
-:80178000A02268284A0448A0E88AAAAC4AA8C82AA8CE828A28AC882B8222AAFAF9C5A04C1A21014AA4154A24A444A0118002624A042AA266486AB642E422A2124AA2C44AA4485AA544C0212AB241A6664AA622A0224AA6664A044AA444CAAEEECAA8C4CAAC66EA8CA8C44A8CB8A2EA2AA8AA6FAA060000800400000000000000000000003C
-:80180000000000000000000000002008000082006FA20F0018002004000000420022422084040048802404200222A042002006004220268888A48480024A0888802278760E481B21181B214AB111364219B24291212B9419B24299412B942AF442912AF44291222DB12AE414EB22E414EA2264152E4296E122641D2E429AE222B4D1E222EF
-:80188000B49142B29122B69136621B282396612B8619B64218B142A84A2BA4A22BA4AA94A2AA84EA22F4B9C280B1118695214A91612B1419B24291612B841992B219B642A9422D912AF44291F042B129F442B12CE114EA22ED15E822641C26621D2E43DE212E421B2D26B291E6223491221B6923B68134221B482B821B682B24199682AAC7
-:80190000B442A24829AA4829BAA294228E42B74F00820000000000800200000010021880080000140000000000000000000000002541F1AAFB2008111242182001001858420048004828420028004820812402002200208802224200820042228A8282040082F03FFF2026080020041A084800800488A024800428422004004220044A0125
-:801980004228288004484001008A04000088202842014D6920240C8004420080043A0468200C20E422840452200842A01442190652A0246228A048224828130480A84A2024220A8260286018B02404224021011220A1180012800400A02400800228480000000000000000000000000022420022006FE20100002A010000240000000000B7
-:801A00002200422084240420022602002B120000006012822482208822082004884887CF2002120028800400002088044282484A020020020020460200484041828206422A2402420000002248228222708D0E2220012222000010022028044280842602002800004800282148903190222220A4422219820800882888222024A882F03904
-:801A800041000020012004000000002008000048808424042222210040020048000020042908000048220048DF2506004228183820021819822221021800282012C21182001902228064141880228105000028000028210000003042C0428FD1062A0442000080085021200224800400212A0480022248001400808404280000230450211F
-:801B0000E84200002820988280F812D28001002220021308000000800128000028004218000000008001001411200800808202002002B0240B78002021818212012824000021422222228005001C228201484818004A81013200C02133048224C8218002800220044E821F3B0E008022820200121419820120011200001C22882202484A31
-:801B800002000028000000000010014800280080280AE0B107421820240421182082812182011C011C61168041816132C02312E02104122432481211123011602111001001C83042242082028242009F830B280000002800424842A012482002002004244860251448468104902180022012210400420000800842A2420024CF7F09100199
-:801C000012100214481120220142111111121230211411241114C04280C21100401101488042014042612410010024002C260222FF41050048001902808121028002221800228014824401208222022246012004122842001912120111000000000080F4B455802202112842800142124A21C411A014800120A1126820023848181258006C
-:801C80001A8405582418184A01420022A0824200480088008829F8A7151411808422512142001001000000000021003041108204000000480021482302214A388290228A02008A020022B0A50E0000482814200400200400800200200228000000001400004083022912012442008002200200F0238B0042002A01000022190200808402C6
-:801D000040021821288022820228223211A025000028322082820200200228002922C421142F6C0A1904481824521100463141004A22041410010031483901C8002880C4418004224880344230424225022B82F0422200220080281222F8751A142A26041AA1413C041621A5525232A041421F11621417113A02167221215533141F149229
-:801D800012283B1180A1251A25E412D11181011832183581B26252313D8186A144800C2A82028AB28218C28328DE6810018022942123240290714810013011281D4128184A024A362323B27124022A3271482B241413A54672127621F43261482F32042922D62232822D4323220224E82242222601BBB160141C0319E422337215818174FC
-:801E00004161121B345AA6141AA654A0128001181F1225C222C0214E526E622B45682621A24148C02124C04217246E324224C0624AE822280424C22222882AA66428CE824E1C144200188A643200481448224880041128110010A1243128114A12820242224214420080448364224003248A440200288022A824001FE102682A021F12225D
-:801E8000F432114A0442115AD11182541142A0443216011AA1221E116825011E1176A2114AA6111AA531421B111AA431242B11421B312385B24216B1C28C32C2B082086A24A2882C9282288A48F2CD2F142E212A061F13A3611E733B44121AE411E511F171611A765121B151F4514113B311A2111AB133B371F7311217221BBA1B137EE2CC
-:801F00001E523AA557143AA7155E1156A1711E122B111E521E731E432E624E622E23EEC36EE28E622CA4882AA246228AEA2AB822B462A48A8AF8318480A662F021314AF133132B44125211621F11A26517115216E115246212002B222E212C5732A81C66262B642B64E01284A244112AA46224216A92212386B24216B1C2AC642BACB08228
-:801F8000086A24A28A2CB2429C228A4872F548F161612A021F13A36F1F37B74324A1451F14F461411F17A64517155AB451F4514117131F1302F021211F16F661731F32F231A11F12E42EE624A6666AA6462AA6441F14F461412A4212E226F643633F36F462622F24F623233F3EFC62E22F2CFC42422B882AA24622AAEA2ABAA2AE66AAEAF9
-:8020000028F85F8C000080010000000000000000000000420022000000002002008004000080022800F09265E01284026022481412B01124A42118484A118131211812303128198432238085B22225051248E0122501A016F0421360226012482F240800280080888442F11CD2C0511B211CB111E226B111766291212F1691612F16996123
-:802080002B9419B442B921F442B113F242B12AF442B11B424E911F22E414FA23425E213F22E419F22342DE212E42DAF222421B2D3CB49162321B2946B3917662B381764293212F34B881F2428319F44283AAF44282222BA4AAB442AA424AEA2AB46B052E51482E511AE236B111E41281F6621119F46291682F148BF642911994B219D41201
-:80210000AB422F141BF342B119E514FB23825EA13722DAD223A42D2E43DE212F22B4D1C2439AE612247942B3917662A36825B38156328AF642A38A5632AA44A2482CA2484ABA82B442E228F44F2200820000000000000000000000188008000000000000000000000000000000F0A18B20020040022212000014001308008006220014802F
-:80218000010028400134400119120100820000002129082022C443FF790311B60111208342210460126028C0225222802261181200282014A2840000181724001219040042130880C8825022200826222844013FE14781621F0060222826210560122224C02213890228242E41121A028A4241220110016011462314C211480080142108DB
-:80220000222C08400223C8222442005F660814001120010000001308200400188200008004C8002800100140912114008200884002218200882242485F2B060014603211A021200800000011208802200211000028180080080024C0122002001400001022228404222FF30419220200281B21258142424141612513E1184482081C641145
-:802280009E212E4114006846812284240C00281A2242A2784611014E8129D421840825C242284AA8C2882D42288220B44708222814C022221F220128881100481C61184001C212263121144021048004480080AA122290221411211B28211334821421008228828004004F8F0814004041011B210021111418214224881091211A28240272
-:8023000080C241222086090000008E5248182084040070422282A448212B4229820C2AF4A44C0014421C0220021121002126028048013082211C04C09122624800144821281148888086884201240028240022002D42902200DF4B0512200448268284011880022A2404206212181A1222613482B800181240A11824118005140012008086
-:80238000C421A84820220800102242B27309281021410180A241460100808101214222000028421450227021022008122081220100210088008242212180220882421D1480410138482682A6121A641420022CA4411280A2242AA121C0111724A246611242292541018682183111A0181C22812801004828C0428222272200290228822443
-:802400003FFA0A2240114101003412002100C0821114908220042002221082122245820212006220121102211388088084088094828082F4B8AD802404809122290123820222402124220180810448800C807621A2418248A0218E43220046220425220814428004420046220800C862E7390028200142100288824225820146E31428863F
-:802480006112A084881E8160152420286811829200138C0419A8284882111384180121881148258208208204887F580D200190411413014230410082181220184182A4211C01112114000000001400002901101212024082180200200A004F4F0511A041808101003C082042B2210800291842830888200280240A000082122A04828282FA
-:802500002100882188112222302280022221249D1200402102182C444151234041512218250212421C01802114012008484229818401601880080020044828602400884824420080F476E38003208192412001808A2428011C2482B412082712A0422302E81B824A0200221C4181088001C04242800282C8A88A120120388288C8212186F4
-:80258000F28379200440412212022100284021248204200228400114008218A08424000021008200144A5812100248802202002022E28506221348213421002A611122222114202881331210828A8102004A024200168104114818120012400148244002C02242C0226242281414DFB30F16A1124880040000483042281502110020012345
-:80260000088A01880020081448008004002824100120C461828002421022D42202CFAE0E16318180A4154A642416A2522E22241B4424129E526E5346A244372D2839A4129E121819A838B022828236811B384A39111D8123B2918483041846C281488E428890828E82822829A2288848A8684E212F2EBE3144A164B21113D121A6233391DF
-:8026800032111398A12819082A081F13C432F012126E81821B868E41460217124A84A4912CACC40042882C21C18129BC8288188192823F24C482E2B0621C026E422129FA22426018A0E5B0218167113826D133811151122D812B4E26F242213D9337143B212B381A88792181B3528AB62168181F16A424821B8C238C21E121A452821F1CB3
-:80270000042028EA2534A2257243714161182B242CF4414115E122E4269882CE2262C26222F0647714422200482A0100A04822408184924100281381220817282815022C092C0824283C88428282888288428346A12824481482002482282004F0EA8DA0511D21111F13E3257153F342423F3292332E22237441B3C1CC132B9D27272B15E6
-:802780004AF1D2D22F23F192913A81A9261C68261CF46262272E4AC4822F26B652E525A62A27263F19EB21A12223E62DB342F621226AD221B842E422A2882F34B8426C262BC82ABA62F442622B8868486EE2AF254CA1161F13F511111B331F23F532222F25F433233F31F3A3232BCA1F32F2C1E13F29F993D22F31F313719AF8D2D22F21E1
-:80280000F3D3B12B3DDAE32F7383F342A21D612F26F672C25EC22BC5DE432F27F342721F12FA63823F39FF3232AABA62ACF54AFE232123F461A14ABCE2BEC25E233B4C62AAEE22FEA2422F2EBCE2B842A2626E622F46081F11F51171111F13E325F351332F24F523233F22F323A33F14FA43233F2CFE93933B9C37263F25E12DF9D2D23F15
-:8028800023E11DB96281F961322F34B863E834A4662B2A2B448AE932F352522B57E6E334F283D32F23A32A2B289E122B57372227141DC22F1AF282822F2CFE428329E822F2A2E22BA22BE62F2EBEA2B822A6666EE21FF24BA1771F1353111B321F27F573233F35F433231F33F3A3232BCE3F36F2C3C13F29B9D3ED37F37373DE922BDD3BBD
-:80290000331F1EABBFFABBE1FBC1811B261F36A6662BFF2BDD9E922B197AA3571F3EB8C1FA818116A2882DA22F29B9F27D23F162233F34FCA2A12B882F2CDC33F883832F22B2A2EE22FEA2E22F2EBCE2AC666AE626FED627C01180012C01240040022048012482242004001002200400422302212002002C0100220000C022004828800233
-:802980003F8A0D8A91211411241A4611E112A1282591612019A2422D119A0422462182A948141B42F02242CA02422B924258112A0C2D12A084282B921124681C8894828A744223222482A84829A842A048BBCFE012B411021B21621B612B1419B242B181B66299612B94112F14B9A1F442B11B422F143B212DB11B4A1CFBA1421CF821422C
-:802A00001E211F2264191F22EC19C2C29AC2C21B293CBC9142B291E214B891F242821B282F14B881F6428319B242B881F44281222F2428BA4228B242AA4A88AE42EF4C082E411B612E41132196412B12482F32B181A6161B482D338AE634B9A1F442311B4829BBB1D412B2A394B21F28C5A11F22ED155A219AD221AC293CEC11C2C21B29A7
-:802A80003CBC11C6C31AE214B891F2428219E614B8817642B381C2A28AE61428FA4222822F242ABA42B282B442E22AB4460700000000000000000000002180010000000000000000000000000000004041F18ED42018011400A012003011122C042028A1411622080000001152004218121003829021880000110000202888024A2288F295
-:802B00006D210082004214211148521A0888190124428088A8124681811403802401208502304200182001009082288A0400424229C44282821C82F484ED001304000014208448A11218213082181A84F1128246011E4214828034114890414812202404124001000011E20080044AA8242CA884A68174AD0D0010211411A221421218128E
-:802B8000881904200488822880010000800118282051221120081A82080029880200008A1402212220F2FD6B000020021828000000420048001C0142000000002928012800000088008AA28482000020080000F0ACBC00000000128008221288200C881B48C84242800800281A044200C2488200804801422004004A88840268A0480028C5
-:802C0000887FFE0C00002880810288008028240C4A9841C219840400002248202428014882002048212804200480042220024A0800889B16000000001200208201000082200142820000184002802C0200000000AA8428088242004A08008002CFA20700420020010022000020820280084818A08420840400824220840488A048004200D8
-:802C80002002008200200800C7F880842104422D3240816612131882A88248884820082400488898386028408202A81880A48100181002B081242442010048002400F027E8001001004002800440220100220000001400002A04180000212428800420048882201882842894822288005F2907481001422303244A82326180C882588022D7
-:802D0000220A82004888141A0288808482292C21049288A01848800419240414822148484682282808D0340F20010090121110C18200008242000020048004484221282120020021302248240048888288008028088002003B26004200000000002A040000002004218200C800008220088880080082488004C820024888008200827F8A01
-:802D8000092002000000001214460100802808008024810428C880040000004602824002002480080000428800DFBF0A00000000422084210800420000000000000000004800008842000088004A02004282108208AB5DC0410020041422001C681212A08400200488802804428820084800484821004800200442884200200442884220F5
-:802E000008F0E3F900222248224820023220220114202888880C20020000208802A01420088220088A04C2A084800A004200000046F1EE3B000000200420042004000000884829848486880C2248828004800448004200800820842A04882004889082F037AB000000280042001114420028A04280020000288004200400A0842008829085
-:802E800082001002422C082420480200F077E500180020018001180000000000298808000088002001C8008800004880088820084A02002A4402002D6520041C24C2410060124A01001C42012008200421800188002848501212800848A0480020080080020000820021F0E1FBA044220048284222460119A111190200004A240C82A22029
-:802F00008821028A242264241AA8442C8C8408C082800420088882C2822B4400824A240814F0E58E001A8222E414221181A212288A94211E111B4411800882602E48A044200C2082288A0420A88400884282B082E824044A0C62A042224A3C82C822469282828AF4A91A10814481024200485A0526A14C148E41A0428AA882888842C821D1
-:802F80006A044AA484A8CA8404481A212428AC88C28AA484CAA8448AA8848223CCC2884A0A2024A48829288808EFB90E111001111001190412A041002002A2200A22200222800820C412800888800829889482102218022182211002218A048A042F3E42F1616115B131E312E216F631316AE611E11286F221211D111F155111142AA28842
-:803000002AAA662AA2846AAEAA2B66482AA6622AA4282AA2AA48242B54CE422B448880082F2C54222F2418F242422F24FC42C22BC425F242C22F26B2C2EC24F4C2C22BA64242884E42AFAC046AD611B411E112E214F431311F16E611E116F251212A7211F171311D4115A122AA0ACAAC22EEA22BC48AA8332A82092AA2CE2AA2C81D414ED6
-:80308000422F34B482AC448A2428287882B2C2242858222B88CAACEC2F24BC42AC22CEC22F24F4C2C22B66CE824AC8824AF41F1EA0621B623E312AB221A2331F16A6331B665AF331311F13F3413117141501AA8A088AA8A22B88CAAC546AA6C44AA446CAA6AAEAEA34B452A5548E422BCC8A2CA888CE42CABC42AC8C86A2882BC4CACC22B4
-:80310000822BCC6AE22C9C824AEC269E4223A8C488BF660F1F12B621E211A1221B441F17A7663AB361F251213AE313F351214E4115A1228AA888EAAE668AB882A8AA2A03122AA222EAAC228ACC432B551F25B582AC448282828622F8C242236828F0C2C22BCC8E82882F24BC62A6CC4EC22BC4EEA22BC82B884A8C9848000000000048007E
-:80318000800480022880020028A0248002000000000048008004480000800482428200A777000000480000204101140082A048A0484A02800448802C048004C880280848888A24240848888A0448A04880042064186771C0411B21141B2146B111724291212F14B181F642911B692B941B482B942AF44291AAF44291A22D912AC491AE42E2
-:803200001CE82264112E4296E1226C1D2CA4292CBC91C2C21B292CB891E224B891F242821B682F24B881F2428219F2428213F84282222F2428F24282A229A84A882E427B2EE012A4412E4112660127164827128AF422111B4829B2819612AAF44291AAF44211A22D912B4A1CF9A2521CE822ED11E82264192CEC1DC2C15E21881B292CBCEE
-:8032800011C6C21B214E821B292C98614E821B284E821B284EA213E824AA484622E224280A2B4A29A8427F9E0A0000000000008002002001002100000000400100000000000000280000002018028FE60148180000180012820018004800200800824800200188904200122021210800A04820040042A0420080082F354A2101000030124E
-:80330000461281342248420000C2001212000021100200002182008001000022008228008224C2421448FF154321250400201102162134222AA41400482004242021212808001810418204A08480018A0100002262808882048A44C2C2428842DF31052001000012460288000000800888120080042110028800102201800100004A080012
-:803380000000280000F0A3BE00800100221200184021010048428002000000800100000020010000000000400200882004BF1A0F008002421305A014111800110000420082200400004200281228000021008008214888C80088A0482084025F8804001800421B14004811181110010042420088800400800100000080012100800821422E
-:80340000884A08908220840848F0C28F00002200221220810180010042002200000000800480822102000000000000000080084222F08FF300000080042822202221820400000080010020040080040000001280020022000020082C0422F0555D800400520010034001422888000024A8280018220000000082488008004200484220020B
-:80348000220048502200D0EC01008021220146010000000020084800000000A041000000000082000000000042220000F0B5EC80048021260114280022124848002008800A008002001A04800400000082000000002220240A2100F0B45A2008001820845412281001008200004280020000420000008800820018482220840400002004CA
-:803500004280022F98090000002004181200000000002100000000000000480000002800222120880A2842288002288F2506000000000000144200008004228001000000000000000000201202000088200800005FF5048200000090120014000000000000002124800200000000A012000000880000000080083F9B060000000080010012
-:803580002812000020010018001800008001001828000021210080220200008800F0B36D00000020180221120000800112000040022440C22226020025020000008042028200000000008214DFB60316012002000020A224260100000080820118180000000000000040022082020080280262200621885F77010014800410410140010078
-:80360000588004180022181800000000000020220100210025228802218682C88240220424A7F5601482000000212121002082010000002424160224002C020024000000242800242A088880022880AA48A880FA5EF42048C14100120014420018200100202101218001880018804101800148000040020080C2A224242C08240021F0E7D2
-:803680001DF01141131801004012212181820120040080011824801102E022020024808124A122121824258202282302208AB222982223922223824281F2AA44008214000011273180314115011AA31118428004001270120224002229011210020000800221248A2228C8822B82242A28286A2CA282A2C72100002842129042905229429C
-:803700002182040080A111122B2222182440225122182C020024000020027022E22212C2822908288282824A0CC848882C783204004021A884601420046220044220040000000012200112200112200100002002000024000000006718141F11551115F121211F14045E122D423F24F442122B337AB741A4151AA1454A045AA141A0223A8E
-:8037800053222552222552222D122F22F3321223A1111E122F2131121AA1112AA21140F222222D222AE222F2A2A22B8880B8A2FA82822F2AFAE2E22F26B622AE62AA42F247D5141B55CE4115F121611F148CA8152CB442F452122B551AA1445AA175A0444AA4151A6421213A4352229E822B111E9229E122F33232171140F31212124A0412
-:803800003A03002F22B22282A2222F2A8A0AA8AAEA2ABAA2FAC2C22B666EE22B62AAE22AF2F6E5141F11D51154112A024AE421F153132F31F512522B113A83A65120A1444AA41548B022A2332C51222D822F21F1121225F232222F23D212012427212981A4222AA2111AE121F1222223A2222E222F2ABA8222E828E82AFAA2A22F2AF2E2A7
-:80388000E22F2AB2829CC2AAEA22F2CA16141B558E4115A126A0441E123F35F113512F21B512B17187A451224A04A01548B022A2332425C28225728252222F23F232221C011F2171128281A4333A031AE121F122222B222225F2A2A22182AE822F2AFAA2222BAA2F2EBEA2A2EE29ACAAAE22472300000082002001402101120020010000DD
-:80390000000000000000000024400224822008820028822008824F24021800200480240480A414200480041A040000000080020000000000002880020022008880A24240F398ED80B411021B21421B212394212B1419B24299212B94112B94222F1429F24291222D912AC4912E421CE82264112E5296E122E519C2529AC2521B292CB5913A
-:80398000C2121B296AB19132421B282396212B8419B24218B14228B24228B2422892822A84E822745B0E481AE612A421469121272419623419A29619B2429B212B94222F1429F24281222D9129D412AA521CB822CD812B4286B122E418D232E41882B481D222B481E6223481421B2823B4813242112B8419B2421AF142A2222F2428C282F9
-:803A00002A84B82294822E42CB590082480000200200800200000010021880080000140000480000000000000000001002BFFA02000000140090410000002002410000810000204108214022020000800124000000810000B054415214AA01824542284872142242021642622412242602424270180420121232122181233212212890126B
-:803A80009012009048158204C880449442508244820014F0B6865041C2200800241624C2412043220440822244061212608A21100290212508002B1429321200400812C08222000021814002004FAE0A211A025024841C0824400224402241220220048504001022111298121225820200000048344880044864484048240800F0E7350063
-:803B000000001126A22100000000444021810220220400440000203124800841001162820021200421002004008F1B09004001128A010034181429542580048F628C021828D028024E26400856021818140021850212188486424822064022143442008100F06FCD00001420A18321009012150245112204E68C0112008C044E2440082CE4
-:803B80000418C0110021842100912A184A22022014022304608400E07C09000010011A021001800410041522820228222821104204180018302420084412122024084221002C14040000004F980BA01620222412312219038302814F820126012531817034022A412188212482014081040012812061148200521141278261400420C1423F
-:803C0000102224F18D62602142001608844618024C04212210040024242840868201882120C811814048820400221811001241A01A0020020021C018BFF40F28410022110042208121011840D42401404168940046431408100864108401118008400A24008004C04224000026082F8A0E268201223A641281421B419048901A8D141828BB
-:803C8000646C3181B021C1281341A72846C2442682018C284106442C8141081A6814121062210025385200482D2218002044F8669580C124008140C32823022A2101005110015042B04802100184000083040040018082588180C41100430841008014028902CFC70B4400001C01210060211840088351220080B41804418A01800489443A
-:803D0000018004205184408A04401802428423528218840000005F4E0A21000024118025682100822124B08822028011840210142211120250231842100229948282482C880400C04458484004420048FDCF0040040062240020840200008400004200142445A82484468224240400114008004200304C0010040021247025051008280029
-:803D800024224C02462203004002122241000024422B429082184011022C28C51290825880880CC2480022100248488004411F4C4362480015040049240400281044541481414148403928209814482100A4830100401A1818030093E84448180A499418304841400840F16A8200800464504210420426022800321012481898464A911C00
-:803E000042891804812A2404814140020000848542424804002192418400828468AF6C0F2822223028281984238182860820918200628A84A31A28A0282228222840022004421800428288820000002018024220044A08FF6509100800C531241044024200442480024041044422100844800200401201180040384200202444088448810E
-:803E800089041008CF390C844CC544282604208502224412490222414145A842452AB412028C51A4A884266822806894884008C800248100825048902420880400848C944245F8B74A24E04992242A52481D1465F552164B678694222924512410C41C6962816ACA54437414F414284952241D464D222E26400AACC44118242B41883482C7
-:803F00008582042B84212094421084A8414C548C0084857B647442014C628450412A42E82604298162279829211814721651A869D28444C3886E284826C8184F82B262744258824AC34A122F8468448A941121A3914A1B8423F888C8D028B4CE0C818F6434688F2931428148488784424884AFE90561814410D43292212A4604487E222AE1
-:803F800002CCE1226822A28746702CA8538D51628D84AA3C1A84C9E12EB22AE414384A904242248F21518446F2821889088F28F4C18850884245C8662D488979446844468894C24A88F4C86D00411024D8140845229184C082124C084C086C88D448088F4428D1480885145248218308831832882098128618C248248C048C4442088444E5
-:804000008C44628844488182815048DF230263A811411F12F22C288F22F262626B346F25B722EA2EEE2CFB92922D822F49E96BFB8B83A9F88A84AAFAD9D76AF7F9E5CA5C486E62AF44F612122F4CFAE2A2ABECCE42ABD56F64F8C2C22F24F411916F61F8161C2BCC1F9CACCCCECA2BCC1F94BCC44C1A42E444E485A45546FC4844CABC88E5
-:80408000A8888B8C2E24FDA124E087A7221F12F228288DA22B667E722F24B522FAE4E42B572F62D122B892E923F32B298DAA2BEA2AF671732BFF1F1FADFDE02EE626E62D7548E226B2E2EE3CE425DD64F8CACA2F2CFC51DB6D964F69A9441F1CACCCCEC22BCC1F1CFCC4C44E422956C44B64CAA4554F44B444A4CC8AB88288F464749F750B
-:804100004252461E544155F52C2EAF42F244466B676F25F7E6646EE65E622B3143F814962F43F31D1FEF88F26EE4CFC4F45955EF8FFF7D3DCF84F78C84CFA6DECEF2161EAFC6F64A488FACF4428BAB55EFCCC448CEC23F11F49A1AAF81B1CAFCC9C98BC88FA8FCCAC89F98FCC8CC4E4AAD68C5FC4C4C8F88FCD8D8CFC4F44C448F8454880D
-:804180002F8CBC88F82C3C8DA6244748CF43F724245F52F22CACDD266F62F676766F65F4E6642EE62F2DBF167284F414944F6BFB3F3FEFE8F26EECCFCEFA7D7DEFC2F3F5CDCFC4F78C8CCFE6FE6E6EEFE5F54E46AFAC7CCAF8488AAFA5F5CE4C8E884E42BD53AFA9F19A92A5F849C9AF88DCA8FCCAC89F1CFCCACC8FA4944AC5FC6C4889E7
-:80420000FCDAD8CF44D48CF448488D488F8CFC4848CFC6F6373D2002220082244822488004008002004A0200000028A02420040010022100008A0400000000000070BC0921002824282503298102901200901290222220820128242824408242022044225122704202888A44828408424146029044800400144D13D022F4112485F21124F9
-:8042800083F41124AF34F11124AB141F49F24A921B29AB9453B84A79A4F84A9343FB4291478A2F14F9B4481CF9A44A1CF8254A16F1264A96F122DA96C5DA9E242DCA1F49C2D21F49D22AF99124AF34F89164AB141F48F64A121D64AB9419F24A9251AF64B924B44A39242F44F9244829F924484AF9244AFE7FD026D481D62CB4117244E1EC
-:8043000081726E9321EF24B1817268F68124AF24B381724834A12F74618AA7541B4AA75433FA4A14AE1287541F22F95884272287542F2258583CFC582569D881D2A2EC41D636FC11282D838E6C341FC8D622D1C1C6971D6C2F245B852DB64F8BA4844782AD944B4AAB1463BA4AF124528F3C0620880400000040042800000000000088004B
-:8043800000200440080000000000000000000000FFFF0D002502614001122448105892250123440430450089148C242412221432444144101206844800844820048285A349128110C844008C48F838DB008280082860414200941200424092880048483041241062640026080048240081001E421658142180A51410924218420040013F7F
-:804400005507200C24204231144A411254188F2241581246824424084D4242481211C68284522210D28102502830462181420024425441A0878B14468211088C6444241028F17B72005022884100002004100100100A14008C744804106244489044444180040081001E488901230410919230421200008884DF1F05004100400218C013F8
-:8044800000008C048421111025443848000018905200200229081C012148421A041100240010280280026F81451121220849427221CC1811212116012111184412CC22B412041250242E416490443042A02446840440C4125082244032882412208D0520C5629A04C048F0876E0060484004112118C01112104281042C91281984448104D8
-:80450000459A41241084314248624C24844242C41218A13042B0120C1200100242833442006608FFAF474181028002A74289414302310030184481442412441284422241800424120000800814100248812411A0491A042021A2A100002F670385024AA2824A0268001011D482F8281540031425113221282A7428218342A8848301411430
-:80458000214664828004201424411181311143942280011A280224100A70D20B95842214040024400445082281444C0443B2284102160C2301222928B2448241C54C82A418584C91944001211008D18C020048440048212848DF1A0500C08818850450242611C81100C02812418A016100421011141814084230122058421100818C5828B4
-:80460000C22304A0144220143248410000F0EA9840858232242841685022260581841611C82C164426FA2812222843912829922184A18C71483414405842264242843114422058182D414A2171488321240123E54442044881002D3A602800844A41081004853111295884103142117C0154B0489241004C82C42422D0246444D880295116
-:80468000148250C18D12C082841430480048888400218082F4162900002440D4825184214221C8A718441548120140314210D12182480280D124041250240046D624022504C042411844C0A243041084C41488414002BFEC0F49138194434110140311008041040011290241C48081052D8680012100462427020041100880918810582229
-:8047000044C6188C44440848F018CC2018041218184C011A02481100141008C0811248484021420884400428804A12084221282688C2181180024810880181842C0120B2E206288006858602004B218082912129C124446C8301860118CCA412412A88828222012721933118200116A541198805404C088C048824200442833C482924F1E4
-:80478000589B00002B4181002148225123381100250440220144A028481820C454214400808418D4820210249842215C1201104802608A200A20E81AB44F0300601211810027212481445082294108C3A21444298431129344914288001624136211441225024412008C8461C4C04860248082F1428890844C01484078FC06460400824478
-:804800008CD448168484A44183381149888111C2248386AA82C12443284AC21400A018230229A8128A82214228048422008B282398848286048042A82800F053C1008200141EA82800274119823222A5243218260A218814214064222422AC41E8A204112440260C1844202438121A021400888483014148521A02008F1E0484442A440488
-:8048800025025822141235048284235242202284A148230A188189096C082AE8844821245284182C04422A0800844044C8221E4482123038200421146907262468224E14AFA1F888368D1447515E241771222D421D8175538CCB1155B62AC1225DB21B95B015A844392833181E148B5849B186C2482372143222A2C534266F3432562E45A5
-:804900001E822AF1463815751128AA4C8D448AD124F942444D846E3C182E14214E81C89FB60C58860112142332722D6227226B724AF1A19187238B192F21DAC2C228459416237222A21E89E4D2E82AF2C2762E222DE265E264E462B111E92152434FACFF16822D228D2416944849F88828AD4A87438C02842D882FA4F848848674986886D0
-:80498000CB4126B898160829F3D71890244584D21356454781457A488821D43FA4242F8841DC516122A9C12213E79CE418D444CC3CDD224D418425588436FC3228122728188964414AA75B1E1218A02C4A2405C3714895A88D22437822721A88994888CF4DEC84A8444826E8630A424302221044188444210184548420094810C1241008E8
-:804A000042188130484180084180084382048C0484436281C048248440C8241A84022028F4D7B4B04414F424262B136F82E2E2F256626E665044EFA4F4A1232F28E849E1E9F9A6A4EFCAF81C1C1E12AFA9F916948EA49E14EF78EA1CFC6C4E4FE2F26C6E4FE6F69EAA6F49F3D8D82BBB4F2DFD34344F61F91614EF88F93436EF85F5646455
-:804A80002AB238B35EF51515DB552E222F44F444445E584445F814148FC9F9181C4F81E18858885AF4D9AA40D444F424262B536F23F3262C69F66466214F44F24E1E1F2AFA83824768CBA88BAACFEAF93E1C5AF5FAF86F6BFBC6E44F89F98D971F1CFC6CFE4FC3F266624FC6E66DFC22248F9CBCB2EB6DEDC252644F41F5889E2F63F35EB4
-:804B0000584F47E7A1B11AF17A749F53F35D5CAEA2AF84FE4CC4DED84CD984B13CF33C388FCBFB34382F8858885AF5189F7024F424444F627222F22E2C85FC54662F66D666F14262AFC5F7B1B11F387A96F48E8EEF42F23636AFA2D246F4B8BA67486F4AFAD4548FA4F7C7C7AFA6ECA3F36C6E4FE7F7FEEA6F6AF2E8FB2E226F27F7262E2A
-:804B80002D566F48FC8EAA4F63F36C6C4F46F628A2AF23B25EF7352D8F47E6A2F2C2E84F8CECC57584F418184F43F3A88CCFC3BBB8197A48A8DEA746E042F224244F62F263226F6252E6EF41F764662D125D66AFE5F3E3E3BF387887F6AE82AF62F23E38EFE3B342F4F8FA6F5BFBB6F44F89F9CDEF3F1C7C3AEAA3F34E4E4FE4F4FEEE4FF1
-:804C000062F2E8EA2F22F266666F4AF242466F49FBAEBE4F62F26C6C4F4BF7783AAF23F37E74DFD3F2796DAEAAADC8CBC4AFCDFD8C84AF85F13C34CFC6F22CB4BEB88CF448486AF56F2810040041844D1212450226A3492492744024412689224114C12421004A921228290149012B9290169012E022480812148648220882608985243868
-:804C80004800F04876B08401004F1281326C28410011814044088444400185A448542A04414441440041001004802404E11100428464C014408454480014BF7F0C4F22F4112485F31124C3F41124E3D4C1F24A111D24AF149921AB9455F84A955782AF1439252F14FB25482D915F82D458FB244A4E814FA264114FA2641D4FA26459ACF4E2
-:804D000098244D4A1F49C2421F49522C1F497248F19164AF14F1816CEB141FC1B24AD981F24A925D48AB9443B24A7934F842944F8294924F8284F9244AEF5D054FA2F41144CF123411E7241F4132441D2CAF16E141F642951D2C2F14DB84F242955789AF341BD518BB21F442947788AD345F22B548A9C28F55F8265A87154FA27C58E51260
-:804D80007C58F526C217CD45BA91F624C29E2C47161F88F442131FC936641FC1F662871D4C2F24FB15688B844F8294924F83F442A44F8394B26F8AB44AF9A412BF3C0A004800820000008002000000100218800800000000000000000000280000000000CBABD0244144066111514048089903142C1158428400448342054468E3C42411A2
-:804E00002A044249528444122410410841CD1340230C90812D488084E242048748308454AFD908229229614212AC41525821451248C24820484441741C012B2D4282688E624428485E82472141100A293446A8838238442E88848820311820043028258A240160431462DFB50F16B6447114C24644834114155A24C12A61861492E41185AA
-:804E80007415088E566253A8254B488AC14CC0812D6650214D28C4A924E424188868448918D8841912314EA042D082648248A0524002A041FFDF03221082821151328440081518022440040029420880F22642284B425218444800446981221211881214011298001308502A2A44048D8443C38443F25D1E20224121512820C22800254123
-:804F000008400128844422280040044C1202002180010040C812482448611A04488800842C210190A800F068B45052D042829225701814C211323012504888002823321643842244824424044464814906414821240025149814C012841A12C248291118129448C14A914420067F6C0D1382D141A221491202811681126181101C0122265A
-:804F80000A231104402204431442445482290418002440D2249148430116848101469812409814890552CB848002E7911006215018303C2902164202008200C024262426820444442800004C02414821008100244602278426222408812110524880024270F4038D12000012C0112381015922A112A18116C8124044B248524820012001A1
-:80500000100230168411490420316800214416B14481A24883B582022C810740628328DF130B8144433114404404410041004A1212E214028C72340260441A0CA0C24B1841830144404886042242444826815422108E712C11042F814214048C4402F081EA400111111A42C1288302441112609840018149211102408142088120818404F9
-:80508000821002100425032301002821211088240489210300DE35801146442171141118684118C011128E1946582A89E12413E48182A124411CA48484B038B484D1240142244308250380226576481AD22204182722124143918A2F845224491728018381F23CDE40011C61412230241B2121441428002111508118412D24848141280078
-:8051000000305840840141444044424812014425E18144F28148832482A14120B1480228F095D440420440F62114214098282428290100203222124302008148632204408401180000124A421408C01616842442824114420449C5480044CF940222260264814044019641689181678881238361C8002981846129A2924224C04C4602456E
-:8051800082042582410244482444580010A221108204432202A012421FE801281481A3420400000045424202210044480000264C48441842C84240120410C4244128182C02284883220400433138489032A302225F5C0500202102848586911C21181001404888A212283821622C011A04422C2801481088182C012F81288484488401161A
-:805200003418282A24042C8401411E4440F29FB3248222244110184A518211A1141881504810941210B442228484642841901242431464414480140236A442004C2402122418484118814982850128004F920F94402512184105282041085C521C0022000021200288C10000103214C42448290422005022240040422405A4412D48818070
-:80528000F1CE27002512085042241214211C9282802183481C42624A0082880026821124410280442201284038188221824220044400109222009024F09DAE14414441111008C33214250428A34242041684410648122C054270188201403848404248B444814282411424C44428C0184189C4244A416481818149024460864019C1411608
-:805300002822430322204244A1211484004002302226A2184C868844C41280681488C01890C40084AB148AE222C84487244C228402242442242031442166F4BBC650211F5A5287ED18CD24261451418187293D181E2218BCD1C331128CA123222B812766124AD62222EC2452C48C25715852A4186B444A711CE841D428A1A247238F88A153
-:80538000438A0436F42216AB54A386E48144D2467444D62AA6122FA17618C83C20F5A64AC021254295212722ED11855F24697123FC2822BB824722F74945D32C7214548E6CA2221AA2441AA9D627224B1A8F2322D1869454237442682129086F287156443642237244BC5AD124F844824345C24A1E18412A8611EAC4D1EAC4142F46014FED
-:8054000041D244D2CB43332441856243841FA112D69AF3312A4D11C019A79130288C18686829D16491442A038289DE48BC4275464626D848C5C4446C54620043C1344F45962845FAE2648A8666411AF3422446721464251A35345A129464EB46222E42AF384501148449012E1110042C688188845C288148880AA8A0A48002281088210C2A
-:80548000838821981282200882182002248C6422122041C2482041024212282749141E134F52F2242345F63B31AF72F21617BF72F2282CDFBAF29C221F12F3888647588E1D2D146B99AE166F29F126222F2AA89B182F28BEC2FC44623E12EFE1B4D2FC44466D8E2D8A4F6869286F48E82DBC86E82AF2B6B22F2BFA36244F4EFE82842F22E5
-:80550000EA43F33E3A2416F616562F2193128FA4F52632EFE2D2A8E1A4F4747C4F43F35444FF3442F333125F74F623266CF4333B7F72F2131AFF72F23A36DFBAF2B8261F9AEB68FB8D1BFB18CF48E929F982166F2BF1B6A22BAB2B9B1AE12CBEC2FCE472AF23F79E526BCD4F6DDCCCD813A8984F787412F252426BC8AE264F63E323F3B629
-:80558000A44F47E248E82EEA63F3727C2FA4F112226F21F112546D426FA4F5262AEF43732EFA765A6FC7F334345E527F9744F131173D655F32F23636FF33F33B17FF71F12A26BF92F22EAEBF73F2ABB2AD337D859FF1F198964F21D166F912122F6BFB32342B339AA9FC8ECA2FC6EE42F248485E522F6CFC164E6FD9B48291D245EC45E580
-:8056000068F412B627411E262B35CFEEFEE4E64F28B836F32A3E2F22B21AF31C4416D266F14E5E6D56EFE7F16E7E2F47F7565C4F47F564761F8F4AF111163F52F62D266F67F33F3BFF73F31F1EFF73F33A1AFFF2B93AF3293AEFB8F91F9FFF61F11E16AF29F926962F23F136364F49AF779AE92CFEE2684FC7FE7C7CCFE5F5DEDC8FC1719A
-:805680001CFEDE4F6F6891D36F61F1D6D66F49E161EB63F3D8966F4FFB7C3E6F66FAC6A66F65F37A78AFA6B71AB11CE445F45646AFA5F56E6ECF47F16E4EAF47F16A6C4F46F46476EEF71002471220628845425814400314400644126412422004426044002190161002211002490124480024001A44A24144482450481242B0E906671814
-:8057000028C7124002451351224C722251818D1240578481439212C0248002A8232211022904006502006901A90120582640A241006400D02A2182814444E111053CF51124C5F3112C8B161F41F24E111F41F24A121F48B24AF98128AB945789AF5439A4AF147BA4F842B1478A2F14FBA4481CFB244A8DA14FA2E411F2244A871D2EDA9615
-:80578000C5CA9E24ACFD91242DD21F49D228F891248B841F49B26AF9912CAF24D141F26A921B61AB945781AF243924AB944B432F247924B842F93448984FA2E4E306BCF511646D411E28EF167111F46E111B2127241FC9F242141FC8B242F39128A75443FB422347884E3147882F1473B6D812D2A4D518DB24FC18A14FA27448F524928732
-:8058000015BCEC54C2DA1FC4D2A6F911648F227C11F468821D444B961F89726AF21144AF62F9116C2F24FA15288F243824A9E981F442A64F82B442791698A24FA2F54758008004008004200100000000000018800800001400840000000000448002000000007085030085D4427214321800212228009400A41016A4211044024502495611
-:805880004A484002488056224110024608482331184829441818344A8034284C2104147F664B01860518235224222222453318C012D012081A120124A04228CC84A2241800435286002C0141121463C141C430388961282E4182188E1442E2282692182C88E2C241D148F2D2BE142054842F42C1148C01004932262012398340184244E654
-:80590000228106161CA248124A5242448415021E4281262255426C81444428823512C944A2144B184E28628B4226C218246CE144011E24EFAE09504100272244238232221189012C010038112100C024482847221014E82244040090444003148442161828F822118A048430842120648A28260884DD1F800125818241140621178100008E
-:8059800020414258181008142214101814981400441810040000423044001218602448181A04200420F2C2BA50415444814427121D822A81512681260825195182844C118421E444210161D02421D12404484B122446044054282E124961144C23B418B262813462508249812102A74E7024A81480F4798790141115C42890211D842A0181
-:805A0000B9118202A51191128481440042205242D0282121840138F012440050281612041E44E0C11222B42201252834521842678660861A04223F9C0D1145023014255422241241818400104892148581914843C11140014141C461424144004441808231412242485A0248189014208281084100483FA3450244290240814102441845DF
-:805A800002204102424052218150241A9448841038488C219444381810443888812118A0414B14124112181044044014440444AF16081D1622416944783288842161828C921416782401448400F0241268281944885324812722184C2801C1228582252101222225042428430363420840426882236224478187242B5800000044008044E5
-:805B000001104218080000400400000021C0184001002100482800102188082522354C001200821FAA021351426902842753121823F1244819233112418C51688448001289C624150683548484A1465886301C169C312420319A00584922818121A281494158264B4187648485341242122CFC22CF308628244440280400815028110000AF
-:805B8000002D25004883240221282921892524026041815028282602424C3422134122080000224C12544845F8EB6730124C145382164842584B2444AC81C123182441AC114C024A915410042141638501200120D122012554A2123014224224008C41044818004508169814844FCC09000040040022004001100625C8182180028445086F
-:805C00008C4282C22440420880C2484014141AD848718478481408831918183C8A842AC4184200ABD1148A611184182001001062112D14901A1C4142118161148501B48074127112426164124724C04226A4411411361729313116224211D1218204182442245224100422FFBB0F30222012A24244100220420210480181408852121AC639
-:805C800011004002103224441044140452114244442860C12220440444004240043F1501400221122622382220030018842952141AC2112D211440C128141C424143818114582281427041061B42811B41608270310819548100CC24C448839478841840B1CC4B11431401150614813141244413011100C1000025480225020020A1438466
-:805D000022302280761A440284211821302221A34414125C42491106412911F84F2C0022221430888400218742850211180080021682260200894288022302412441008100100481902A8818169412888001004842F0D635402489A1146561414C014480010060418C611141004147214841410041704402108425149221904141281810DE
-:805D80009451484848C94402480012848449B2FC0FA4B0282472884261121C042C2462C2C022118591221052182894214581C1518B815CA6216890248D2168284D2828484062241344B442820116544129028001411827241022742C0E1823A83237236B1885D232512A216447A327222D1318251AD873321E8427819C31541D118B343504
-:805E0000B34264326D482F53924265A2236742AF62742252424E2425526A4D4A55B15484B164748432421B2716144844044744814B44AD5849C441411C4F33114F5853AB8C57395969C241114994381C311115B319D192518C157721D138D121C44526480785F11B148597114E261A51C2AC52844F4536343732D7925F1253115E523D285B
-:805E80006F21D288F21B399D7DAD8399F7C6586F81714AD282D12A4574126E244E1C4CD1A8F6F4C650263E421460C12F4712DD9156242B32218F81922423417135A6112E18AD1613A2259F82C2247F8254485F6241B8714322E346F64452814A82E12417C42456B85A51428F527128FC121426048C75426B418B444DC8CF6564884F85B54A
-:805F000028233118C321F23FEF000020A8842004000000000000000042200442002004000000488084088880088880080000F075C9345F52F237351F33F321314B442F13F317777F727646F424666F83F33B293751173117B15FF3F33D1FDFF2F21517AFB1F17B5BCFD7F67D7DFFE6F64D45DF62F34355FF52F363616F62F21E3C2CF34E5B
-:805F800048EFE2E263A1513752B5D8DDF3491FBD1BDD37EF24D44EF2DD577F3FF32323BFDC7884768E5A2A2FADFDC24AAFACF47E6EEFC5F45C5CCFC5F56E4EADDA144F63F2F77E1F23F33132CFF5FC7173FF51F72C6457746F42F62A243B133F23F31311BF91F1343FDFD3F12D3FDF72F31B1BBF97F57F6DDFD7F76577DF54F4ADA71FD725
-:80600000F71DBF3F37F72626CFE3F323176FC6F62E2FCFE3E345F5434D9FB2F21F3BBFE5F51B1BEF51F36C66ED2AFFDFF7F9659F3AFAFBEBC748EFCCF5CC8EEFCDFDCE4CEFCCF47C3EEFE5F15A4CCFC5F43C1ECFA645F321375F71F4393BBF13F336246E719FF1F363276E244F42E6C37333F3133116F2111BFFB2F23B1BEFF2F21F113D5A
-:8060800019BF96F57F6DDF95F72D3FFFB6F66FEF7FD5F5477A3F57A777CFC2C3558FC4F4686A2FA1F724627D67F5FF3D3FDFB4F15717FFF4F76666EFC4F675F7BFF7F3D38BBF84F2549EEFE4F4DE9E2FA1F556D26F24FC7A626F47F74E444FC5F46C7EED73141F73F39D479FB3F33912CFF7F6AB3BFFD1F365256E266F63B73AF1192B3F72
-:80610000317312F31B18FFF2F32B15FFF2F32F33B5FB7311DFD7F67D79DFF2F26F69FFF6FE777D7FBEF553754F67F73E3E2F77F76A6EBFA6F672687E66BF72F6252FDFF3F34F5B7F75F54F7FEF66F64A7C9FB7FF5B4ABFB7F6DBEBCFC5FD4E5EEFA5F1DEDAEFE5FD52DAAFA7F6767CEFC4F4544CCFE2F359E73022A012844541C8124001E9
-:80618000264208404348020083048304100221282901103826100221104618445824160884608144164844482401124604FF6409008042110184250100000085011484142AC4114041581851004A220260449021C11538481121C012132184C213484C810448184B4242415014CFB2092CF4112485F2112483F41124A3D441B24AD141B22B
-:806200004A9921AB9451AB9443F24A9143F2429147822D914F82C4914FA2E414F8244A56F1244AD6E1A26459ACE44DC24A1F49C2421F4952281F4932481F49324A1F48B64AD141B64A9921AB9451AB9443B24A39242B94478229F92448984FA2F43437D0B6A561A5D341F62A121741E312F12E1213F14A941E24AF34BA15B24A3814AF54BD
-:806280002AF142B747811CFA22482D95ACE554CB8A4EA54FA2611D47A287186D53DE25A41FC8D2A4F591648F227481B448F18124AF22F181448B121D44AF64D141B2489325AF2431248F2431248F24712498986F82949A49F55476402888040000004004280000000021800188000040014008480000000044800200000010022F8802253A
-:8063000082118A12C252C0482D224C14028941082181812681881284C244502C12818922C1324331322D22C06418400CDC21A1414C09200BC054002840048160221F480241824908C3119C84901C2041026044D042A1412504544244504240846164464628423448168101160248282880645581806548803238200483267A1C41F83CBFFD
-:8063800034602C842416E84411423838251604AB1284101288018234460447257084226181304436D84132222F84921A1A04169248484D191A82B484E54451841AA243414904282248442C16183418DDAA50241243881244988448614818006044D042C1482D25C024C024404448048F44D222012961411031241240042820011120088246
-:80640000182289010081A28921B268018002001014110283040000000000E022040000004014020000800200000082200820240200485F8D0200410024840000420000441004414200000011812004202104002021448201981448421A04482284100810F8D22C000000101811028100004004414024042602004001804414228104002012
-:80648000220400881142A0142004842800C0488BBC00224148002504004249040000000000480000100800000042001840220118008A04888022048400F04E8900224141408444088002244248200221103824284848250400428880260100000048001282182088048430888C0500416E3320420280240225210100811901A04122901462
-:80650000008441008C048C018110021225C41224440012210000822304201808008384023FAB04414100284601002120040000441018040000100A282091182420020012002024060000424842000046081F26014982124424D614022509212250281C05A0254480514841894244128454828921648812122C212142424224011280A421E8
-:80658000821888C880B48804824A0183C428445FDA0B401402802404180048004200222145082280240481002240B24802102601006024004800242004C04881840042F0E8DF0000200400000000904410040000480042004800000000000000820020088008888400002F9D06410040444404414280240400413044444149241414644466
-:8066000041424100480000000000484220288488044820188864888110F8E8B81004803444440020044148001004444140044904414C044448000000200400002008488800802818C848848400AD5C004AA44442004440044574443424004C0444485024424212448A04420030410081A0444A2404004848308420A2482004800886026059
-:80668000817F870E410041000000000000000090444400432404484200000000000000202808888800000000F0BCAD10C848484800000010C424222800440044250229218129881804C041111484818C84840400800444414C22828208820086582A90122F730684C044000000004480020000001062444905880000400140084A040000B9
-:80670000202844042800008800508281DF1C098004000000504400000000000000004100000000480000000000880000008100007F2A074004000000000000000000440000200442000000000000000000000080088200F0B5341038482004000050441024220200004146C2422021212C4804001111103848200400008018142422028206
-:806780000040484212F8F16D50848448481004004044544468280000001092424C818198840000141440C8484848000080084444688A020040081012F2C946000000008004000000000042004100000000000000000000008882000000008100FFBF070040040000000000000044000000000000000000000000000088200810080084F0DF
-:8068000086D94004000000000020040000414144444324044A841404000000000000008A082088088200508882851818F8953210040040042004000000400400414044440444424A044200000000008004A088208C888828E888088D884008EFCA034014544400000000000000004CA4444848414210440400000000000000A0C880088263
-:8068800000000000849FE4062722212AB1120129012C5122881E1317118A689D85E818E48424F441491148951CA84487444D444B244F46024C02284514A4226722212AB11281B882092C5922881E1317118A689D8D888AE48C24E48404488518E884D4450E6F62428221211102182592821CB11191C18E88818D4142424659114884858818
-:80690000E44494444B2422224480425444282F22428221A181232888512229C8111B1119EC8898888B484242460848848588F43111000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000042
-:8069800000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000039
-:806A0000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000B8
-:806A80000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000038
-:806B000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000B7
-:806B8000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000037
-:806C00000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000B6
-:806C800000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE36
-:806D0000000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F002
-:806D80004FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000025
-:806E000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000B4
-:806E8000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000000000000000000034
-:806F00000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000000000000000B3
-:806F800000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000033
-:80700000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000B2
-:807080000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000032
-:8071000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000B1
-:80718000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000031
-:807200000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000B0
-:8072800000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000030
-:80730000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000AF
-:807380000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000002F
-:8074000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000AE
-:80748000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F2E
-:807500000000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFA0
-:80758000E40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000000000000002C
-:8076000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000AC
-:80768000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000002C
-:807700000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000000000000000AB
-:8077800000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000000000002B
-:80780000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000AA
-:807880000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000002A
-:8079000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0042800400414848410040040000008D
-:8079800000000044200400000048480048002008200400800400824F890F420020842484040000004004004800000000004242484848420020840448C80088828242200488888882F09BDD0000004200000000000000420000000000800448000042808404002008C8480080048880F853A6808404000048004100100400000000000044EE
-:807A00000000004842000000200882200800488028080057C9000048001004000000100400000000000000800400200448004248000000000000007F1A090000482004484200000000000000000000424200000000000000000000000080085F490600000000000024000000120000000000000000000000008200002001000000F0469DAA
-:807A800030444421904410044141428C0480014440044440044440040084000000004200202408162804881044B88804815048F079F9000044108204420012800400B100461801800424401844A242A0420040542800469418004220080048214116A84820029FAD0443141442C4442146044C4484648480044002419044100441100440C3
-:807B00000448A0420000814830441200608142800846148A0C4A0826042FF506000000000020018001441508101801200410120881230200004110024028242804880000504816180881F0CA3F20021840420C1048880142844400411C331510A42484144081345821834408181002001021D481342228204181049608222081C2488884BC
-:807B80003A0E0028812644C164AB4178486E8200290147815582518420344184484726C0668391A4444922638422408152A4146921F424111849349882C23012432CC4648368888B849280027F1D03280030243044A381028A04428144160C49116411488084D441042C848412B224140828002241259114E01265154CC48882428031441F
-:807C00004A18E4880248880081FF750900388124958482345889E4220130120055022E1941704491288428215C62814F854844286384182414104802131414982232A01811238498182A048CB888A11289A482F0F28E904814A06100001445229814809518291818245828504211C611C21423814242E282E811123818239148418741434F
-:807C80002314C824811849E24128022684419CA44614444658C260282732004180848422C4222248904C408864124862450114259824008921288401111410028901100220014C0844422006C800182242290849F1422920114208A444100A0022824C082048010000444E2840022140042100001021120422484A08C048880023048E28B9
-:807D0000002021F4ABBB141A44458861A44448302320B82884C81C4E18A84E884C22582811841D241C9462C11800244450A21280417418B6242146883228491C04C0484C2491C8231EF48438430284124AF89B674002800228248C024C1422018A4412011944051004431848022F222411F288212A01A41248001140941480A1689868201B
-:807D80000841444800A3348410F4F2E14004168C421428028422A0124400848421140043840422428C849843842004E081041121144C12C1488084812424648418624400620058625F9A032419020024842C62238348088572910210241824C3211220D2123492472218C42A119432268C8142848281437148849144412490B8230144818C
-:807E000080224164424084F89C6A4014644243413814241241414C6181122D1416D8429212341893819118169548702894528B61ACA1412D1283911216C8421AC4141658248D11381238844332184284566284C01830488944DA489284A19F340F1A041033121342442C4438426400411826922C433444412210D424234112044908C0424E
-:807E80001D42441002214A02003280C8148844884444168408430128F06B6220A221122E481014018002288110C12C4818844098448C4241B828C42826E145028C814408122001A5016014704252484E848410088924912840A842418C041F180F704884144424A242226216C43821100430142818281092432904100480260614242846B8
-:807F0000140A40E4820448201142048062412A882401E0818481F45CFF401812092800442C01A08418118188814468822E4181824C824502400144224922049024C4430241221004802208008008442002441FEC03181113628183213115108A21122244128521825112142964124313411484512424A46885C1128424124044122811A816
-:807F80002184299218009042E08402268822284148F8AAF6C028C0422042410A4490428514828201109828A5941C101A981880D818244214486214008480448814611281328440F444182F48C2883260814A0816082922F2149EF06426C11E122F6362824F8112BC24B342B7A6F128422CA11144122E3C85F824272D422EBD13B661F63411
-:80800000561F4632422FE4EF42A1449B52A7A44CF1624A8F84E1A48496421E15C111FB23CD194E48122B474F4132985E189AE92CB1B2D444031AFA88C84D24CD548B128B4A8B28FB59A0113F13A222450917121FA6522AC7412CA211ABA2A5FA9312C165A2378D189FD53258AFA1B71CD1989848853A3C1E48DFD37114E143F34C689B11F0
-:808080002AB612C1181614E2C1D1CE2134319B314A52C8AD1829C82287C4CD4487C483E2C4F848181287823AD244E6E5F324482761004654DD8B14CF41C3165C4164A287C12FC462854654143D1D8B814536924B12514545BC4152945F4206EF24D222FA422E4B4827232867619167274F24B12C52222E23DCE44466124F82D52463224F43
-:8081000084B5A8C44284885E48CB3326A4344AC488278141424F2C0E501210021400C0828028C183C082800888118800210010036110042100501650140012450200440000400400B0A20B4F43B6517318DAAA54CECFC1F35C5CC7C2AFA5F782162B7F2CE36DFD8613EF495144CFCC7CADFD861CCFC3F1979C9FCBF91119D7F2755FEE6F13
-:80818000E3727AFA31384F6FFA363C8FA1F3322A27213A62246FE3721EFE3C341B158B1597818FA1711EFC1C169AB928F3E89AEF65F19EBCCB138F8DBD38A1BF8F43F3FCDC5E584B54CFC4FC924AF014545FD1F5181AAFA1F13A18DFD1F35556CFC2F25A7AAF68F3FA7C8FA8EB2FFF9512FF49B39CF8DCC877DA7FDCF7FCDD6FD9FD8FDC7F
-:808200005FD5F16D5F7D4FEFA8FD361AAF95F49A99EFC5F7343E8FB3F2383AA7812F877252F67276E7C1FF53F75A7CDFD5F558188FA5F31E1CAF41F3DADC8F82F7C8FAEF65F5DEFCCB538FCFBD78F5F8F8CFC7F5FCDC6FC1B148F47CFCFBBEF074663F41673127A1ED2C4D3D8F95F52E2CAFA4E6247E1ABC8AF94A7A2D81EFC1F1848CCFBB
-:80828000E6F52D8D3F16F48C9D3F13F33F1D5F5DF94C5F2F32F22EAE6FE67262FA7938CFECFA36348FB7F72E2CAFA2E683A3762F22F62E2E1F52724DF85C5897841E1AEF85F594868FCFFF28F88BB5AF61F95ED4CB53CF8FAD338F87F32C2CCFCFFD5654CF84F5ECDC6F7A064F67F71B358F93F3183EAFC3D3D1F3595EAFC2F25A7AEFE46A
-:80830000FF7A7AAFA4F7DAFA7F71F93F1FE7E3AFAFFD2F91FF96F72C29EF9BFF6D4DDFDDF96D49FF92F67ECEAFA7F56D4BBFBFFF7A5EEFE1F3286AEFE3F72A6A2F27F776746F63F72E2EFFF7F35A5CDFD5F559395E3AEFE5F79EBEAF8FFF38F88F85DDEAF86ECCCF82F5FCDC8F8FFEF8B8CFC2F2FCD8C7C28F84F4ECBC7FE4012A016B1260
-:80838000842A41A8120084228400248428840028A02480024A024A1222140400211002006081221A0412241A0412288082840200CFE20C10011052812C012602002D12110024111C02271411141722422400542246542242201404255241498166128C344412214824432114044800441AC4241CF48BC6C0421F41523A1F41724AF311240E
-:80840000A7141D24AF24D141B24AB911F24A9251AF343924AF1439242F147925D812F924481CF9244A1CF8264A16F1254A96F1264A96D5A6E449D2A4F491242D421F49523C1F49724EF19124E7141F49F24E121D24AF249921AB9451AF443924AB9443F2429447822D944F8A84F9244A7F3801611FC1D61AE441724EF311244734195626A1
-:808480001F41D668D141F64A224F81F6481743F348171B43AD151B43AD147B43AD151B528D856F227D18B5253D186F827598F1265387194F82F591286FA2F591644F12E588724EE189F24E131B296F24F181288F66F1812C4E321F88F24214478A2F44698AA744A6D84AF8A648AD94AE5AAF1205000000000040042800000000000088000A
-:8085000000000084800400000000800200000000B0E10F422313222101181170240880012443811124015081226C446262142412486143854182022221140089024A218404A41442001210082210F8D561144111811481102882621489133148250428142848841141902811004C12811241CA244C3514245341081100142134408141C685
-:8085800088432244B418642220C421622F944ED124F44112C01118301822F028454312E18215044B211991245284155248B01846632A14493213421157856B124721C3427271144A110126481162244111365863833824901452872224622283F59FFF00288110081021028901244002000010815224100400264204802401000000A01413
-:8086000011420020044210080020F2812A10022110421828218414C848290114160855084014842202004044384863A2244004191202002682142881082C081841189028A24A080067E930251222A1441931358145C8221A044216844462817013046887115648C54C85364447834A42D44221911649011D24181289B341D3180416887225
-:8086800082A8212F146184188A84012E1492421A328889B22474250D260126424814D91843784884B2420123941440D882513C190148D44A51144C54244244495424CB414CE143644140641118166817992422149898601589848104182883210A848342F44112244412211022112401428183840146810110044C22C128228484418B1283
-:808700002884702202406412222122002483C122E02209860298430143A182427A280868FFC50E83E122C1281A2475A8041280818222A11242811A942411200216A128128B848015442445014088954630241608484860464C68211289A44138004002238441F4DC8C2481003C84081EA8854211082925A882001071325828468288022840
-:80878000984014C8484562144C044D2844488420048741221C011694222824841044888813D4428302ED7E800212C0881A8838224A23821108A1841C018C2108C1810050244C012602604188408242624120A21228450883010088C044401424A48440046F290312182815C2483283D1228125829258929880A1418D25230AA7468C488127
-:808800008AD268C4141614944A43344241803222451298247688B318364418362C2922612C89E1411454484988A3484E3449016FF10C238A921A1218C4228C621216C81228248483548120D1184108800300809428411249210C444D5290140010C4281448241221844222008054428012F4F97780518444004508845085008111494204AA
-:808880001608811742814421498444D4484C4168824C02222014440441890142814100502881103848847034881238242F7F0228422800801221A118128420880583227824084860824682426882183248004C0132458203C888288352412AA824A382021820B21224211494428112F05413A0186082414922814104288002855481181069
-:80890000280324481244200A18842811187011180400448181483220110487428112818004814400708449126181901111131A110881910000424024C4A1C31A04164832141A4221D41468C2842844D0C24882A421C84444881B5229048019A28400E392922B1242805822EFE708A021126820C1282884000080123824328901182A2584BC
-:808980003228228D1420021009688002181E2400288400428C21042002204484AA428942F1B217004501004110142401284211830140140120D848024446C44144412A015014202481C6481100400440283812A014428A210228901C2321F2E6D4200241448C010000B018084084280120120182468485084220A4144C0400424024B8248E
-:808A0000810419A848811A820490824C81A41826480A2142449FD60725219818115C38811C24914443420181008D148400160C81002948088444812021128CA2216D112912C81841C981C21A188883410AC0488722F0228212006A68A44FA60E45084818323014204131184412CC128106008631881229458801481C9241453145882F14E2
-:808A800081B9444118880D683200118722C064824C1A08001880A11821B0F90C6B319E14C4A01A4FC921414434A481181884684FC54598141E188789C7544A71185488ACD2846AD1C7C217444417C4AC2114E522A4146469E8C1BC64F22824CB12CF58C948CB12AD848F833796C532D8244AD988E8886722214578A889F41E3614145B48F8
-:808B000049F31115CD2515C121C3A1148D351D118C18388D17D18141167428D515E28AC24843F224424CB8F8B468F751519CF41D618B22196443892EE5292611B885E3C17C54C8681B4297352F84E48622E4A459828CB428F6184A5E66AF2498322CB928E32161E21FE64932218D2883B344321122DB169C321C178116B828628454CB1284
-:808B80002AB82873A888A68219F93A844EF82F44B166441484B824638E4F11F43C8449E3C3D1447324F467383E14228B18184428AAEB21828198289229F94418282B1232C7C1CF47A6494A9E247F5E08A0122062880022C08180288128812A810A108102288200281182192148221C2418044180014501241A044824000040024260446FF1
-:808C0000624B7391F45131125D711F52F2B9319FD5B518B358F5BD2C928B22CEC887C8878C87868E9843FA9919CF8BEA1AAE47702254A8EF86F639398F87F59C998FC1F5188D8FC4F894C627499E962BD95FD8F118941F19FBC8F88F84F758589FCC2CBC18F38A988D1A2F88F85C5CAF89792CFCC8C28D522B54C5B486F934DC1AF9244A8F
-:808C80004F9C49D151D291C6245F51F23125DF53F3597D8F81F3585C8FDA728CFDA8A8DEFCC7C8DF88F2AC8C4F4BB9A4F1B911DFCBFAA1EEAFCFFD785CCFC3D38CF4A464DF93F2F55CDF8EFC89885FC1EDD4FC94C627296F81E561F493798F41F981A58FCCF64C7C4B55CF9CEEBAF878628FC8E8A6F2AAAACFE5F5D898CFC3F19892AF2B14
-:808D0000FBF2FACFE1B194FD16DC8B918FE6F5F6B73415F53575CFC1F125359F82FAAD358FD5F53C348F47F639AC8F42B2A8AA755D85CFC5F1ECBC8CF12CA8DD8DCF8BFAA8E96B6249F4645CCFEAF82EA89FD3F73C3C85A9EA879187BF23FC18AC5E3E2F21F4A5678F43FBB5B1CFCDED85F718789FC8BEC8BA18F3AABC8FA4D68AD2CCF941
-:808D80005A98CFC2F2F8F2AD42AF8CFD5858AF89F9666CBADFA4F532D1341F5AF22D25CFC2F23535DFD3F13D159FD7F73C3CCFC7F62DAD9FD2F228284BDDDD8DDFC7F5747C8F8BFB2CA8DFD2FA9D2D1FDAFEAEECCFC2F6647CCFEEFE4EECDFD3F77D7D5F5EFE6D6D5F53F5F85E6F4DF118AE6F47E769FCBD378F43FBB5B58FCBF97C7CCFDD
-:808E0000C1F785E59FBDFF5A72AF8AFB88EAAFA8DAEEF95A98CF43F3F8F22F27F7FADAEFE5F5DEF84FC4B5D8FD4C4E57AE90160084415014100422000040244124694492460442604460441842222022A41220022A084302888C24628120018CC42284281A94281289028FC60300493111A02181B02831110081D058014088018D21824031
-:808E8000485482281885214245584818444190161618A441421781882821800121002044D8420240F2ADE8D022F411248D121F4132481F41324A1D24AF14F18124AF14B981B24A3995AB9443FA4A9143FA42915F82D412F924481CF9244A1CF8244A16F1254A96F121CA96C5CA9E244DCA1F49D224FC9124CD821F4932481F49B24EF181F4
-:808F000024EF34D141B24A9921AF2419F54A9243B24A39242F64792498924F8284F9244ACF640C2D42CCD438F51184421FC1324A4CF44A111D64AF56D141B24A9345A99244AF1411B54AF125482D916D481CD9A6C5815FA23D185DC216F1254A16C5495E254D481F81D2A4A461CD439A7244F1812CE3B481F24E131B28AF64F881648F2429
-:808F8000F38168AF6421DA48A94A2F6471A49892278A2D142E1AFFB30A8482000000004004280000000021280088000000008480040000000000000000001414CF3109401428114811C824840026C2484054821C04104401000044901A89122404800210E281C8444B122018081830181018548200220042F0ABA300A2502290340010318F
-:80900000184810668419220190281A82024484481800204148048032210000002002244081282288221424041489F2869400434C8A014943C82484114781622F8214944C2D295200CC721182024311A84818301A89427441083028221724C0184C04002092143022308843928A2848400246E181F21B6E002800A1110000002400400100BD
-:80908000280000400400124004002820081E24201808008911010000432204009D94002008880080080000000000000000000000000000000000000000110010011400775EA0442831C014CB2274426184A0621C014AD8A2B4140122888687A83186082E411D264038188C34C38984E1468228911340B48CC825624D2225A81348148A08AE
-:8091000027A14991422E826048A031843F8A0C292295114410CC21624457812F1282154898822449A1483AD8224125D1881245A54A8D2218568844B8833118244C92826215C8148311C4A1624445B8228364118429F8184243A4182A088586E18132447F950400828008008800000000000000000000000000000000000000001001001137
-:80918000400170E705211222400221120040C81212188242000000228084028381844208414421901400108402124280082001A2200800F0D5212062228C81922220322287268446184248249442448B41106812100484C0181648C22281608283B1123824209224444921122811248881E181A4848684311889826186B0A87424F8AF7169
-:8092000030222829C22240420284200418184A21440400000000811216825282812285C6164C0226C4246041006041001A88243C84122828928C02836882BE4300128C012C02281AE22442484A484A042928E48104811C02412284481A12488884028412820018400443C22818202C018C011290988180042A44D43F078044081A04002054
-:80928000026021188C021249018C0281424611C898121221816041262448042D44282783283018804204224818898102160C28802202BFB20D622D4C200138848C8242048CD142022121218123080040029830482A410600CC8101488141C0144818821220840288002001704814042F8D0C80010044181880110200200240482202410054
-:8093000000288480010010020044004008008628080000422A0818F0CB4980D4420118524028821214120818812522512850282284467441421888B158D2824184311443E2C841420289322A4C42C44818861804B08884999800441228A2894204EF7A01221008E041826181A02120D122012122301489280200000080420A006041400486
-:809380001604121820220168002002160848904438F0D8464002008181C31108002C0C80024004810022842012284C14082304A128822800844D288091580020814884D184011222801284F4224D24226E1210AA1224222644021618180821E301812821224120824214C22228384C322849C1264C48240485029014002E88204298188163
-:809400008128431244088148F02AB220010048204118429244A018A058241648428832828482102A01204102212100244C81128202841800A60842208A02848241824116042F780200CC4124912C00121200F0821483120223223112448212008488CC410A1898A0121828248C44041812C9028001508418200200490310F41E4320080048
-:809480002544021612440420588482002852648260485062102804282694444014C61461440044414C48142401104414A448122041189888145FEE0B242082042200460230820025C43A565828288422842881228121240083141802001812C144264828C2184098182041884368488C01424C2713F4E6251036142552848B4225441C2668
-:809500000316E88491182061444496C48428E04231184418446C454464812981321423C82200813A3882182880982888288C8122480800260820C428AF230B1884C012002003222033428901C0828800128880022841288901822048C812002722428B3800208421028220018021C4142800F0F3B340084F83840229652440440244412886
-:8095800048824C02811280514A8011C28289014038142621018C0248002002800444800280018A024E141082645330322F49712A5862853C2C278341654404A7248FC9F11E98CE2A47818D84ED24853A2423BA2CA818C16932148CB41CC924E0C8F212248E1627E12E262EA64D428D24869C8847424CF2281416E4C386031A7814BC14184E
-:80960000AC274B315E3CCF43E3C2C4349C65443FCC03C04841C7852B262B616C31184A51222D189AB84248B4127848D682E328B9627818884BE841C82826427A1AC4482B118132AE1A49026B812136445A222D381A92184338C88183B328D288A1188D1818890840B884722C285584DEC8246C61221E36281E52E4C3F4223E1E22388F41BE
-:80968000C47840B224B5A2715462824B312D32419E14CF82622284AF4252242F6652AC3E3AED52CB4423B1AC833114293132CB61A6D4887134A8218C25E888888114684A3E28CCD148A888A015484F42A842EF9C0A00A0129014001024210244802208822812280000180080082A088800A0920000000000000000304880F2EA39F0241409
-:809700007E1885E641F44848CF41F17A588F43F364742E2446B252F9D8DEAB888F8CFC2C188F8DFD9C9EEFCDFDA8BA6F4ABA149884CFE2F224242AF2282AAD3AAF63F31A1845FE18184F684AF49436476847448F21B3A227FA28183E34AEB4CFC7F36434AA099AA911CF89993C4F4FFF34344F4FEF42A113CF83F3FCF8CF82F62E282426AF
-:80978000F2264ECD2E2FE3F25A4A29F2785E6F43F344522B224F65B1D2F8C8E88B884FCDFE241AEBDD87A22F84F4A4BE6F6ABA36FB2C8CEFE2F32A288F82AB768FA4BF3AF3381A6F65F5F1F32B3116F79A18A6F224481E1A4FE25388CFC3F13C3C8AFAF8B8CFC6F3AC9C1AF1B8BCC741CFC9BB2CF2FCFCCFC3F3FCFC4F42F374726B334B9F
-:80980000EEEF87F7BCE4F024362F23D668F236348784CF45F17E7CAF62F372766F63F31A1C8BAA8FACFE8686AFA9F92E98EF8FFD8A88CFCDAD336F49FB3EAC4F83F8243E6D26ED8EEB33EF47B63CF31C1E6FC1F1584DBEB68FC1F294BE4F4BFB2466EF41F3B4B447483E188FC3F3A8BCCF47D74CF8389C8F81E189FB149C4B9149F1FCFCA4
-:809880004D344B64C7824B37EF87F3E8E8CFC2D3F947F23232EF62D2ECF2363EEFE5F16E3EAFC7F73E3E2F65F534368FE5F5EAE88F8C5CCCCF6FBD6EFDEED8EFE3FBD2DA6FC2F2B6B4EFC3F3349E4FE2F22222E7E16F43F3FE6C4F42F3343EEFC9F9FCFF6F6BFB9B8E6FA9F9A2A6EF63F33A3AEFEB5BCE4FC3F13C3C4F4BBBF8DF4CF8383B
-:80990000BC3AF39CB8CF41F93C9CCF83F3FCFC4F48FBDCF8CF83F37C78EFC7E36DFD6C7C3F790B4302490100262261224062892484248424128D26828D241285048D241018D248129628188143024B129016844342088441162862810040C824168822C1241285048F830D230A25022484418C021200006081850400000010C22400498186
-:80998000120621822140022031249241280040C81412205248002242146F570E2CF4112485F2112CCB841F41324A1D24AB141F41B24A9921AB9451AF443924AF1439242F147924D812FB24481CF9244A1CF8244A16F1244A96E1A26459ACE449C24A1F49C2C21F4952281F4932481F49324A1F48B24AD141B24A9921AB9459B44A3924AB98
-:809A00009443B24279A4989A4F8284F9244A9F590AACF411642C54C1C119344A1D64EB1419D64AD841B44A9B41AD2449744AB124F442114F82D412FA86482D914FA2C5814FA26D144FA268192E4A56454BC54A1FC1C24A1F49D6287411B448F19124A3F48124A9F18164AF44F18124ABB45B48AB3443BA4AB9A4B442F1A448A939A629D95C
-:809A8000A4F5DA8D40080000000040040000100100210000000040014008000000004004280000000021B0C6020084008410048C388281004410141608001014022124444841841800800818A018902443140200901C00402822240241ED4860148A5224C041120041610010628410082184820020080084808862424C148214042C381181
-:809B00009024121886042004C8904822828898835418289F4E0D424648188204404494866918684221C9044508A1818602203182860250849084114CD22414886444C0821260424116644841A0423094304828868868288906414F4805142841406181004008000040120400004100400248608212002008121492A02146020000830400F8
-:809B800020A2141028F29AA200284110046502432401008200302144E044A24A801448120844618014081004008002841884004A080000008100486FAA0743022124482782424110C6C2222C0515182291842E486110283828444C46068CA324850244412C0800126D31844440222D08848C6448824318F894489243B52884045E4A108471
-:809C000012042744256A4441444442C012888511828188149424A810082E444518E241322224006028440024542800122B1C8880688488908484CC8CC84C4E2842426FFD0A222400804202422381982242000053C22E20C448886885042110984484484518040020A1218141811008304810240880812101008FD34211E1C2040044293143
-:809C8000222100422180062141114490A8914286884802218100440080C4142501214001418250424B828081410416222484044F3A05288C14180A2288400828409444282888100400442522D184280422161644410230284C14084400490120044C924840120400104854422F8C0740932140088E4C1280011400004100814800003024DC
-:809D0000481200440030822111001008141240094008502244260400E01A49912145134848382469840118281012840421441144488942692486084722421816484404400221160400814901448A4411524884104242E46221C44840F4478D00282603008D1228A10019044820C284404408824400452844825224004421A0824485135185
-:809D8000240011141240088A04126C1104006044F02B37008230212410041014860821642C08430221200446142244C28244C24079428204101251618400C14092C4804814018184100C8141ACF478FF00110044D425585214820021865182008284812480A8824002810010B22448686886B84188082C98848812244008241042425224EF
-:809E00004022012542D43304200800235214245012601240042824101404104808278281402842040010022100001100000081006024004224F03912000047240000000000404401254812040010449384D0A40800100A41112F24081722812C09440023123121410000454804B04E0B9042212004230420028002260400460224008400D8
-:809E8000410010181C5EC2411008400848444822000088008484004440F49A9F60C485D4244424420425D5424404108222548400502820C2824388290484405224A081A02888400210450110441848440416081288120081F0FD8E24840000840011821D222A18318211882634842120881402442400612784800888102438844441A6685D
-:809F000088256848A0142180124802231232244A014112AF460D200810220800604420440260140049421444C812504245996484102804445024151812018444110000441410E844181444C888849C48F943EC241588D214048D81229028242400902185C128442100101824C41884884002C084944A0884414CA4820014882200C484285E
-:809F80004480018301444A12023FB64D42748853442249F8822746C62425A42821242724254352486656224622C2822A2428195484A12D8684CC5422457E98788C948423C841342758AD8259784C6831822C4248524C4415D5A88191184449E18104C535583F8F022D4282603425312C516563244D8159E21A0A8A7821A42855D1445A88C3
-:80A00000C42125D888D84C9282AD2645338825D62858488245B642A42841A12F48B84142E8B2A288B7C86445E4481128581484442F8458242934228D144E44BC18F2E45914144E243445F44822842558811551624614322115744EF9248A2018562E453444644ECA85A24415FC2448C12B2C45D81ABC62C88825CE865FE818D5244874888B
-:80A0800054114929068B4425C82215B228086427C28D98859E84C78250C45FD20F1110018400008880088880088880080020080020180400001400100221B022012110022001008002F06E8F347F44E49642D543E474F42321BF94F428286F44F421A11F3CFCA3A11F5E84F8CAE2DF3AFAC4426D866F6CEC2A1AF2E8EC45FC424AA5F84DB2
-:80A100004725EAA6D6A2F8C2CAA7886EE22F23334A4BA2821FBC7885E44A7E83F321234A7414F247574F63B1444452EA45F3888BEF21F1DEDAAFE2F292922FA2F29E9C8F84F4848C27A14F8944F341426F52465547AF54B422F24A4CCFA2B242F425A57F3CFC23233F34CE86AFECFC2D2F4BC44D842BCC4F4A5A228FCE5E444F65D5EEF812
-:80A180004DC765FA68EA27A8AFA4D4CCF861E3AFE3734AF82E2C2B884BC84F68E86A7A8BF32D2F9F34741EF257474F63F1484625722A5A359FB85A2E6FACFC323E2F89F9242CCFE8F84248CF88F8121ADD97246F54A4625554438F545457FF34B428B242E42AF242C6214A3684CF245CB77F747486F646C42E282BCCAFCEFEC4C4CFE4F551
-:80A200004ACADFD45CB1EFA6F6464CCFE4748AFA46CDEFC1F54E4C4F8A22F885C11B883F5AFA838175E5647417F541516F42E265B542D4885216EF58F81C16EFEDFD2E2EEFA9F92A2AEF88F82E2C4FC8D8ECF158F5244E436F42524575F46A657F52F24F47DF22F246445F7AF2E3673F1AFA41415758DFECF4A7A77F567684F6CE4CCFC26C
-:80A28000B2C6FCEAEC4F4CFC4C5EAFA4FC4F4D75FFEE6E6FE4F4CCCECD8ECFF4FC1A5CEFC4FCA4AC8AF885815F78F8A3A7BF98788FFD494CDF79F853412B228B558F24D48A5217EFDA586CEFEDFD3E3ECFA9F92E2EEF8CFC6E6CCFA8D8ECF169D81006211006450300344002748464502800828504851412088161814181690829086D81CD
-:80A30000204298848449084008404548464824514840043F670782004400A140410411002440011004824C085083446100100200003081214011010000005022841884218440B8460F3CF4112487321F417248F11124A3D441F24A121D24AB9419B24A19B54A3924AF1439242F547B24D81AF924481CF9244A1CFA244A1E214FA264194FB1
-:80A38000A2E459C24A9E24ACF491242CF4912485F3912487241F49724AF28124AF24F18124AF24B981F24A9255B84A3924AB9443B242F9244829F924484AFB244A1F3B052E421E6C8F22E44132681F41346A1D64AB121D648F42D941B44A9B65A99944ADB12AD452FB24482F143B264EB16FA2E114F3248A5E214FA2EC1D7224EA1DC24B68
-:80A40000C6C51A17C92CE4C9D63874913448174983F4816483F6816485B481E6443B858B3443BA4AB1A4B442FB84482B94678A4AFBA658CFF80484000000200240040000000010021880080000004008000000000080020000005012142F694921382214441410424801004224801203402208002144104A14485428444A030000405424D7
-:80A48000446013480014844002000022447FB6016048004005A2258402002054424841216302430245082440020058841004401802001481434408C608485082C48884884814811E2E403244114140042C120541A04220342611445022244170181432842552284181411781815A524860848502401414031F46110C62304800E1826028A3
-:80A50000C02127E11FC80280024011116288800200100223042143822802000000002C44040000000044812004891801100A400848009B42000000100200000000000000000000000000000000000000000000000000F0B4DC000000000090482242484A080088004141000000002002212001000040118408828008202208822008EF4802
-:80A5800001000040020010282204480080081044040000000028100200000010118408888008202208888008AEB9000000000080042024080000000000000000000018000000000000000000000076010000000010020000001860C144400800000081000000000040040000000080180840081F57050021001410010000000000000044F2
-:80A600002C0400C02400214200002141140010020088422904000048006F6F012100000012000010022301004200400100214904801108006041000010080000002008004440F4AEC410022100001C410200100229011220014048642400214844811880040012214414008421000042488008004C44087F8C090000100100000000000025
-:80A680004D484400110000442240120800100400400400008224008048080041AF39040000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F8004000000400428000000002180018800004001400848000000004480020000D5
-:80A70000001002183F5F0B0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000000000000000009A
-:80A78000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000FB
-:80A800000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000040088008000000000000000000008004000000000000000000DF36030011400400000000000000000000240044008E
-:80A88000100240420400201404000000000000003E2600440000004100420000001002140000008041480440020000200260840014120088210000C4F0C23D0044004100000000000000214001000021201108104202100600284841420080018018020040081FF30C001400001004800400000000000000004110040000000000400840B8
-:80A90000010000000044F01CF400100400464154282024210400420000228004118140058100224400006542440100260281008488431828180800EFDE0246051B122144433214008414230423141402814811811048542C401615724421F25824D048011440418141D8248154244288121448D42B48C4814358482B8410048FDB03116057
-:80A980001321005C11444A4822410200408804804208811110165614284430381001143445426841214148881284482482C4888286120800DF470A46044440C42442003041484248442142001181004914145284111148841E684044040020411481440228211450498384185C48C1C840041FA304D021048100415082191489014100C092
-:80AA0000210083C214144132100118901400169C14224881322504F0423400A0124614D648E2449282124948048504215F56082AD1820400280028A0125052C0210084000022203128400200140028E0410414481140089012244442288054848002424123F4546C004C21611100001004140084121245121108844D181441441222001119
-:80AA800040140200001004004440A181000020010084649F7C052A8181D118012241608259E482C1131441841260321160824371314481722844410250144056482092148419225414D0C20320C1134A9144459824235C84496142904845C8448F2F0C2415140200002140010014805184400884814144202122011200181E240020110647
-:80AB000080044421282C0880041288004140F22B76003784441C42CC261241448124241810121554144190111C2241125882A01270225882185022100218254218082605261401C414A20000442100E03E07842400182142316011001044041221101C428C02404248C821400112108102260100100830241912421808812604000043F104
-:80AB800014DF4084024141400100122140011244400144481044428461644448164C3A24896141244911C86824112518081914022221100810C4280089E284F2BF8B80114C8201334104214421284180013122210040410880044001004410952121160430447041081342042C02100200302C0017563082165618422281182816C12420BF
-:80AC00000200401115012180322861564662412C424452411800223021302400201388180200800A8C02608440F1E523601240C41200212141601210C226484110D2481238188441C01881448C029024841C022400C425439828812400818486011143120821B022082F2428F22ED2002210E2148102001223458435125512110210011C24
-:80AC8000420840311840280212451802100249024140441406148181100228822614982230446FC90346541240136891400400112225210152A041224141441A4411114532184508004428112C4314482401D02186828412112444220222848100247F41098C01484113425414113D421113C2148003290128A14C418171120918C0C248CC
-:80AD0000441562112D449489514345488504502210413C49212514922261214141418012742218D84B0741CF59544D47144E1E121D4344140035921469F11116D024E11242485686D5F8112D87E385D2A2D4DAF11448E5D848D26FD1C1F41A28C450547912722158882D228954D42A41DD68F229221554148C7224D2883224A885B82A82DC
-:80AD800046BB64B46442D241D621021F423119FD2C25D433D242D171A12322272411D0477152516667164792164105484559411E4225C226172426197224B61C5155A013173289028791253C21AD42DD222511D21A4A5A2221214C42DC644248A4C2ECF171A3E0217122582227216F12E232B114117445F214283F34A1213216374616539E
-:80AE000041119D1483D141A127CB1210721C31448F463331679212CB111825D222F3232274CD3C6F64D1664204815FD4B262B46148411A7AC114E842086322C282C7828992284F150970220114C011400141202241210180023011281200800180921180011430242002415014603260220040022840064C024E249B26343F74E4C753A8A7
-:80AE80002CF44F4EEF43F313122F32B25AF52A262F35D433F252466D144A56544F75F526267FE5F5222AA781C78243F1746E75F54D5FBD4A2F26F61A1ABFB2D2FDF16A72AFA1F11A1A2F6252651F37D3DDD1D9F62C2E8F6151CCC5BE5325F6CBE88D2BAE8755F5496DEFC2F2A8AC87A2AF88F82C2E6F4AAA664F4AFA4446AFB743F2535726
-:80AF00004F6155D945F44F6FFD2F37217F72B258F52A336F7757332F67F616147F1454776F5554666F65F52727E7A1EFC23214AFA657B9DFFCFC595B6FC6FD3E1AA5DFEEF17B7BA7A1A5FA2B2F7D263F91D58CD391F62A288FA3534CD5FF737A4FE6F6E3E58D2BAF385A759FD4F42E2E8FC87A28FEAA8C4F62F286842B464FC8F83C1CA7F0
-:80AF8000AF343F75F53375857E15F77B6EFFF3F313122F32F25F57FF62F343573D332B755D155A54767F35F527223FA5F5263CDF91F12E18CF93F36C7CD5F54DCFFFA5F566764F23F3272FFD1FEFF6F7343ECFE1F1232B75F63372FFE3F12B2FEFE2F21A1EE554FDBB753F16F6CBEEAFB2E2385A573F74F426248FCAFA2426EFA87A2AFA6D
-:80B00000A6846FC6F6A4ACCFE6F5EBB2247F77F73737B5FF1517BFB7F63F3F37617F72F25F57FF72F363753F32B356F715157F55F417173F35F423223F27F7273D5F11F12E3CDFF1F16C6ED5FF4DCFFFF5F5EE7EEFA3F32A2FFFF3F37E7BEFE3721EFE272F7D26BF73F31E3E3F74F22E2C8FE353CE95FB7B7A6FA6F6E3E3BFB2F28A83E5B1
-:80B08000F64A4EEFE2F288AC4762EFAA782AFAA684CFC6F6C4CC8F86F5E875B024010014D03401141226220112541264116C32118113110885141318524831282A0141702401234238228440782403264208008428848D2200B048021F850B8603452111C22C21502411002400501200844426481404611280024465B818120221D01401D9
-:80B10000221006814051815081A57724D8480264848D2440541497AFF022521F41722AF3112C87141F41F24A111D64EF14D1C1B26AB911B24A3915AF143924AF1439242F147B35F842914F83C4B14FA2C4814FA264115FA2651D1FA2E459C25A9E24ACF591244F32F5912487221F49B248F19124E7161F49F66A131D24AF369921AB945370
-:80B18000F84A9243B24A39242F247B24D842F924484EB44FA2F4D6BAB022C14C2F32654185C164AF16E14174229141AF42A941ADB54B61AD814B42AF14B914F442A15F81B442FA16482F14DAA5A5B44FA2EC14F8251AC21D5ADE24BCE558E2A265C84FB2B591F4284286F44C118E24EF36A16887328E448F76F181648BB45B28AF24B9A403
-:80B20000F4489243E824638A2F447982F842B48E1A6FB60B8400000000000000000000100200880000000026080000000000000000000000A7C70031601190211164502100811584140424114184418422802214140110883444224D1250492551425D124528440820884828C4242544024112224426D49E03B0A4C111254432142002837C
-:80B28000827141022110321149227121C8112011084113012C41B82D014342321422188001001361241534DA19B411545281189084888122C3449148AF710DF042181216042D25602270211A442152434225941128199128344183210343B81144D421011B1291669444AB21382B14456B116115429C418C44959E13B86151854243134674
-:80B300002648EC216286414783BF840BD041421301121444001848A100004121518901400822004058480040140400604120410242482C0881008200100448CFB80320412111024682622240024A2101844614D118311114108844542140084850240044221002004501006081A041208162888182881289A2422F7C4432451016548160DE
-:80B3800041501416180814463A4571404C7448046044842444CC016D224141233224164642941422813D248501E021E219E48824240C47284C78C8048821624441445FF144C2451221165418C01422641018028427146509819045111044084410D862420426022C01230240C2251518012C9381890888801876288428084A024CA224AEE0
-:80B400001800100521602490218C01E014A14141604451974189013048486414A741004845426442444444499122840041004A21C4584252418A814C58288888494118F496FBC0248C146D1111262511D41894411C12614181A98211129C118126384822211249F24314212C0414B02441A4414A1252824022220116115A42190180071AA6
-:80B48000C828D042211222052BEF24C04F000081238242341242444C9124000028404451321A1208001052182184248148137214A141418002221F21C4284414C9E24A4458629810A6845022BFAE0811002125084124800112210084122244241280048100893226104414185212100428804158A43054281052229018484245280260824F
-:80B5000081DF1442124155483D1284471243D12462826C8463152361A18410C22419C1282363C42A449228891266826F22046511B82641C8435042114712484342D8A432115E2C2E51873240915E874152E443783234228A4448FA1228302450124001850246311114004144168841480481401101415611020041816522A142302A122C9B
-:80B58000218101245022122400AAD428A842890144A034F05D8C001002250845489414B041B149011814406811448C512848815022411812A9642100100420124431484C224544C3888824E021A881101448241112544847217F270B2140C14830141C02A49028004002412225082521022240BA24649490412240041A0211214022011179
-:80B600008CC144E119441893282A840100AC0848F07A3F00214163011004006184411422641951414C419418448D1100400541811416A84181E112219321210151422116084211414410423C1A40A4121289F2283B004591428511621228812111282F24120189410130211C02846342E892012E4A50812232802234410024445021814000
-:80B6800091824A118891A2904A8C8401438341880477FA1413881548211404118081048C821151824222250929040070280489944111502222001502001420844204C6181242648800004018486411DF3F05108A14420112324B1441298121C12A58122911A2146118538141824122C12260E112536211493411441646242142248101224B
-:80B7000000C0221074A20444410081F0989930465411C014165121409221115421108842080045010010020021814008458202503448B5522824830118E08401A0124824001A22840BFFC30645010047813052812110081009810010014A02234321016118424421842848C0411991221189544149051C41C231191A682130183888302499
-:80B780001880D48B0C20C244361401846184185042198402004124814415784261848C21C4884014724168C44D418721267224891248C2282810835424504880924489210212261862422942D4B4076D472B2955D29A452D9227ACC316182F44B12211CE181F13D1B2D14851222F4251422D1497C25B12A78126D22CA4439724257D12F7EC
-:80B80000721C15E883F448441E252C626345A121817147412F715311AFA1C2CE1A443B16CC8AF2141487A165C812B6E481D558CC247F264711514D85149118513E1C701ED83232391A9411971123147841F8212546FA1D2B1E494B74842A4691121D24181F25D488D729D264564426E2A2511525D12AD143A14658BF948564C11F48154277
-:80B88000B36A68981AE122E182021A48D88252447E288F21F1B55324603425F1142673E5517148534F421741BC76496B1650A826341243711D01D125715841528B26FC4E1A6F82143C4114A3B148D384B1477432B44172115C343FB1F2282F2453F44A1249B8D8F14B281B116C78CEF25E48ABC42E144CF13424C9B12A921449A429004001
-:80B900008801180050240000400200240011100221442110024120223422008422408104004084840200890228009F6B41F343433FA7533BBF32F65A49DD1B7F447425B542F42F3CCF84F449519FC75539BF94F62D29FF94F42C3B2F14D41BF1414B6E688F94F4396995FB4C78ED488F17F6585ADFD57447F56C666744CFC57466F44424C2
-:80B98000457F11F1296DDF76F65E442761CFC6D7EDF4AFF7AF8DFD6939FED76FE9F9D6BEEFE7B192F96C6EEFE9D8EEF1261A8F86B598795CE23141F342433F335733AFA2F35A48DFF1F157515F51F14242BFB2736AFA694BBFD4D6B9F14B4BFF93F34D498D184E417D1575FD12198F94D4B9559BCFACFC4A487EEBE5DABB7447F565676F26
-:80BA000042F61C4EC7E646F6642755F76E6E4F46F646652F34F47C7D9D4ADFF2FEDEDC8F96E73DFF961EEF69796EBEB6F96C6E6F68F81636EFE2F16E5CCFCB59EC5B4C341F34F4337695F23923BF95F415177FF5F43D1FCFC4F42F2BAFC4F44B59BF957719F34B499F12F24B49342F14F41A116F94F4474C8F94D49955A8CBE4EF24F47A39
-:80BA80007BAFB5F55D6D7F74F27E7B6F46F24C6C6FC2F215374D47D7D1FFD2F27F77AFA1F55A1CDFC7F74D4EFFFBFFDADC1F97E73DFF8E9EEFACF8763EAFADFD6E6EEFE9F93E1CCFC3F16A588F89FB4C1E2F2147F341437F6353AFAFA3F35A485F71F15757FFF1F14E4EFFB3F34A4A9FB4F44F498FB1F14B4BAFA2F24A4A65F34A49EFC1E1
-:80BB000051D6DFD4F44C4D1D4BA5FA4ECAEFA4F4FE7FEF74F44A4A77646F76F66664CF24F6676E3F76F62567D5FF6F2FCF76F62B6BAFF4F47D7DDFE4F4BFEFAFCDFD79792F1DFD8E9EAFACF8662ECF2EFF6A6E2F68F93E3CCFC3F16E4CCF8B5BECEF8B041400D01441E822012460324041480364118D2270480489129128214C1211189669
-:80BB8000282242224001250145415834165814864842482341464826410689223148D0850682114100114004844200004011044091414008A48148812485D58494284014C224418425C2240018304284608844228B1400431132245014A7DFC0521F4152281F41B268F11124AB141D24EF24D141B24AD981B24A19F54A9243F24A9143F251
-:80BC0000429347822DB15F82C4914FA2C4817FA264116FA2641D2FA264596D4A9E242E4A1F49E222F49124A5F2912483F6916CA3F48164AF14D141B24A9921AB9451AF543924ABB443B24279A498B24F8284FB244A3EC3F0241A1D64AF22F5112CAF26F111642F16E1C1766EB311F46A841781ADA65B614E824F83E414FB14482F34FB1443
-:80BC8000482DA13F83B442DB84E114DB8788FA265ACE252D18DE256D1B9E212FA2F5D12C2E1A1F49F42A5217492AF1814CAB128E44AF12E141F46A851749A99264AD954B48AB3443B8423BA42BB467882B344FA8F53BF4400800000000400400000000008001880000000000480000000000000000001002EB9E0050838312B118020019E1
-:80BD00008102408414140281B400302820024480721204004002151841421F08401108189400F044281A6C220088289F314E012B3820415221414C1102290183D4181498428185A421401104704368249110618442C85216E2540218C03815082611354AAC02139848168218140280E8412C611181BF980C245E22943214A3031821133163
-:80BD8000363028548CD4624458488B1285522100361A295A83108162411B48809129B04251181C5118E5D28142031512143128244004C9A448A86DD218981AF29E91000084101146040020C44800001001410042481004AC240452244604008C02114034488C1228A814178188102282010040FAF29C0000112444211301684602241281F1
-:80BE00000000002242418141444782898201248120410200494108484732304A117011582200822122838404F04BEB24468642042230212F2264426D192218394831849445185A848D412213140C406186D0213429261428B244011B1240115481711D3844608880F18112B081F48816161228388241124C6684DF28042D444014814202E1
-:80BE800042C04442213414861451848481890413664440088441A42E18445082002E114041941CE561114445612881C083198148048C8808446044487F8D08242200244413F2132243B21B226221881881841042142102844150144B4283E21214214228E2412401210011C028482C1228941118842D438CD9224142223A481A241278D104
-:80BF0000064028912411224CA4122982912419124182028494B04821022A541212428C44042784121263F21824255448004B1220C22485C4242120D44268248C9228224A0212820064FB2B40C448444048014110D8818181014E2820A121542211301421431301622150A1856124E0241288153A82104208102814E9C411BA1402430512AC
-:80BF8000240010FAFCCA7021425381142344046014410040088502250400407848141248042E4412224604004A424441311244001661420000C01288A5B48414084444F0CFD61413521284D083645249B4148214C4181218A4428181CC12B428240226183C2284CC64264446C81A85E62234182D664604A57116235142106C518382243426
-:80C000005AA5C21438A2258C69211004F076C710046D111D240000271216685219420181D0223111141214E0449141441904414A92121C82453424206241A02880322C6022445081884881842F44A142464488084445F84335C02216082121840012248D41165848184280428841023111002001261111618122261804844D18181C0158A1
-:80C08000602281203244902129021A8822022248223FF808141C12A42448122C818202C027401AA112312602004A9142844C061141852222844681242241048525922443822144628410E124A28189B582712882D4E28494842424AF580C464412010010210212008112441E480028002A81D41482244282314800181420040015082121D8
-:80C10000101414514240280861200100127F5C0D1144381D12141C924325021C9121211CC7111121D0487464114171249942414826092E48481226444234143341CC112624C244167128F44814A125014624D81622140660484849098E2443F82283A04A1124800448241400C01248C0115A7222011008200112C0521302802401281311AE
-:80C180004441186821502420041282104288480A10822404CF4507248386C4218082022C8112B261410C2006408214E281123426848D644D18288122242A8122420C13C54812608452604285611284802204284998682388141428D43309000043B14181314410018148244210041884190400004814164279440849D482C4422A24024971
-:80C200002226022213646283E44862915299FA14420040488808248F74040039021902338201218B24002581714204562592723830312511118172180424161218D824C1121140110185414A3114121082C2110012224C28084084E853078C014800000080C144144A021552B4D01604463844214884D0854C01129C021C041149022A0430
-:80C280002004891428B42161D146C2241288842116A82183181842FC3F8FC0118E3A121D2216A4312661241815F178311C7351D19B85C4449FA1711A4C6193426F12F2251249041B2287444F36A2324E1285B22836481F21B21743F454282E241E3D812A7714F4185A784F148612E14CE111B18222A1122AB22AE8217358A828416DE88FD5
-:80C300002A0D6A125B132A1452911F217512D521125283B7A68D1452271546F222654E615F62B142D2827141E41434211F44F644484F9155C99D412155ED8191164F4455381B6544C5392D1FD276597A68FA4324757213F66A478F24B121F447441F25DCE23D182FA168E42EC441C826CC142F6D44D1617464F124222D111F1664262B24F2
-:80C380002223C332481AD4A446D221F13731437425B252C6429D618F81A521A745C79287111B221A7512FA39297A36423E6687822E446F12D1119111A0144591724187C685D881E193DA3C48F22819CB2C2F28788CB48477CAB8825CC4CA64282FD10C12211221CC044C04000000000010080042200442209412420041424302410030240F
-:80C400003024009A0400402401224422425EDAF034265FF1B134E152F43E3CDFE3B313D375F313133F21714BFA5A5AAF43F119113F15F71474EF91F32D255F36F563733F13F314141F15F175255F56F44C5C1E184FC1F1555C4E5BCFE4F55A526FE5F37A7CBF57F771651F937119F815511F33F673733F53F671399FD7F75A5D2F27F6524D
-:80C4800062AFC2F4C5D7BF8DFF6664AF82B296D18EF5B8788F89FDACE8CF8AFA3C2CEF8D054F67F6464F4F12F231759F82F2797B2F21F345771F33F33313EFE5F15B3BAF67F311133F35F51527EFD5F76D6D7F76F76173BF93F31E1C4F51F537255F56F6D8DC944D855FD5E597F56D5D9FB5F5567EAFF7F577771B571F977719E881F175C4
-:80C50000667F77F33B7B2F87F23B7DDFF5F77B66BF2DFF5B786F49FDDBD84F66FF2A22EF41F14458EFCAF7C6DEEFCCB884F8EEBC3FBB4AF226165D476F22E272F27A72BF21F347641F31F313133F21F1531E3F24B15AF311113F15F41434EFD1F37D3F7F77F74B7B3F93D757F17D5DDFD6F7654CCFC4AC17ACF175564FF5F54C5EEFF1F585
-:80C580005E2EEFC5F5131D1F57F534758FC1F1151DDFF7F57E541F77F77F7FFFD5F57E752F67D629F3D8F85F7DF91F5CEFCEFEAEAC6BBAEFC9FD9C5CCFCBF78EC8CFCCFC6CDE172E343F36D733F637333F71F36F66BF35F646462F25F532323F33F1783C9F95F35C321E133F35F53537EFD5F77D3E7F73F74B7BAF87F33D3DCFF7F56D6DF2
-:80C600005B628FC77E31E13AF2371F4FF1F17F5FEFD5F55C5CDFE1F557775F57F73D75DFC1F1351C5F67F57E74DFF5F17E4CBFD5F77D7FBF25F4D9D29F8DFD97D5FFC5F554DEEF68F88EB6EFCDFDDE5E6FCF7FCEFCA466CFE6BC7203471240010024402341C248141280C42619C42210184114514850481842210081214214601260328CE0
-:80C68000C4121E481412268244814421C82286482209102878560682442722001A02120040A81413011270144882C4214F81044B42148C448104200412484E244112811644021C412444048C04824A218211244438488285047ECCC0521F41D22AF11124AF14F11164A7141D64AB141D24AF149921AF2419F54A9253F24A9143F2429147E3
-:80C70000832D914F82E414F9244A4E814FA264155FA2641D1FA275D8C54A9E244D4A1F4DD226F59124C5F2912483F49124E3F48124EF24D1C1F24A911B28AF249945AF243924AB9443F24294478229FB24484CFB244ADF1C05581D6CA985D232E181762A9141AB1644AF5619B14A9B258B9453B24839242F1439342D834D482F14FB241210
-:80C780004E914D8A5EA155EA4C92118F4DF2221B9E2549F4C1284F22F19148CD421B2983F49124E33681EF2641F848951B29AD265D684E9243B24829F342A44598B22D482F44DBA4F5B75B4008480000000044800200000010021880080000140084000000000000280000000025413185902410041B414A12114108902100812E148C51DC
-:80C80000481008812006100129041D164622123812241485C1243942844482544123A41480184204868C8864464822F0785520244A827128420968311C04481B418004423012221B250040011838124A42880849C8224983318419211C0114008221150864B0220869616884121CA148EEDE2086021A643448111312491124A252C04838A2
-:80C88000816460821B4281301220882192522AC41DC6827288311825B443619816220C40914264498C44298812328286941446C24C403112BF3407415024B028D1810248214890411400414A41880118002A440114180010024582A21210D4416212152404104122015042412884293884281A84A348DF6706204183522828624890418077
-:80C90000048480041189024241463124004219440160220080081412260114121C2118220819048C4462884614840100FF9706350222811419C4111CA261863238A18C4111B821E181C45C90688B211122111014189228AB842A348232490811240042612336492CF4481168480082888848A018869498488A76D34C02C0218C021426A134
-:80C9800024284822481214A016841684824618849224008044D9828C542200C0810000212964151C548242000084888688A418418C082AF457874031122440AB424A112195812D182518181818A114991418A81611464101418C5412222022AA1286040031181B244126118871D122220C1384A84890424144921848828E6524C048E011CB
-:80CA00000800259841808124418282818221081D882848A322011812880010688118824D1881142534844001884A2242048A6248304280A82898122B849FB34D41C44844232214D284851102503888CAA1218184002861181129A441880025022114494414149C42214189D432E1C4025C142C1848044A02402C88D28204D042F2F671006F
-:80CA80002C119884181800814281290100B0122466411A2422240200350411424818308219040018282048080018800C2456289854108402F0BBB114404238264A91121E4429C148002C81C8D212A4168822897783AC14198486042961211D8242290445426C14412D12701443D836C1CC841D444468002044D4A2948C182AA84838A08446
-:80CB0000BFE503611241130110485812488D121D481800124AA24144802282420840050080314898168448140843262812018688E881028A84288881E44408AD24821843F21FC38013C12224282021C24866E124223228A1008C912288002280222202C02823A248188244200144C19082802446A22440840424490828242A2404F044F946
-:80CB8000502222C03158C04212602110B11274114211328189012A18817982011190832420341940B148C184284B818AC5131A44A248134301502819553481840088442011022F830A488002A98202182182280018C8224818118818C8622002202209425260114810A928881211824112200810A2844150244848C840022F430280010046
-:80CC00008714841324217491384286213418464272C8D18224652A10A241211C4432C11D4210C488188821485024100322881CD2128AF1288489888C9182422908294982989243F2D1B22482A4004002222522824831C21C0821822812A0841218888A1428C1128248248D6248806921400882194485883141421149025D2848A23086804D
-:80CC800008A024B78F208184A4248022032A01008480332122241B68281422204118A2842213C1888D81A081848004484200811F828184026C4448824808890400A086F0416F4028013018508125581840280A2119389812001481460839042800221E21321044042548D221318810C2424482183C624390181A84C1444400184981014F3D
-:80CD00003B05190431211033214213022D51800121341CC28189121A0213FA228324882334115061288684E428521460451004461406648A54C18A04654146448844064170447182F523C4409822899411A01410499281404481123858830410210423041413E4129842428200142964249C388148137144213821101294122584C11814C5
-:80CD80005829118A2111221442F2BB775022EAA2223B328F82B611B22193388B228E211BA2A8872898481F23961332AE231CBA91E483AA461F2AE98236414E232B6A1B5C4F84FE6C8143817839F8428229CD848E22F1271964826D116F18F5A2133CF6223265D1D2919127A4CF2E48145222CE6443E15C85F644CDA0522711815691128712
-:80CE00001687815E411D581F243C8827263F147452D189B148F8D86B2B8C3F84658E46A9181F3839421CC82139E425F13223321AA5E856B4C6B91144B184F115848E911D12484A7E1134211F44BE5FA1883AB11D6819C82D14AF24AC385A99124A693123FA76782456D1285132241682D43274237A1233322FB555111EB815FAB2832D19A8
-:80CE80002AD8B9938819B122B84284E21156232FAA245111897883F3812A8FA4A1586C7484642797358961E54B443F1C782FB5A8EE2502A29F84F4884E4E42EFE6F41C144845D8644C8498422A58643F5F041002218C84810448C048E0880448A048A0418902811200811800818002284989028C1284024849086088A048448244B6482435
-:80CF00000BB22048F4D3F3141F25F7713A9FA1F113511F1159322B238F33F33A389F9BF33323AFA1F13818AF89A9B9265223AF2AFAA2B13573437121F14151DAB4C3FC68791F17E426FE787A2DE48F47E74FFE9E9EAF89FB64671F3EF4172F35F1B5E51F5BFBA7A56CF623263F74F546472F85F7626B3752CD19ED3A6FE2568263F24462C7
-:80CF80006F24B656D644B164F7F4E6AF7D41F351723FA3F7191A3F31F1511137343B271F17F37B3ABF97F37747AFA9F95A7CAD1AAFADF9E8839F14F5A8B26E79BFB3F3D351BF96F5811127313F38F8F1E31F17E124F8BAFB2F69FFF2F51F5DFDBEBEAFFDFB7E3F1F1FF455EF3FF3F2BDFF1F53F7A7272F62762FFCC1C77F57FF73FC6EEBB4
-:80D000001DC3CD47FFBBFB2E3E6BFE6F42F4C6E26F24B6D6FA26344BDC6F6EFBBDD7343F27F32363BFB1B132F3DB592F37F772522F37B552F5D9D93F6FFF43422F8DFF5B589F8DFD68423BCC8F8EEC8FFDFBFB2F1FFFEBC9DAAD7E3B889FB6FE73615E62BFB1F7367C5F57E75DFDD6D6EF8BFCF4DF5F7DF696D67F3BFBB5B51F55F1C6C417
-:80D080004F66F6E6A63F74F5D6D7AFCFFBF2FB3F1DFBC585EFE8F8AEBEAFEBFB9E964F6EFCC6C66F4FFC86844BEE4F6CFF241A341F27F32B239FB1F12212BF95F17B1B37253F14F35312BF9DFBF3F73F38FAD7D9BFB1F1DB9AAF3CF8CBC98F8BE995FD3BBB2BDD9F95ED29C9733F38F869EB3F17E725F39BFB6FE9FFD775FEB56F65FDFFB1
-:80D10000DE6FFFFDD565DF79FD9F1FDFE9F951557F6CFC62E6FFCEFAC1D77F77F93BB8AFB7FF43C35F74F4BF9BED1CEFE9F91E1E6B8A6F61F1F6D44F42F6C4D24F6EFA27D8800118C0116022842296682212148234122411281329348100422014A32439B84832224223226412F02281F02281482E83123448241A44214143C8228082A434
-:80D1800024A024F063CEB0220421304A001A041D484A412844A814C012484A18E11483242408C02124822A01292809460412410000154483843881814328044C9844889082824222BFE8082D421F41522A1F41324A1FC1764AD141F64A131D64AB941F88F64A925D48AB945B4AAF14B924F442914F82D412FB24481CF9254A1CF8264A16A1
-:80D20000F1244A96E1A26459ACE549D2A4F491242DC21F49522C1F49F248121F49324E1F48B64AF98124AF16B981F24A925B48AF4439A4AF4439A42F4479A498924F8A84F9244AFDEBD012F4116CAF12F4112C27264CB64AC164A9D141D648F9816C2B3459A6945B4A29B334F4428349D432BB34D412FA2558B84F22CC814FA265192E4282
-:80D2800096C55B9E2549D481C2D21FC9D624B491B248F19124C11D68AB968E2427561788ADB41B688F44217A42648A2744478A25F2A44829E8A2F531AA0082000000004004000000001002188008000014008480040000000080020000005012145FD60210022044A334008A0733214811022901904211800240180880422412A414142CF4
-:80D3000002100141E0310419216C1820C1C24C8108448284004124144321482691168C1194211A042B4880014240088F1904842A24213E814870229288428B12242A38241A021D32908458982E48882A1C822192410024402C0882482E85F0B9A214204C542242872112281228433C113A084810085623142124B112348140E22288A842FA
-:80D380002A21C2844E2585012D1121492CC4944A32D16839B144893A21E0286421824149088388641223F1BFA9D0240120911411431621A449250210110229018908812228A2C04881100885448282A1212228108101819082001142121004842008C084414F9E01250225810220922180441141010024365812821482460114004001A066
-:80D40000824460454064120020D2C12484948A70422118388488482B24224220043F144141312118548CC5614E13F0124445E229944884D085B4888423044D114B4228282227221C426222243022440023821AD142C13213C2131C41E212298A6211602442202229286C49882A28D61D0F111C12D114B2189441662142344423CC498501DA
-:80D48000874442322F26015C8122AA422C8232224002808208248048511210425112C71413EC241A6811424827844CA8825682AC484C292884F465C71421212901208211335260310040318810488198454001141124221425024342044E3428442E14321C8221032B21A082501288002028222204A8282FCA07D0A401A025258102D01209
-:80D50000410400A0122308400488844A0800502484510010A22184288C88A2142C868274320440C6482820120220082223B4A80D648C043342018C44C84941C4424082860834114A220918211A88381210027048911286C428480045415824445419192888DA4288A8244423D8480144004C58228F7C04180016064141000000841068844C
-:80D580004A61410020048054418112628800184220210112821881290212400820047084283128898884F84CE9901445025C9221318D44608445410810082C698C4E1260461A0889818C287412447812B628348589044423822481D21C68814F246941E7122BC1CC216922899842C04423123C8820088286F2B3A540224122B142412442C3
-:80D60000482301480023648210C1150082420040010040228129A412800122200626830282608842C082124443912886E84482F4B3971041280210118122121281080045C8848384821934452A142102904182482C22280A4CA421228200272A30A2482B82801814221A022B281A08830280F1F3164004456834460C2608942CA148232248
-:80D68000C822828822193218481B181269011989C481008E341C444261488224174825D248984430842018884421120881233848C9642220124CF2784680218161211880210114C04258A042A82B414446110450414C0428482411860122604A60466042192202E213240A238A227CC10280026902284C8482F47958704428522426182442
-:80D700008544826482004414160428252288022621382844008E2142812D84890411294208C018200110420824C02842224241813088888F28A1829F6D0AC6810412003400401182288418E448044AF84488414CA42480C24100884242822A28244C02822824894A9288402238288602248824004200C2F05BE180A21248804281822404F9
-:80D7800028828012782282C14200A212108281A182702242242801800210010000200A8654142028C6848400889016421F810700140090441094E310219482428C44D8810B1C214428412124021280522400124129082190C34240D1238484240460148190844282184100AF7B074011420110C4234124A8681C4183814402141C32612205
-:80D800001CA8431B848811E0120431498404251A74880492301442434201646014204104288824308242A2AF95068421482322E6834462840049442292A21002490880211862484911893A2824110045110A48111E4100AC04460848D0C104CE22801842024842222542F294D7B04536812137222A2671411253122D2119CC4245B181E819
-:80D880002CF86E6C4F2862288F18DC94E354FC211C5D8243CBC11AE21236811F247C2341914E4C68C12F48F8264617224486A248ADE461ADE4216A56229D4A4594CACAF94EA22165329CB082A184882AFA66F2146432158457441C7524E4A4B244F44882472E19F8E212142A6128AF46DC54345122595214DE7146D54462881146F382215E
-:80D90000CDB46F642834E229FC6442C22555122F9133449A816CB84A7C88BAC4EC1AE2184E19638A8AE482E6846824AC3AA4CFC814F2A79260114E3847A3871127851F84E291A652263E312D212B2E1A7C42B21E84A811BF869B221F4DAC1BDA66429936E11F16043E2822CE421B689A8AF285228982F384881BB8CB821D2266EA2C3261DC
-:80D980001F389282284A7841622C2C064F22F888842F42843E684CE227E12CF58C2614441844AB12448D114489C1442E118220011608842884002008820012A02141122212432221028B92F02812702802872230285028D028028D26842886C82484286F244EE162F62727C5F82F498FC6F46C654D2855FD1114E7935AF4137115F4D351EA
-:80DA00004D262FA2BCBEFFD878DF51F1745D4F41FD79E91F16E616AE268F82E315F779DB3F3DFDD2A4DE575E566F6DFDCA884D124F2C7996D4E4517F3FD5F1C48E8FCDFDCDC69F8CEC8CF848C8AB8CAFCEFC414B1F99FBDCD68F85E5E4B44858282F85F55C58CBD5AB44CF9B0345F2737F15F53555CF84F47874CCF2113DFF81F1F6C62B56
-:80DA8000453F11F967647F75F54262EF6EFCF6D45AF75F554FD57515F77BF91F17F772F15F12F2A9A94E419FB4FCD3D33F7DFE46471F74F4F6F6AFBDF9A2B24F6CFB5F6C8D1A3FB2F6DB9DCF4EFAD8545FCEF6C9C28BEE8F4CFCE3E8ABEC9F14F499994FCFFFDC548B664E888FAAB87AF5767C4F85F56878FF9C4CF115523F73E761F33352
-:80DB000033DF13F1717D1F41F339355B64BF92F3E1D63F3BB391FB93915FD9F9B29AABDFDFDFFFB59DCF1FA7FDFF96FEC9E9CF96BFE4FE28A84E419FB6F6DAEBEFCEF7ECCF8FD6FEE6E4AFCFFB242E4F67F2B6E62F22FBB3BB3F57F3FEF6AF4BFBE7EFBF1EFEEAE2AF6EFEE3EABB6CBF34F413916FEBBB3AF73E766FA7FB2222ABBF6FCE03
-:80DB8000FA74FCEEF21F6E43F14147BF33D7BDF23F3BB7541F97F74563BD63BFC5F7E7F33F3EFFB3B37BFD7F7DFDDBD3EF6FFDFED6EFFEFEE68DCF1FFFB5B1FFD7FFF8FBCF96FB85A19F924AF1393BBFBFFEE9FFEFFEFCD89D6F4F7FCFFEA6A64F6DFE9DE71F98B9F8EBEDF9F6BE2F6DF9EFE72F2CFCE2EA2F2CFCEBE23F28FC424A2FA900
-:80DC0000F9FEF66F69FD367EEF6DF9EA822F8FF9E4A4CBDD8F2EFA83F7200200224826820460228A0482249AC4221B48A0494E24114E24E044024A92114A12228428941280082D815012808844210882148A44A149A048002008829FF5048A012C2101C0118021410180048088C41449440418400400824921018A226245221624426424FA
-:80DC80008A662282428A12828608252203F042244828484CC2433F3B014D531F41F22C121FC1B24EF1112CEF14D1C1F26E121FC8F64A911B21AF243915AF443924AF143924AF147B25D812F9A4481CF9A54A1CF8254A16F1244A96F1254A9E252FA2E449F2244A1F49F222421F497228F2912C8F26F9912CAF26F1812CAF26D1C1B26AD9C6
-:80DD000081F24A9255F84A924782AF247B24F84AB4478AA9FB24488DB44FA2F47B63D0B4F511644B5215B446E141F246111D246F22E148F448151F41F24AA25B214E84222F545984AF147B25989A6B4AAD115F2A95185F22BC18F82442871959B498F222438F59B2247491F8224A1F49F4284215FC68921FC8F2681217C88F26D1C1F2685E
-:80DD8000941D28AF64DB85F2489245F848B2848F447A84983A2F82D448FB3648FF470F84800400000040042800000000218001880000400140084800000000000000000000F08CEA8054413012188443141403822150182B418144899282288D248C1308812C14281254244C8132882880C21100228758902188118A34118883C1421002D4
-:80DE0000A12289283288816FF2420282002C44832102612022684141444084044200221C8802428047282402284682AA2112498502304410982A4211821842201C08811444AB1A205485245846022995241512143422881D124C420C4429048C244198228C8841880E6C46AC248C42112866148021561480220C455818AA041002F0824855
-:80DE800089C28A894238143F99092100805181411002880045A81440648288224C628200142E420044181220288242A2292A0149E188021141114E821A0217814A28314200008048F8EB64001118121884810010022C08004410088100844008400446648280044502000060818002000010088800A024486F8F0E246022001C21220432AB
-:80DF00008B21002481408184243424A024504824C922F14228897228624442001280912810415821262488064038828AA421E23048238808F0CDE400112218D0811108C0328C038602215014488924840242504824CC02AB248932246982040021200214C01121000081828AA4128A024221884A82F449F240022C01128082040000100816
-:80DF800000004508228440081841C0488C044830142041081018C8242AA824002400814288818800F0F796604490248012880220C224228441520042C1848C912241C6024422302242A608400848001800100418508422008948A84882898281311816F82FBE10C84216622880410118480011568202448100222D44424412844004100467
-:80E0000026B84402A04240344823122CA421E12863844D922480A8212A048604284CF23D3E002280082021024410088948A48240024E12000044006041C902280000100821800200422840081004498101284242CF890A4126124482820120314428848486822148744842C81A838182C444440010D68494882062840040C816422392285C
-:80E080008073128C16A88181448882CAB3A4146848385A42F8CF6B80042E1200842E112880428442F114484624024084849244448682518428411A22C224228143024828008110C444002468421042584880218301814B427FA80A440022A042A014302848200248000080240600508422002021420800000000484A088024240842806406
-:80E100004400005F2D03282420840483044D4860828C1208C148C024444568826084169828289048214D2820441844029048C18141811A0290C81200481282891408414488F043CC102402184400290240040080324680A2211245084B2418CC54484418182100000000422004004008008C120800000027BF2004418400418118008449EA
-:80E180000410482884044C024D286044122724801202004220040000800440048608850420820882834C6444AF250628420000848084040048848024022618080022001008000000102802000000828908008400002882F04683808492428022828624020000482002830448892294288489048B244C14280100240048466884818C140885
-:80E20000C28608414E28844288488842884881288F460C10622228800432812618885482842002840018008001001242484C410848400460414C04001841460418C8001E884443092081A8D520A818418004610042482220840320C4281844004844284840A22130422242202404209128200480C488100820040048881446F1615A400805
-:80E280004890848424812841C0444384421248480C48807422044A01290A47862428601484218480241184044528140420A6286088446044008574420CCFA30824824584B244064A62824331484628F44C4442C0688346C46C8D488341B828C41C4D241E6829D6C8F46258CD482381942889044A04D08C724C9848462801F04C888B844162
-:80E300008598484648F84898C141424E448E81227FD60D2E44964282242852A48B1548C483E282922281AC31288C3444421244508483B2487428160C85A212482F416182412420142885F1442C8914084CC944122A08B088B2888CE448C8948A886854C89E64B044A22629B22841E484D64A94628F86A2624C944884488F444612F42868CE
-:80E3800083E242F364788F46E644A264262864E46AF214242F2182222464A448214484E04104E0C6A444CA2468888F8CA45C4F8C286144284AA44444C78ACD184694BB604421448144404442042002301400904410044110841206C0241846044614624400000018808184011841184388618818821820F44888D044F21436E5DECEF42CF7
-:80E40000A44FE2F666644B778FC313D8A8924A441E148FE4F62A6AEFC25248F044144F45F56C644FC2F632444746CC7124C4266F66F24E5A67222AF224644552245044818B63CD1C4F4246D844A1554F4DAD99188FC5F5D4548BFD4ED45E1C4F45F154584E484B15CFC3D3C8F428283FB80A4D245E7C65D642F44C446E6EEFE4F46C7E8F14
-:80E48000C257888FE4F64A482E641E148FE4F62E6EA7848FC424F27C384F67F36E684FC2F23E54CF46F4C4DEEFE6D466FE3636EFA5F466525F52F3246CC5F94C48F0444C813AF74C4C4F467648F84C545AF5C484CF88A854FAF7C444CF4CCC9C8F45B18C68C4DED84F25F1BEBCCDCC2F8BEBBE44F246443E74455642C7482E2E6FE4F46A1D
-:80E500006AEFC6F6684C8D2EAF82A2644AB45CF52A28ED4CCFC2F2686CCF85F1745CEB664FC2E68257C42EA847C28FE4F264266E6E2F23F1666589F4484625F8444448C5F43C24CD144F429248C7414AF5C4C48F4CFC98888BFC8B44CF4CBC18F8C4984744CBCC8B55CFCCFC6E6CCFC9F56C7CFFCD49F246648B7145F62A28CF44E4A6D6AC
-:80E58000CEF46E68EFC6F6682C8FA4F66A68CF8426F45C58EFC2F24A48CFC6E6C6E487F3745CAF84F6646E8FC2F56C4C7EEE6FC6F4EC6EEFE3F3727E2F27F562714D4C9FE4F442484F449448C5FC343CCF44F4686C8B44CF45A4544F4DF5C8C48F85FCC8F8CFC1B5C8FC1888CF8CF9DCD88F4CBCC8FCDCDCEFCEFE9CDE4FCEFF4B47200223
-:80E6000000224880048C048C04488084829428B0480283044A0242218B24000000004018C44880048A0486088A0448800460448244F0B2FB000028008082C12C248481100821450812A04200400884120080420800200144810048008110088100484008F042CFC0421F4152281F41B248F11124A3D441B24AD141B26A9921AB9451AB94BC
-:80E6800043F24A9143F242954F82D452F924485CF9244A5CF8244A1E256FA264594FA2E45DD2A4E44DD2A4F4D1244D421F4952281F4932481F49326A1F48B24AD141B24A9961AB9451AF4439A4AF443BA42F447BA498924F82A4944FAAF4B131D0A2D141C6521D2C2F24F1112CA7241D2C8B141D24AB9615B44A9B21AF4429F24A9543D2E0
-:80E7000012F934482D816F82D412F9245A1CD8A4ED11FA264A96D1A6E41CD2B6E11D52841F8D52A61B69CF22749134681749E37691344E1F41D24AB811F64AA41B21AF4428F94A2492AF4432B4216F81B442FAA41A5F1D09862888040000000080020000000080018800004001400848000000004400000000002541F1E441103214218143
-:80E78000302880021846428894144461402411420800002141256483200200C014414008412180820410228802848741180041F048928021484442028A311234001602001824223018C018100821B028211112B848115282A012701208182116088F22C41884C048C048D028028280028601FFDA46024728442C048982012011148244D421
-:80E80000249214002481241830182008C3921438849B4240180849418C441872181422B418D284046602C62802818440024D81124F470A18124048022CA82134206481211200244382211148080025022C0125082C0121A01290128001008722001008008D22C09412280070530F00242842000000004830144400410081844008000020A4
-:80E88000010044882002220090180048884100284100004FAB0D420000000000004410480800000040040000004241008902008400008C0240048890C81004004F43054800224800000000490481C1000010180881000000124800902800800200812800820030E8400400BF4E0100240000004004003014001004218001410000000044C3
-:80E90000402C0822100800164428821414240810042120B1A307112844400460210090418400808184014004400828814004200218200120025086290880011218200100844410F8624760414110220100404218021044141418440400000000800541004C128402812008001A041810044128841823322822F0889C0018114008161442C3
-:80E9800008118180018100004140040044400440040000001222440042502800400800004088F2538610850121841054228440984A004144492124014400000010044064422011941400182243181622841588014184438142C8128483423828DFAF0E184C521490148021015012118112400884444110440481C02484102405002002228D
-:80EA000030280084880012211218000080128402EFA20C1444000040044002141012041002000040020000604100240010080000850200100400222800F0E4F3002051611641420120110830185181C41216180845184848488841161862212C014311160421124C022400000030182C3228490110142412F85E79002051142301314420F2
-:80EA800041068051144004290150C28118812001212140024D12002508182800210064200200221280C224212212B7325098C30440010000C5544453420AC184188181242552221E181A31982144842031134C01C5588C831402C10000504C45B424A2228B124352824100246552228B11ABB31012020044000000001400000000000010AD
-:80EB000012080024100212008001000000002548080000F0E68E10C8584A91420000404114C424228C424208180025022D1412988249080014111484812F812484040028004441CC228202001200250229D1D30B8480C411000000111504280010080010021841880000400140084812000000400428001004001012F42AE900000000004C
-:80EB80005044000000004012021A0100000000508800004004005044A022100800002421A0118F120800241042240100004009000000001004004400001002404202000000008100000000006FFB0721A14624040000144514182C22020018401242A21160418328088100111185088146A4140000004504CB2230280000401242A2111FCA
-:80EC00005103848D18481A0480010014155464281C2201000021651282A111888800001425414258881A849422180000444445942A2A02000010526261AF7B060000000011000084000000000000104404000040820100202102008100008184180000F07649200118102201000000000000000044410000000000120000000000000012A3
-:80EC8000000000009D5550221212250116040040010015C9120012000045044184008100005022124012021A2102008184818400440000008FAE48229112602121A0110010511181350840488801004100445044448400400212C0140012000000810024850818001044F4582B00C016181004105111100881000000000045040061004012
-:80ED00000225022961211A811204280000508281185088120000417F790F672227212AB112219112C0122592812F317111B189699985F888414E48D09114815489814F84744854444B242E24C02480524445E2427226F212222AB112A1812B98C0922582F8121317118B989659888B484E48C048805488814F84F4DC74F026224582213106
-:80ED8000122118182592823CF1111219E8897818D118246484941581445888488F44149C242226440428444584F2262245A212322B8123A818182592823CF1111219E889381889246484848044588848AF17070000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000098
-:80EE000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000034
-:80EE8000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000B4
-:80EF00000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000033
-:80EF800000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000B3
-:80F00000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000032
-:80F080000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000B2
-:80F1000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000031
-:80F18000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00B1
-:80F200000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04F2E
-:80F28000FE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000EF
-:80F30000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000002F
-:80F380000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000000000000000000000AF
-:80F4000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000000000000000002E
-:80F48000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000AE
-:80F500000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000002D
-:80F5800000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000AD
-:80F60000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000002C
-:80F680000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000AC
-:80F7000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000002B
-:80F78000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000AB
-:80F800000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000002A
-:80F8800000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000AA
-:80F90000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000029
-:80F980000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00A9
-:80FA000000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE437
-:80FA80000F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000000000000000000000000000008B
-:80FB0000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000000000000000000000000027
-:80FB80000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000000000000000000000A7
-:80FC000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000026
-:80FC8000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000A6
-:80FD00000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000025
-:80FD800000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000A5
-:80FE0000000000000000000000000000FFE40F218484844551844110321400188414444444122481008400182118E901188181302200502470244A18243224901844242CC2228464282C0200ADA410311131142781D028911C6414432141154454A224165AA412182361A12C41C6124416420816D848121414088B218184835184B014320A
-:80FE800022253412224C42C8248514D424C3381622C118872116F2DFEA14211240C2186061C110860143411801C01881211870181208C01410022042140823220284004141242420721408C028303A001048085E160011A5014110682141160118141054A40000841840121402211241400444001284D02C5148242A1102380084222428D8
-:80FF0000418121001870C205400800810000001044024502442410021200002001840000810000261808280040046141302430121880B1FC021400941441000044000000412921010000122118A481838141088100000000431244042810040029A112282124F05BCD00002800000000000000000000000000000000000000000000000099
-:80FF8000000000B0A7030024130110024100800100844502104204A4000081A440224168410044004C0124400428181048981820110C8418846F380B45022843628112801142011008002901100484001014422401442822242880826121201202000000211002001822003F860C4121244C2201801116012001002951240021441018423A
+:80000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6AD6FF400088F209006AD6FF400088F209006AD6FF400088F2090000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4455544455557475577775577675577775577765566665563625523235D2E37C2B511115511115511115511145
+:80008000155111155111155111155111155111155111155111155111155111155111155111155111155111155111155111155111000000000000000000000000000000000000002552222552222552220025522225522200000000001AA1111AA1110025522200000000001AA1110000000000000000000000002552222552222F21F11211
+:80010000122F21F112122552222552222552222552220000001AA111255222255222255222255222255222255222255222255222255222255222000000002F21F112122F21F1121200002552222552221AA1111AA1112552222F21F1121200001AA1112F21F112121AA111002F21F112122F21F112121AA111002552222552220000000087
+:80018000002552220000000025522200255222000025522200000000CAACCC7F72F22727000000000000000000000000001AA1111AA11100000000000000000000000000002552220000000025522225522200002552222552222552222552222552222552222552222552222552220025522200000000004AA4444AA444000000004F44D4
+:80020000F444444F45F554541AA1114F44F4444400004AA4444AA4440000004AA4442F24F442422F24F44242000000004554446F61F116162F21F11212000000CAACCC2F2DFDD2D22F21F112124F48F884846F61F116164554444AA4446F65F556566F61F116164F41F114144554446F65F556566F65F556566F65F5565600000000002FEE
+:8002800021F112122F21F112120000004F4CFCC4C46F6DFDD6D62F21F112128AA8882F21F11212004F44F444446F65F556562F21F112122F21F11212006F65F55656FFFAFAAFAF2F28F88282006F65F556566F65F5565600000000CAACCC2F2CFCC2C2255222000000CFCCFCCCCCCFCCFCCCCC008F8CFCC8C8255222004F4CFCC4C44F4CDC
+:80030000FCC4C40000004F4CFCC4C44F4CFCC4C44F4CFCC4C400000000CFCCFCCCCCCFCCFCCCCC000000008F8CFCC8C8AFACFCCACA255222CFCCFCCCCCC55CCCC55CCCCAACCCEFECFCCECEE55EEEC55CCCC55CCCEFECFCCECEEFECFCCECEEFECFCCECE00000000CFC8F88C8CCFC8F88C8C000000008F8CFCC8C8AFACFCCACA255222CFC8E1
+:80038000F88C8CC55CCCC55CCCCAACCCEFECFCCECEE55EEEC55CCCC55CCCEFECFCCECEEFECFCCECEEFECFCCECE00000000CFC8F88C8CCFC8F88C8C000000008F8CFCC8C8AFACFCCACA255222CFC8F88C8CC55CCCC55CCCCAACCCEFECFCCECEE55EEEC55CCCC55CCCEFECFCCECEEFECFCCECEEFECFCCECE00000000CFC8F88C8CCFCBFBBCEF
+:80040000BC3AA3330000008F8CFCC8C8AFADFDDADA2F21F11212CFC8F88C8CCFC3F33C3CC55CCCCAACCCEFEDFDDEDEEFE1F11E1ECFC1F11C1CC55CCCEFE7F77E7E6F6AFAA6A600EFEDFDDEDEEFEDFDDEDEEFEDFDDEDE000000008AA888BAABBB3AA333000000CFCCFCCCCCEFEEFEEEEE2F22F222228AA8883AA33300CFCCFCCCCCEFEEFEBA
+:80048000EEEE2F22F222220000EFEEFEEEEEEFEEFEEEEEEFEEFEEEEE000000004AA4441F14F44141155111000000CFCCFCCCCCFFFFFFFFFF3F33F333334AA44415511100CFCCFCCCCCFFFFFFFFFF3F33F3333315511100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000008F84F448489F95F559591F11F11111000000CFCCFCCCCCFFFEFE48
+:80050000EFEF3F32F223238F84F448489F91F119198558884F4CFCC4C4FFFEFEEFEFBFB2F22B2B955999855888FFFEFEEFEFFFFEFEEFEFFFFEFEEFEF00000000CFC4F44C4CFFF4F44F4F3553330000008F8CFCC8C8BFBFFFFBFB3F33F33333CFC4F44C4CF55FFFC55CCCCAACCCFFFFFFFFFFFFF3F33F3FD55DDDC55CCCFFFFFFFFFFFFFF45
+:80058000FFFFFFFFFFFFFFFF000000004554444F42F224242AA2220000008F8CFCC8C8BFBFFFFBFB3F33F333334554444F42F224244554448F8CFCC8C8FFFFFFFFFF7F73F337374F42F22424EFE7F77E7E2F28F8828200455444FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004AA4446AA6662AA222000000CFCCFCCCCCFFFFFFFFFF3F5A
+:8006000033F333334AA4442AA22200CFCCFCCCCCFFFFFFFFFF3F33F333332AA22200FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000CFC4F44C4CCFC6F66C6C2AA2220000008F8CFCC8C8BFBFFFFBFB3F33F33333CFC4F44C4CCFC2F22C2CC55CCCCAACCCFFFFFFFFFFFFF3F33F3FCFC2F22C2CC55CCCFFFFFFFFFFFFFFFFFFFFFFFFFFFF64
+:80068000FF000000004F48F884846F68F886862552220000008F8CFCC8C8BFBFFFFBFB3F33F333334F48F88484255222008F8CFCC8C8BFBFFFFBFB3F33F333330000BFBFFFFBFBBFBFFFFBFBBFBFFFFBFB000000004F48F884846F68F886862552220000008F8CFCC8C8BFBFFFFBFB3F33F333334F48F88484255222008F8CFCC8C8BFBF58
+:80070000FFFBFB3F33F333330000BFBFFFFBFBBFBFFFFBFBBFBFFFFBFB000000004F48F884846F68F88686255222000000CFCCFCCCCCFFFFFFFFFF3F33F333334F48F884846556664554448F8CFCC8C8FFFFFFFFFF7F73F337371F1AFAA1A115511100655666455444FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004F44F444447F74F405
+:800780004747355333000000CFC8F88C8CDFDBFBBDBD1F13F331314F44F444443F31F1131300CFC8F88C8CDFDAFAADAD1F12F221210000DFDAFAADADDFDAFAADADDFDAFAADAD000000004F44F444445F54F445451551110000008F8CFCC8C88F8FFFF8F83AA3334AA4441F15F551514AA4448F88F888888F8EFEE8E86AA6664AA4444AA433
+:80080000448F8EFEE8E88F8EFEE8E88F8EFEE8E8000000004F44F444444F47F774743AA333000000CFCCFCCCCCDFDCFCCDCD1551114F44F444441F17F771714AA444CFC8F88C8CCFCCFCCCCC4AA4444AA4444AA444CFCCFCCCCCCFCCFCCCCCCFCCFCCCCC000000004F44F444444F46F664642AA222000000CFCCFCCCCCDFDDFDDDDD1F117D
+:80088000F111114F44F444441F17F771714AA444CFC8F88C8CCFCCFCCCCC4AA4444AA4444AA444CFCCFCCCCCCFCCFCCCCCCFCCFCCCCC000000000000000000000000000000000000CFCFFFFCFC5F59F99595000080010000000000000000000000000000000000000000000000000000D0510F4800000000000000000000000000004001F2
+:8009000000000000000000000000000000708F0D0000000000000000000000000000000000000000000000000000000000F04FFE8004001800000000000000000000000040010000000000000000000000000070C1060000000000000000000000000000000000000000000000000000000000F04FFE800200400100800414800280041468
+:8009800080020000800280040000214840010080041400108204000021BF26050000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F481800280000000021000000210014001002400100000080020000882800008088028070
+:800A000002F0CF39000048180000001200000000000000200100001400000014000000140000000000F019938084410128004840818102214860118002211A01148002211A041400B01281041480028004148828108204808802214800CF5506481800280000000021000000210014001002400100000080020000882800008088020000D1
+:800A8000EFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000800200000000000000000000000018000000002800000000000088280000F04B5B000000000000400200000021001400241800000000000000008028020000000000F0CC67000000000000000000000000000012000000000000003D
+:800B00000000000000000000F04BF2000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000008002000000000000000000CFF7030000000000000000000000000000001200000000000000820000008222000010030000220000000021000000000000000000007D
+:800B8000000000000000000000000000F0D8B4000000000000000000000000004002000000000000000000000000000000F02E9E00000000000000000000100210010000000000000000000080020000000000F0DAA600000000004002000000140000000000000000220000000000000000000000E01B0E00000000000029840400220012
+:800C00000000004002000020010000000000000000000000221F1D0F00000000001002000010010000000000000012000000000000000000000080F26C7D0000000000009042420020020000000024000000800200000000000000000000007FDE07000000002001000012150100000000800100000000000000008800000000002002EF71
+:800C8000430E000000000000000000000000000000000014000000800200000000000000F0E2DE0000000000000082000000000010010000800100000000000022000000000000FF790B00000000002800000000008004000000000000002002000000002400000000F014E40000000000800200000000004800000000800100000000007F
+:800D00000028002400000000F0A6C200000000000000820000000000100100000000000022000000000000000000F0AD440000000000004002000000000010020000000021200280040000000000000000F044E500000000400200002400001800480000000022200200002100000042000000000022B0370C00000000100200400200002F
+:800D8000004200000000220000002400000080040000000000F0B7D7000000000000002100002001004002000000200221800280040000000000000020028FD9060000000000800114002100002420020000000000200400210048240022489022000000002BFC000000001002001200000000242004000000002001420000000020220209
+:800E0000200800421002F0372D80011100001214108104000000400100000000420021201402280000000000004824000040F26FFE14120000001211004A21410110020011004800000048400280140222000042002280042148240000005FD80A00140000100214000000000000220000000000120000240000100200200A004800006F6A
+:800E80009606000050220000002100000020840400400242002100280080021A24018004480022488014020000FFB808000000000000000000000090422400000000102292220024004846020024000000242200F0E615000000000040020000210000000024100200000020142284040000428004004820042002F06E444001000014005B
+:800F0000400140020000001042020048C042008004004800284200000028420040824202005F9704000010020000000021000042001002004200200224242800A0414248800448220048C04200002814F604000000000000404241020000100224240000008002680000281800800480020000208202F0EAB4000000002410025021004014
+:800F80000221402204000000482542022128002C042200214200210048242C04001002F0FDC900000000000021100221000000008004000042800200000080020000000021800200F04A7D00C0414001214041022480024002000021800188000040110221904242680000000028000024100240F1D4810000002502401152212131210092
+:8010000000002C2404240010820421004A022A8604E024A63452422004422A04684223245422A02240018F71020000141003002124242450222410020010125222240024C04228212200246A042258296624000020044824F02222242302F07B2110011440020021000050231012022084044224482142424A44124222D22252222F2212E7
+:8010800002221A048084A444294402804492424810822202BEEB10011110011124111001110000002420040000102204002002220048238214821482140221482148002800009F3E4B5111151141C18335532225415313241551312552332552222125522221002425E224542225522229044AF4222225D222F2426224212423F412322F5B
+:8011000025F1222223542225522221255222215022212722212AA22224BEDC001F1414C1413C583335531234355313E02252332D2225522221242532422B44E02151222F2C5D222D82272423043F34F422222D232CE224F42262212429F612722B116A86D422B442848452222F2494424E422D422572227222A22224F0171B0019440115A8
+:80118000522235532235125211805222155122251212024829042C51222F245C222180044E412F227222F222222F24F62262212427261AB352A12246022324C4223042467242724252222F2292222B222A023F16031591411442155233242552233513023D233573225222242100424A041825B2525C2223A8444E42E034F422223D222D84
+:80120000222F24F4222221242F26A6742F25B562E624A4442F24944224B042C4422F24D42254222722222B222A02CE5A00000000400224400224000000000000210010020000210000000000004002240080029ED2000040020000000000000042000021004200002230220000681848800448008044820480022814DF230B1CB41142B150
+:801280001162141B21271419F2421119F2429119F24291112F1429F24291222F1429F242912AE414E922C4812E4256E122641D2E4296C142DAE222B491E222B49162221B2966B2917642B281764292612F2498612F2498412F24A8422B842AB442A84229AA42882E42FD9CC0411AC6411A62141A724283F24211282F1489F242B1282F1469
+:8013000029F24293224E93222D9123D212E922C1912E821E812296F1224296E112E419F222421B292E421B4922137962B291622613682419C28219C2A219C2822288222B8422299A4229AA42FF950220880400000000800200000010021880080000140000000000008084280800000010021F9104180000001003282100001842224820A2
+:80138000044200008001222248280000000000422100004002220028147F310A20090025021C886121200124400224182002002302217042022110022122210042281985220420C24200242880040014A84F5601200D00250200242220420224182C84224402A0412922180223841112110221304200809241224820046200100242400264
+:8014000022A26F740D1800000019D8122141220100008001284800000010022228482822002004180040824202002810220200D09E042200001002008004000000000000210000002082020000288024820400000048002800F0F39500112A410100580000202181642200002AA1248004288084210148182400000000480013040042224D
+:80148000004A0820046F670A221140010052000000808402002002000080041880042400000020044220040042200448228004EF950200380010020020041218400200202106460228001200202302000022004A024001002002200800F0BA2220240612000062002822484828B04201122824208102181280820418002024011800224890
+:80150000421424222984040011004200AFF50C184211224834200210012A01002800002C043A240421420020248282242C04184220010042200210228404602400482F680A00002800000000001001800200002002203112000012000021484682020010012A083041800800EF5B0B122280A3422480820211221220042200382848A04209
+:801580006830121A04282B41483820A41C0020041A442222944124601448288024048848004F79054840011001200400800422341A04000000800280010022008021C11200684200400224824200200480F487BE0012002001004200008022040000000000228002388002004248002004420024488008200200F0BEF500280024140024A1
+:8016000000146602120022422200800400480000008084022800002400201402408282084200F097198001800222122004122001280080811412420242002248202104421880240280012200008008220000884280F2CDBD4001000080021C031814144280018081818101904212002A042120012321A1415216222201800228800200244F
+:801680002200228848FF780AA02420022282188002001200480020011200000000000080031828202624240200000028000080F45E2620023A24244221022641010000002428A024904280818484034828284828000028214A020000408262244A0240022A242426F2BBBE001814001890228004314041418222040029041820012082023D
+:80170000182024A22424480040020042100221105222800200F027BD0082000038A014122001122200238422872401484820842105802184818401188001188002200420080022112042012FEA0F1A021A26E41802C0112880011C81C211208282042302290418A08123042112281C9122122880064AA2412822000028A828482200242217
+:80178000882B4AF076833011C2122834160180A174181C8143E111817222022324A255A05542A0411A84848224A1254AB4426625121E12A075A0255229022A0248248A98426A022A3222A042822621F23ADF80A31938A028382839E324262331111A24B121025AA6622AE62136221224482084A113422B2226A2122AA1122AA3562AA6325C
+:80180000222A91122A032C04422222A08448272824E012A2282AE6188EF4FBFD20A22213A2462213A213321352111052311981042024A1142C925220E12404422B243A2484031212800212245AA6422026064890422582128212A22821232424A424771B102112210223022382342210022112214828482800204422C4124A42A2242C01E7
+:801880002C214402260222482302230221100280040000A024A0248FCF4D81F211311F1193211CF212323F31F313133F15F3123237313F3191123D1325136224252262232B135AA1112C54222552221AB432D12234223223F332422B3356F2121223E123F112122F27B142E5247622E2268644522225D2227862F222222F22F222222F227A
+:80190000B222A242C82CF6CE74141711BA253121142F2351131F12A3152F27F113111F11B111D333D13331226E422F22A2445E322B514AE5218585E42CFC12423ABE12F522622D12371129F522632F23B352A3731E322B134AA7135E522F227222E2268644922282CA6C222F22E222B222E222F242222986FA42226F65021D211AA73119AC
+:80198000C2231F11F313311F13F351331F11F713111F11F111331D1137112CF242222F22E622F432522B132B155AA1544AC4824AB152E427A16236721261257AE623B772A5531AE123B352A5377E522B646AB662E62434422C52222F24FC62222F22F222222D222F22B222B6A2A4C82AF648A4141AA23B1F11B321C2231F137213F323314D
+:801A00005E321F17F713133F11F111131D113F11E122F262622F22E624F472322B535AA551482CF442C21AB5B2E627E722B61261111E521F23B632A7753E322F21B332E325B732A3572E222B662B664E422304822BCC2E222F22F222222B222E222B662B6AAEE26E62DFEB031C0126012601221222480014400100248022210400420000AF
+:801A80002242000022C012602220020000002C0228800242F04B2B00281800802101800118800128482C82A4140020041222A0421222122242181A0220A241424846024248218242800200A04828F06F23A0521B21221B2166B211726292212F2691612F2499212F24B911F442923AF442913AF442B12AD412AB424E912E424E812F2264C1
+:801B0000152F22E51DF22242DE212D52DAD222B591F222421B2927221B2923B69136621B282394212B8619B24298412B84AAB44228BA4228BA42A8424AEA22E48B04581B61B01162241A724223F14213282F3499212DB213F14282322F3429E11428D212B922D412E922C5912F22CC812D5286D12265192D139E212D521B292F22B49176EF
+:801B800022329123329123B681724292216E8219C2A219C282224A22F24282221092A22CE4480B2008008001000000000020021002008800004001000012004002000000000000501214474220081100181800884280011002C042224A01222280220180B41202001200182084044800888602008002008248007F750319A41A80482142B6
+:801C0000214122422112122284420200200442002C8202214842200130222001224829828602224A084828468202220014629F110348EA41011422121820C2412232212C84028094222C04A025A0282E1228003A34412001244220212486248406602222808462262820C2824814421FAD0114008820410124820021004002001848280086
+:801C800000002D42000012808201002428808228A884000000000022AF8C092200000000100200002001200442200428000021A0821288000000200600000080240400009FCB0813041A0220C442200300141280B4126A28284880242208112001800212000030122880058846024A080028E822200C4AA842F0BE720020010048800121E8
+:801D00000000901282220048280014220020021228128840022820010021C20020828802480062F0BBA760168002800421220040210142A218214842202488048001400220080080012004E24200000062424282A08400AECB1420840800482411252202222440810848109222C032883022F082220048110020041120844401306120026F
+:801D800000808404242082B4AD06224214110020220414A082C242222220A224304200181C081A0220021180C45142202204A0422A24021C2202A082298822082C842804EFB80F18800800000080040000421180020028000000000000880028000000004800000022006F8C0F22104101208412126212002C84242222B42124868202242C
+:801E0000A814C03288004200481C054021248664144A022AC42100482622882604A02828487E4480010000004601214888821081080021482002242880128202000080880200288042010020088008422044F2293F0080022001190200880000220000A830328A024A0280088064180082880000000000000000008800CFA90F0000001208
+:801E800000190814424001800880028800804882040028280000C04280042C040000420020048004F0986E00122848000048000000208202A800002228220088222A08A22880040020080000280000000000F0E8FD40014822000080020014282821100221209482000020021110210800282001000042481002008840022988F45BB700A6
+:801F000042800200102108888008A2800828460200000000000000888268422024280C000020044220048008F50400480026010010021828000014482280028001820048800200001100000020022002882C0220948221F01F73008004242416420240522126522115022480440282801212522200101202109282250200881002001002E9
+:801F800048224888420000F047CB000042241240014082428228224801200890822014022280022100A22B848022040000118004000000100214F0FEAB00281C041410010000800200004220922280A9212C081820A2381400408204808208004200280021828214805422F08E2F004A014A0490121712A088211C98421129120228A08415
+:802000002E2260282E222AC2226A024082A628D0212A420280C442828A08820068482002200A1448C814421F8E078082A222342923013114243B28242B88148A2A1222A44220888648B212412208AA42B222A122828EA22BC88E422AA826800123C8420000800423048A0C30421C0827BC10012601301114214822002A41312126C2218E54
+:8020800082148E2229A4A22A9812CA280223325288221C286412008823182184A244201421249422244262884A38424225222818F2C7E21001112008008008888008889082908200482848282904489248822A042A04210090821002211002000020080082F0883314E012C2211B22341F22F213132552138E8227283F3AFA93932F3868F7
+:80210000382BAA1F3AF883832B48AEA22BEEAAAA2A5E422F2C8894426AA68CBEF2BE222BFCCAE8285E222BC48AB8A2F82121246E628AE82CFC82821F3484E4221202E022F2C2C22B664AE424140288247F744651112E612E211B22343F23F3131321E028B882F8A3A33F31FB82822B88AEA23F12FA8181CAEC26BA22BAE2AE6E2F2EFFC29B
+:80218000A22BEA686A2EEC2BFFF2E22F1CADA68EC22EA22BC4482AF82121246E628E822F24F482821F34A4446E2229024AE422F2C2C22B224A4412A2C42C48F2128C50112A16B12162381F23F213132512F2818335F3A2A23F31FB8283242BAA1D811F18C8422BA26A3EA26AE626F522422A7862F262222F29F582A27E622F1CAFEA8EA276
+:802200002F26FE82822BC82BAA1F12A2442B6ECEC22BCCCAFC43412CB422C22225B242E426F6C2C22B6640B242348288F0495514A0221B221B22343F23F2131321F0818337182F2AFA13132F283882AEA23F32F28381CE422B242AA2EEAE222E222F28FE22A22F24F2E2222F21F58282272B2B982AEE28E82EFE828225B2A2FA21214AB403
+:8022800062A6CC4E422BCC3F14E424B4624252222B442E222F2CBC22A2C4242B44CA8C4872E90F002200400200001440012800824A22882228044220042820242214022A080000008004004800004282003D1600004012811101001002252102200420022E42200200002B4200800822004842828004000048428280044800DF8C0F1CB4BF
+:8023000011C2111B2146B111326219B26291612B9419B24299412F2429F24293222F342BD212A9421CE922C4A12E421E212E4296E12264192E429AE222B491C2421B29241B2946B291F242921B28272419F2428219B24298412B84222B84A22B842229A84A4AE822F4412780A441181A2234112394212D12B0421991A2112B94224E9122C0
+:802380004E91223CA9422D912CC581D81E812D4296F1224296E13224E9323491481B692722922219A2841B2880A286114A9A2188222C22B2422282B8228438222FE20B2008000000000000000000100200880000400100000000000000000000005012149FCF0B800140828114010012002440820314200222002420828712021880281A41
+:802400008108241681860810024002482824000088BDEC10210A301122A0412502822882200842202822286118208802284A084A080088334402C04120928115C2820019A884880042802834411428DFB305A02D00133112C0120080210A822100824002822321280A2A882CE722180180681CCA12828844024EA1148800A6A18410024848
+:8024800090822C0414A26F84071400002842194402882800004622031382284321020021282004800121400114E012012C0825020088202402001904F0D86C000012001400280024122100008200000042224248002820140280422108004880168264240048240000488FBA07204111C1124242291402150242481582C28213014E228824
+:8025000019210C42422100124821422A44218482012914820348210048214082046882208408275E0018140021480050212004310012801602000021284880148222441122022C420318208404424229042522044A32820088486FA9080090111248342C042200B0124482C28214208898114A08424848004A012024828404182024280251
+:8025800024002221200420040042008F8D0B2842001224188011022160210000001502481221882907486031110021284A9111140082222904482220024228282842242004F7E820240611000000134102221A040000241021018820140210210440220422001A040022A08221D0220A9042243442008F1806000000001420420142402165
+:80260000140218280080140100488044022840021002208422140121421400004001007F3B0D4A82020024182001135232E021A441000090211001231491420042162104212124241211001A044A22A44226828814612228902210822404FFD1060010810100348001001061240012004200A0212C240410220428221214282180881602F8
+:80268000144002248A0422424800009F620920041848400142200421002004484002602120010012581880240410014002008088244222820400422400F0CB9580041301102141021124142482245022821C01144882484848482904219062230421290621214E22884A8A021324142124A484242220060022F0167700C0111904901142AE
+:802700000000422004C012242400180000242C012003002602111822002400008200800A2800801A62C3001100004200000014250100001882008A418204C08200800890818004218028042502210000800800006F6A090000000021004042810100001C24C15100422442A0426825022021041083A421482220044280044200480000F072
+:80278000DC3300008064240000315200304224800182482024042008001446914148C02348004A08428008884229082A0888200400F056E1001100400121200888120082120016018088880800200100212882C8881042222A8888824A2208230882002200212CF2E9DF008200200513040042002004003C21044200002005202442020091
+:80280000A048200448428848A8241C888408882100221414CFCD0B2081240400001419642180D2120421122121188A112288418248022418881480C882802C0200800824002800202248820821F0673F00821800803543211541414242612425C2422F2121C11119A1188A2988A844212B44242B13242382B64124A4CA42214A2416324254
+:8028800086A288248A48A1884E42212E4228224A228228C221225F850E708161114E41B0117412418284E824A4D1292198114800701112B2426C114AA44C184A0480B462F14122218632824A522217383D222CA6618AAEE2428AC6628AE42436826882AA28A84A4821603AB0BC05421A1481A144461181041063144835D212A4842921D86F
+:802900002315E2152CA1449821242486B25261281AA4D146021A56221F188AA818E02C282284E41428F442A22119A88C4A08882928042140F28F9C001C0180C41100C0814888C082482C082C28C182110000100229211822282284082712006022002022682282248228822882002800AD84141A5111116024371413744153223F18B8C1FE
+:8029800038428E8217183F2D21F49292822728248EC25AF451512CF442422F24A4442F24A48C2F2686FC42C2218EC22BFB2CA4882F28F82321CAF8D2922BAC424AA4844AFC62A24AFC43832BC44A88C8822B841F26B2820840F28788141AD111C41160243D11467141532235C1412B88AEB237183F3DB382F8929223388225F282822B5DF8
+:802A00001F15E528F982C22DC24E422DC2CE822F2CCCC22F32BC82E824B4F2EF22E428FC82823F12E22EE82DBDC2A8CCCA2C642C27242F2E54312BA4428A42B2C2E226F68282212824AFA847A1111B5117111AE12531531F31511324311734CE822D221D833F35E12CF812122C58222F28B842B4D2FDD1D1CAA5444EC22B442F2434422FE9
+:802A80002EBE42F4C2616E622F28ACFF2F24BEA29E821F32F2C2E22BFF2BCC4AA4C46AEE24FC62E22F24FE43C12BC46AAE822EA22BC66E632B882B2222247FB349A1111E111F11A1115E522F11F551511F3454222F18F8414346F282B23D833F37D522F492922D8229F182822F14B5D2FDD1D1CAACCC2CD422F4C2422F2DF842422F25F40C
+:802B0000E2622BAA4E42FAFF62623F2AFA82823F12E22EFEF2F24AACCCCAACA6CAFC62E2CEE23F3CA4CE6AAEAA2EA22BEE6E622B882B222A42F2E8790040010014008214400220482241220912000000901242188008002908002A080000008004000000F05E4300000048460200A0412502258154224002141A2404C04280042D42904242
+:802B8000422502481121304210822424282438428223240882420000D0D905481B21141B2146B111764291212B1419F6429119F6429319F442922AF442931B432F34B921D412A9421CE922C4812E4216F1224296F1225296D122A42D2CB491C2421B2925B391E224B1917242B2817262B281F242831B282F3438812F2428BA4228BA422845
+:802C00009282AA84E82AF451AC809461181942922118282D1219A2948AF242B21B292D92322D9313FB42821392923B4B29A85A1CF922C21E812F2264182D929E212F326C192E421B292ED21B492533116E9113B84231816A98216E8119F242A1F04221A0A4A0A400298492422F4F062008000000000028008800000000800800000020021D
+:802C8000000000000080022400000014D0964A210814401281C41100E0311821C11148241129111101001002103212210048108251218001242800405221C0424002000020F4FEE830311B1890314A412252221B431682B72224A584296428188054224AC3414092212C14110242182A8C2132122A880A40C2111410611886210288800292
+:802D00008228232828C84122AF394801D641C1211835C242241180D512F332415852422351122B142417244601165221C231502242299121801402621421122D11112140318124268148028008218682C8412AB4DD0B2E110012422032116A2131228A048225210840128103002800218001C81222122B829200008042210828242024421A
+:802D800002288200005FF6012228260124280014400118C082122C392121A24A080000001421A04242008830221218001100200800004022084820FA491800148011816112808287A314142F1885040032482286210221221C42214151321288B84821142042A1141EC140C2A1282A0488A0C22829288A222688023D168032211C02243058
+:802E0000210062192214B1C34182012D232800140080024042512268481248821582028064151190A1288880084A889282A2A02482004FAA0D0020418103302118121818A084800918AAA4A48228100213129111408121A8822400A0211681810810024A0200280024A28024226AEE20A314C0211122111220C4216A312160111488521452
+:802E800028130820014E2182422C868216012842002022410124001128228242808882C222244242F0BF1900420042A041241D121150213800205412002D229838124220080011132102208202002A280548100222141082840448268228C2625F120D208282012428284220018848488880228281840414002012011229C4428012016064
+:802F00002100284200008800260200200800AFFA072AA11200422622C5121082631492485882481A4221B222A8582A11014E21A0241722222A042E4228601222A01260121A0423440228821480B242082824202CC4228DA30020B21142012681E2149141141A52124011C1821984226114002004004260112905A024000029212882044003
+:802F800001206824002A042A840A28482F2F0C142002142440033860234A48A2244211901124000011408212022502883022001888000040210888208202422148820086B2A90B400122121480824221130348112084A224008814180028821E62A081888088041210012C28820A002042022488238882024848F0B1872084814121A621B0
+:80300000006280081814001A088002298204200180020042110000602100000048210020042084242288F6ABC8202144A11412A041000020823211001821A0848220082221C820041A0448C82AA4280080820A002100284A0830224A08282002AFF40940016028112422002CA1162C8104802262228A028002284828211022140200290445
+:80308000888A01000000220048282100200840F1E7E5800480222424840496A142824282284A31C121CA41021482001001880040418228280200148004200840024822C888820021B01F0A1428104121421141814211419121C214800442880080088022848428282A8A0220018005808804250223042148902228A024E028F41EE48001F7
+:803100008005246024143081601824B0112291522182C0218002004820081C056220A8810088002A0840020000200260248002BF7402004820A2411800000028002800420039023822C8008001140022808C420200292802002800280030221022F266741400224E11385A0226D11222F241116AA248C81303185AB31287B882641800A036
+:80318000631C3262622B448ABCC2A4484A88AE62989AA1812C3871208208882C0290622334E2A06288238246A1685F5C0A4AD1112131111CF421411935412AC4119AD2114111B142FE11111E612E42200819CA2188190A23A688280088E02224868882A828122502A8E03422182248224882E22A3E826AE4242C22E822F827F3F011416889
+:80320000112A36712D1223D52216B111EA22F812821BB52734146AF4E182211B862F268638221BC22A210224682F2885F812121B11A81B282728C2B2400188AA223C82402294222324A4222C344288288A22A42642CF94462184012E114822482601221226814481041984A2482848B081048A048002800188000000200462200446020060
+:803280000024822820044AF237F3F011411F12A2222A52313F31F2222227243D211D211F3AFA72623F39F983822F18ACBB7E222F23F3F2B225B222A2EE6ABE22A2AA4AD611C6422F24FC424225B242A4224E422F2CB6C224A311AA021F1DED2C9C2286F2E2E22F24B42212E224B442E422F242626A7E42B2E2EA2A2EA2446AF4C285141966
+:80330000F421612AF231211B771F35B1625631311CE216F473713B751F2C7843A1BF5E322F27B3D2CB422F26B662A6226AA5226ADE13F622C26EE24E42244E41AAEA2CB4E2AE2C7AA711BAE724F493932F2EBEC2E42CFCA2A22B446E622B64242B442E222F24B662F4E28223E62ABE22A4466EC2FFE443F111412AF621211F1351312F252E
+:80338000F633333F36D213D211F2A1A33F35F793B33F3CFCC2C1FAEB2FFB22522F27F362222B662BEE2AAA32EAEE22FA23232F26F642822F24542225A12226F2C2622B289AA711AA4AF29193CEC22B64A0AACEC22B662D222B442429E224E6245C222B22682B264A662E2F834B91511F13A33317131F27F773332F26F6636333E21AFAE158
+:80340000F23F3FFFD3D23F3C7843A1BFDEB32F27E727F362622BA22B8ACEC1AAA8EE2E221D23EE422F26FE42422F25BC42A46E6E422F2EB6C2A2F99AA1BFF053512F22B22202EAEE28F822222B44242B446E622F22F6E2E22F2EBE62A6EA2B466AE42EFA76E9C011008001224001A0491482141220018200000042002004428842888009E9
+:8034800098A0828008240040824482044800008FF30F141321021419A6166012132184E214216814114E22224A014A12A12422E022044828489220048A022818408204484A28C882482448242224822822882A048E41CF4D031CB511A2121B216E111B612396612F16B111B66299212F14B911F442911B422F14B921F442B12AD412BB2167
+:80350000C4911F22C4812E4216E122E419E22265192CA5292CBC91C2421B29241B2966B19132621B282394212F34B881B24238812B84A22F2428BA4228B242AA4A4AE82AF4C64FE01295612A91216E131B212C11E112B111F262821B214EB313C1B113B24239312DA3C0913B4229F121521CF121C2122AEC19B22265182F3265112AB491F9
+:80358000F222421B682E5213691613F962131368266036112BA419B24228F24282222F24024AB222B442C242EFCD010000000000000000002002100200004200000000480000000000000000200800AF870158281400242220A32816B18192412120C422189022182828480000281830422AA152201282A28125024602241B28C8502200BD
+:8036000088272C40024200F02B9E1419921100422A412101148E4248231181392112190200118A948162312C11011412242C081A18814811218151122413446212211B8400682228E02C228844016F654DB141E2140100382818181B288E42F022112049A1122303C012288A641D2A24281182621110E12289A6813CA284F08112182150FB
+:8036800022F022831125B2A10480A24A29022F24622800F0EDC48081420142501220021CB181662411A0421041220211280031100120D1220418006012001227146014A0864002A0482100824248005F270D00806234190228002C014621011B484A11411201A21400008002820098800C2A110111141002004602000000200A823F6D0445
+:803700001C01008280D52224A1828A8402466234209882C0E21A2205A0282A442221711242C282A80023C232141A820A2A08822B42A82308002B28802A2C288A84A224DFF20718002819188384042A889822130411114AD11208E2122A4D018868102291128224A2829062123931212860122098228860240082A082C280220C2AFCD5FE8A
+:80378000100100482816823212200580D522848C0810332200800280214202290818202882222118814802482C820840220200888822227028012006804402000042001A048AA22150221502002219349210012C49211232421923820828214001308128AA1402A880222A44222482FAC429004AA12114A01248902128222F222112011416
+:803800004210032602C0218820282608601200602400004A88A2245022481423022084880460240024CF96031A140100002C022B1414148014011082029A0422000080022200000028124011021C0222480000280028820042BF4B0852130280C4124826228293211B1621138445A14816C223241B810014A814202608922226026035803B
+:80388000880146031B2410A2481F24220480AA282882424242E024F8EA4900122A110128003448240040012C2202A0248022022C24011C0228214022248222022622280226012712C082004880842282082822AEB900E21148001118330411112100224218141302808818211222082002128221003021A01282284022081002002100246E
+:8039000000F028EE2084010025C22200881A823861A014402282020040221202200230822825018A012821282582018222200220248402A88082A6A4F03CE6008200000000006021001414290C9641418108C0118A410111182128190311801111611115021150212008228A820A240020F6C7762011816418421B21421112111502180058
+:803980001C8408182420822102002260221602140012008082282208100182908224002982028044F292718002000024809411800100D02308821211001125110231105112002502884011114201144001881C02224A0824000060143F570D0011481904111200524880222901886028862251120000108201248081120200822100212414
+:803A0000281082022823880282290AC082FFF10700481C0125222282A1862028810C2B2828122A818282028088C22140A128288832821031218A820216022800880000002182282004286FF70B38130A002840024210212424A414128E2131184021CB214002238161191200200100211301248800242A0888488880082004002FDD0A13A5
+:803A80000848001400805122182CE2214282880224A02182218011810B000014121421A0481082021091822214882882210010021082D81403281B281417114A245212122D514E412714C643A3455AA8892BE296B1B399112AC221142821E032622190211F22C18221981A8108285021222C834A612A11A22622088E422632822B28A82880
+:803B00006018EAF299A71456A118201481F221622D1242113E122B114A86D122F142311F289132341A92932A8193812CD82312B1827B11E121992223E82193222F1222C121223F32B2A2D312311386D32248B182D8311A82682A22212A8A682221A0442CFC3EBBA0122E411148243D13C021129A1B91813AC182482A44F12182682E829607
+:803B800033811B89A6D31122B2124181621A162121623915B28311F1818218141F218A382110E122021B88244AACA48A4A6222A0862B6428F0A8CC000000002682E412082A8884880440120100113082000082218223222822088214200222000082208822882288022800DF8C0A1F1A521115F111112EA22F26FE22221D233F37D212E940
+:803C00001FFFF3712B9D24DAF9A3A31F3BFA81223F1BFA33231F3BBBA1FA1111173A3F1AFA22221F33F311311DB33F32FA3191372829F822A31F13AB191F1A7281F383832F18DA13FA23A33F1A7A8353333D8335718301242954222562222BAA2F2E2E042D62C74EF071212E61141AF121A33F3696223F11F2736337181BE61F12AAD78E87
+:803C8000924AF1A1F33F1BFB82912F1BFBB3A31F3BF9A2A11E113E122E222EB21F12D311FB91B32F2BE22ADA32E829E93BF2B3A12B811F1EFE21833F22B483F831933F33FBA3A1373835D333FA23A13DA1888E822B822F2AFA22A28E8223F2E2E22304EE42FD75141F13A442141F11E126F643423D221F22F353123F1AF751F31F25FE51E5
+:803D0000A22BD92B152F26F2B1231F23F233213E233F13B323FA2181AE333F1AFA23A23E13D031F1A2233F13D332B822F3A2322E221F11F921612CFAB3A12F39FA93B32F2AFAA3233137382F2A5A332B2823F8C2422F2E368282A6F2A2A22BEC2B462AE422FEFFC7141F1FA622141F11E126F6C3432E223F23F353523F13FF51723F28F267
+:803D8000537229B5C2F9E1733F3BF993133F1BEB32F2A3B13F13FB3191AEB22F2AFA33222F137383F111932F23FA32B22F29F132B23F23FA1183921F1AF681233F37F293A11F3BFAB3A337383137383F38FAA3A33F1898822F2CFC62C22F2AFA22A22F2AFA22222BEE2B466AE42EEC9C08224001224824122041234923412209112892300F
+:803E00001110811202298182092909218001002D1180018800822482002C02000000377780840260121914022714E0348824243842222D82821C0129021C4202C0210015C221248AA212822521281221022128002A0800230488800AA82A246412DF8C02481B21181B21421B212F2491612B1619F6429119B24299412B942AF442931B425C
+:803E80002F14A9422D911B421CE922C4812F2264112E4296E12264192F22A4292F22B491C2421B29241B2966B19132621B282396212B841B282B8413B84228BA422ABA422A92A2AA84EA22F43773C051198691214A91212F2211F16212116E91112BB419929213D23239212939212D913B4229E922C5112F226C111BC296F1224296F122FC
+:803F00004396F1224213E922B491E432A4296631912736136836116E8319E21492212F24084A0A2F240A282994222AF462920082000000000080020000000080018800000000004800000000000000000000F0BF6C1418002826112AB1216421A0821180542240811242C2112028C22328254102330400181B492210C18100C0812621A80D
+:803F8000822C011C0432006992328001F09A1D70422428021A245112886342D8216423191D82042B61218F21028A42410489142173122121812292182450231F41C2241642C54347121648C421319C180186112822222824246214481F6C433154C2209251841213D842118266123BC2212D424091221270124321A821BCA4283691112D7B
+:80400000124E1122194228E115487172216238003D24994865182D211E8127124882322824A6A616241220F42F9C10022260221225812642C883121848002B34D02A02A8400428150221000012243022444521511419041222288884104141082200422242F0659500194201002440820282881318022111008111813048200428480080BC
+:80408000018810420820022A08148028280424864802002822EFCA014180022CC622488C02302127253460181B683018A6A82822C21B69192468148514C11A453118228C622C26C2112111881D828B92149941A2873022101AA18382184A8822268208DF3C044140014A32224884242819B2425121241948018CA182A228B048984188463B
+:804100004118415241842222242823111201142B280088CA0380084228888AC182224822A2225F8D01C0212800502228008098821C08E602118110E814B8110289044C048B12421840280D134802868838182671188112422342C288141A484288042800F02B916021428912210112235112835262122668111221490421422410441464A3
+:80418000248608221A04228B42841B4128521226914462A964248140246488402824C2328141412002CFC601414A5214444228842016524126233242400121106222819C021230A142450170141104C014421121A4414126110144271123324216D442E22408821225822221C18AD01246041073121884424801200830142D88148752283C
+:80420000471828304828D46C445822503A812444100249880100800211220060A183210889A4C289C4484B248F640F2B12418D244531432D28164E825422302327A85621D116718254221588F421849028464834442668241502A1C32352421E434130842E11CD424654482E4131002D212D8823C41C2B528B78988CC852828CC618497280
+:80428000110A4D4328148021011A7228D181422101003048116C22022648158452A14655824C824511724844082A21C113002823048302141A0400455822222145E844024A82F482852004914840C2221C3113A02198122C61112C211128B41882E1C82154182223D48102391428161304428221842D121618885AA2004E282184840046FF
+:80430000081002184844EF7608190243011267144008814242611B84C2468128E1126134818048440CC0144446018C42884281022800111081420250141C284428D22238281AA492302888FFB945011411108804845018C0C1811A148804808215414123511A000024112180042902C02290821490181011921286B28821112208164482E7
+:804380008521F88D91209228123932642840445824004A08542294308240248881944487422F41F241284400688011125121184A2801A902281C341411480020024E8230222002BF820B82190448002D21141113912224100150481E296C048284207121420840011322188A08008C4201842122211002854411922288902890129058348E
+:80440000EF420D008984C2118C111C322410511A1C89028A01821885C2214281868811E111B8A2C42893480842282242228826588113C28217849012896882304A904889C138482200824AF2BC1BF0114C2002842524210222890446248845A1212190218304684D2182865482C3210400244242001984A1684A88249149941A061C049C88
+:80448000084229848164844200EE418021011C814278544174420212C02925C22825125122860218411CC1C28004312D22249048222508211093821121A081242A01249230112D12C042002002F06C625084282A0459C421004518447128042886A428CE248254C02419B282024A31214E8490182880611410C1183148842848814816910E
+:804500004814154482268404188230481002B60657141B288F8232411F11B117523685775992298B41357332D5217152642267A3124363911D854792BE8966F94CC1F392161E52256D9A342334482B421F14F223B22883C932918E223F827842794B42FA2A149D212531493F28AC11A183F28A2A2D44AB45219426F2F4BB142A2237112F3E
+:8045800011F2286A2E4466741758164D133F16A14157AC9EC1ACF911E19F18CB911DC51D52CB519BC119F29146288E6F9FE6F2242D6A7642D282C2722C66892C84446212E6B852F14B418F24D228A621B9E1254CF259842FB824C14A2A7CC2A2C45AE18221B1782978E8061E5485D114A142474487B49B3128CC428CF2C8A8892DF48D61AB
+:80460000CA6144A7AA2F2CB36AF2222886E424959C37E2421631CBD3113961879A45A8242150133D2ABB81AE2B8C28B891E192E115D69112D2A485F84819A3E6A4A3D12A61228AA256684CFCB92860441844188A8441682284888C248204490441284904604480120211009A1222292229222D02802402268124022200822812289688426B
+:804680008842A824DFF5024F4A96241545F469212F1DF24A4655F16A6D7F62A2155AE97D7952F65E1EF7FCDF94F4A81CA7C4DF87F3B7B69F9EFE7DEDBFACD411F422429F16F275677F1B59338F9CFDCAD8AFA1E1B8F861931F346D329F3BEB13F1999AB7922F24F4C8881F81D5B9F49B9A9F93F1C9C98DCA2F25BD42F498888DE88CF81E10
+:804700001CCFC111E889D98AFA94EE146AE2C2D64143B429EF32FA4E6E2E22EF46566F8FE1B7BBFBF1B77731BFB1F58FAECFBDF53FB997F48FC3F2B3A1B7925F57F673622F16F477E39F97F37F6F7FDBFBA3AB2F16F56B5B2BD95AF54A983D931FBD7D29FB2979189F94FC624A8FA9F833591D131F78F91B199F9EFE484BBF95FB4A489E1C
+:80478000F2AD589E1ACD1E6F61F312389ED88FA5F5816F141F13F61151D7915F11F171291F85F14977BF52F36E7D5F7AFACBAFAF3FFBCABB23FD5B9B7F3CF1CB5D9F92B1F6F17D2BFFDAFAEFF55F5BFBAC7A9FB2D42ABC2AF635755F52F2B8BA26F31261AFA2E685F761291F1DF623619F1BFBB8B33F2CFE2268BFB4F6FBA99F84F3632371
+:80480000BFFDFF393ABF9DFF5B9B2F25FD7A6A2F2BF86AFAABD32F87A7132B128BFB6EF8EF8C42F1F5759F13F31D185F11F1797ABFF7F35F7FFFF2F36F7DDFE9F9DBFBBF3FFBCFFB3D41FFE4F5C387AFEDFD3A327F37FF186E3F1AFAEDD55F67EF26F76A4BBFB2F633787FD3F7A5EC1FB37722F3B2E32B73EEE23FB6F2F363BF3BFB292B71
+:80488000BFB7F3E2E23F92F66A6ABFBBFA7B793F37F7FBFBBFB3F3DBF9BF1DF1F3D92FA7F7FAF8AFA6FFBAB2AF27F73A382B728BFB8F26FFBFD2400114501484452241234123484108178824178830118932918F44024431421144888394828129082D81F02281D0324148C348240012341E48400884A041441200AD8C800480220424500C
+:80490000248E2846028B14842F242903E0146182004C12012D4885D521A12415082140021440F181280014121C71117848125118118848218C8418044840F15758D022F4112485F21124A3F41164A7241D24AB141D2CAB9419B64A9945AB944B42AF1439242F14F924482D914F82C4954FA2C4817FA264114FA264192E5A96D5A6E549C269
+:804980005A1F49C2521F49D228F1912483F49124A3F48124AF14D141B24A9921AB9453B84A3924AB9443BA4279A498924F8284F9A44AFD7DC0521D442CD1C1F24812442D131D24181D2C2F649921ADB441AF143924AF1439242D93478A2F14F922482D914F8AC5117D8A1AF8264A86E18265582FB265582E1A17C82E1A1F48D428F19124BF
+:804A0000837211B46A6848AF125941AF4619F14AB459B24A11F44A22414EA284386D4829C35A6F8A0E200800000000002800000000001880080000004008480000000000280000000021F0FDD5341415040017238344C1288058231814843044A029296212A0281088922119C114122B41C1324C2261411212231AC1218641B142B3114473
+:804A80007151284121184A822491124422C8F01EDBE04124F9162813928A21884C125322814021345210FA822214241068818123586144464241084AD3287818021542011110D2A6211101204268244241239888282C8828C121A8FFF84FD11424BC28111112815C14241054322A21D48241724802364362328436289182A6521412132187
+:804B000031429F45E2234816781532512419127122328114384A11B411246224C6522488A36C212C7884A212C2B2BF490529711114867288A221A128A712908A4011210444A22928028048181885D22144442801812E181200188210D12C2171421141C128891101840028120028702E08100116E812114152814211214041180A8811282D
+:804B8000118929120810821201489084004422501284242888004021511212200210024AA24200CEA8D02681133122892821021A328A82D0221111C138109A89482A5441681C32891722814CA2425CC12A60834230C11482251411C12526813A320024A44F3104A742284389011628049F270816821221810822B1289398825022B484007A
+:804C0000848220982462228543C1282685741461A22002B0411201411126B18112A1823211183542F8441222834202182858005F9942123411248CF211281C01E02104001901148B2188312669148B34148111822821808204439818424482D032184802412224000018250161284B1820342842F04F4D1413611628285110012D288B12AB
+:804C8000443012008C032601164C892AF22811216048831291384001AC8124E42184C8912C222801244612842172426641239642422AC84424281838EFF8054CA2142C512530221225D441194214229A1110542200266222441418C881332A34182415424188D48101629B2141C1837228C215004B2114221489088C48D8482172220246B9
+:804D000088F114D8001024214116888208481142407142B11408360488894428041C0220824488B424050000004448845332241C2C528200C012A602108408D03E0A59024CF32413167426721198223F41923250125214142F1411322212CC33A3CC4449813C2821689B125E2A94484B124A31432012CB844149E8A2D494C1214B241BE117
+:804D800026532813D48288C418AD824D984E24442848F08B75A0181B21244001401448280429280147824C19C12410288AE2A204115C420800218344288124A192137128C228185024102201416C21B242A842289022828961225D59401402841116184118022098840010A8861482988100002041110AA410C24480021C02104348031666
+:804E0000180848420080021820A1422FF10984144561143814001484C9521814B0830148165882482128C82E481448248622CA22424C44C84188488358284E847081049E42488A35421CB1212128423844208434820088CFA50A8256982A218301812601112800902800008A2102192228482201001143582843C821241004814058144308
+:804E800011050080018C012981044604443F3546218102002C06608160184C04118044C11868841504006082112E1828128A04863118308111484280E211A82188388012224109200340222A088F5D0123C221812C02812181212821908210122218528223822C2C0424422C22C4824E2200418140028958232220C24620924800111098B8
+:804F000012488001284428BF870A001884112942032C4248026C014019021111A531212341111241114148813221218024023312988115043041841184113012441028038005427F820215840419618A828440813888A61C98211C8822C441884240183828222225488855841484182219021388048D464AD822D4187A18924123A2A15870
+:804F800042424AD3288A52222A987220027FBC0248838801001800822400405882222822140022C021149021250182200A821444142245228408886011001211524223C182004001CF9143C129182240828182C41839445141E0880611155A41488012728A21E4246181890A845CC824CA02EA014EA822E88C088B1283024088D2411484F1
+:8050000042082289847414A124822B38F02195144F1222BF38D1A964133A1B129A12212B223D28A7582FA8D4A3688428AF130139F482231C426824A6D22961921D821E291E24621F681ABAB228E438F22223288FBE42F282241F13E89CF342C227283019541B151631146E1A2B311AB2538CB382F184218AF29A4524118E681C82B2885277
+:805080002214261BE998DC69289494148713A5D13334452D216E924BC32AB8E1E282FE412123C4321E189F28D83D88BC48E4A1E814F6A5414AEC88788913C62C1F8494281AD411F15C299F83E6828C21F842588C94628F82A4544921A6821E9126E22F0D1E44BD13457812D1A17148F92918481E2B9962988F1808118213F248888E6A9FB3
+:80510000867C8851818D488DD185012E69B1AF12B622F422483F587224E848D2C8813A2115E4C298C1D3FC3483278CFF627898B421F542113CB3518294298B168F4168242F2268222B494E64224E448FD50100442A0142202421046260140000438902004200208401419014000000482C8104C0828088C481C0A4C022822C020028DFFB8D
+:8051800045F367673FF2D2A6F23623BF96B459F47B6A3B261FA3F7A361FFBCF48B89AFE99DCB95F94A48BBEC9F1CF94D1EBFBFFDF7755AF7C1C12F2FFEEBEBAFB6F413113FB1F9CBCB6B6C5F1A7A89A8EE6FDEFE858513F88587EF6AF2A7A7AFE6F22E2CFFC6F22D2EEF6AF227A52F2DFFD3D33F7DB912F9D1DA2F88FE5446AF87F7725267
+:805200006F55F742724F4FFDF4D44F6CF4A827342F16F67529CD2AEFB553BB33F17B6A2FA6F23A7ABF38FCCB6FBFBCFCBAFABDC3AF8456B8AF1CFEC3C1FFD4F4EDCF3F3EF4BBB91F1EFCF1FBAFAEFCE8FB3F13F333919FABF9DE514BAA8F8CEEEEFFC2F99F98F881C36FE8FCABA2AB62DFD6F62D2FEF47F72527AB269F22FADED6BFB5F50B
+:8052800073772B911FADBFBAFF545C8FA5B552F5D5D62F2DFDD6D44F4CFCF4768FFF4BF175773F63F71A3D9F437239FB3A11AFB5F21A732FB3F3E3213FFAF8EBE8AFB1FBCB82BF98F84249BF1CFEEDD7BF34FDFBD37F5FF7F3F19F1CF868523F32F44ACBBF11F15A58AF8DFFE6EAFFDAFA8889BEB6EFCC5ED515F387C7EF6AFAA7AF6FEE5F
+:80530000FA7E3CBFA6FA6F2CDF76F28715AFC6AB451F3573D3D139D986F3DCB6AF87F6B2B26F43B352B7F2AF8AEE721BF5343F37F73F52AFF3F33A3FBFB1F15B58BFA5F21B7BBFB3F3CA833FBEFEA3AAAFB9FBCB83BF9E5C38AF1CFEEFF53FB4FDF7FEBF97F7BBB99F1CFCE8DA3F3AFC58CA1711DAF4B8B8CFFDFDEFAD8F8CFE38BEFFCC32
+:80538000DFD5D431F48FA7FF6AFAEF8F6FECFC7F7FBF15F76D6FEF66F39F16BF57FBD8D95F25F7D2518F35BD3EF7FCFEAFA5F5D2D26F67B352F7D6144F49F9E476EF110B00148414842641681240618814404388D2818432918334818334814A0210B248928381292894824214E01248782443E82248E822688126414821011648C248247A
+:805400008242924270DE022F2A31110027221214112A2108112048012C826414864831A1881508D01802140021CA7224282C22182468228C02446D122004004240022F24032928624486F245A7C0521F4152281F4132481F41364A1F41B64AD1C1B64A9961AB945B41AF14B924F44A9143F2429147822D914F82E414F9244A1CF8244A1659
+:80548000F1244A96E1A26459ACE449C24A1F49C2421F4952281F497248F29124A3F48124AF24F18124AB941B28AB9453F84A9143FA4A9243F242B2478229F92448984FA2F42C8CC0421F8156281311F89124A5D24142D2C1F22896118DB6518D9153FA4A9143724253841CF937482F14F824581CF826D2144FA26818AC6459B48E25ACF4EE
+:80550000912C481F8916FA9124A5F28124A5F18124AD131D24AF6491218D36418F3431248F2411F442B22698926F8294924FA2F5799540084800821400004480020000001002008800004001400800220000004400000000002601BF72473234802212723291124244182A441208348952284008412A1454814D812548480828232484234A
+:80558000430115C4288886C24390C2841112221848424C84822492182002D09C04A0281414118481851231222348C14120A814271289341112A1118302486813D222824898A8284384042C2208E94218843E1444472140011E844125A2C11231136242414541F24DDAE0416286D021426132162814A721630AA30617285E2885314A181812
+:80560000259641281699C4AB48288582C82A2EC8114B5268854132448572A4287846A128695C844591161922E34468644129827422912826624214243FFD09216012406281404802421114009022501810285248402152182302002A041820328122100823240112002001484A290113410444F0241C000028180040C228301100801402EE
+:8056800088A228860815C8210021288002422AC4240014922D1182148A1404830280C48148200249044860886FC4489224002424409241C41958224622DC226C21115B3819342446113121A28034212E441F62944131486991842D161A982110028C024024B28244612814861424082C04808D8886F491EE24004022012044B22958221291
+:805700002724C829511243113124E8228F12081111B044C24146026602444C36120040820314C0244A0800441142201222A4148862F0C19530240028240025110C601488002CB4212884181101A884621C02276226410143A14823E148621224148A1129084B4810C2292C1821CC84828004418848E084F8C12660422E421E222283442170
+:8057800044031931822622128244213242290200622C4422B28626C441105418422F8154814521134A2141012844248211008038A4281B4340429C48186FC60448431404290213921268218D241E412214159228212844215128144CC348202812B24432221C828162844E124C041624140A27B130465123A6822714B02454286C014C4165
+:80580000821AA434AF8108001081C13200841001800544404461A648120000002C011C6444414428002224000019040000488448484581822404885F16034C64426C02A9C1136229916225822257224691417D22222F641254A244321143562A26A242268241F423448D444AB14AA14217254D12225C21541AB01852526582C841881C247A
+:80588000E48668822E465838608889A4684FBA0D22901219228642111138118D8111200184001CA24246014A0242408464142B4220423424114128819012401221844483420210E46428C12441424B4244F0DBFD204441812132424845922100424200211C06110017442248211D84004840042504212C846112141145010040220C4C28CF
+:80590000984282614A122632824C0A1E445082230421400290488AB448121228181801433828250110482186148884322410221405285024448384E4142881C42260410011430100200C60488F5D04102842211606252162242822214800230100210060242C42041A04222200004C02002C04142141C822C621286228400285220242120B
+:805980009FCD0C84412186186218004048228452A13422222B422722222E415014222601464142815C12421448174384112284113211449083100115C24400002A0C4C0270540A86010019041304004904319042801401001382821414014DA14301241012021952383400211002202CB4441802252224C84200602888676A003812180016
+:805A0000614002400400281140144101131481A1822024C2434621C86122112324022C0280C2211C02118200142012241A04C828E0B906291141014981054200212A0831908900A048848200864904108A12480481C08C8018B12498214148C24F222502C031C248241241226B81442534245C03418432191291211A624646822211B1114B
+:805A8000148281542251114248484141445021401681A324302200212120123222239422290426011082282202461804C0423FC90F461892422163414C410200C4A02414008004214129A4122921E442041480948114422D628481489042200414114054254A022844C60288809242F0E2D12443F186212B122B1127126D444E113442CE62
+:805B0000422F22C42A1CD22854128D431F2744F428212C1A33641716487F12B4A45E456B442F82F466235727372260123386D2130145F1C3264B14421E622429D623EA14F844421488244AF2A49249746CF2A6A44C2E44F2CED6904185B811D211F245261F2552414AD4B2922A4E3819FC414813CC181125111345618488895434604468FB
+:805B8000241B35119CE6448236461CC1422486D223A24225F32226611B661F1629B831524125744332422722442F26DAC2A81443A8E88ED43FAD0727241F214453281A45B922D446A2421034622D12257141B2228AF2C42346B243E412D451D444B271E2E45A11A714A651548A14A2C86724ACD62472E3F42C287F121248B921D6117C4170
+:805C0000718251644AA4488E811F28FDA441BEC4869442A0683022476243F2BC4F002A0183022A01008B82908890880080488848884AC88484408842684884442668486048604822860486A4124418C0128011840338C0112004421FC64CF33775574195D898525D17D73F34D433D29BF428C8AF8DF988A1BFDDDDB9B853FDE88925F3A3BD
+:805C800023BF1AB628B2A2FA89E99F187828F2C282FFD2D75FF26F477F19F9CBCEDFDDF54DCE4D268FF2F2E7E77F76F6A5A51F78D8DCF28DCEEFF4DC21D876F3F5D41F13A3DD4AF511976F41F156564F2AF992D47AFD58986F4AF894D64F4AFA24246F66F24856346F47F7554D171114DF5574137D43F247273D414EC2EFCDFD29233F176A
+:805D0000D731F85BD933F682834F6EF6E961ABAEBFBADACA541DAF23F1CF8DCF86D21FF2CF47FFD1F16B6E7F7FFDC2232CF2286E7FFEFEE3E11FB6D6EAF285E4B7A4BFB4FC47C67F7EFB76741F16F6C4C41F14F531B53F38F8C2E26F2EFDB2D62F26F6CA888E849ED4AEA44F4AFA86163F134EF317514B5113B221D219F2753F75D732F244
+:805D80004263AAF65AB42D693F157381F3D3518FBEF842432F32FA266D1F3AFA2B292F1266D25F3AF94F4B6F74DEB2F64666FFB3F77672FE564EC1AF8EFAE4A23FF6E62EBA2156259FF2522139F4C7663F35F2C3D26F66F2C3C71F2DF481723F34FC43C36BAF2F48ADC68F86F83FBC6F46FA26244F42FE64F64F5C49B316B51EF531319F2C
+:805E000092F26F667FF7F747454F74F66A6B8FAEF67AF63FBAFE5331BFBCF4DB5B3F36F2C2C36F74FE466F37243F18FCAAED4FF2F2A5D67776EFF4D2B2F247477F71F1FFFBBFFFFDE666AFAEFAE4E23F7E7C67F72B62FFAAFA61267F4CF843623F2EF6F7A72F26F7F5B72F6CFCB1E25F28FF53536F7EFCF4222F6AF776768FAEFE3E3C6B97
+:805E8000AE4D244F66EE64FC62E9501210024D13484382440324408104409241441110614411423128214239810242214221501210824482242228A248348A448344224802204824785A014B1815140225114112012094212460242224C02280024224282542D424044842218222C2A02820682282004A0825018004A084491418841284EC
+:805F000012F428A8C0421F4152281F4132481F41324A1D24AB141FC8B24AF98128AB945788AF1479B4F84A9143FA4291478A2D914F8AC4914FAAC4814FA264114FA264194FA26C594DCA9E244D4A1F49D224F59124CD121F49324C1F49B24EF18124EB141D24AB9419B24A19F54A9443F24A9443B242792498924F8284F9244ABF3E022E09
+:805F80004A1D448F22F4112C83D6C1324A1D242B161F49F642841F49B242BA95D212B8B5744A31A42D114F8AF44211678A2D31AE5A5CF124CA1E815D4A9AE2A26C18BC6D19ACE488C2531F88D628359146B181F24A1113F94A111B21AF44B911F248B413B14A29B14A391429F9B4482B9467824AF9364A6D1D401882040000480044800206
+:80600000120000002100801802004001400848000000004480020000005012F0D5C60043D142333412168822314C89225418131591128F246154235628103444412A18C92244255249101C424242422221012B2184001112292A240418212B48844138288084F4FE9714666718003F22042511197243621229113252499424282CA1241AD2
+:80608000A424222243A4248042C8124A022CE6414264124B2440145241256424182840E2216828182B4889429684896C24888CC1818261704472441AE4213241233122814374429146241F22B5419146437243B462418AC54644223EC4201A0455A842453241294294292744235524244F1241842411014B2882274E181A342AC2C18B840D
+:80610000282722841CE821F8DAB7601213A112442A41483111A18C6232178100181E4828B04202282A44048F14428252A21221812216542220021840424802221225A241249082506282441A84282184F4C37300002002181A4432113400488184441181C08441B8002260825084502242002411811308823448621A220442121C280284B2
+:8061800000832402F0EDA930113015D94217D434028C86344228301A46D143C5321A74A4B21132683041602C814934124D2B1996C41232C3361413819212702222179294442D41A058002CC4484392522C96241AA2848906FFE30D187014111111F21421482E4825121102C04146C516182E8218C91484022C2832448352413B2488214A20
+:806200003344442413321811B022511286944413028248602822418448448B128884F05EDD1001902C43424422011E414222248B1484A3219241C113820A1B8520440823C128C14624113228121301218682224CA21426A241421A04181C34482223259222424AA242B0D34A0143022144814C942430244423762298484A01422282851216
+:8062800021048D122002814810C8442E8A4318E424C324C4C04A41001E888B414838890283412868422E824CE42238888B42846FFD0F25A4412021116482F0422312441781283D12811C61294626A2212C02447828153882681848411C3344C0488005898102276130441055A2E80026142484817242922480F1A751205421184732191247
+:80630000028189C148180000233222C01180848204851484053722281C0580064490224D21448712848D2290241001190470420248C01800CAF2D6C570425421122F119221C14658248D338B43167218439819837512B13244E213B8183261684984564A8752298116A3245D584A728896E448182912C63D81146341E2C5C8742CC4238CF8
+:806380009C41C02CC82B242AD462B4C8F1882446E88CF2423320E84102446D1230248C22440468244821222CB82404100240880242845A120249A12440B424644183024726CC52288C028414160890185042419822288042F2DFD2A0214014064214121416422241211102111211430143014088021821304225014A13019013161241B197
+:8064000048D12822149A2138885125018244836242328904F0DB14004191844D4181AB248C24212C61244375C8A441844C7184A8416021B094E42834818D4129A14845B224C4242838412544CA114508122C0988B81E81A1841412826123262821A1481283A882AF9C03CE1316113118800183042211100884830423022024044D1880A146
+:8064800042008116014860222264126C224244C214E048A2123042822A8102244A0228442886F42BB8D042024413922497441A12336A5598A81D14884E284CC8124B84908A269986871A002214C02C968938882FA17488442889AC2860188B848C821A4189A18411818C744844B8286186888658482A116A213FE50B902112601129021DE2
+:80650000222024844201421D221C6114499244407421241622440248124824182A04002884143D22144A8272425842894B22C1412188202883A88440F179B200902828A118711890114125A2123889018994142418125846422184024365124233220423912A16381884285842121100244413810280E428C14880419892247F960E482421
+:806580002001400894218C918885022592840011848641D882882858821518414409260C8448441410112C18C4888A312584484011283D1821004800F0FB9F00823215840310C412AC028110023190614321C4440085C4622024A2251322011032514223420224601223044290C14221C042800182248024E22302941848A0486D811E44C7
+:80660000A04241134221C424268405F0224A2C423881A3011C012B92318112841AC82988241E28A0C21688B248A184122714E0214434A6CE22128B1A4423664181207A2286F43355244896721155441F77EC81FC4F4C9F7434414FA89216911796658881B14264246E41141CDC4566C894B9A847272469E8957216A8351C72229222125059
+:806680003BACDA88F292542BC1283F89F111282D9946387217461748822F4488F212122B8C8664A54AD8D8F822C4AF6B48A1124F185184BF839314852312E292746261A42D826C34C847645FA2741155938CB2449616814F12F8CC423C42EA13B248D246F149116D483E168CF224824AF392124123F3341146F28D232D45CB243C7D74725D
+:80670000A2D288FF82D88B4116F198521EC283ECC1A4114B683E1CC28AF28A93F0512539B2284393287F44E311E381F31A329F41F5B9211E79AB191E56AF89F65A81CB184F4BF79F16AFE371D8F4D2998F25E542A94EBD218CF531559BC2AE629F32F84AC8CBD18F85F52FC36E643ADB1CD121F829296E181FAFE9323CE29F48F61C71173C
+:8067800038342F34F96F5A2E28AFCEE142BE28F328A82AB988A6322CB1474E022602002220022A082A0888C084800AA811108102891201604860486048604860482144400CC4002041120441100441424181CEA2246F68F3173D5F53F13D36AFC9F35DB8EFC5D244A3354F56BBD4FBC1F22FCCF844964BD99F3AFFC9914D9C4F5DFBA6B4FD
+:80680000CF41F124FD4F4BFF66CC4F4EDC28F31A58C7E37F3BBF9EF8F9D496F25CDCCFB7FCF1971F15F224ADCFA3FA2925CAFEF5B66F49FCC3C1FAFF64658F21F593D19FD1F88D8DAF89FFAC68E6F624344F8FF568F84DE6CFC3F2FC58AFA6F2CACB144F66F75757FF71F11F54DBF7FF85F96F2EBD4D9F87F72DA59F8FFB59538FC7F74604
+:8068800084EF49FD6F739D115DAF7F5DFBE7EDEF61F5A6EDCF5BFBCCD65F5AFE88C2BFB1F52ECEFF73F51E53DEC75F7DF45CDECF82FAFBFD5F5FFF76F7EFA3FBBAF54F43F3B4B51F9CFCD7DF2F8FFF762DEF45F5CBF18F84F2DF8D6F4DFDEC5A2F6FF964F6CF87FF5C7C9AFA26B44BFF4F65FB42AFD021F3127375FD1D1FAD28DFF5F75ECC
+:80690000766D36FFD7F3EC358FD5FB4972BF85F3CC1E4FC5FD297BB9F1841C4F57FF25355F5BFBEFFDDF5BFBEDDF3FBEFC6BEB2F31713477347A18F69358CFF1FD5E54FE461FB7F2D4C45F53E769F21133FF4DFCF6BDAF2DBCCBFCCCD6BF36F71A763FA89BB35D97EFE5FDAAF26F2FF36244AFCBF16878782F43FE58DC8FA6F3E1C5347F4F
+:806980005FF73565D7F1F795DF73F27F7FFFF7F73B7FFFC7F7FF77BF97FBFBF3FFB5F1DE1EEFC5FDEFEBFF31F1B33E7FD7FF31357F5FFFDADDCF59F9ECE63FBADEAAFC1B1BEFFBF13D1B9F79F99B598FB1FD5A7A2F6FF5F3BB7E723F33F79A1EBF9FFB7862BFB7FBDFDEBFA5FFDFFD9FBDF7DA54BFADFBDBDABFB5F15B582BFAEFAFFBF225
+:806A0000F6AFCBFBF8F84F4BEB42EBC7EFAEFBA43300501484348C542448248C444248834476114892418586D448028D241110324831103348218121004001148C64124023494148E189446381E08914A84983242104630C490414285041C14441192204814014110828844611A18480A842144722812984028B24002D411042088088B4CA
+:806A800042090021304200842304200834BF19062D421F41522A1F41324A1F41324A1D24AB161F48B24AB981B24A3985AB9443FA4A9143FA42B1478A2DB14F82C4914FA2D458F8244A1E214FA264194FA26C594DCA9E244DCA1F49D224FC9124CD821F49B24CF89124E3F4812CEB141D2CAB9419F24A9251AF443924AF4439242F447924E1
+:806B0000F842944F82C4944FA2E4F30F2F82D541965A1D24AB161F41B26AF11124A7161749A7461B29AF44B29512AA48AF1433942F14729598227F8384F8265A8DB55DC2A84FA265114FA26D114DDB1CF224DA1F81F224DA19B62C3D11CF26B981B246F181286B1615F82A941F49F64A2219F24894A2AF4423F242B426F842B427822DB4EC
+:806B80002E526F230984824C040000004004000000001002188008000014008480040000004004280000000000AFDB0D001564514301837621261445084231460147A149C824812344148402C3D2288292221062A48982B1120223D22122011688042351222C988811412031424C28E82AA4282A9948E05B41B32134A1828C32A18E242156
+:806C000012811E22381D2A00E1298A22F4124829C2211A3228844A2204184AA1144591845248904441841558426816D481C248686216828DF48214430448A14781484296C1286FAF0B48CE211CF81124209A481683C4356781142F224431492B284D1A644A932A3C644243E28102C688821A6224708174222891284C74629C281721442847
+:806C80001885B11244A2A489F8B14441496861424186E84CD22286E18468237F680A27121044F8A4114423C2248120C228002504288A544890221281A024431298125A8241C548522C24014043081E484384522868241221482981048A14628188AA8441F86FB50044C028221A12021820020021800118802203224226080022C012402A6B
+:806D0000010000441810420400100800000080F46B66A012222602408404112E18803118188032822248C011481024924442CB2180C41180AF415C28140432482A18C8A4121022821811120412D845084A0283F2FBDC20430421C02248001880012C019082221A04285860421024941420061823CA4A532844042830A418431842060010F4
+:806D80004804801C084860825798002822898292140019C12822C0380022180060112280A124660883026011A01418160848802104812818002282150200181844800258BF9C030041400849420183880224184B14281299129418848034846810440880968889C61410848102890432B014141882010084320018200CF0571B24009B12B9
+:806E000044232111120442120000448004902128120020840249220130A8A02450491244225084890248428148422143C428380044B028F418A2000021402111881142C1188400200220024A014E21400A80115222440021182420383281000040088189A1482004440040F4B51124001D1C61211D1244458131CA1B12834198121664428C
+:806E800012871244288C2284B1C4A2422446342880B212748A04B60E482C4108A326225284CB2581214648084E1AC6A821282844E044084B424F7D0400229018A01284000000428082041648212314018400126128B04802B0240147129249418801004212C0480046C44818120040F869D900000000848110081800220040081008001260
+:806F00001088240100000000100842200481002004000042D0C80F80220240083828892141088C01808101181222428022021AA24118002021011812008921010084484810084028044242001F8505000010082E18848CC1188022012812188081814288010012182001008C014812003018800448488100204408008084D1BB0685386898
+:806F8000280000800241843AB228220200404802481AA1319A82816284581001128558888B544A24048C01005084A04240080048602442A0112F9101000020022200000000000000100880040018002001000018000000000000000080F4EBBE40C8684A8204402891184014C4242828000000A502211688298808486014111484848CA40A
+:8070000041481800004014E441228202001800250229F148BB70280848800200001844182880210140084221421880084881001400850848000010081244800300000010023DD6000000000000808201000000001A0148000000804188A14120010080010000000000802484F1FBBB002200000000804108001280810200424800000080EB
+:807080000100000000000000000000200400BB46008142420080820112414303220040084042A21120212808001031118130482004008004508441222200002064242412EF43028484684800002001CC41A4212800008400212981A11189880848204441214148888424010000124444282800000010B242E1550A2200002200000000181C
+:807100000000C0488C240422800410080000200100182021010084482001000000F0B6970000280000000000000000000000800400000000120080012001000000000080047FA302222A82820240A823120090180012128011885488202422044810882104121218181200008001180000000080242404EF6A0828000000808121110812A8
+:80718000001840280242484883044800848004002081011A812181418801811212000012008024F41385002002222A024008181A21818101004048880481004608424A042081810100182001200512102804180000424880F44FEA702692222AB1320129012C5122881E1317118B988659888F18F44848D09114815489814E4887464D4436
+:807200004AE24622E24202284514A4326722212AB112A1812B99C0922582E8317111B188699D85B888F44848424E48805488814AF4138AF022222CA21212122180512229C8191B1119E88919D8183448429415814458888CF64844C9B4442222624280425444282F22428221A181232888512229C8191B1119ED89381889344842460848EA
+:80728000848588F41857000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000000000000000000079
+:807300000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000000000000000AF
+:8073800000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000000000002F
+:80740000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000AE
+:807480000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000002E
+:8075000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000AD
+:80758000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000002D
+:807600000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000AC
+:8076800000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000002C
+:80770000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000AB
+:807780000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000002B
+:8078000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000AA
+:80788000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F2A
+:807900000000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FF9C
+:80798000E40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000028
+:807A000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000A8
+:807A8000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000000000000000000028
+:807B00000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000000000000000A7
+:807B800000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000027
+:807C0000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000A6
+:807C80000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000026
+:807D000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000A5
+:807D8000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000025
+:807E00000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000A4
+:807E800000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000024
+:807F0000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000A3
+:807F80000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000023
+:8080000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000A2
+:80808000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0022
+:808100000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04F9F
+:80818000FE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000000000000000060
+:80820000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000000000000A0
+:808280000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE004048082042082002228082020028423048000000810042422004C048848C44288104000000001212521200BF1A07228302101818288282022817
+:80830000400881222289028913088B4148422041283148891448C84830488C0142203448A041200100001800001A24F1F25F00814048082889022800228100008400814858200412848C018C04480048180000180000000000004880015F5B09282200000028800200400880028904848142000030482004008120240484482001120000AA
+:808380000000128084F1C3480000008481000022000000808203000000000000810084408804000000000000182001F011210040080000000000282228220000000000000084844848008140884488240400000012180000F0927E000000000000000000000000000021000000000000000000000000000020025FFC498251242822158873
+:8084000002218C02201218881182883124844128478222004622A12182C08418A10020288201888C3114480000440000001212F06848100418246084156886E0841228142144881BA482A016200C428481268802CC24D282444884E444381484C048818C048C9482AC2488314818460889288298448841889F86051845828312B84812F1E5
+:80848000422883E2840262811038A244324162446A982C40088926A2218B84222F4488514A42406488281E48C0C8844D5829CC4A8011684181800888A08116048F8202610050121008008140C14818128882281608002A048490121004848100492C01008420010082800448408802460420F8D79C702202C0242681860126922187242863
+:808500004E12C011404408321880024C02122A24810100200110260800200400003034818281829800F0773A30459024504216D8521268C1841E21C2F081184C348213B322E14582742124054A4AC2284D220068F0C2141824416314044116D684E221B4245148822A9C8242D0C2041E841AB24438124384A45822AF5245F24124004912D5
+:8085800084721205222D218D116840C91282128443A612321880CE262216A2421272241A84012931425042002628153444824A28083042221E881AB2888461488021B2D3051032242419C25828814D1881662268258A71440153923212481524840210C82400004908404444048674144244A22184801222048594144488648252484A0876
+:808600008F880B800420322281140060128F284211086824826022830541828A022820E2220825224208002062529AA414814C12228C1224054800404A0818CC0C808492214E1844800249428481828121024C24221482C2142843644482814C018741E08401849052E460C1884100B01444E88802202C024BA4412522018CF138D9002575
+:80868000040011488041880848444185369481412A014C08800268002034184112424094828100281C024282248001840012802E02684F4A0C1084C2218B5253324800C382C811C6581616DC84A28785268A014F84C314414C86224218044E8283911C2B210044C9588285348143382181241A4CD8824884E5840890D4418B281E28B048E5
+:80870000F2B95E400200240019820180021200258444A44229328220829844422212228F4142220442241221A0124CA2161A044C068A0412004A0228304200B0CA0B2A0544222A2444248321227222021014A424824C82A28100282480820284284308800846080040820818210000800800C1162424F22CF314C0228982911459A1348D53
+:80878000440010081D128122C0588311346400204602822622412242022422002C21921220213822002186B2242908901481214082F4BD49801244521481261288518111189018A024C01A1AA28212220025C22428244542C42220220160228145024002243012001E220024189022B0140240FC8A6540114241921446088044C269114854
+:808800004412818880044004411024021602A21022110800468A88042112848AA143828C0323C124200882848A01FBBE80C521C0480013C2682844812982420842884288444C08000000814424820000108201212A0182201102828008121012288184F1198D146508A74241282146044082711854241B21466448228244A2181218400252
+:8088800044821A022100004C01004440A48140244204800880180812212D12F07459000013412963A1341E4C33846444892494121280826524409C46004C1202004082D12202218006121882A021888288822011C81290128882A8830ADF1C0C114100114001282A0448258144E8840200C8004125140424002008C0341882D02202189066
+:80890000120082648210022002863284204894486F2E45420E19F4422A48C503411514126551122D2C802955260000212229014C382425CC280014008429880440082E4A222E4260E2C072242C81981228858252842D2849FAB6F2F012652574255AE4CF12F148482D3829110487213D131A7141F56644CF49E22329B79A6A442BA45044D9
+:80898000902245C422AE822FC262E22F2AAAAA29011A887282526227258A21F192342D22822DB4128C58228B51B0181832122FCA11F42218F02842A374FB4EF2251245D21AB27A43B424F17D41D7C397721F62D692F22848C5DAACF5181898CAF286F82E14AA3F944D18486D2646F6222245942645922840022D2284239348804114426221
+:808A0000893AB1889414CA8142E2292AD82488A181278849F2A41C42472A8F784221B42142D411F453683F7142A4642F857742B165A5252F163412E086C448B04414E44241C4122243022342B41891121066214B13246C48A8228127234E1A80DD226A232F28FA22229AB882D842D122A13B2CC8228D828F69B818E8C9EBC1F6E9510014FE
+:808A80000000400300008044026484248C04488004005048C024C024214C028E24818E248344344844830483048141302420420400F0138824476667E6C556E59F22F27373AF65F643658FC5D365F25852A5F35A1455F5482AED3EAB75AB668F221E6A248F85016B66422B262AE22242E2A3F2A6A667222F6361414F43FB3694AE8A85FA32
+:808B0000B6B64FEE7C22FA8AC8CF4AF75E5C8784AF8DBD68F6C88CCF89FD1214CFEABA82B994FB92B426F296328FC1A19C6BCDAFA1497364F52565DFA2F2256E9F82F67133AB359B74CFC5D765F2767E2F33F3527A957F48FA26F6ABFFEF42F6ECE2ABB3EEA2EFC5B154F5767263F466B66F42F224A245F63C2E6F6AFAA7832F61F33225DC
+:808B80004FC3EB22F8C6E6CFE2F23E3E6E4A4FEFFD3E7CCF6BFF565442EFCAFA3A322F2DFB94C28FC9F124A46F4B3B342F49DB24B2967B22B4D8F9DCD83FAB42F375726F52D45CF22F2C85F8795D8F85F5753FAFD5F53E3F8F51F72B33AB75FFF1F15B11CF46FADCFCAF85FE54DC4F22F89AD82F41E144E422B122D4245E266D24AF81F378
+:808C0000142E6F48D872FA12126F22F296BA9EB229F4A4A6CFE1C3328F25F78E946FCFB3D2F11454AF42EB83A33D1ABC16F1BE9C6F6BFB94828FCBF93C1E4FC9FB161C8F84F9CCBA5F5E4CF175767F72D2ABF2772F8FD4F6393C9F27F36F37EFD7F73F3FBFF5F72B332F85D5FFF15F19CFC7FF9CFEEFEBFFF6D84F63F99AD86F41F114128F
+:808C80006E722B624F6366224F2AF236368FA3F2A2822F78FA12127F21F1B6926F689A428FA8F832126F6DFF9AB2AF23F3F2BA2F2FF91C5EAF4AEBA7F7D292AFA1FD9E182BB12F21F996922F4BF91C3AEF89FB3C1C8F8DFDECFEAF6C07250141844D11484D111E484522416381141648E58144A4412041244104444014429412100229012A
+:808D000018100221400226224102249224822492850285245148825B92404254240084211100002411204804888008001002004528180440044440C4121614A428412002100412448244008042F1C54AC0421F4152281F4132481F41324A1D24AB141D24AB9419B24A19B54AB924F44A9143F2429147822D914F82C4914FA2C4814FA26481
+:808D8000114FA27498E1A26459ACE449C24A1F49C2421F4952281F4932481F49324A1F48B24AD141B24A9921AB9451AB9443B24A39242B94478229F92448984FA2F4DB66E0A2F5116487221F413E681741A3C6242E111D6CAF429961ADB459B64A39244EB3842DB14F82C4B167821CF9261A1CDBA4E811F2244A9E212CE459C24B96D5827B
+:808E00007491CCC21FC154281F4114781114FA9124A9F18124AD141F49922A51ABB441AB94412B949658426F8AA4146FA2F5BB3A4008000000004014820200820000218001881100001400004828000000400428000020021002B732C0412501119021251854818A8272422174444182122212322212222008411812459A2884240000279B
+:808E8000288288230820180823888848024100604400188CB4EF02001124834244042912248881A881308481614820082826142E82140440C2C8411002400228922C8801AA250120118402CA2248C844414521F25E8CC043130414833221C145D281A228499A422AE41448E242582A4C2214E2212822B29412684858409C28101B0281A032
+:808F00008421252202822B1881724928A88240C424A0248885642441B018B44D0A00141042140240041381381400002122004042240249012181C844244002888288920020981200122100828044044C2172440300301125018184424810011280F44292322B14C02422001002B0185222120020C142442116C8123028F048828426022013
+:808F80008881048028E24472242824F8246990371CC2252362C62C422194343B2113E4829C4186183484C30247828564885245E884D848E282542852444E144598564783444634861812D042163814F3423434CE18C0482D44C646D684C98C8744AD84828A256A82CF4A024F1132212829722884128964431CC541A629844864444E882C2C
+:80900000624684262C14C84889326AA4122A01CC01874280D1228401A42810742884D842810E87242035444D1845D8849C824B4AAE58AA84F245EF2400457111324110126824222044618160284D32188C412488438418048054482D54212D5418414CC484641818564668A31487448CC21A008E444D82308288302C100483B8F30C1CA2DE
+:80908000241120C2C4418115842149A182002B81844A31888422464CE8211268881A64214427264558848B18290420E244921228400828414388D12812144884A21426781432241024F888C32487414281416011404468284483A121214CE18214061C21D1220120C1428E2444008120624460821229C48840044562C218284124A89840B4
+:8091000058422008248584048F960D42612596212038682B423844141082240448AC02424830342028542883C428128880021062417028221184C85241206188004A2128682A1883A8C11048F2F78B14633422644D212249C1426289416219972112C0442E92C9C43A8A612410E84122F282424B424D4A1E484D288F24D248982CCC2B6432
+:80918000221662438968A11E244487684F22812182499A888248E042E82865884B182B4B848D44F09781E01A41541A0019342CC447129604C082482CC14880541816A8344914088184122490120042210070248202008C342444204932148971841822824348140482FF6E042C03844210B4221118D14248412141C48849081A9818848223
+:809200002068612A18082938248A51248908884192D847282492141F22C88440849828448286182C0241824C2102846C4F01415C024148244841114A8118841482440440A41481202A8468C12662248362814112A08100400441414008001820028D8641522188848F2211F4E15B7081845241CD2100841C32121885061D82141682042605
+:809280000623034440185822200121296221644C012800488118391828012311886841206841107214024480F4132E20040030811A044224A084298414C588AD14214410020010044D8812004140180850841280042400846445086D122200000081F0956B80028C02004D28441861818C8142C6181028A28230281887418512440210584E
+:809300002C842200804824410240826141846400841A48421844086C61435814EB3A9012491232614C4495418CC14114190C8083021883012412851402280025288208D04801008100186432802212C8248282C02888222F281234889026F06F77400212409158241C448404152204821604418B414C9884884800C04C00188626A428884D
+:80938000267414A828C88CC28684818281692162685022002C226941A200B084F4A3121066182301AC084581024821A37111824812481208A999241288444141124100328484A3214884911888708108442614622A8812E94104200910882104CF74049418481081082C0112184C041CD3410421302628A4826528C21A818832A31104324D
+:8094000014441226082A7416483C12E0A204168A41448812D842081068A14018C6222F6302445F286212815188269423692481EC116158867143B342D124712A4672A2F6D6AC8E148AC918EF825266E5FA261438A528DAC8F58A1C828E284B2187484F8BD14891845544F18428644C11C48227212D84E972840CB012349416C21885D142AC
+:80948000F49228244F1272B2D44CF3616186764DF21C38667C1137471E1E8F84B45144F61C884D8A27818CF26E8C8BA12A91888D4C8B2A428D88449EA887C34F2812BE366221ED144B91A2582CF89422A5DE827181D262B838711AEA29BA22728C7814EA6891288FA27284D26CF1229886FC34241AF668824D9E143F250137814187141E1A
+:80950000451F34F418534AE178754BF183822F22B157E54AF1884485B494A1314D1885721418546486061A552827241E941E3E8849E28148C4941A5A4827849A71D8B33E9A586D2849F22A1887884CB988E181B822F896842F43E98248969E814FC61174EB05C0110048180000822440820482A04880044890428004290CC8A082003024FE
+:809580009084A08484002200400424008281008228FF3604BAF3313C4F43F22425CD8E1F71BD78F779355E541D1523E185E141F514144F81DB22B41AF136322B337EF42F83F754DCCFC5BC5A8CEC24A455CFC5F5144C6E6A4F47B718A3111AA1BB8AEA89F9B4344F41F248C83F9DFDFBB14BFB9E942F48F88EB82AF23814CF48B994A828FD
+:8096000085F828B82B324FF2F28694BAAADE2F24F4ADDCF071733F82F62D285F12D6EDD8F9F869649F57E641F153156F45F159192F11F31717FFA1F94A42A5FA36322B334FAFFFB6726FC5F51C9CCFE3BB24FE4C4E2B11CFEBFB346C5E52EF45F539316F49F982958FCBE34AF2D4D44F6BFB1E2E8FC1F1171DBF1FFB9CF22B992F49FAB2FE
+:80968000B48F2AFA32B86F69B99EFAA286AFA2F2283A2F81F135BE6F61F19288CFCFFDDCDCB50F2B553F537716F12C298FB4F45317BF85F7517D5E541F34FD8BDC9F8DB9837F13F3979A2FA4FC1A92AF63F9F2D42F4BF8FA18EFC1FD1C8C4F6AFBE4884DCA4F61F13C3A4FCFE1ABF7B426CF5DFF92342B994FCBDA44A279CFEBF39EB2CFC5
+:8097000049F18183DFDFFB367CAFC8C8168FCABB32F39AB2CF68F99492A6F2A8A82BB2ABB34FAAFB86946F43F32458AEFE9FF645F1D577FF41F31D2CDFD4F24D4FBFF5F55B449FC7F713167F74F9CBDD9F95F912D17F71F59F9AEFADFD9A9AEF63FBD6CE6FEBFBD614EFC1FD58DCCFEABBE4D8ACF4565EEFABF2F49C8FEBFDB216EF5FFFA4
+:80978000B2BCBF89F9B4BC3E344F4BFFBCAEEF69FB989C6FFDF5FFB5CD66EB996F62F3AAB88F2BFB1AB8EF29F1BA986F6AF8AEAC6BB2AF81F936BC6FC1F1363C4F83F1E4DEDF970E6501418445014541188444E388448344474864818526584812818285145248218514962841816180094B82844D12844D121245628126628824844484B6
+:809800002484649281128524F811B9400200815022112412000000290129011004840000441810020000244C0240018880081880295A482218412002F09DB4C0421F4152281F4132481F41324A1D24AB141F48F24A9219F24A9251AB9443FA4A9143FA429147822D914F82C4914FA2C4816FA264114FA264192FA26C59ACE449C24A1F4952
+:80988000C2421F49522C1F4932481F49324A1F48B24AD141B24A9921AB9451AF443934AB9443B242F9244829F92448984FA2F485A8E0A2E541F428121741811D24A37211B44AD141F24A961B218F64BA15123824AF1419F442B147812DB167822D114F82C1B16FA268114F82E11972224AE5B2C1252E5A1FC9E222F4916CCF22B11116F87D
+:80990000112423F28124AB1415F44A9419F24AB411AF443B348B8443B242B12494B26F82A4946FA2F15EFA004388440100000044800200000000800188000040014008000000000080020000005012B01906154201544064246C1428847188220482C371A3A82428818A2102262252244331280029018421435124002189681860488D114C
+:80998000CC0419024285040049C8868C110885F233D300B2478824603119A28318122BA43184E12120518221611004824F8804502488C1C5D22868418502A0384902444548C82288828488844C084F847112544819A3144E844964114CB4F84E11B1C1434801441CD242D782612449562B66482268813B1A2D482C424482021A32E28694B2
+:809A0000168D2429484C3489E3119A1AB0426822308414842E848718C845C82126684885C45423117C14E145D8E21D6C1156FC186340024948143211232408129882244508418122218498412058480000248311024014A421411068C80029410C8280048444800A8004F09D67002008880080080000000000000000000000000000000066
+:809A800000000000110010011400775E004271442A9128344221844B312AE4180870129A1448173A29482481F3C1481C088546A835481531864C84B128A28410032E14C9C2834221844B13688E8150221698148AA4824086A1214E48EF310862301718269428544249628129A14285E38818A24449238B0874A0249E884815E16242714892
+:809B0000B81144388281184E442A0A711E14AA9868460160816B22583490824E48419AA1824006281EC8CF740A008280080088000000000000000000000000000000000000000010010011400170E705002490188481C4C028904142120042A02448A5014C224214028C2481644900008844809218820083448881162898980000924C01CA
+:809B8000A042872D001D22112223F242122C212611B2484248DAA1C8124338392DA28D1220220446E888221632161088744AB244120C298153248F616848183E848B834CAA84821242CC34448B24C3C19843942462E24924F8E9E30014112C8262858331421098288C042D8340E48452228B144839022889942C6821690148868434644487
+:809C000024181614F48228278882418CA12882125A028F4894444845988848800480FEDCCC002C0221835122D084C212284814839418182398118A8212122814248218024628412855822184808802433114121A2A7A489448823048909889822141E44AC1344A6A44F0C5EE245393445568128410B54402542113C22214432104206A2245
+:809C80001223856121008C84F812244890148C912858481885442411048031488D14E28F2802908CA9E984E9850240240B4F74064088821402901A800245888218C816004112812B823014281C488634483082428241D04A0122484182245C4204442428492801491404C11002423D58400220011184A041182824110080988280A4482086
+:809D00009448248D420010424898648220480400818614884884080084230150426286B84802F03E77245B12414C82414851818B12584D33228121884D184B148888A68465887A2854A422359A4829E4C384D482D884E182212AF442141634284149318486342449384C89281C5A421249F99648EC89946C884A2228F4CB684002859121B0
+:809D80002150244C040019421301502200222B14808104484424100248C654841288100440485281188081822858288480D44803814588037F3E06232101480023041004252204426A883C824184581840288448288228088008001008210028890820D848388481A08188102464416A88F8B1ED4082D2243129848C22222504811241421E
+:809E0000211221462422F228868F42382422657812C244448C64824C14D22824C842124420522830A6CA41022AA12424424B124220951842414881481F990E40144824440544212C02288441104402602862406241C28321044224426442604400006042184C140221482148299844214914E28234128C8261A29F3C45C241114800864874
+:809E8000992181C0858424894204A082400480081844B08801101848368821204402201948A8212884448001222002200240F421D2A0388022C222482986A42490223046003068228542C8188183422802212002222143884494421008281614440422888481802CE941822884816442496C127F1A018C8402240000304A1022A22434A8F9
+:809F0000C04422122036122224460840280A4218804188092821844800884084884204421A0228411A1482F41866400640784488421844AC18844C7481C8128848216045001654422418C088418260488918CA1481184498504800298108812128C9E82142480249532496089084DF190628201222120222604230282489088002882B1AF5
+:809F8000821028A828008B24801448041200004190288C11C8282044A8418484A02844490A2C0244181FFB0B84C04924140070241122CE448022028604A1465422100218442C0829C2182298146440081A14624200801118440438F098240080087012027F270523E21AC12285F1482C422F82A2455CC6841F62FA48421B828B482128A2DB
+:80A00000CAD824C3222E8689768484C2822DD8850CAE8889A6244FC8FC86882F480C8064282426AA814FC441B8288A120C2283394CABB143A382CB21AE341E266AE15831E24F2B021E524932286F22E432F42621114F427224C232A3B43242428CC2C4AF248AE442E889A51C4F8B41E28A112221E4C222648A27488D128744C3714C3412BF
+:80A0800086B4180169F22C3E1AD866484222E128F448844DD28AF2A446886F29A496CD4226986C8B25CF41F4C8A9341F4412D294C1282185BA48447348386E8648F84E4C2F2491C5272F4CF42624A784EF42F81A6825F4283885F6E864C59642EF29946898CFA214E221C4122F21843514842F42524830288B579E182E886E88A7868E1A36
+:80A1000046ECC36984CAE3444324B4466D41498CFA46A6504150C15041504118111819845181184388011882004212004220055220941442184298001082140223821482148214A24129E289D44242081608EFE44FE327F7372CC7B3F7B2B7A26F62F22F6D1F15F635266F28FAB3B33F31B2DA7846F453B17E248FC5F224A6CFADCB922F7C
+:80A1800068FC28D88B922728AD4A8D5E2FC1F16E4EAF8AF3CC5C2BC9AFA87D18FA584816F656444FC9F89C8E2B222F22F238B4ABB58FADFB9A9AAEA8EF8CDE28FA7ADA8F49F9DAF885FA52426F49F9FCD48DA22B448F86B6A8FA8AA23F6F43F375777F47763CFB2F6BFFE67427F72E6C1711DFE7F69793EFEB7B5BFB9BA37F55F156945E96
+:80A2000026AFE5F24626EFEDF3AAB2AFEDFD38888BA38FA8F16A6AA7E82F45F15696AB36CFE4F1F262BF98D944C1178FE4F144144F44D5ECB122D662E243FB1ABEEFEDF79A3A8E88AD2EADA2AFA1FF185C6DC2AF23F536D4BED2ABDBCDE6AFA7F56A68CF4FFFB8B23F1C47F155772F21F73B3E2F92722EFF2A22AFA6F64E7F6F76F65A7A57
+:80A28000AF62F24B733F1CFE58D85F54EC66F74AEC4F63FBE4A62F2AF992D8AF8AAFBB4F22F12E4AADC2A5FE7E5E6F4AF2FC4E6F6BFC8ED78FE9F95CCE6FE1B152F494D4CFE3F22828CF42F2AEA4CFEFFAFEAEAF88F9AAA88FEEFE2AAAAF85F79E8C8FADFD2E3E6F4EAFB9FEDE6BB3CD4C6F49FFB4E84F6AFF5D74242F27F31636BFE3F132
+:80A300006A2BAFB2F22E2E9FB6F66E7FEFF6F6EEEA9FF3F362728FACFC4FCD5AE966FB6AEE6F67FFEEA6AF2AF9DAD8EF8FFEB8B8C7A2EFA6F64A422F65F5E6666F4EF67C4E6F6FF6C6D72FC9FD85DE4FE5A5544F49FD2C3EAF82F226246F4AFAECECCFCFFF98B8AF8AFA68286AFA5858EFC5B454F564744F6CBDF2EFE7BC76FF7454EFC930
+:80A38000FFF4E84F4AFF4DC280012140024048824442488204408254481281102858482185145248410090821004403822842A290184228220011608124492440082CF480A82D022411888244408860C00848004604440244804890800824110421404612002C110242822A8820043181884220380323450143F97044D431F41523C1FC172
+:80A40000724CF11124E7141D24AF14D141F24A9119F24A9155F84A9543F24A9543F24293478A2D914F82C4914FA2C4814FA264114FA264192E4A96D5A4E449C24A1F49C2421F4952281F497248F29124A7241F48F26A121F41F24A9219F24A9251AF243934AF243934AF247B24D84AFB344889F9244ACF530F2E4B1A663216786821716A85
+:80A4800001AF1641F42A95822F54CB28AF1421F842B1478A2F347BA4E8147B36C8A16FA2E514FA249A5651848F1D7222F258254D838F5CC2121FCCC21A1F48D62CBD917248F29124241FC8F6481217416CF8116C2CDA85D428BB3454284B4B2C98444E946B4323B424F5EF9300800400000040042814000000100218800800001400848074
+:80A50000040000000048000000001002BDFE100549D141815214511038882D18211B184221212480E152088AE242648221422901233244216908C0124121490851421184884230885A880188824420384840C442CF7109248A115322812E18A12A15024AC8198189880421848484230420048544CA282428411AB418F22A4427422003279C
+:80A58000483082E04241E4422829420A96D882820443B844A3184B488E41887F5D4C51412B1418548053433881881A1C73B98428140240C88825820A8721B0843418226044F091448C9228C353426A61288614A184112E1C86A4844928E28A81E128812A1C3484685E824C24B812DC3A04006523312A151C881442186A81C048215022841E
+:80A60000185322044E242A04A450A22827224421126D42400241502400004C8261884602818400309481824604DF750D4100442511115C41A0688714841C084270423284A100410050244072D8D48228410241108212C4284014082492002C08A1418D82400481824248F763701251613C1811B422B54162228741A5A4282B8281A11E814D
+:80A68000693684892692EC4B284AD248F82448CC0646D4820426D12634884B16824914C494A14F2811C82A8AF4924E422218C82068481EC24CE1816C29472A482AB41848F4C4BD504154344005891451848E48890C8D81B041394444460C42444284444E2844655228CE14842B14A9C81440028A5142AE140084CB1C242218482486C2880A
+:80A700009AC4161A8449142282C144850C2941825861B053C22526741292242631AA248124222F24C8A28372A8843A248634684120844498A341B022C4844614342481A48487628A5422428A01828840542489C88845A28283243CC8F0F27A244128544880811492421002286C048048423818861462444C4822442462240016C9128302AA
+:80A78000682C44B8242881948CD043041F4886A141488B418314024C98889012C2412794E01452C2128924254248E1119224901589CA98848B84414982024AF2428420358A4C8836448611486A14484CD82454284B429200282829022E8244488A1202214C846A8244651802A4FF1404400251400D008921C122100125B41804405412812D
+:80A80000841004402242B4142C126825000018501248800812A4C0140016384448A08189C21CF0F121341D446D22165418424F92618425A221412391112D884F2419F842844F81C422848D141B848D844CF48442472844412E441F221CD884E981D628E568C442244196A892B041D28424D2422CAA698C9482569458E044E144624EC192A8
+:80A8800089B39844FC5A29200A144418001146E1810228508140881884022D2448811088A42424102414022E18442A841242C412E02208145012124E1240C248A1828182A50444F04BBB40141814128CC449488C8144013784901300244082018C110824209442728118202C01A081200123C841CA0112200421186448418901843042AF99
+:80A900009E0548008428154414281488820487412813211244B2112422211201008328082146284864286A11482204C651942B122688818496824E812A588220A8188A0240086F6B0A8613455514250221CD2240354C422C014824248C0118A44C84841402122110A221442110021A44240C008A042C044004524CA11C242480098A31844C
+:80A98000CF8F410181818420441441841442218A168144084265088361A8887054880418448812419504748889941446286144A120D28468181601C1299824D084C284801642F849E740644600C485440894A1104139184225042C02484A880889840820B282042182862828C892201808832888311280018A24018924CD480088160884DC
+:80AA00002F9806008CA4342860142148E0240A484502302420442852482A084821250400C30810120647288100490422420027128381948810C216802331442981F2BEB8C0183129011C9181181818111CA1829210A4128C41118882419114801169811905C01222418C4302122A35858591111326E8823818178252509414502882409447
+:80AA800028228942E66D0D48821082042444112912C28A244641826428414004424984022994442514B44228120E2140441204100811C0441582190248440088255248212641F18BC35083183954341CE92201116144244480E2410821908824818A12C28258418CC8186042114E821C011846081C94122DC42283124464922A4444B11801
+:80AB000062518820618181283086889FCF0A25328265FE4E268E15DAD265D4A5D46341CFC88E811F34D286F452E27D422D122544723CB612B582F45414242F2458326D466F83ED28F122D689A2A167686F44E8284134122D1AFF44B544E188E152B87298441781172A272329B4417144F84E148F48F84212C78247412846E85A52E24F2CAA
+:80AB8000477154E41C621170155814A711224F153447423D6A29819115128185B148B443C48847458E488A8C04837448A1C44B242F924824D1893212328E8A1624D98AE454F649288E418F8BE866C6288E415243F881F1926B149A28D88271B8BA24413948FFAC021D41D7E1911791AB26BD4646D85A518889F62337428F897C5946A516AC
+:80AC00004F82FA24122D888CB128F228998F227A6908CFC5E481415242E069F1CE5A8C68294CF8C7524CF58CA18819F819824F28D449B34293188F55B541FB8D918FB17418C6883E42C9F412968BAA2D9489B618B9A4F818A30000002E124800002240031C628114123C021C02144011420114412818286119128412820250344800C0484E
+:80AC800044822422448285022088F2D7AE241E123E3DAF61E163F2183ABF83F35458CFE4F41A1CCFC2B2D2AB3387C6DFE1B192FB26373F3AF82323FF5CF828315F7EFDE1E19F92FC2A293F34F84F5B37114F22FA17473F13F6F4F44728AF83F32A285F5FFF91B35FC7F3B8AF4F42FE49455F57F735341F18FAF9855F43F365319F95B75B8D
+:80AD0000F181958F5DFF7C74CFC3F3C4942F8BFB3C182F63EBCFAFBB6556C22415F2367CC5FC35361E56E5FE4E4ECFE4D44AF42D277F4DAD118FACFC1F172F29DB76F18F8F2F22F2CE8C87B45F5CFDC6D4CF81FDB8F91D838FEC7D12F62FEB77713F13E64FED7BF3A6A6AFB8F8D8DC9EB23FC3F79C9FDD8D9D45DF5FFFD99DBFB8F8EBA587
+:80AD8000DF53F75157BFB4F573B11F5DF9D9F16F25F55A18CFAFFB9A98C7A12F49F9FAFCBEB8CFE1F9562A3425F633759F91F131278FC1F32C2CCFE3F77E7F6FC1F12F2DBF4DBB79FB12FAD7E13F29F97736AFBAF83C3E6F4DFD2D364F5EFDE2E48F42B821F348C9CFA43C127FB2F6D6D64F4FF7B5A5EE6B2F2159CE4FC5F5F4C65F61F786
+:80AE00001C8FEFC9F9F965DF55F52D2D7F78FA6A64DF43F3793D9FB4F75BB1DF59FDDD55EF65FD1E8C6F49F1BEBCE7826F8FFFD2FC7E78CFE66F22347F71F13F3595F935378FE1F73E3EEFE3F77E7FAFF1F52F6FBF4DBF7BF7DBDAFFF1F1F7937F67F3BE9F7F72F2C6C4DFE6F7E4D55FD2F23C989F8AFB48C9DFF55C66EFAAF697976F6F8F
+:80AE8000F733274F6DF4B6B6FFEAFAD2DC5F7EFC9BB6EFFBFA9F9D9F5FF6DD559FDEFEBF2FAF4FF63D759FB7F36B7BBF15FBDDD5DF1FF51E16AFA3FBBEBAEFE9F93E2AEF8FFFF8FC6E68CFE6FF39CA1002454158228C541416484348A34914840044400420784824384870489412423998284B8210029890868423C2481CC8482240424894
+:80AF000081442141E688842231489228B019038663411011485416482144000025062441251224840424009044426D12D0242448E244128412AC2800F09124A04142281843282402824426E844229818E0C5032CF4112485F2112487241F41324A1D64AB141D24AB9419F24A9251AB9443F24A9147822F347924D812F924481CF9244A1C0E
+:80AF8000F8244A16F1264A96E1A2E459C24ADE24ACF491242D421F4952281F49724AF29124A3F48124AF34F18164AB9419F24A925B48AB9443B24A39A4AB94478229F9A448984FA2F4D955E022D4C1F628421D2487261534281D64AB161D64274615F44AB249764A91452F1432252F3492452D2179D412FA255A1CFA25DA16F127CA9E2195
+:80B000004D4A8E25BCE458522417C96D431FC854181F48764EB381724C62484D138AF24A1517482F243B952F6432848B94437B4A3684982F8AF442144FA8F587D2148400000000000028000000000018800800000060824100000000400428000000001414BF5308230885C21424D1478426744804238828C814334162884CA1C14904C47E
+:80B08000122C024284C484211249040040C4822084582212419042800CAB48214246D882B884A416C44A41F8FE76A0428621014488213412CE11422E11130483FC12244914312688822A0C0041656232400430824C04131402709204589C3858200200D04888016A0141181CD824F4129E80668416D842417482D94A342149F181124B488A
+:80B10000181B866C91986B12825C21E64448428421038E464425111202176400811143C4822416242811C95C9066204662ACC92891481638442E4283C18116FE576B101201004440344A48B081026014704A042D9480E88A042400814782814112209844C04200A084704222090080080042B0422AC814414A81F4B41F0040020021001151
+:80B1800021800142410000184100001400004800440040040000280042482908002901188488F09B36142428C0144041D824821404001324289288418A14044280143224108C819416205182001544220800104884412A085226044CA284C182285048AFBD470122241604112578242244018081A4844189084A081004108202C112424C08
+:80B2000021C412400454400400404804842B842CA4940045225C84882888C46FE50D100200000045020014800244402481044240140100210081004082080000221800004C022812201108F03FC60000001800C02880440800810000262414048042180842184200200181890100C9080080080080220100F0F3E2001811412558122D44A1
+:80B2800014808C042008840010822418081001214823441408C20000101202490181848800A0812281248504448092F40000845100000000002B18000020014002004470220800000000280022800400001200200248447B2B000084457112714204B028081028082F8148081082E4411A08241124400C678418484A082001A48C110249BB
+:80B30000410448008820010027C1224448281F5D0E204141140A10014842480000000000424100288442298442080000008002B0284818280800823884280000417F1C010000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE4F7
+:80B380000F8004000000400428000000002180018800004001400848000000004480020000001002183F5F0B0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000000000000000008B
+:80B40000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000006E
+:80B480000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00001004400200000000008200200400000000F2
+:80B500000080010000200812000000000000EF15084400000021000000800100000000102401211004000000000000000044001A040040043F5145024444241240810400881012210481200182000010410400810000822833084311228841018028110229084A0100F02CBD40141404230190420080480211184008180000004112442149
+:80B5800010440800202802604121881811004014022B41200140042FDB0D210000400100000080040000820000100100000000002D810000000082180082800400F0D1F9001062818002844642180A00462208100A280019440410251406414448400214D03481521416C88200802808122018C848A18481F05C61D0364244012E1485321D
+:80B6000021428D214A68188CF8CA1147814541791AB62DB8444841A4C2428608344D6280C842263C22C0864165113432438814746882F848241A68284A9118581E8125A88146F214428624A71448449E1124176244218441C02146D818F2824883482805241D8816E8A88204418A069440420630468C0244C2214130224348218286684876
+:80B68000829042124AE83801128682B488343A8484F0C496004021817328022004256128997818D441046512358C112280844C14A14245A14850264C02444435129411B0145442D59218662A212891881830188248C72141424A8114D4FA0346E1C2412D534180522883012318A42146189498630827AA2245B84242311C501C1483D4852D
+:80B70000224484C11816022C85442489C2C92C12B8882144DC21C128A081B092C4888844D0822891681F734B43420848404208115290242932118100100150C22001008800404204148004838211440814844480028100002C0221005B5C804201C04800214841608188002304410023884844810200001400502400100100004118841211
+:80B78000580030123602845048F09AF230633605188C04AD22D0126145828723921445C89282609829024F844A541428401118211485D184C112511800A688F2448989124239448185628142830929C588D02402844558287FCC0E24501C2845014038481002E08144C24844412902AD844041085508488D24002400D02204411381014020
+:80B8000088498831112001C082122C0B8182182AF4255E0048844410424288124104844283024648184184082820088501444018420441114304002C488238121490814418008001A0812220E4F74601144C024489428484D4484282984410843484004611645211260126015021C084414034812424112110280442888091822938828618
+:80B88000024008B088648318FFCD0390182614414A4C5468281021622841104511215812490100C4205242842114212C0840140188800110044A0843210122800284100684BF2A0D0000008C1442AC48832818822664864124482A54818A3482121CA148418088040024121128481446140193019014563461911A82216921528281C08A82
+:80B90000F0B7487082850249024312022481004C022149F842184D48D15012002824264241938124124821450800441411271264141011140A863116844604564882180426D17A0F009018250480021502D42394281504200A4988487112012F18420148181001804882841801800C828212008200498841488411842602676A1448410095
+:80B9800042140012C04A2018210982200C4844864425C444004964188886A48110043488A84840414291821C48440214100280069882F0E47F50428424D08202114100440080C4891188431182342284231424512414A0828048A2480061414F81144514644241264C132111644881444186948C46840169F15FFA1041914884005021117C
+:80BA0000601185341969020046018200250418804924440170240125518280040014181416024831281480080018301284EFE74B11B681F5242E8D2B674275D4A454478C51152F24C18AAE8AE544D4C8FC415CDBC21F8C897815B541F88CA12D1226E4145C751D44462FC483B094A8482918722154521FC9FE4441255D245CB384F491847A
+:80BA800016B6D85164EF117884A4282741C9F25844CB9A47418F42D3981AFCBE5250119C12381446D28812D288D25234424193D81C914169E7147288619830814A7C241581E488D8212152261A5831D3C842C0844D147C54221121441F2C5811B3581110D421944119712381A918124528A49843C8122D1A57EA244C544840548822542CA6
+:80BB0000A4228F8278893D222F4424F4418853988646D274F4466527A8284CF125215D434B228341B185B4A228F186846C52A61513F1844143481181C3441E8227412D393F185C122F196B281A59AC4B842C81497842B8522C2B77310910042140824481442248814482048A44C448248460884425485482D0820825082508000081100C89
+:80BB8000C1102C18285848828182444024088244AFC844A1441FD2D228F2183C4AE4525219DB221AF381A1DF9DBD89F8FADC9FD4F499B19F78F8D391CBAA8F9DFDC4C46F28F4ADECDF49F956488AF86D799F11F141499E919F8AFA19114FE4FCB4B48FAC5C511F14A48C8F88F838759F3CFCA3AFBF98F82127B5F3A2AFFFB8F882823F5A16
+:80BC0000F89D999F995BA42BD5CF81A199CF23D3AAF43C7C3AF1362ADFFF091B445F5656A8EFC3B344F42E27B5F52D24CFC1F38DAFBF9DDD8BF8DAF87F74B496F98587EF8DFDACA4DAFDCE4CEFC8F4AFEDDF49F9647EAF8AFAECEEAF21F1454FEFADFDE9EABF31F1454F4F6BFBC8CBE5EC24D4E7F48D8C9F53F3C9C15FDAFA8989FFD2D316
+:80BC80001BF1A4AFBFBCF8CA9ABFB8FA9797BF19596CAFCDFD1414DED8CFE6D68AF43E7C8B33CFE2F2C1E6344E441F52D6ACF21D3F9F94D6767243B161F21B13BF18F8D9DD9FA8F8DBF9BFB4F49B919F38F8D3914BAE4F15FDC4C6EFC8F8AF8C5FCBF9E5F1CFA8D8BFF8171B5F74F49E5BDFEAFE171E4F74F43EBCCEC615FF45472F28EC02
+:80BD000088E8DBFB8187BF7A5ADA9FFBFB9396AF7AFACBCFBF9CF493B35F19F99D11CD822F24FC1E1A6BDD4F23F31E18EFC7F73434CFA2F34C4B247F44F4256585FA3F3FBF94D67E724FFD6F2CBF37F76A63BFB5D5ABF81BD9FFF4F4DE9CDFF8F8DE5DCFCEFE9CDF7F7CFCC6C51F56F4B59D5F7EFEC6C76F66FE363F5F74F496D35F6AFEAF
+:80BD8000171F4F74F43E3A7F6C5CE67F64546F4FC8E8DBFBC5C7FF7E5E577F5ADB57F1BDA7373D3F2CF19393EFF8F897854FE9F9DADE65F6CEDCCFE3F316944F47F734A4CFE2F2E47E4001400840024521088414842008119041308110011110011100800814400134004002341224000000001228F0318D2008401858814601458244419B
+:80BE0000988A19048A448104459888824484508250858581088C48444A44028884851101842561889886D81A011C499888802109844C48F18F79C0431F41D23CF11124C3F41124E3D4C1B64AF1816CAB9619B24A9945AF44F9A448AF74FB24482F14F934482DB14F8AC4914FA2C4814FA264114FA264192ECA96C54A9E24ACF491244F223C
+:80BE8000FD9124C5F29124A3F49124AF24F19164AB141F48B64AB981B24AB985F44A9243FB4AB443B24A7BA498924F8AB448F9244A8733F026131D6C8F1225F12A131B41221A7622F3914487421AD67ABA9146A24B8D334B4B2D374F8BE4147396F842214F88E554D386E854FA265856F12698DE212F92655C2D5A1FC5E2A2FD91648F2287
+:80BF00007411B42EB911F66E9219B66EB881D64AB181F64A341B68AF6431A4AF24A24A6CA3484E34678A2B14AE52FFA70684211800000040410400000020048002000000400140080000000040040000000010029F330B2511021441448C31248D414F24628160184A41026E1144112C02C155884828342245584340442EC282414488F0C7
+:80BF80008114302134122B411321481A0185028D42283241A30988C84F17064C224A5826112E18111400242E18C08318C50283122441280268112614611284899581224440011604901416C214855118472881132858122B8520012005811641F88D2140A324A43451C32361421568644D122222133512859451265C4128A5D248521C3A73
+:80C000004CF8A44213D28412CE4813D8419222101D345420011352261213F11182C958A12643F14288E084812282351A84122F81FC91583026004400851121841268811C28480229022001004001104181414448C482008270819414121C5181A344048288C012400218418880088F63082213119821148C021D2442124E821181824A482F
+:80C0800008908811308480141832181532588C052E1880A421241125214111612611660289A14142C0814100240041A048DF6748C1134502A0211D44314885342E918313724112B815D68258211E412B128CF23148814C221811332C1128254CA621182D44A021454888711412E885381847871B489C48C8482D461AB82A2D98124F843808
+:80C100008C421E24C1BF9F0D241C0119222314C32147A4281B8428844829685240324819014B4A81430230128587C42AC18502182304146081114146988A5E226E181C38418CC4488614A6412424498C084487686F6F031B214425081187529044D0841178120B1C68848F216488111F2128322887118064A8148581C21952B024212394E2
+:80C1800034B01252C380C113284E11844183959840324196E2822888115884432483F4E54E6044261981C44880045240744AC2688A841448141304415A222181322800002C410410A2242A04241A064829012C01182818C0849018822502181624E45B0E2484241A0489410414B1945381721252284E128440283112A918E12114043288E2
+:80C200001816988550412B284528884498A8A4411E8414A7118D4474228E281420B2125424844C04274840F29E9400504A15480229420218211011880112811A04260800241425110A44841A0285041125021C01B484C1C260881421884518CA882143018B41C048446FCE0F421415781288249122209413253912158AB41874425882B01F
+:80C280001CC41236E8844AC1422413F22211A112C45D824942161892214068918485D728511C27954F2461881D226011C42B821EC84CF184182934184C698145D2C20F4582121651288443042D1184D0813442961822C1161508402481014C420800188381014B82442C8C12A2282F26014B841288843412892808455822842141230446F4
+:80C3000084E4120500240000901118128D111A42E282C14140014443416811489082C0381841D012140A80014088448401101204008D42400221802108F09B4A40028124404821146814C0421419044481A3C4114052410082441648114208182C1128014014124141C2A2441418A01A2D811841839488445042109684FF4A4D0154001063
+:80C38000013C04C8810000501200843110485812840000311200442004E48184918185440A14418223C218005818824120F8FC14801408121160842921240183088C2224AC14460212601120C21214114C1481C1125048242230128113051A0854101418420288252211044124882C18F8D52370810400100800281260841411812D112301
+:80C400000241650800005028000010122425112211F91124001221891808148440D28442B42448048A42B1724F424816182804008511384400C64292113018A4110011118100140000A082124031181112200146888B81C911182981928880182A0818484E7A141810914525C24521241642012E5100120053181198510085269448168A38
+:80C480006184A6D112A18200143B282244201842480234425C14022048A41840028100EF2243C216283502004001000040981281103A238866D82848B1488801D018210485227241286A224318A228188242821008A94401C82449015880A12480F3484B4049813468913A44B22421542C0029C124148400121883A418219011908280349F
+:80C500001920C2111A582284C0C1008542110918E048239434E048042490C2C0142942F436BE245D118E24F04B52814E24A45E512711BF44FC14188D92182C7418E82151329F12E5817118735A64C312E55211ADC295B219E385A11A115E1189E1381892216C76127549711818E1113129859A17E4CA7981E238E982682245524C45742631
+:80C58000544621148AD8510856543FA54B7441F119491CD423D288A42123F4516816511D2CD7425C8867243467C288A11D818CD2A2C8191648DC1A54392F2131A21E22485F69B3222588388417184F58724AFA84892744148B15846B11419E52CDD48F81F922921AAD181A69428E924F43F4D4EA142502118C12121242B441C11940B14A56
+:80C60000A284357149B911C588B119D195F58151857841B1C844846134114F8144C12A65D88A2362293B11C5F8123A58AF81194192148FA19A82BF11E6143213A334822D44867842C2CA824F89EC4252288F4D0A0040810400808884C84888800888800800000000824182000000000000204802002008820000F0B5D3347F64F4272FB5E0
+:80C68000FB2F2D8FA4F43F773F14F466652F25F5EFE73F9CECB3F3B2967F68FCD3F32F24F5CBD8DF5FFF9B9BFFF2F297859F1ADF99F99F8FB5F9481AA5522A3B998FA3B783F8888A9AE334FC17177F7DEC1FF199951F52F78D9FFFF3F3DBD895FBD8DCBFFAFA1341BE331F3FF583836F48FA7C3E4F49F936326F6DF9BEBE6B998F873D1465
+:80C700006F6FFCD154F054545F5256B9FFE2D689F43D7F3F14F466752F15F57577FF95F5A8ABAFE95B66AFA5F1C383BFBCF96F2DBFB1F12F2F7FECFDB2E99F91F88D9FBD499F9C7D195BBA3F1CFDB1F335F1292B9EB22F2CF4BFBF6F6DEEBBF79B9B3F3AFB9F9FFFC3B3D95DB9CFEDFD2F2FFF94F4F3B37F7DFF83836F48F87232AF29F995
+:80C780002E266F6DF9BEBE6F69F97A584B23EAFDD29B1475F1276515FB2F2F9FB4F43F7737246F56F212137F76F65A4C8FABFE5A78CFE5F15A1AEFECF84E1CDFD7F31B1B7FFAFA151DEFDBFF1D9D5FF8F98B896FE45866E5F6171C1FFB7F1355FE4F49F364F67FF1F1D7D7BE51DF58F82D34DFF9F9BBB2FFCDFC8D8D8FADFD2B23AFE8FC40
+:80C80000A9BB1F3DFF8313EFC5F4E82ACFA9F9B6366F6DF9EEEE6F49F97E5CC7C18FA6D59942F157156F5252B9FFE6F24948DFF317F326252F15F1F5F7AFC5F5786AEF8DFDD4D6AF257147F5CF9FFFDFFB1B1AFFFAFA57596FDBFF1D9DDFF8F88BC8DFD5FC1517E5FFD7DD1FF3F71315CFFAFA94BEEFCEF7B7BF6F6DFEB833FFF9F9AFBF8F
+:80C88000FFF9F9BBB8DFCDFD8D8DCFEDFDAFAFAF6CFCFBB37F1D5D33EFC4F4FABAEFA9F9B6B66F6DF9FEFE4F49F17E5CCFC3F2E84ABF2F0A2501250124848044E3814421482348338130912411811301111012089081908280091C0140D8144148032412141648230884644026088200AFFC0A4F1814110821400121861868818130481A8F
+:80C9000054281944028800110010235181141058220012652151241604502C122111981285028D1280311421824C41F1DB99C0421F4152281F41B248F11124A3D4C1B24AD141F24A9219B24A19B54A3924AF3439242F147924D852F924484E914FA2C4A15FA264155FA2E419F2264AD6C54A9E242D4A1F49C2421F49522A1F49324A1F491D
+:80C98000366A1F48F24A111D24AB9419B24A19F54A9343B24AB924B442792498924F8284F9244A9E92F0245A1B41C72216F42C111741EB16153C6E1D24AF665941B85D28AF443824AF7439248F542BF242A5678AAF54F3A4528F54F225925E845F82E54D52A28F1DE212651D6FA27451E882BC11B42AFC1124AB861F41B662E881F66A8126
+:80CA00001D64AF6291618F448BD63AB924B448BB2494BA4F82B44ADB86B44ADBA475F20F00481400000040040000000010021880080000144042080000000040040080080000217075024E24268101128D11424212160885112824A18113C18884650848C3422A3224449185548100414922C22454141B184244512BC14486119882154AC8
+:80CA80005183C018234842182811E422E4D80D2018526819029038A566142582059512147864C8134D114E131D54892104C90485A1422B244447242E8E81161AA448295268107812AA8155782A1106178218200421818E58461664482641FCF8B960464A82412241899468278185129418265821181E8897478542D9E3B51524C12827814F
+:80CB0000236248848D61E15460822564D28742AE464356183B81AC6441182F18D44BD24318BC2368131431301883E8247844123814497272B2E5031011426C12122051241B412419048C440430914C01C048460487442254A02484469486812C0110110440D81668C10040582830485022901884448250846FE80825110111250183C44453
+:80CB8000001C11011218534A84044810044005D0226114205184822A040029614861824024140128348021C192400446048981B4EE0F5604812183011418144F1128A883254194818B1413912C83D83421E11641147488624441412487631D882B258512040011948331134719AB211788AB288511028648121CE46248028C811644FCBBDD
+:80CC0000232459114118D3830181491161181AA81880C1816E941246181814A221444445281444C64126841108430640321114C1271124411C1C022942828851C24423584221562482019EA4800400001384044941C1231441181558414382B841213145003C18042341C21827986B34860A0000874823217891343881935A181041081290
+:80CC80001A9824008148C4C3F4C31100164908412981840285861444C8248321E185589216021C180612401146C2288004114B212C1228D28434828488894A31B18125C4812D2816C614817781002D42844C08287F6B0A118415C2428D114494542F5304891807872260240080111C12F41841100488172483C41D4E141502D068E944010D
+:80CD00001602B4441821C08418380021901212884A52828185F4535F1462410000288120921126681800140048429018181044981100449028608800302341448001842AB14802828480E11814081882284301AF6A46B141625124249149C161C722537524E8B96482844028F412CA84581286CC14168404459112D08162C44711C30460D4
+:80CD8000226C391423B216088CE8C982D182A2128B281C7812C81A49D128F11448A1182B4181267C14089FE20A0085014D121018210221111C58842931111041824441081548444845221432482A016F820980521C101E1112C19184232481184402881220B8422A084782EF6F0C450149022C148116A834111A42819444473181005220F5
+:80CE000011D4211818011200200824448001242681890444824082048C21D24284814C8814828904DF210226384A8170293448C41904A084893822852102481C0C8C2B8C2A1154824444850189136484841812E0443981CB8150288A11481804855241608100908282426088F0FAB3801408211504008004109842460518192808240012C8
+:80CE800085844114410200A119110400A44484401841421448212808863888302410C418F0D8D210040000252104188501928942888102944318026120A824915018421140260410812824B18545C2812184981D44822D22800CD028012C0820F17BB7200A1504233258001200884441405484180020080084002114111812848447211E67
+:80CF00008485018422C4150200280020012C0220843184E07C0D400221241004401C6814881200001988A18148888008198991114C91884114004688624120682888524423146231844F2442588288004800007F330F1180024031681D12871234621212E0884121210213544110698A1C01802208128282605814850182111118001C117C
+:80CF80000118841220B14681C11218825886F4E55114272414B1148904200148208444011111A4480041490120484848589444D95942144004494114024444D14481C0A213C881864A184A0481103422976340888114085012D04184C1111614B812027082445484461C5818A1C681012928042400148041084833011644A242122B414083
+:80D000000468200112863218101422F8D943D0642468A2211F547441F824281B4583D341A4568AF854D257D14F41014D858CF153C48E754A7981F8119419FD818186741444389146DB51F8C998646591111E16C9D328F841879E145F48DA481892814C6128142B8A4B488DBA2F4C48EA84918838A394824A81F11E8B702231138514518C31
+:80D080001A744A051922719A69A528211DC95991528A6418CD8A83C8444531A260A4703842B319721458246381718814E118641149114123F94187BCB15634191724704B7A9281B11A791A7292260196F414486F28782C081B248D4A7D21A42E22A593419CF146518F1491211D5187888B548D229483F325818528751491A68788855C8E71
+:80D100001AD299D11154884D14821674887851381449F411845F4871BA988A8F85D526D18C574E9552428D789D171A088F8124B8A4CC182FECA45849F18884227F4E49C124144C42C12424CC064C061A068A4446081B414482A048200882850410028880110890848488844A48B84408428442866814924602428283A448448E48F0556FFF
+:80D18000244F42F4351E6D24267C25F676167FD4F67157FFC3F13D2BBF14F661D19F9455D98E9C4F61F1ACAD2E2BF5D9DD784D9F488F89F17EEC45DCECF11F1D9F96F69899CD167F49F9899A6FA8781EF99D851F35F4A729D5FB1E86ED5EAF27F39B5BEF33F75A5EFFF5F153519F33F7795157448F8596482BD14FC7F35CD22F31F55A185B
+:80D20000DE9C8F88FC7E26FFEC44D255B6757727F5252DDFE4F63F3B7FD6F47577FFD5F71462BF57F461F19FD47917FCB3B85F33F388891FB3FBDFD95FD478CC9CCA8F89B178A788CF6858DF9F36F69B998FF1F197954F78F88682E15FD9E964F5B3B557F16F6DF4C24A2F2AF7C35F3F76F25714FFF1F5521C9FA6F25933FFC8F4D88A23AE
+:80D28000F452D24F43F7D49A2F24F11A5A6F8DFDCC98CFEFF7F844245D677F2175271FD25DF25612FFD6F44953EF84F2492B3F56A4D49FBDD7BFF19E98D5F7ECAD5FBE5A9FDFD6FE39E9BB268F8AFA69F84E48CFA6FE2F299FB6F6DBDBEFE6F7F7F4CED36FECFD5E5C5FD9F851437F1AD6FDF89E96BF98F13DF7B7B9CF3FF3DC1EFFF174D1
+:80D300005BF579319F1DDBCDFD599BAF8CF192124F6BFE4C92AF25F91AD82FC979C8F824B63F5E46F225473F23D5F77223F76F4FBFA7F54F6D9F72F57E581D423F14A6D3DF9DF94F5CBF8BF93D338F9DF965ABFF9CFC6DADCFCABE6DFAA8A8DFCEFFC4CCCFE6FE2F2D9FB6F6DBD9CFF7F7F7F54F44FCD6DEEFC5F595954F65F5B6B5DD8F07
+:80D38000EF6DF18C4CDF7EFB8F4FFF7AF69D1EFFF4D18AF129699F39F9CF1CBFB9F98AC82F29FD64264FA9D9B2FD58986FCDF98CCCCF6EFBEEF300001042482111E481442141A14100441B41819230118504440019011881490161D0140149012D12D03421C18212349214406188241608922001F0DE43E02804406824200414008C841862
+:80D40000543212004A781448618881418D8141C01A5085821008008285338181860484C5014008822184890188101284085E16E022F4112487221F417268F21124A3D6C1B66AF19164AF26B981B64A9945AF54F93448AF14BBA4F44293478A2F14F9A4481CF9A44A1CF8274A16F5244A96F1214A96C5CA9E24ACF491244D421F49F2288280
+:80D480001F49B248F89164EB841F48F64A911F48B64AB981B64AB995B44AB924F44A944B4A2B944F8AF442B44F8AE444F9244A5F47082F32C56C8F32E5417268F311242E121D6CAF22F18164AF62F181642D328E685CF1A548AD238AE4747384E814F386482F14F3841A8F14D227E9555A865E213D8A5E252D8B8F55C2921FC5F2248A1FBC
+:80D5000041F622C21FC1A2861FC1B666D8C1F44A911F48F662141FC8B64AF39468A7744B428F44A94AAF44B3A4F442346F8AF442142E589F3403840000000000002800000000000000000014414008480000000000000000005092F0541D6021402232424A4142D482B78CA1841934C81911A1146985611241214128902441002F48144222
+:80D5800014C228842088421281682A00442AD818088210420427C4C0824230148722290D5486020061ED31178414481821239182102502206112814885820847248D4494241A524843084964414182472181188141261801149411848B841A088723C486C84C1444BF8D44514127A42426C2424E142D3437448CF4C418457241A2122F1132
+:80D600001861142E4418141656218162872122824934486D88E061123C8C9483E4416844867214D182285B824147821C388411830225A884828D441885A684C36411A7414FE80F1800005018842F12014A098B840043911280022841004C1804614651220028400428000000805218C0811150842C018D2282814024F2F12A702602212091
+:80D6800004811D4422129041004008150843C12122001C622254210000160420025081A541089018488541080040840422884110F4E36814C01126C2128CE1144121C14242166281244D19142B4116888403584D118658812C541C8B124E2135147A28C2264216A414821741189034901D12268128083528711499181225827491924483FE
+:80D700006141482FF9062312013012148511258484D182414211018911A81249B14132258C0819246262195262201212828104145029161878188191314A78880180018441230428431C044CF4D79D144129D1228291481A044AC12218C04160C1248B41904100121850182225DD92814441186842431524213A141830251004810085525C
+:80D7800018D049818141227491028C6141E014095410974D487048512100151824219611A188424141442160414130944F218401122817410020E481120280074F84C912364C8112688198112C1134D81698228C011DA520C148008C8101268454143044252822B444280181401842E831084675888212215186491421088B492B341119F7
+:80D8000001812100444C088C53148604008120140648BF180C4034182B2171214160812118002120425238A6E121220818482810111144080084342230824D221844831848B12218810188106898252441028012F8C26DC01424A4937112084D4915B218544283410220912282A5328D4B212D84004E834C42558116124192144684011458
+:80D880002CA5213788290264861868AC2E86141212471896949889C816C1853248490284BFC10914444D114C724423014C021114488D124846F1844818198402819018418064417B4216C4188122448C082B82A01217412941A816D01421B12819114818082480A149189038482FC9029028160800812281169218101A1108121200124245
+:80D900002814532221428231110021104406202534348E148218148C04580028124418004440789A05004420124C34184421C0284124431438448CA221882C4411850240581445086041142008002061149014C8004E124342216484C84246688429995844F02472000022800200A1100248D082528240218828021180410286622115021B
+:80D980002C1421012C014412880000540080810112844445021244AFAB0220010000208102844B18800A1902286440C11244982643011504160CC711422810151111C1484285018198CC048128C944080081228D8248DEEBA0281820146111000010210818200100144A82020080110312001218A01600604882A0812821400200C0222025
+:80DA0000221424086DFF348410242112189418C324010028445C01001A02165482009081144006641C41C488C4144975224144429461A0418C21031C0410044189051084F1A84210048902451824022244838209650848818743E411290854284C2348048288A01820488108008021612160181041081288304810018044F8CEF8100210EC
+:80DA80000150821C24C14118882518E8A492412A2484C11410820130411844124A48146142542048441144018486448801008425EA48918630144C39985018283BBE608245A14243140462412281221664278E22828A6118506160C11062681F8861422C8801411988E814A8944494244C4418440989048E488651481268008441004314F9
+:80DB0000384241AF35052922981C19041781C9C25845F21212F0A282CD82618F447542C874481D396F5A2885F1242543922C5F12741692144D168644F611944FA4C394CF435144167213C5241F51E49AF41A149F1518BA49C1498986F24B48A3F248E86B888B446D18CF58F488184F41721C61864E2260421B112668431D24836286918F34
+:80DB800082B329E48291112F8141E2AA98191B818B32472116921817161F8141E21AA8181C52318F11C88223398416B4C594811CF8471445D2851494888AC8349A88BE82698512C04249D1C88461412E18467442E8547414F484AE2460C24C22342C455442366445C48B218781E674C899264F39766879146842182F789866241F58524131
+:80DC00001A12791234835B515D19242B48162128C821C011185F4591444F8884659997411D128D54141A61491247428964254BC1818E8A8572790D28C02845A1288012841284024004440084C048448440088C0184D084084D881004490881304484434428242144682416686412460483A441441A047F2A4593225FD3F338181AD3C8F250
+:80DC80003D3F27861F91F258281F93F338189FB8BA12F98888DED84F4FBCD17745D515F199899F5BFE6C241B338FF9788EF54D551F94F4484EFF49F958D1967489FA3A2C8FD9F111951E111FDBFB959F7FD27241F998D6BF9DFD7937AF84F83962BF85F5612987869F11F54868CB95EF8DF93C7A6F85F5F4BDCFE1FC54488785EFE2F63162
+:80DD0000BD3447425F53F51C3C5F13F7248CDFF3F146245F93737CFC3F19AFC1F3A9A18FCDFF888C4F4DFDB6F5BF9F7545F51D1D8D889F5BFF68259FB2F2889FA758DF7CFD454F8FD4F599858F7DFD1A1CC5AD331AF11D194F71E13FFF818F7FD3F3595DDE9E7F58FD29732B449F27F31B5C9F92E785F7511329F41854AF85F5783E2F81F8
+:80DD8000F5A4FCCF85795EF81C48CFE7F7CD8734225F53F51C2CCFC1712DFD3D1FEFC4721D7D7CFE3F1FAFC1F3898BAF88FA8C8CCFEDF5FADE7F4DF75545CD181F18F8E1B92F43F71D3C1F78F9828D5F76FC5A532FA5F413984F2DFD9E9E2D832F4BEB41F9111D343F73F71317FF537215F8CD97BF99FC2977A5F87932BD4D9F92F7183ACF
+:80DE0000BF15F1185AEBD8EF88F97C3A6F81F5B4FC4F8DF95E1C8FC9FD243EBF624AD346F21515C783DFD5D3D5F21D1F63F61D2DCF85721FFD3A1ABFB8FACED84FC8F8DA5C2FDFFFFF5DDF57F414148F88F8F3394F51F735358FFAF8828D5F77FC5D575E5B3FB9F9D2D62F49F98C8EEFEBFB9ADC5FD951745F73F71517FF537259FD11DF0D
+:80DE8000FFD9F8ED27A7849F23F71B989F96F3581ABF31F51A1AEF45B156F12C6EEF81F1F4ADCFC9FD1C184F8DF92C7EAF6A056180014184002001920040081658481309138112411441044498008141C0115014C011841C0988121484200112448444124400F0F1FA10421418110C811240088481100214C023414008458842081D48D0CA
+:80DF00008508844684210916140C418068C1409888C0128440988290184140C81484EE67E022F4112487221FC132681F41326A1D24AF26D141F26A9219B24A19F54A9353F24AB143F2429147822F14F925481CF9244A1CF8244A16F1274A96F1264A96D5A6E449F2264A1F49D224F49124A5F29124C3F69164E3F48164AF14F11164AF24A7
+:80DF80009961AB945B41AF14B934F44AB44B42AF64F934482B944F83E444FB244A2F2E0B2F32F5114C4732F068131741EF1611F16E13F06897118F54AB29AD171B498D254B422F147924F842B537822D954FAA65146F82CDA17F82651D6F8264586F926C196FA2FC91284F82B411F62EC21F49722EF2916467221F88F622131D4C8F62C8F7
+:80E00000442DB35D683CC8488DA6486CBBA4F44A2465F84AA44FA2F141EE008248180000000080020000001002188008000014008480040000000000004400004114F05D59502240091446112311081815921140C1A129210460812200104882B22234822301108292211A024352231140E842042542081460816081234984023044FB9E6D
+:80E0800040642800CC0286386A15243288228220084281122622A848860847184218448C081DC446E2444A8218C482341A88A11C44200860326041414110060042C5012F910541234C088D24142398789524F284182623098A922148481822A7294A6A881253282CD122C28A2CB84128D4424EB12A98252A18E2630C1B4110082441392201
+:80E100005214441604E391824002453914EF9406215012408154380000400114822941080000008410A42460410021001234C0138241B064084018220184001841284880F43B6D002820314A11141381811408002100228D3122544114008481110012250A0024100441121C08201922C111828526484608124400D0160E4951244D2125FF
+:80E1800001853438422154904887211CA14119F31568871424456882918982044210562C43122C14B4142242E44219F22618B3712448D818114C284941E8B104416029478A4E281E884A28E142F8F2FF108402299148A012485041818C043440E19241618287424D2140092044581685D4424206604228B08612C22C65E9C1225881448832
+:80E2000018121419111244C69A4D288B424D18881843F8637D80416652112185456911298104C01A18521A324483C6131058942248400800608183142601441245222101852141D82821189118895C6888008818884280F22C6C10414A84A44141502812CC8138442443032518280444812514641148201828628100118444290826244214
+:80E2800014A1488515542C26B422885324842D882B1464602130822264290E1845086890124425C42C2484C9122202A0413449C12249384220612285612830814215043112124462C01400C0123222448C9122211242228A72644864812D34C4685F380110024100C021002211100113881808104128A484104444024022954480420117CC
+:80E300008180023022141210019800493848100800F0AF7D901121214342824154182E1CC48CC229213D14D0812875412A6162178843148448524124813B2884542125044CD11208266C4122148249D1528141721871126241A9E184B8A4E446D884D44861814147826CF235CF004441A01444244C1222918248002490884004448442193A
+:80E38000A424844400588025C4182841281C81120446D28122C22C23A2282048022941982210220B48BF710C0022218B42002012411A08100161418128811044984A8181004D420000442C0444402404108421119824842302E08865418443594240F43478301110813111428D11411282215014822841848216011622628310A14822C653
+:80E40000941C8416E84211C828302480422412824228C181222A044416182802808A4248AA82ED5C40011518011011014400001394484904A1248140086021C11841405481C4480010088429110280012440081022881804588C41F24F4480140148124A3362284221228D274219524A222812404C518421464412A482844288244001118E
+:80E480001A4856248048440884244D8A448B8128882D444D2885344488801262848F4D029284001512081004440040085042410085140481411008845024448001450100418125488408400822418608184961C18420F8492F148C0440614411421E6413E41114E16122E411344260114250844418290241004481181D181A021094248021
+:80E5000011943C858282518290841C11328688162231122A4898823092126B1B80C22483B2246182268411882212F2428111809184C02822CA8222C8414CB48231C8522818482024D1848204182894236411C8403228AB218C0238448908435428222AA48462684F9A0A411006618185541825944883850583058984829442489022184077
+:80E5800004111825012184C0150000240049C81140088A0188253882410021E048415484AFFC47628233813442241828521618844264A1490222830449021212254288813244422840844881084E1821899C186088244116C24400121CC61400259228128724282B24E08D4231438F1912D113044AD498159C524F68D48831525817111147
+:80E600004B4287947048FC4C8C9558C88D6D2724118F8854CA8DC8455C28E5B12842C415411E2212CC7811B88852A4ADA840FA88929E182487889D4EAE146F241966CC3E486F896A69888F43FCDE227DB1F02452446D29126F6557C21376417C54641427268DCB9324FC46598FC4A242CB461AC242324B933A0145F464845AF234168D5191
+:80E680004B411AE17135148F84CA45A65446C1857446B41A71A41299142D6D2A5A81B084E921788804CB914F28D848B168FA985C38267C64041E211187224E3497929F23B314E213B729D28393251B3225D7A495282CD844F3821673A2224D122912D4CCF44A8A124F1224A421C648DE8458884322B14455213A522636FA8144422FC1712D
+:80E700001A24514EAB7B2F4113D28E42F828BE29D44A23D286B5666284C8BF190A2002220000A082488812888008A84888800888A024180082188A82A128188A82A1288006284A88220442200442A2000020087F49031F65F437178FE2F22E2E9F44F416147F45D424F57A689F76FA8A82AF2CF8CAC8BB84FF4CBCC4F891D14F47FDB8B82B
+:80E78000CAF89898C5F8D1D14F6CFC4E488F86F761698FA7F1C3C18E885F98F8C16A2BA23EADEAED24F723A58F437B29F198BC3F5FFBA8847F5EADDD4B368AFEA1F18BDDDFF4F8CEE42BF56B734FA6F982B8412B9C4FC428F4242C454EF151577F71F5282EFFF2F64D4D7F51F55F5CDD53AF84F74C848F69592AAF84F74F847FCC7F44FC30
+:80E800005151CFA7FDBA98F01C1C8E88DF7CFDD8D84E484FC4F749498FEEF45B558FA4F48799CE7B6F42FA1888CFC8EB4CFF61ED8FE1F997F3AFA1F3FBB7A7CA7F7CFECAC44F4EFBB8F23F1AFECCE8DFD5F98C86A3F256586DF82FE83B962F8D7954FC1812CF6E9B3E247E567F73D5F87216F66A444FC7F7757C5FF7F74F4D9F7CF642CE76
+:80E880002F26F24A689F2CF44FC76F24F45F1F6F4EF668CA6F65F13A38EF89F951594FE4B5C6F82CEEFFF7F77E5E7F9141FE9717EF76FD122C96EC81F1E4D27D659E1615F7F89C9F5DFBD8F4FD157AB384E44BFB61B3AF85FB8DCFEFC9F916942BD9CFEEF892A88AF9CED4EF84B984FDA4381F6B4FF371577F7351E87F74F26F6F7FF7F5D0
+:80E900007F7CDF73F57A7AFF7EF25BDBBF2EFC5858D76CFFE6FDEE8EBFB5F5FE7AEFE7FFFEF6EFC1F13C1CDF59F94C5E6F6CF8166AFFB7F76E5E7F95E5ECFC971DCFE67D3AFCBC2C4FC9E967F53B57AFEBF3DD9FCFA7F1FF97AFCDF71F1FAFC7F384C4AFABFB73B3AFA5F91BDFEFC9F9CECCEFCFDFCEFF92BEEFCAF9C69C4F8DF8BC98CF2A
+:80E98000AAFE332E0000844B128C04844100840044844C82440489028F440285048744D04802814181000041844180A8412021E2810484608144164824D1482211089B596018401111A24141481848260214484621220440981884800448400820011004400412850281502882201848C88600C08482004A623A6DF4D022F4112485F21191
+:80EA00002487241F41724AD141F24A131F48F24A911B28AF243985AB9443FA4A9353FA4291578A2D914F8AC4915FAAE414F8264A16F1244A96F124CA96D5A2ED4DC2CA1F49C2C31F49D22AF89124AB841F49724AF28124EB141D24AF349921AF2419B54A3924AF2439242F24F9244829F924484CF9244ABFCA0C6FB2D441F42E13174187C1
+:80EA8000341E2487364CF26A1386FC28851F48F64AB25F88F2488353FA428357882CFAA1482D957F8A94825F8AA5847D9A1CFA274AC27F82681C2D8BCE252D8ADE2C9CE849D61AEC49D23AE848764ED341D21C89F64A971D248DB34B418DA34B4AAD124B428D924B424A79A2D842E1A2F529474008480000000044800200000044210080F8
+:80EB0000080000004008000000004004288002000010027F9C021762902840D134444251185C618489C14A904A988161222B28C01800100125028301160A45884234162812AB289542224414354825829818109A18464844282108E0920530812951432D5410C458448231C8111C29D18134221008251825441442B848D184150416644274
+:80EB80004428212270824204265484200820C81110460282184C08411486F8D15B9021460274466414448D11418E12D9A48117863B81834101412628582212602120E881A414418C011D1641263428644624DA4261881D2AE4488614140C23121816D2823148414C68210016F866BA5024118F22011C41542248855141C0480023E489D4D6
+:80EC00002A02242281552814041508650A60412608A42022110223420400114622C891124008821884308420F8A4376012004042181C0140012482002908008F140130244250484816548490424218424014048844C3020042482C08002901440041007F7C0F61615489122794114A4236C4A042141651259AD42441EA48729114C284164A
+:80EC8000488842181212088564221084328723111192278120844808882170165248A48DC4848DC42628388C6E883D8750254411241127848014B482042814295141272898F0228417619C219818C168842160C1454826260442312111245C18142424082004212D1481252208828482888B42A75730221034284470149921104421041C50
+:80ED0000085244A1802844042200C12904400821162432844C4106288183021028C4828240123418C9449C4C28418584B8B1041064412A24512190821A02184182C948986241348241422508186125542488C89082901921431218168E444424480185E64844220281414038214C01258428F349C92418142448151284440147241143212B
+:80ED800023058B18C210285141254484A1241418C80010544300B110B12284D232113826898458418450168281CA41C21800212249F81E566024400110088D828C0448114081040020029284860181898212411C0448C2144820C88120022422208208872450222018818A184844F2AAEFA041549022124142142B42411985817818413846
+:80EE0000C24C4C33884981141C88E84452C22E1A6811E4404434425722154296842D81286D33814392224998618C18D23C245842C88827811E848284822E84CF1E0325024D1140538125429818482111184B48423608002254924415021144200C86443258888004858112042C1831488429082C0281842941882202414CC212AF9A08109C
+:80EE8000081D240040024988480144908C239584D24658824324C4244E884446189483C68228B448A22828C0244444430883AA488E6820A4480000C400008004FF67048C4404002444480040840880140800204284044A110400202248186C420040126444008902C08830222222D0424A94884C4418F45AED000000804484C681280024A5
+:80EF0000C28C2888181104A184404308008B281041240C80081186822848241891881C02200848414483022568288CF4EF32004688410841282880024C12028142602200419086842A01148C0460428400822442A0A4C322126222006028002241A88C02400848F04476002002004248404201008C84012AA14250288C480100404808451E
+:80EF800028221C918141441006244400007084080082829048248240F87ADB00441148421594152005403414D041011006818243B44242E444014F84388218411884400222124400A82682149862248914121882184CC428008484883BED6044140043592200304582001410042068444222D02811181402800244906400C02800008C9A9F
+:80F0000022812200004180A248C0444244428B3D202848410400118160242846024440410220058862442304232C442C1644040011284A084C81042C2494482668221C028221848419026018F07B5324450868624542C821CC823228494216D42412018B18E042014501250A2A218848C4884885C1421441418480041041524140224204E6
+:80F0800089020088604425644844643FB504466448124B4692001F46A2445DAD11244B1C4127948DC48EC14CF841C487E44E458BE4CF44F476688F6CC4444E46CD44BF81B884D48CE812B428AC4C50445DC424B084622AC6B865BEE866862B242F94D4280880B288DE2CCA844824CA48B14CFC6B1490469B48190250456D654D4889034F70
+:80F100002828522244D9D18451884D322392444D98218E81857221185A842784428F44F272248324FC2C261F8228321226B4A44CF41724218542D21A04A26358282B284D8421A63C488D21ED4C89F44CC7C4FF6C03508426D158724456A213472222BE62C2214415E248642C1A31A29A038572246C824449F2C412918A28E88248D1E452C4
+:80F18000441978848422922C46C58A884F627E82D48288F2A8488DA2265881228247C2F0A42847C682656C8824BB1900201128198804008200800482A0480000000080088082A8248002288828888008002008008220080082F0A1FB345091F014345E5E25BA5BD391F2141CDD2F2B642CA25555F71818CFC1F111114F43B154518C1F19ED
+:80F20000B944D4117414D886D4C4D1C654C45A25F651516E6A278A4FE2F2A785AAFA3111CFA23222F031314F24F4C343AD488F24143A488D881591222CF22AA88982EE72F222248C08CD4E5F6347A3441FC1F51918CFC2E2ECF4171FFF44D4D1F2545CDFFAF2C2E42CA27715F25D78C7CC1F19F9B4166B9DC7841FDDFDECE85F3EFE6C7EFB
+:80F28000EFE4F64CCE2F64F44C44DED86EA81F95E5B6F622E84FE6FEAFADAAFA31718FA2B2A2DA44F89795AFA4FC4BCBAF86BE6AF64A44CE422DA4159122AE22AF829AA84EE86E2EAF46E684E428F8545E6FE249F346441F11F53C1CDD2D1F74542ABF25F3476F2F83F14CEE2F447C23F3537175F71A1AAFA5FD1B9B6F41FB5CBEED4EBFFC
+:80F300001DB96EF6C9C54F86F56A48CFC4FC464C4FE4F4DE56AFAEF43B732FB676CAF86C2A7F98E822F21353AFA23282AE227F7B738AFACB2B2B442CF64A66ABE68DA2B511C2A22F22FAA222AF88FE2C2F65FC42C8CAFC8CDEBBD1346F44544957425F52F25157FF71F16D463FF2F27258DFFEF6C3E13F32F2537175F6775AAFADF19B9B2F
+:80F380006F6AF2FEBEEFE4F4D3DDCF86F6CDC5CFE6F64A6ACFE4F4424ACFE4F4DED6AFA6FE1B5F2FA6F6AACCCFAEFEA78D2E223F73F12A2A2B8A4CF8B1B7AFA4FECBEB8F8EBE6AF64A4A2FAEDEAE589B23F2A4A2AFA2FA2EA22BE6CFE652CA4F84F488884FE4B57E0500220030243024200200204124C124504840042850483048418B24BA
+:80F400004142004908412002430222008440088244D0480281828744F07896904200400242008A040070482418084A084282814934482004824880241804880086542482244CB44808628008008524C2844B421044043F3B032CF4112485F31124C3F41124A7141D64AB141F48F24A931B28AF243985AF14B9A4F44A935B4A2F14F92448A4
+:80F480002D914F82C4915FAAC4817FA264117FA264192ECA96E5A2EC4DE2A2FC91242E421F49F228821F49F268811FC9B24AF88124AF24F98124AF34B981F24A9353B84A39A4ABB44B4A2B94478A29F9A448984FA2746F0E4D43684D131D244F1481F242131F41F24A13CCD27AF111248F34B314F2489353D27A31258F24313529D887D4DE
+:80F5000012FB2558187F822CF1274A443FA265482D5B8F59D2A6E4C9D2B2E448D636E1817242E1C1F246111F88F24A131D248F74D141F2481349F2481322AD16222F647924F84214678229F1245A8F120B8628080000000044800200000010024A010000000000000000000044000000000025019F8E0D63911628848C418901428711C031
+:80F58000C114A44D82114904A14B4882C142159228288394279021103424430622F0228159C22C54344344048048014200442F489284A504C08C3F1D0130A115A2826823D223E48182229C811E224E984301AC03A5018C7244A128702864348190484606CC9C18428164825968C123C81289D448CCA281C6D4A148091914150148121628E6
+:80F60000B8447A946122EF810464434F918816382223952A60911C9811A7478C3186A932462512A82415420887112D28239A48C71464144F88143D24CC163C2246F418222E8444656144434A84DC2C98812214441110E448C188ED826E845CA929130729116122286215482121A648A0681C18041301150847884E84432A34244641082331
+:80F680002224021842008813D81618B128C1488D8348A14414841448460180942243010045FA79D6000080010020A814004118102A22044008004100000000000000800140081008182200400822006F1B082240C811224484112122008288C024001C113811444C11342228D0A4022C8314082441702204102882624112220000814C0811
+:80F7000044C8440080F2F27280022021011001880088824006284641484198144121490285042829140824411006008021210100841038241024588400007F52090083442142140821284A11044C828112081880110480A218602280010040082848408882120489022002188800420022A012FF9D0348000080944118811446681859084B
+:80F78000000000000011004A018824007082814302100120048218818C48022828228C12880AF076352422C0112151A551818184248238800188431501448C2C0842104202152211624140C424485041C3227142624146112802205812160818804404424246F8CB4180814184A14141120000000048A44218818002286210840400009211
+:80F800004800804104100212488004001002820080F2DF1A80829111184F111416091038816A219814809C482001428820A2423144C041290100444934C110F12A14442D4127412384242308429416022A11A242861C282424F2C4CF905250240015A8141D4889012184141308C01619044598882280040029244122D824019828211A1233
+:80F8800004180011812024D128281808200222200A8CF46269004420010012810084008880010080040048004280020012801208004088088190880000000000F099AD000084488B341008890CA014301822810089A8218004228022820852208208321A288108848008420030184608A041888228806C824F430D004220342830186088D6
+:80F900001088818201180082802404A01C2200200100848082250884200848846082184200200800428CF325215088CB444A3458A0410084424554444B622A32A8288400813602A0113AA1898AA8288A042A14212278187838B8C8E58424040084821004AAE2826282004A01882602881AF1519B0018000000420000800484800100000085
+:80F980000020024200000000000000000000840000003F7B09818C24840500004014C4248382020020245822901212988A8208842214111484818CA41458820080044441CC62822810081820582290123FF40A848005202101004014881208480000100218802802004001400848828041280200448022040042480021F08CFA004A0400C1
+:80FA000000280044A02200000000001A018A080000005088A0540020080000A02200000000001AF12F310000000022000000802444080000002800000000001800001222880000004842000000E04202B04804420018004004CB2242220000006445A211A0892088840210115188188B4482422212008800414B22A0420000484042A211C2
+:80FA8000CDAA40D88885A444000000404494282A2244282801002121381A91888A080040414148D88884A44D0012880040448CA6221A0482000021215FD80F00181222430100000030480081488008400420220200000000188008000010080000200500007F240718000000000081002001004200000000002200000000200800000000FB
+:80FB00000084000000CF17042081A1114024210200001088E184C488A0448241002222222810880200202121A1998A88C918200810186884800188202408003FB8090000A01180020050888384A4448181428008100480024820020000A0188002808208008400484618A8410000F015372081210128800148008140688400A01100100486
+:80FB8000008422A0222004008001009212A2480000A0444240A814480000BFE20B67222B212AB112219112C0122582E8317111B18869998F84F888414E48421D4911489558484E4887444F42B444F22424224C02284514A42267222B212AB192A1812B98822C5922881E1317118B9896F948888B484E48428C04488518E884F453B3F026B5
+:80FC000022242A2123118281512229C8111B1119E88938188F18246C84941D4148C48588F44844C14B246222442828444584F22222242A21A38123A818182D8229C8111B1119E88938188B48C24648888444588848475F000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000F8
+:80FC80000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000A6
+:80FD000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000025
+:80FD8000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000A5
+:80FE00000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000004100000000000000000000000000000000000000AFC40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000053
+:80FE80000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000A4
+:80FF000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE23
+:80FF8000000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F0F0
:020000040001F9
-:800000000241818444A02181388032140041400200220040381A204188212211F8ACFE0020321181122100001008008100414008004100122460224042040012211A120240048001A10000414008F0346E000040022051288001000000210000002508000040040000000044008901000000000081F0BEDC00000041008041420800492187
-:800080003112D04801844342480890124522D124228131144084210121400884008001602116480485041810FC735E000040022001294102004044622120018042080029011224001604808141020010080000C012400441801118F4B4C200000044008180410800181800C1404804A4840045024382614100440000101804901880010035
-:80010000890110080084CF334612082082C1129022C01214412121183012100440024441000081008902C122218001C0228181004181008C410400C02830486F5A0C890245321441141800004120120800124048460429018971244A0400008902302410040022004120420281106A414C0143026F14090012000000402801810024000049
-:8001800060810081000012400480210141100200000000002012084008F75B2002412D1416C4112C2102188110528289412211220181301C644460814C524280014480828191241244211012080000301A8124844116C428C1421F8305218081021002002521010000400410048041088440089028406422004400228422001008004480FF
-:800200006281002884AF1B0D9014442E1425981400002140820125140818411034244400A0211212430122200222124302000080010012288002288042C4287F2C0D220000242828282822C024808101240000183828400280022200204202100822228322120881280000004200F0BDDA00400200000000002081010000001818000000CD
-:800280000000120000000000000000001004F0CE660026880180020010C8242418212428414002122880223212412118282444005082200100000044002280030000284B144F830D004D2200800289020081200129012400604128002901328081010090141880010000811008000040044140F1269A000000800118814004890200200106
-:80030000000000301821000021418400120084004044040044000000003F2B0F28002083120221212238121012022D126021000018282602242424248022012480028082828202000000000000F0D2C30020820250282890284002810000004008844008222800298101002100200100008118810081000000F0EB1CC018224840020050A4
-:800380002216C414282800808192121A8211021880082428284011424808488001000040448402008002281022F49818A012B01412F212224322827228C2224D382AF1281212211E1416081A01211A414428E222A212182A818221522210088741292101200222701808850C2230180041424454185F2A0A2881260484102882312A22129A
-:8004000010AA1125824146626128844B12222884272125DE22C212281E124129624126D2222181E181219128228C22028001124100002820F248442F7501B02443B224032CF3122290228421282D24AC410223B2129122298141A4214C0312A023122373341222032220024B2200800228418440082822282828902480F2DEEC200112204A
-:8004800001400200240000222002220000000010820228800228000000000000200222A04220027F94092AE383D164F236362B112B228F81A322AF83F33A3849E222721A5C8A123AA3332AA312282F21F22C1C4D2487832AF22828188F82A2332AA2222CA2332AF23C34284FC3A22318A0118F82A222282A528485F8181C85084F42F228CD
-:80050000282A22D24482F624644B445AE63B0D2AA3773E362F62B622B232F328282AF23A388F23F322242E32AB1385FA32122D122B112E222F2391322F21F32E2C4F43F13A182AF2A8BA2B328FA3BA32E223A2231F31A23325F1141C2CF276662B221A24A1118F82A2222AA222C485F838388588524485A822224D242CF626644B662B748C
-:80058000CF5E0B3AA2624F63F326262AF22222AF83B322F23838AFA3F322242AF21828AD1A23E121F11212272229423232EFC2D144D288A1228FA2FA3232AFA2F222222D223E323E131E32F0141C26F21664123A23A1118F82A2222AA222855C888F814308455488222845247646F424244AF5F736A0233AF724266F66A2332F23F32A2861
-:800600002B228F83F338122B222AB318D3A8B112B112B132E323B112C3122B13AFC3E363F128382AF238AA3E328FA9E223A3111E1226E321B323F2141426F21476187A22A1118F8222A2222A528885F81838842245F4282822284524F6662445A6447E12200243022302224062810024164802204102204104288092122829011810020054
-:800680002901180000008440080000006044F04EAB2008002200200222000000000041000028802282020000000020028002000000000000143FFD046D521F41D228F11124CB141FC1B24AD141B24AD141B24AD981B24A19B54A3924AF547B24F842B547822DB54F82C4B14FA2C4854FA264114FA264594FA264594FA2E449E2A2F49124A0
-:800700002E421F49722CF2912483F4912CA3F48124AB141FC1B24A9921AB9453B14A3934ABB443B2427B24B842FB244889FB244AFF9C016D5A1D648D521D24CF24D181F248121FC1324A1D242F64F9112CABA459B24A3914AF744AE8547B14D85ADA86D41AEB22D558F824D28F11F8244296F5244A96F5264B96F5244A17894FA2B491F493
-:800780002C421329F4912CA3F4812CAB141FC1F24A841F41B24ABA15B24A3814AF445B842BB445F842B46598BA2CF5AC9800800400000000800200000010021880080000140000480000000000280000000021F042FD004002244C02204114081800400221128480018400220000180000284480014180012100000040480880F424F20091
-:80080000820040020000228124001220011884800240081800000020210110088001160881100800000014D04B082004002902801154842232100218211818AC41282143280820011081018120844204841024819114212280020010480A20E196090024004421000010080000210000001028020000002081012001001008811008000010
-:800880000080B45107000000002200008410C42441100400000045880200200200000000000018000010084200D0E20F0041C0342081011284000060814014080000200281302412410012201214880100480020014400403C284400EF5D0800004C0218800281000044CC1104C10000002241260826044400182042442801000080810160
-:8009000041008445982800F0B583004004120018200100810022100400000010080012200200000000200400000000201404F0A6FD802101002280028100200200000020020040048001000020220141000081000000228144004112DF1C0F00280018108802412820020000004008841200002110022881002A0400004410040020021014
-:800980000128A021FF9A0D28000021008001000000008301008004002001000020018002122001180000000011400841BFAE0E18180020022810082800000010084008840000100200002022024118201144080000224048048190246F6C0822200224124028220100000000120028200410041812240028200112220000800100002002FC
-:800A0000002244F0AC22000000008002008400000000000020020000800200000000002002000000008302223F9A0A2A0124200260810022280084842083922862282200000000800100000080210380220100120028004128F015D8008400000020020000000000000028000080020020810200120000000000000000F0A99E0000A40027
-:800A8000840040088002128400008022010018000000180000A0410020020000002822001200DE692008400400200200000000004004180028000000000000000000000000200220840485F18BCD0000180000406C8284260810048042080084001004002081010000000000444C020000000028004FBB05128002124068828480010081C0
-:800B000081100838008004000000000018181800122228281822001800200112002A043F5D0D00242400008002220000800200004420020000008021028004008002000000288014044120F22F3D4048840418840000604120810284840000210080088001181400848005000020024480020000800421D0250E6048002901B01802E08217
-:800B8000820200450883A32228424922020000000012222001180018121A02A022280000281828004814B0520C3A01242761008508282889213328C028818128B0280100482022120400180018A01128008003282A0112000000224921B4248106BBBA00812881328440382887421048281188414808842880F21418808222011880822154
-:800C0000212102124820052222284122800112A0224280D44822E282F2382880022881288082011800841880011890184818480000122001288002288002280018800118800118800118A01400CF250D2A712454A8CFE2B2A8618285F838288781C7C28F817138D8887118F81828CF4151888B233285A817474622CFC404A011458481213D
-:800C8000A1323A23A231223AA1112A024A8481A1111AA1112AA3111AA1112AA1313AA37545A5554F45F554748D284FDF03224FC6E422F224768B932658888F8372185844CFC37138D8C87118F83828C5FC18188F83A2238F81E127714604EFC5049AA8314F41898121D111A1113E118D28226E483AA2624A84A111181A0145A4323A032839
-:800D00002AA1312AA2644F41E121F1466445F44A781FB6041AD344E42252648943F82828895188CFC171282CD388835188C55C888F82F328288F83A3626F43A377CD1C80084F410112121C01281E181AA3513A032AA2661AA1232A014CA22338003238284AF415148F84F44E4C6AF428381E9A80D34C44F26C3EAB31848F82D28851884F05
-:800D80004171287C38D88C817128F81C1C85F828388F82F228283AF736347E72CD1C80A81147482021E112A31119E28181B218A4116AA2663AA3333A82A311443A82A3112232383AA36445F41858EFC7E521F16868DFFE07180090120084220012200116081608122812000028000022A012A012200222A01220020000002880022081023C
-:800E0000130C0000000000801208000028842002000000000000001800000020020000000000008F2B032E421F417228F2112483F61124A3F61124AB141F41B24A9921AB9455B84A3924AF143924AF147924D812F924481CF9244A1CF8244A16F1245A96E1A26559ACE549C24A1F49C2421F4952281F4932481F49324A1F48B24AD141B2CE
-:800E80004A9921AB9451AB9443B24A39242B94478229F924484AF9244ACFC2084FA2B411F62C421F8132681FC1326A1F41324E1F81F242841D2C2BB45D28AB9422AF543924AF1439242D912782AD952E125CF924CA1CE8A265582E5A86C55B9E25ACF4912CACF4916485F29124811F49324A1F49B24AF11124AF44F91124ABB45B21AB94C5
-:800F000043B34A393429E983F44A9423F24A944F22F5571B202888040000004004280000000021800188000040010080040000004004280000000025019F4409101204000000800200400400840000280084002001000020210120020000000044228110D884F41C49802108841883084400000000008400400810480444002002000000F6
-:800F800028800100000018000020C22128CF260B204C042008440041222200100400A44028018608508400112810084200121A020010042200004004A440B138F4ABDCC012008418840000000000008100000022440000200100000000122200000012002002228912F4C55100000080014100000000000000000040040028000000000047
-:801000000000000000008100F0F34A0000800200121002000041400881100841400C008042A81200000080410880029014004008802444085FCA0D00000000441002000041100800841004440000228C8202000000100800004100100880844408DF2C0200002820011800000000001008000081100400200100000018002002200100007F
-:801080001008004F5B071004400810044141200200901410080000160400400800840020820120020081200200100100001FBD0912800200000041200200000022C141001608001200184008208101001200800222000000304880D13D060000604200000020080000200500000040080084001100104208000000000014280000DFB80407
-:8011000012412800430200410000008001811A440400C400100800004021A112122184120080020000000000F061BD0000100840040000820010048042480400008011081284000000002800400800000022C048008FF60B10044004440041001004001008000000001608800222000084008100840084848484228400842012B84E0A1682
-:8011800024322422002260422222228002444444418100000000000000400881100822B018021A020022400883024A423818F0BA2300801104180000000000188011044100000000000000002200000084000000000000F0DB45006082186042400420020044400400004400122800818481000081400828004008008C220212008400003A
-:801200007FB20E00800118180010044480028001810040084100002800000022002228220020020000000000E0DB061200008002008444000012200141008001008100288012C82800008110280210080020422803222002360A26044422C38242847228840222840041834244040028000080C228000000220000000028208102810084ED
-:8012800060814028F4192B202808000000004004000000008001008100220000000020010000000000000000B034052628820422400800400428C412208142C424412180038800101848014008482240088400400C28120000001002FFAD024741A2C41A62422A614149D24802805244444440941485044141002812222052882828801218
-:801300008882826282A02184288484848C028588518822848F82026A013E28818F5C09388A220381414B222092248B22001058440043514C281064811004002226782808220040081028528810A821818C0122200100848181486F9401224149B22491241A12084122412281302412CB13168443484424020040D888018100001008894249
-:80138000688228A0232002008C028C128811982800D0A20116044440044422440000002002260822200222200280022880022800811008830283028302811028126882142E48E082047DC5B034E243E3417124F43CB82E2485FC2424C5E842528822851854C83A5288288CB32822A2222AF22828222AF2242485A8222AA222282A222202BE
-:801400002AB228E282F228288B118B228C5288818342F81818818B118CD288B228E283D188B258E38662828F86F4ED2DE042F3646C4B334B628FC3FB3434C5B8247228FC24248FC2A2228D2845D48CA2238F8282C2288B22261202AF8223A28845F428A800702181C2218F82A2224A54888B622E281E188518688226782C3C281E3C848FA2
-:8014800081B328628226B818B328E2A7716A9828AB77AF34022E343AB514B114F1381C3AF33C184B2285AC22850C8D2841850C8F82028362822821F0281828884554882AA2222A62122828842A8204812E283E382A92288CC2282E2489E28143A811812668828B31913E5823B24896183F22024B238F42E643A337CF83E34353C82A528CB4
-:801500002E248F82A222855844C7824B228518342847822865E42272288882F824248F8A0284229C02136282A062816E282AB238B328E282A2228B228F42E282B21411B838C12828813E18288B7125E8A6A4126F7101220020021800000000C02440044480020000280000222002000000000000002880020042704D0900008002000000C5
-:801580000000004004000000810084280000000000000000000020022220F21B21D024F41124C5F2112CC3F41124E3D441B24ED141B24A9921AB9451AF443924AF143924AF147924D812F924481CF9244A1CF8244A16F1244A96E1A2E559C24A9E24ACF491242CF4912485F2912C83F4912CA3F4912CAB141FC1B24AD981B24A5985AB94E9
-:801600004783AB944782AB944782A9F9344889F9244ACF590D4D4A1B614F22F4112843F4112863D681B266D181F262941D2C2BB41D282F447934F842814783AF143A242DB16F82D45AF9245A1CFB24CA8F51FA244A96C15A9E25BCE459C24A1FC9C24A1F49C6421FC922F4912C2B1417C9237411FC428417C12BA457812BA447832B8447FD
-:8016800083AB8443B34AB836948A4F22F5F2F7008248000000004480020000001002008800004001400848000000004480020000005012F03FE60000411004440000000050844008008100000012000000221A120820220222000000008400002FA60D20080000882880210284000084410000220028002820030000002800200200002830
-:801700008002004041E8830F200C410000288021624280025048848124008321220828002A112102004688224288028022922420028002281048021416F8C59700000044C084000040080000410000000000001200002001002800000000000000007F560800000022200222000000842880020000000000000000002002220000000000A2
-:801780000000F0D4D80080430800000000008100001008002002222002008002288002180022200218400100801401F0E8EB0080020028800228000081002220120800200228800200008002288002280028000000004814002F4202001884000000000000100800000000000000002200002001800200184001000000F0AE450000282203
-:8018000000000040080010080000008001000000804202002212280000A01218000020028091E500000000220000000000400400122200000000008400C0288100800128200200200100801107180000008002000000002400000000810000000028200280020000000000220000F0AE5180018002002002008400000025040000801108F3
-:8018800000000080120284222800188002181800A0212002009F9E0E00002200280000000040080000800200000000200280224288810200000000000000F08DA52002000000000000000000000000800200001200000000182200200200A01200488004FF3D044008008428122800848181000000000000000000002880828201002820CE
-:8019000002001200002838182828F0773200120000000000100800800100180000000020020000000000000012120000184200F038244008124008000000004048080000000000000080010080023800322021220100121200001A04D75E8002228002002200000000000000000080020000000000000000000000000000F04B1600180096
-:8019800000220040280200202201001200008002000022002822222002000000000020020000BFF80C0081818184400820010081101808008001008001002200000018382021232121A11218003818281214282A8103BFED0982822281008400200200002200000028000000000000000000000000200200000014F0BDA5400858800A4037
-:801A00000800448428100884180010022A018880820118262122420848A0121800200316042820010028121002BDC9008281848BA28181162802228C12588810C82885280100128002208102000022002238122812182A82011AA2111A21011A818292313A81E211014FB7012296A82181002A02008140088184810000800100A0220080D6
-:801A8000033A02002822283A012A023218182880A21200221242181C069F770D28182A0184841088021800002082810180012200002218002A8281022A02122A0120A1112812220020013A8121822422068FC10428C028A028C0281828188C0200840000810000002001122001000000000000000012288022014880048FB90B2AA2228FBA
-:801B0000827228B828B228E282E282A3333AA122890250882E282E288F81F1181885081AA111282A021AA1333A238181A1323AA2222AA222A0113AA3311AA13328122AA232181AA1112A8321A1111B225A85A4444AF4CC8AA0225E688F82F228688F829A282E288D383AA3334F4292288FC2028CC2288F8252888F81518824211AB112A354
-:801B8000228A09883A2381D111A1112E3185A8226E68A0513AA3311AA1333A82F324242AE242A3111AA122182AA2132AE227B752A54429F5F299A022682A028B2289F228288F81A232F01834812810B828F2282885A81100211A81A32288A0223A820116A1323AC2282A82041A81031AA111003E24183812121818181A015A15A244582F5F
-:801C00009A062AB218B53862868B22812E2887812A23F21834814D28702898282E2885A81100211E12382AA281A0193218E013A2331943A82289045AA3331AA3111A01E042839124181818A0131AB121A24529E62505FF9A09001800840020010000000000008002000000200222200218800122122212000000002812009F5304000000BC
-:801C800000008012080081000000002021020000008002001A0200280000180080022002F0792FC0421F4152281F4132481F41324A1D24AB141D24AB9419B24A19B54A3924AF1439242F147924D812F924481CF9244A1CF8244A16F1244A96E1A26459ACE449C24A1F49C2421F4952281F4932481F49324A1F48B24AD141B24A9921AB94CE
-:801D000053B14A3924AB9443B2427B2498924F8284F9244A8F890FACF411642CF4112C83F4112423F4112CA3D441F242941D2CABB45D282B944782AF143934AF1438242D916F83D412F8245A1CF924CA1E814FA264182E5A86C55B86C55A1FC9C24A1F49D628F4912483F49124A37491344A1D24AF44D941B24A3B15ABA443B14A38342B9F
-:801D800084478329F9264829F9245AFF5508208804000000400428000000002180018800004001400848000000004400000000002501AF4E01000080022800200240088484000000000000000000000000220000000000800200F0EF8900920081802808000000000000000000220000280000002001000000000000004081F4318C00C204
-:801E0000008128A02800412222400881810024001220080000112810084200002002100422000000400214125FBB07200100800800000000000000000020020000000000200100000000000022008074BF040000000000000000000000000000001002000000000000000000000000008F1B0C00840000000000000000000000000000003F
-:801E80000000000020020000001800000000CFE70200810000000000000000000000000040020000000000280000008001000000F08865000000000000000000000000000000000000000000000000000000000000FFE40F000000000000008480010000000081008001002200000000000024001200000080F23C720000004008210000CD
-:801F00000000000000008C04200200800200000080010010020022000000D0540C0000220000002400000000000000000000000000412800000020018400000000F0F9710000800200000021100818000000004800228001802202000000180000231112282102000020F2B4A4000000100821000000000000000084810000000000402483
-:801F800002000000000000000000C60A00002001840000000000000000000000002200000000880000000000000000F0151F000000000000120000000000000000000000000000000000000000000000F08DC8000000000000000000000000000000000000000000000000000000000000FFE40F0000000000200100000000000000000032
-:802000000000000000000000000000000000DF880C0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000200100000000000000000000F04737000084000010010000000024000000240018000000000084000000810000A0120000F0C47B000000400800000000FE
-:80208000000000000000000000000000000000000000000000F0AAD30000000000000000000000000000000000100200000000000000000000007094050000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000029
-:802100000000000000000000000000000000000000000000000000F04FFE00008400001001000000002400000000200100100218004008000010080000120000F0637C00000040080000000000000000001002000000000000000000000000280000E0280B0000000000000000000000000000000000000000000000000000000000F04F09
-:80218000FE00400100800414000000000021004400100218808802218001884008000028840000800200001F35020014000048405588281082044480022100448002214818808802214818448828842148408481421882041E148002211A01445C030000000000004400004840040000000000000028000080080000002800000000F0193F
-:802200002C00400140014840810414000000100240044014021880880229081880088400008042084008800200009B4B000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00100200000000448002214840042800000028EE
-:802280000048000000484004281082044400108204440010F2E1A4000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000002800000000880000008002000000005FC7050000000000000000000000000000000000000000000000000000000000F04FFE0000000000001B
-:6D230000000000000000000000008002000000000000000000000000F07F4D000000000000000000000000000000000000000000880000008002000000005FF4FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3FFFFFFFFFF13
+:800000004FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000001004000000000000000000000000000000000000F04AFC00000000000000000000000000000000000000000000000000000000BA
+:800080000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000000000000000000000A2
+:8001000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000021
+:80018000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000A1
+:800200000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000004100000000000000000000000000000000000000AFC40F000000000000000000000000000000000000009A
+:8002800000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000A0
+:80030000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000001F
+:800380000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000009F
+:8004000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000001004000000000000000000000000000000000000F04AFC0000000000000000000000C6
+:8004800000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000009E
+:80050000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000001D
+:800580000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000009D
+:8006000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000004100000000000000000000000000000000000000AFC40F000096
+:80068000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F9C
+:800700000000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FF0E
+:80078000E40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000000000000009A
+:8008000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000100400000000000000000000000000000006
+:80088000000000F04AFC000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000000A1
+:800900000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000019
+:8009800000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000099
+:800A0000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000004100000000000000D7
+:800A8000000000000000000000000000AFC40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000008
+:800B00000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000001004000003
+:800B800000000000000000000000000000000000F04AFC000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000009E
+:800C0000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000016
+:800C8000004100000000000000000000000000000000000000AFC40FA024848C848444082248183289014C024420A1282820412888018889018B84888018282405488448222222000084C028C02820013058826F8203428381018C41A8342E58482A8982C8A44D88824F8224E24136244AA1C198825A2824AC1212888E181256688C8C24F9
+:800D0000048C9218848A44C84846A848E82A816A82822A0428182A81AE878B818258FF5C0360818C0183011820A44100822052844158444828008004008830C800880028000083024A02200284009018202A648120F444E58084020030287820AA213AC8188328280400A242001EC880240312841210084220210183C8482024A8843882D7
+:800D80008188628120021A84084688F95A9D00004608484284000040042228448001A0810000408808D8C2848120441808008C020000002822A012800298F0257400480048810022003024100420A21220A9810082982009124008488044084848200480022002000000128200EF660C00000000000000000000008902000000000000004F
+:800E000000000000000000000000F0A2FE802401800410821228048458482818202122384490244C8A9414008490488A3442A0348884904482C0B81410982220E42148A814188E18228C29C614F058F840C122111885C128114B128123948125C211821558C2669C4F442D41501812400285C228A44941081284161271242201C028112136
+:800E800087298442181512488809A9082B144C821828F64A6D20A4122120942810C2282784131CD2828185342C4F82519649B121244801228E26200181C34168848AD18284E112A428A301439428118CEB1118289412304885C298481AA8812B164782424C81F2E27A400114128501141E24000014828503424824004D48184180544827E5
+:800F0000821002200490124400204802850281283480092C41180898A2814857FE1022C111800121842200102888A1412929483114188A140846342400001221444B4200281810421402818A44018B94828112290181224C8104825E1DC012114D2831614E211CD14264A483A8483F886421C424918F2244398E2F28964C008CC22885B13A
+:800F8000446254C391121312C448403197101448E2827184180243012F8441628182C648C21841AF2118882308C5422201183512641637214624142AE484480A704863A38318D222624100818D4413A2245068006146684410014002C562880018304889A481802411129882478100828C0130135D282001403828822C1881D14888311289
+:801000004A48918D439D488A448822121CD41484816113402452219684C214842438450284434C23A181A18CC8982116183438212A8508AFF209141219831462121821324133113C211841244068882CA2922144AA81C825248CCC884227C210291805497243D44AC2264D818A541A124A616281302244A44D4810420825A41464BF7206D0
+:801080002D12A445CA418C0126711192481F810243210260882C18051242A1802124042C08C1608513012009429058284130484558C1107221341800100458A912044F8C0C484430245724440011608C901A1DC846784281040020290484100422800843584210810124100830818091114848484892614A01A10084EFF20B1315F21A24B2
+:801100002D274D5247121051928F22B1583818B3F1C1188CD4A1C882152888A149108432C8434484D482384C2D888B1449190613811274227C726C526C049B484B1416C119482D414781894442345484128CC24485F6D83A106241145018E03221A1161544010064484241812229628942823021508228C024108858418816541240628881
+:8011800088158841782802214142F04A941002A3148401EFCF43810281A34418481808004048A281508210322A004410280823921484008B8147841A0288504244002011098484402831822028820188846FD5044C24410119843242144225348981454294214144404802424200102608268204004400418A2214022F481448924C0021E6
+:80120000684308105A8684418D12449F9F0E005061508410021B840090890048898284C8812D84C02800400E106488A018A0144481148328528219318220092344B88201839184561832860028373F50325C82241401405448214354418829420410840840988E41A14D1885145214908813042008124008560C200400800388422608125D
+:80128000242E1861F037F700401422148404401458A248104824883889C40048004814C824001004140024002004814C981890144002418091480050185BEB6082484887122044150DE01108182814841210424218120298C11084486E1528461229441407414467386445823212C014D026120830144464128220F4BEFE00411904850487
+:801300008448002014480250C24410B24428844844022110084140881404108428042008832468A4284248C38521B44208104C088EB200401414324365225482C221230413082114230482444308250800A48149C482AC6A22882008812489088180ABC22001890C848384081290828218DA0B35489148100411904511425413C2288884B6
+:801380004008428184A5A1142D112189080081425E81A04147848044088C1424812491462594C82800212F8144840400446FCA037F14921145D61A744868829C548647748E81588784273C8E8150CCED912C0C8F885CE48EC4C328C188A9584845348C2CF24841AEA39ABBC8A811D041487626A888750A8E82ABEAAF71D36A781898584598
+:80140000E28172447A82E2C14554A881188531126F8A422372464199253D412465144908979435F1281425F8872100C48D83259249C7844E88655612164C1952414CE4C9084E4E8C1454644911D448E864F48814A5D642C4184AE488642426FAC21829E441B914B44CFACEC227412F29D1CCC2884CF42BF600261469E445F64D4497244E4E
+:8014800045A9F447442F68884458698F2148C24EC9F2824849B28218C2458D6885D22454268FA8DEA2518C61AF841438171F46ACC5508886518E6A7444F81411528E884B15186B848934C8A3F8481886E281B14417B4823894CD28AB75000080044880048A040082000020088242200400800888000080088084082008000000820020082A
+:801500002F3449F222244F4252CC4F4252811572485849AD4855F15B9885EBA755777DA4C5FEDDDDCF6CFCC9CBAFA494864AD499781CFE8B83AFE455BB8F84A4884E44BF99D188F2B6341AF595959E92375485788AD888F48B8D8784EFE8F17A78CFC1F258588FA5A5DE6F48A8EC4D848F85781CFA8848ED1C8CF11C1C1AF944443FED4BD2
+:80158000F322254F4256EC7F32F2434917F4CFF454CBA7E4375CAFCDD1BAF45A7AF7F86748C5F6DDDDCFE4F4494BEFEC348E4B4CD7B8CD5EBF38F84ECEF5FB4E4C8E822B44FFD5FD28AB6F63CFC8DFD8EC6DFD434D85DCCEDC6CFCCB8BA7C48D8AAF82FA6CAEAF8DFD585A4F29FBD6962BDD4D86AF85F9488ACDCEE7E42F81F11C1C9E9238
+:801600004FC5E55B417227F62646E5F424246D443D42A784DD4DAD4DD5FD5ADC95FB597AB59B82A5FADB9DE7E4FFFC784A9A8EE5D4DDD8E4F18F87AD86B5F74E4EEFC8F848467FF9F548696F4FE3C1F5D15D4F29D15754ECA7A88F84F4898D48CFE9F1727A6F49E34DF55A5A2F8CFF149C1E9A27818F85D4AEF4CA488485F89A188F81F9A6
+:8016800044563F344CF327277F62526EFFF2F247453774AFB4D4DFF44A4FBFDCFCD2D8BD4BBFA5F58F8F4F48586EFFDD794EFECF8FEF6CB8CCFCCCC49F9C7C4CFC8F87E55EFFEFA4F48E8AAFA4F49FDF8FAEFEF6F69EDC1FD9E56DD55B5468EFECF8CCCEFFFCD842F49C9EAFAFFF76B6AB99AFA5F5DADA6FE5F95ADA6FEDFDD69CEFECF840
+:80170000C6CE6FE5F11E1CC7C8CFC8E8E4F569A6302410440884418441008424404448244802814004812144504820243248184298001084144428E2810484E0880484A04985A441852101F07FD120180111214880041B48800415C8813048844AE888048281002440087088048200884460C885028522886188421648022928190824102A
+:80178000228158144F810B3CF511248D121F417268F21164A7341D64AF34F18164AF24B981F64A9153F94A9243F24A9343F242B1578A2DB14F8AC4914FA2C4A14FA264115FA2E419F2225A9E252DCA9E246FA2FC91242CF491248F22F99124AF16F89124AB141F48F24A931F48F24A9319B24A19F54A9243F24A9643BA427BA4D842FBA4B5
+:80180000484CFBA44A5FC207BCD141F62A121F41726EA32187344CC2131FC1D278E941F248215B21AF3439358734514C53812F447B27B842F9255A4E355FA22C7525A8243D189E256D599E256FA27411C84B4CF62A511F49726A7311F44A131F48F64E131D248F74D941F248B25B21A5A6428F6419E42463822D342F82F44AB44B127F6A2A
+:8018800046528200800400004004000000240021000000000000848084010000001604000000001002DF7E4C02004419544124156414182724C081A434401A1452494A5881194844020024100129084415021512111241433411848B4894D66884412984C114CA014400825FA40D11821578124206A183D64211C2819048114845C24111F6
+:801900008112140090C45160218442450249440280181414415248864896141602004800215042128CC181F0DFAE10211448944765033D2471299184211356181D42D0815412845CC1C31414124F243884C012A4484553214308851431C274641124C5738814351C4915B82801412384C114CA41D42461818892FFEF082140230110C84800
+:801980004A0127149088101214121442088488411001000020440200100111002C018D82114AC848424002240000B0BC0F2410E68142D24102444E121D48002909AD141264400500801468824411462452481880215122400200181308128120A448271443814818485848828843F25F3410F424111552245C45E29834115C82116214157C
+:801A0000E8915421918887448B49D5F28418C184814445522844A1F04211213658262E841F44B12591114F82082234A426E4A22CD42A681123718882D8A645A2482C0B52166484DF880A441245434214648C4531354618222458812781942485A48415E4885148008424444461284F910424648E341116D1210100169289258448023412C7
+:801A8000172C4B81451892482E98444A117424F8F69D40D261028F41F211421722141846921110911B1A5414233184425D18851204818C1464C2854261841092122E18127052C62490AC804201224E382D4889B842A184A1241A1C9882102A2889F4D35990118C110413324240013490452E4211841C3812241C05251522226922C972182A
+:801B000001836682414431211185048C34822D24508460C2D04212C8A2453218101C32184C082148F0B86A204298182A2404250142849247812244124018088544F84A8412160100E114414681912182248728904428167848061112C14C115382260143A881450821882B1200AFBB082147222411444145287412844441120100501682FE
+:801B80002122002440116425805182404404481091145012104201150800100A24001008F0C82890312A7114CA214E242552C11116641413C949245481822721C5E129146452881288244D295416D48364C3A914644223086440C892365C348460D2649C4331882483D186389CC423D14228A812007F3E0B21442140C14480344284211209
+:801C0000271480111108254118DA848452212830182D482840C512101491C250344C42C2484512814148425822510024100840280497EB002111A11144842411851201512011584100810041100812418504C141411120511C8485441102250463615825294231322182211818214008CB14142218C0122E1800004284260221906481284C
+:801C80002844800244221E281140412AE28264812416644221103126100884228986489824C210A8818220444C26F13F63004110042041044C014826110400444140022001274141000011C0180024001100001D18128888828021810118850210F8A5D5401811384100101118711152414041086301850142414502840024002608140079
+:801D0000160810121634228392129022442129528141290221214A01AF4102BF980D82245028400640120840024141002C0122004C11021014440225141802251402000016419482CCD1280200901881433188888C81C881BF340190459C048D4510444C414148054D3884818144804218428884532984181088041601400841401258822E
+:801D80002502343416948887618D2286484202248088011F93448284A1611212942608412602248448182819E28224924844008444402112084424805242008D228481008022021118148A6544888886084C0148F0156940125822144418436114C41818001240012410224204220044182002464934181608440000401854480034882064
+:801E000019120C8604927088F4ABF5248C01584140080044454284C22241800381508281004C514398814044013444404891411504C1222AB128018844418B21418141902C214D28442170584D9312D6F11A181D19818391347445781451A64651214611BC21548CD0847228F422424C02228C0257114461C3D214322D8B1149011231A483
+:801E8000C5465124D022E182D228F2254186D28AB912F8E9D48F2161481652EA2B18461C5858E1CFDE072E4235522127217B14C4859C4C95D48BA71113F22824E9D1C251EC26A522397142588C84846C54488941FC141811848762F445C62A256262455E582161A55C888F82D246D144D98293BB3CE2C8B112F2C6882D88A7888A3914AB63
+:801F0000B127814BD28AF96395004D1C1C724C64D351231141415619255212162481B211734C742802286145F6141847227FF1822152C8242D484A44781AF11C1449418152919762F022225371187233F998869486543DA4448F2391944B21AC98444F48698184CFF7012880028AA214284228422004422004421200428002420080022893
+:801F800080022880022800000022820020022220022A04DFAE0B2CF735378F22F33D375AF62133EFC7F32565CF44F46426A5F848488F847414B652A2621F17F724262B31CFE4F6464C8F84048F84E6A4F4444621CF83028D2855E9E6743244BA2663421756B02172297828D28AF231318FC1F3292C1BFD1F34F41298BFD8F8D2D88FEEBE9F
+:8020000082E969FB92286B222BD26AEE87F764C1DF7D082F24F775772FA1F11517EF45F72127E7C4DD4D4FC4F4752D9FD554999F96F45E5C2F85E182F67575CFE6F67674AD28AD28C55CACCFA4F7424ACFACFD1E18CF835A84A47F14F46C4E36F621284F837324F663458F82F22D6C878287A2AF22F23B33EFE3F32B2EBF84F5595B6FA93D
+:80208000FB939D2F8DEFEBF2AA38CFE9FB96BAEFCBFA6294ADC88AF82C1C2FFB034F62F51577CF71F11D173E11DFF456EEF7F4EF52C656AFD3A3228F94F64442A7A1EF77F37E795F77F737354F6456C6AF82F224248F86F52426CFE2FA3634DFB2527327627F76F64267AD148F62D3C6E141D261F42F24119D2A8D226F62F235358FE2F321
+:80210000292C8F69FBA922BF81FB8E9CEFACFDCCDEEF2AFB98962F8A3826AF81FF42D88CB124F916A5F066565F71F73C3EDF71F13C949FF4F62E2EB7F4AFE2D6FBF53B391F16D69B528EEFE1F17E17EF93F33D3F7FD7D7C6F24E6CCFC6F62C28CFA6F62626CFA2FA3E39DFBA52FFAFE2F26F6D8FE4F6181E8FE1F136362F61D263546F5F15
+:8021800056D298D2E8F22E2EFFF3F3323EBFFBFBAAB91F2BF39B98FFD8F9EF59CFEFDF8EF194966F8BF9BE8CAFC5FB14D88F8F7F2CFD84C100008418104418648114840044844C024C02890244100844188504811088011800404228628120098260882009164822099281822FAF0224112450124C2414211401193442A014A02420140457
+:80220000000040810100400400441051260010CA24A7141002A90121908210424804DF18032F32F4112487221F4132681F41326A1D24AF26D141B24A9921AF2419F54A9153F24A9143F3429347822D914F82C4914FA2C4816FA264114FA264194FA264592D4A9E246D4A1F49D222F49124E5F3912483F49124A3F48124AB141D24AB961B94
+:8022800028AF1419F54A9543F24A9443F2429447822F44F924484AF9244A9FCD0E6FB2D441742E7311746243FC6A1315F46A1315F468951D24AF34DB84F2489353F242925783AF3438244E916F82F44AB136E854FB268A8F11FA274A9E217F82E41D529696D5867491D886E449D436749178487291744EF28124EF34D141F24A961E24AFEC
+:802300003681D27A89F44A96F04A96F0429465B842C918FFFA0E862808000000004480020000001002188008000014008480040000004004280000000014F0AFB80011800144454B081181008442448145084502224004443024848412648082043214542111243813015021844221401422812211146458BFEA016028142434111A86E1A0
+:80238000A412C84120111212011141214210C428C140420A6444288C014901001281104C440484800182829281A18909841C61848FC408603C14182125316520465184A01284294415184C56242428412658848E1470244A4808153618288745204441171841C4145901C1158201A8824C11381A8C6B21441C21FD12B500004041D42861DE
+:8024000081854268144002001001200410040021502416240200A02120015028280000814821C0820000844445F8444920023428E0C142025081815018504811005C1121441828922865021961440000C02400884002241A46825218001281C016C012848004F011A21445311681CD133E429024895543C0520012F01448C3D28461828BF4
+:80248000142668544A4231421CC244C02243714188316849024C532219C2144B21C3D414411C7C14082D91112D85744E82B01894444E84622E1C8D34825FB7011302113933128C91241044682410894178484514A812194588141801542334115042004244E021429221184C4244D14A431C02311003293416211A944A484548083F1C4B81
+:802500004166418185C4624942E28154121489010041188362419514A824152C6622668A12042E44189C246182224C120482411227844C2104478385A181148E1455280889153484281AC634882FFF0B140048222645818821044784224284251424148112128A149828148B41302100811324411219024C642144294451144374824408F0
+:8025800029848468214301400844A48B2D00455824488001AB2450231912C42A4D81128312C8242D1800234421110460420033614455082691184161AD414114848502C034205814451872C8218401442180F47195D022114131211012CC85C48009000000401428C8148821813424402C22018144008122218412612A0417240083081058
+:80260000470264888C2104CFE24532116541C621241F42515835941423B4126A8481828C312A814D221D182C02467854815886C0482133127412011058411D1210544B2514BC18542C5C22E41A456828CCDC847482E2855824186483381810F89D3400400122008C16184101245904414448101428088428156811430284284D58874418E3
+:80268000282144A1282C1151221142442502100140A641004460442CF4C892104402304248250889418125461108814E14C189D48452415784448115141891480000CC811404121001844184188001914284F0621245A82156E8A82228015FA4060028110010684400844120440420611112004002121222281D14009152491214384812A6
+:80270000100821824D4224508112009084449018005F570380D42822548187440021101761211042081D28114092111446064724104541022140124143014446C1111042113288818870821146328823048084084FC7071086240222E012018D2481448184841008210022274122002032588904994441448204901881A0141D148384118A
+:8027800062114D1120048908206483008CF48BB1004008250840410681800442800280D14B0218135148119052144C41C42400A0144082D148914C4111008C084212128981482401414286086DBCD08404D0180200209111184E22800472232152414260442082110820429812F0441128124548C8441C041111460A4A584246248144A819
+:80280000842B4248893E1410183218CFCA0B6012195442430641851601488301242241150C48190280022D4124C36482441C423118842C01304412000040082411848148108401A0411A08F0731A20284844084782462A038584820110042800422CC13840C168411E4110C4146052216294122A61C1444212B044014A2124042D12114241
+:80288000C11881002001CF8C0A848024140400942C011594184C22B211044143139C286022858491418C48C6181904406141418411190444488420011287412128309C188A048447245082486EE600435825BB442B24C48416B114751111BA69355865F86224C784618D284F15F45811F7724AB521D341B245D26C34514D141E2487D4119F
+:802900001F21D244C4642443B64A52147048E8C4E581D4818484FC8844AF8434588F9531D24FA9CC2CE7858A48F8882489711848F8D6B2003B282B2274848726812E18C48F42C14416D842218444F41831548D348C8471167D1454AC5C044D5B8F367624B125E6616146878145F1411511457518FA1D4119741811D51C31138A3156172114
+:802980003D1A90598B14CF2EA9987E1C1847862F818C39484B3AD0448454882E28DD444966649D26B551A61F87C121948542B831E5C2742412F125241E289B227072518A3794A116D889E5215116C589F17812E3E141B511C1144E1C4F4111514827658D182725ACC91147182C4459422B416C9468CF45E421252CA8418FBB0600004800EC
+:802A0000008004004800800480020042200428800228800200480000A048008004A2200A0082F053ACE024E422E262F22727674845F46464CFE3F31E1CD5DF8A5631AF85F44C4E614E12A792CF83F154188FA3F373611E394F1152A863D2E414F22C46F792CF6756CE8FA232224F62F227254E445F5351A8BF91011F51F14C445F75F55A58
+:802A8000588FA5BD5AA1111AC54227814F41B378BF76B362E613B374A7444A0C7F750C4E461F72F628266F62F266648FC6A266CFE2F31E1CCFA1F15A3C1F34F15A78C5FE4E68CFA2732AF93C181F95F17C3BEF16F63C2C3E22CFF1712EF9C5CF77D1CFE7BE3EF16C66E5FC383AEF43F26D666FC1F254445F5374185ECACF44F45915CF4585
+:802B0000F5545C8F85F558588B9D1AF56C6895FA53684F27B3FEBF76BDE2FE7858CFA7A744CECA8F81F13388F044426F22F62226F7F2ED462D466FC4F43E3CEFC1D1DDE144F77122BF85F64C4C4B444E16A7F2F7B2FF97F73C7E2FC7F75279CF91F32D3F1736CDCCDF55F13852BF93F13C2C4F43F32C2F2FC4F4747C5FD1F734567F6256FE
+:802B8000EF77D187815E5CCFC5F5455723F4588A2FCDEC81B118D713F41B43AF28FC72F84F8FF96C6CCFC2E686F68A488F85AC541F54024F64F42727A5742FFFCF47AFE6F24A48FFC3F3161EF5FF5B311F27F3535AE5BE6EF42C362F73712EF67B3DDFF5F3737D5FD7F71D3DCFE27361F34CCFEFF5F1EF4FFFD7F56C6E6F33F33E3EA7C302
+:802C0000CFE7F717537F72F43736BFA1F11F1DDFD5F5511DDFF5F1471B3F34F55A4AAF8DFD1958AB7431BF87F54C2EEFEEFF5E9A6FCEFF645D4FC6F6CA48DED88F84F5D7B700601210064116182421628100508128128D24F0482412447048145148188D2449111804418001494188C14849E1810412241648210184E08114A8418524111C
+:802C8000088FB502000080041912086220C448429028A02413012A0411288480242442014220041E240000423048484A08802424C8148A0449048A04F03C9DC0421F4152281F417248F11164A7241D24AF26D141F64A9119F64A9351AB944B42AF14B925F442914F82D412F925484EB14FA2E414F8264A56F1274A96E1A2E45DD2A2E449F6
+:802D0000C24A1F49D232F4912485F39124C7141F49764AF38124AF34F18124AB941B68AF243985AF34B9A4F44A9243FA4294478A29F9A448984FA2F44912F0244A1B4165E2C1623417C1A72415F428124CD278C924ADB3518D9632AD8753F2429247822D917D48A9F924181CF926C81E817FA224D982E458D2B2F1882529E1C9D2B2E44962
+:802D8000563A9E24E7149A724AF381248F34D141D248D141D222D384F2489343F24892224E94478229F126482B944FA2F5C44440280800004002400400000000100218800800001400841081010000004480020000005012F0D53C40121518111894484686D12142081C04408431441B4126068982312C40024143416A448344042A4106AD
+:802E00001C71111C012139E154116584104A41024241418418414318F8285F6044860225821402218904582800894411824244984114C0422C724448115212440022425C0412442130158144008A11A118E018449288188A1124446811448FB40C4676C4431AC14841D0621468224D48B02104480043344526421328E121068768242011BD
+:802E80001816C924429B4344523C411DC116D042A11415F484581532A8B081042784493184411E42605947817B63000050223048A01411182800815129218251844213024588924214454215248404404402411210111851140080114102888041084508E0970A0014004485C244400811001448001C12058410611421101108100429811B
+:802F00000200101201C0121028410246022002481810081F5F0B353411295242330214186228282117A16041C169589241C0184A82C32481424D22446C16C461C04864106121142548444823051850A2A014A081E41F81741418784894481A14F4D99A10114111362141141A242642028301414149084302848B4220420826420400C048BA
+:802F80004522122141512A50812442008140A241428A41CC6116149848896481411F170A256421281002A441108842111192118D42241518511412A012513C84141461C6256416412412001002441021819112248C110224002D1881424C0142705742021782244864141C021304214311514328F1226126618281214002949422158842A5
+:80300000984815025018008984441142F248166041105896428178A45048182321012F41034018B88104D0841409005912A2148926224401101182641122C04200C14C1494434811CD4210C5410086589222412D851022942288650992002908F08796904161A0820070225422410000112444240021411400414004100284444D42104403
+:803080000A00414111122004002954214284210085042FAA08111485922144141C567211619021212501274247264425814218C4410045490B15D88412CE4485C2444675454254E19140C388457138818109254891422C981423E488514280490CAEA4D022C424002410CC2842102241B114744851812111288425015021282034240042E5
+:80310000A44200210020044542784642541248244D48248CB44842184288011870B302002451204458181480221404A724424501840084418C42216222C0218454141004C0452420141158419081A08189918542188CB914384A43410844881F710E2414400A100644890293024122840022101104001548D414043C022442005C048481A2
+:80318000004B144002982400C14100104A54841A4874970448851408C9044064841002A121108404104C28B41142010089110430446484414481002120014141890482504118004C01860224843F4804280000153444005447844442115018847048012440022AC444192402480014488D411C110241844C110256480218418009449088E9
+:80320000800100BF674A4104C04840088116144618021022C12C10044400100400004012480800411200100C128184C0141820148801841608181FCD0925084840C2414021521813820628268E140121814810564880D68192422100111C0418482502A304274400121318644C2C6428C6C24824964282C11220348CD73C0025115442836D
+:8032800084120A602240180A4230128440249254801218014C120841846041140000CB1411A11124848E42201901100840015084F0363D20281C02A26012248C02002844414400008C14220140080028C0148419140441415904421400301383448201C72418C1410040093FF1052784414D484A42460426042148254482020044005116E9
+:803300001882B44101AB8484D18C51184007428480044118105843494152618428812141428224484321018F730524D758D094F4688459F42241D5352E5D242D423C542A342F829246544121C1571627C453012E48D0E876180413125A41C598444F145464CD41E44D4443D447D48851C845257842F198482B942B189FE1D44264419A944C
+:80338000CE25B158711ADCD8349CFF130868C2A53448488F74028CC22C26F829284A6242D04C249443819D48448149C4128D21171497327021D2CDF24828114A01A7443051251274534A641165511123D171C9D83D82C5EA51A818CD188F88D1CE69A18951C260312CF8C17F2427442145DA4252A621C50C3C553A46742AC8486564248D69
+:803400001DCF82014942C84E8B1126F42448414E6C17166F844681515445FB4246167911CC414410F818484E121A14C45AE3719CA21492516B84526344E24861418692144B18C48FA1044A02288084011820822402A041200322202204004A02522001122084210480810400008A0482A048002048810448B09D44E3225277B5FF2226878F
+:80348000823E34DF43F12526AF81D1C842782A588A4F41F11A144F63531347622D28DF92521189B134F34C4C15F16D4FFFD1F17C5A3F9121F12D358D1E25FC185C15F54141444554558FC1F1191BAF41F11517AFE1F11B1BAFA551B3AF84D57191D2C5B25E954443D12431464954848FA4F4731D344F64F42767B5F72A26CF86F43C78DFDB
+:80350000C3F12526EFA1D3BFF24A6C8D68AD286F41F15E5C2F82F62321C7E26D2CDFD2F26129CF47F71412CFC7F72565DFFAF92C4FCFA2F8171D8781DF52D388F15C5A9558D51F31D54254A435F9484C9FB1F51A1C5F71F112127F79F18ADEBF99F4EAF837586F88774EB45AE5E8B59A18FE5E18CD4C4E5A8FACF513E5344D466D44BFB2FF
+:8035800052BBB7969FD6722DF4393EB792AFC2F24325BF96D2BB52FDF754CF26F23E38557723F125212E64FFD1F53939CFC6075F36DC1FF26C6FAF91F22437EF72721A5FCA8F81F511195F15D535545FDF717142F45918DF4151E5BFE1F11F9EBFE5D9BBF85AF8CD1EABD48D12AFA494C64F81D9E4D1C6F412185AE524FD1B35344F6656A5
+:8036000046BF32527FFFD6F42D6DB7C21F63D3DFD27DF24B6B9D6BB559DFFF54F41F55FFD151FDF7D2D56DC4DFD7F71919DFD6D7DDF47DCB5F32F6FC7FAF91F22C3FEF72721AFE5E5ECFC4F454555D477557FFFFF1F15256FFE1F41F1C55FE1B1AFFE8F1C9DABFBDF4DAF8FFD9F8FFD9EF44F15E5E6FE8F59E98FFC1F11654C5DCCC718CC9
+:80368000FE28773024404138268441163824842284004484441018D1482241040044188D2410981481690145014100901416582484608120416481441648241108874470F80C8E420028422823C2282602421002232402220042802202481CC248A01200C048420000C0480000984829084A084248882004006F4A0E2CF4112485F211249C
+:8037000083F41164A7141D64AF16D141F66A9119B64A9945AF24B925F44A914B422F14F924482F14F924481CF9254A4E814FA2E415F2274AD6F1214AD6C54ADE24ACF4D1242CF49124A5F29124A7241F49764AF18164AF14F18164AF14B981F64A9253F84A934B4AAF2439A42F24F9A44829F9A448984FAAF47A7F50B21F41562C1B21858F
+:80378000C124AF346141A7144CD25A5941AF147B15D83A38354E8257822D9547822D917782AD915FA2D548B924CC817FA225D8A761482D1B9E25ACF4812C8CF1916425F1812CED139A52388E24AD114CF24A151D24AF34D384F2489343F2489243D22831244CF9364829E8A2F5A15C40080000000040040000000010021880080000140080
+:803800008400000000005480020000005012F079A2200824805424844181001412114264814150488004840014C48094148100001100835441A9441418811101101824041884984D4810FC442D802418180411203242001884240000004008450244602212840000004002001081018C0889110130180010021C015FA10448428180542423
+:803880008428A3044114831301448141104882041602430843820144910081200480441618C118B01418A1121018240418842D82C011126FAF020024441001440020013042100210048450840014A4C04812000010410281114244101108811100890100184D4850847F8F0300000000004008800100000000144100120020010040020095
+:80390000830400408801008800004100AFD60A0000603284102802908800400840080081800684400200002301804108001128181100000000000087A30000001C12088428400820018100000084112E44102801212001800124128120041480112101008200004400BFFC0D000000210000908800000084000000000000002400000084FD
+:80398000002810080000000000F0AB9B241C0220010000005018100818004414000000004004000000100800000000210042000018F038A90040026411122501489018C011C0110000A0240000001141214400480050860018D400314210012100004C0400E7F640041480024902210000230884001800C4004200100800211004002041BD
+:803A00000860620018000084800400004FAD0673022440061E24142142405881001681011014F144280048001041144414024C040025C4188118C541141281011421004848C04420018F6804001412221124000012241319480880010000000081240000000084000022108204400281000000F02D3400000000840000140081000000004E
+:803A800000000000002002000088100838000000000000F057C800000000002100000000000000000000000000120000000000000000000000CF99050000000000000000000000000000000000000000000000000000000000F04FFE000000004002000000000000000000000000000000000000000000000000F061A500000000000000A8
+:803B00000000000000000000000000200100000000000000000000F0473700000040080000000000000000000080010024000000000000000000000000F0119D0000840000000000000000000000240000000000001008000000000080030000AF1E020000000000000000000000000000000000000000000000000000000000F04FFE00DC
+:803B80000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000400200000000000000000000000000000000000000EFFA0F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000200100000000000000000000F04B
+:803C000047370000840000000000000040020000000018000021800100000000000000800200008FB70E00000084000000000000000000002100000000000084000000000000180000E029070000000000000000000000000000000000000000000000000000000000F04FFE00400100004005000040040021004400100218002810021837
+:803C800080088400008042080000280000608E004001008004548588022148400428100240042810828401882810828441848842188204441828842148E041012810A21140C43500000000008004540000484004000040040000008828000080080000002884000000001FE40A001400140040050000400400210044001002180028100289
+:803D00001880088400008042080000280000E0950E0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0021000000800400281082040028000000280048008800800444800221484004002148400400218F68070000000035
+:803D800000000000000000000000000000000000000000000000000000F04FFE000000000000400100000000000000000028000000008800000080420800000070820E0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000008002000000000000000000000000F07F4D50
+:533E000000000000000040010000000000000000000000000080080000002884000000002FDBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3FFFFFFFFFF31
:00000001FF
diff --git a/xpp/firmwares/FPGA_FXS.hex b/xpp/firmwares/FPGA_FXS.hex
index 88052aa..38cf5d8 100644
--- a/xpp/firmwares/FPGA_FXS.hex
+++ b/xpp/firmwares/FPGA_FXS.hex
@@ -1,589 +1,637 @@
#
-# $Id: FPGA_1131.hex 2876 2006-12-06 15:51:49Z dima $
+# $Id: FPGA_1131.hex 3176 2007-01-22 17:34:12Z dima $
#
:020000040000FA
-:80000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6AD6FF4000881B09006AD6FF4000881B09006AD6FF4000881B090000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4455544455557475577775577675577775577765566665563625523235D2E37C2B5111155111155111155111CA
+:80000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6AD6FF4000D8DB09006AD6FF4000D8DB09006AD6FF4000D8DB090000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4455544455557475577775577675577775577765566665563625523235D2E37C2B51111551111551111551119A
:80008000155111155111155111155111155111155111155111155111155111155111155111155111155111155111155111155111000000000000000000000000000000000000002552222552222552220025522225522200000000001AA1111AA1110025522200000000001AA1110000000000000000000000002552222552222F21F11211
-:80010000122F21F112122552222552222552222552221AA1111AA111001AA1112552222552222F21F112122F21F112122F21F112122552222F21F112122F21F112122F21F11212255222000000002F21F112122F21F1121200002552222552221AA1111AA1112552222F21F1121200001AA1112F21F112121AA111002F21F112122F21F149
-:8001800012121AA11100255222255222000000000025522200001AA1111AA11125522200255222000025522200000000FFF9F99F9FCFCFFFFCFC000000000000000000000000001AA1111AA111000000000000000000000000000025522200000000255222255222000025522225522225522225522225522225522225522225522225527B
-:80020000220025522200000000004AA4444AA444000000004F44F444445F55F555551F11F111114F44F4444400004AA4444AA4440000004AA4442F24F442422F24F44242000000004554446F61F116162F21F11212000000CAACCC2F2DFDD2D22F21F112124F48F884846F61F116164554444AA4446F65F556566F61F116166F61F11616CA
-:800280004554446F65F556566F65F556566F65F5565600000000002F21F112122F21F112120000004F4CFCC4C46F6DFDD6D62F21F112128AA8882F21F11212004F44F444446F65F556562F21F112122F21F11212006F65F556563553336F6DFDD6D6006F65F556566F65F55656000000008F8CFCC8C8AFACFCCACA255222000000CFCCFC21
-:80030000CCCCCFCCFCCCCC008F8CFCC8C825522200CFCCFCCCCCCFCCFCCCCC000000CFCCFCCCCCCFCCFCCCCCCFCCFCCCCC00000000CFC4F44C4CCFC4F44C4C000000008F8CFCC8C8AFACFCCACA255222CFCCFCCCCCC55CCCC55CCC4AA444EFE4F44E4EE55EEEC55CCCC55CCCEFE4F44E4EEFE4F44E4EEFE4F44E4E00000000CFC8F88C8CA9
-:80038000CFC8F88C8C000000008F8CFCC8C8AFACFCCACA255222CFC8F88C8CC55CCCC55CCCCAACCCEFECFCCECEE55EEEC55CCCC55CCCEFECFCCECEEFECFCCECEEFECFCCECE00000000CFC8F88C8CCFC8F88C8C000000008F8CFCC8C8AFACFCCACA255222CFC8F88C8CC55CCCC55CCCCAACCCEFECFCCECEE55EEEC55CCCC55CCCEFECFCCE32
-:80040000CEEFECFCCECEEFECFCCECE00000000CFC8F88C8CCFCBFBBCBC3AA3330000008F8CFCC8C8AFAFFFFAFA2F23F33232CFC8F88C8CCFC3F33C3CC55CCCCAACCCEFEFFFFEFEEFE3F33E3ECFC3F33C3CC55CCCDFD1F11D1D5F5DFDD5D500EFEFFFFEFEEFEFFFFEFEEFEFFFFEFE000000008AA8889AA9991AA111000000CFCCFCCCCCEF43
-:80048000EEFEEEEE2F22F222228AA8883AA33300CFCCFCCCCCEFECFCCECE2552220000EFECFCCECEEFECFCCECEEFECFCCECE000000004AA4441F14F44141155111000000CFCCFCCCCCFFFFFFFFFF3F33F333334AA44415511100CFCCFCCCCCFFFFFFFFFF3F33F3333315511100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000008F84F448B3
-:80050000489F95F559591F11F11111000000CFCCFCCCCCFFFEFEEFEF3F32F223238F84F448489F91F119198558884F4CFCC4C4FFFEFEEFEFBFB2F22B2B955999855888FFFEFEEFEFFFFEFEEFEFFFFEFEEFEF00000000CFC4F44C4CFFF4F44F4F3553330000008F8CFCC8C8BFBFFFFBFB3F33F33333CFC4F44C4CF55FFFC55CCCCAACCCFF09
-:80058000FFFFFFFFFFF3F33F3FF55FFFC55CCCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004554444F42F224242AA2220000008F8CFCC8C8BFBFFFFBFB3F33F333334554444F42F224244554448F8CFCC8C8FFFFFFFFFF7F73F337374554446F66F666669F9FFFF9F900455444FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004AA444D3
-:800600006AA6662AA222000000CFCCFCCCCCFFFFFFFFFF3F33F333334AA4442AA22200CFCCFCCCCCFFFFFFFFFF3F33F333332AA22200FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000CFC4F44C4CCFC6F66C6C2AA2220000008F8CFCC8C8BFBFFFFBFB3F33F33333CFC4F44C4CCFC2F22C2CC55CCCCAACCCFFFFFFFFFFFFF3F33F3FCFC2C0
-:80068000F22C2CC55CCCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004F48F884846F68F886862552220000008F8CFCC8C8BFBFFFFBFB3F33F333334F48F88484255222008F8CFCC8C8BFBFFFFBFB3F33F333330000BFBFFFFBFBBFBFFFFBFBBFBFFFFBFB000000008AA8882F28F88282255222000000CFCCFCCCCCDFDFFFFDFD1F13F3C3
-:8007000031314F48F88484255222008F8CFCC8C89F9FFFF9F91F13F3313100009F9FFFF9F99F9FFFF9F99F9FFFF9F9000000004F48F884846F68F88686255222000000CFCCFCCCCCFFFFFFFFFF3F33F333334F48F884846556664554448F8CFCC8C8FFFFFFFFFF7F73F337374F4FFFF4F4BFB2F22B2B00455444455444FFFFFFFFFFFFFF82
-:80078000FFFFFFFFFFFFFFFF000000004F44F444447F74F44747355333000000CFCCFCCCCCDFDFFFFDFD1F13F331314F44F444447F75F557574F44F444448F88F88888DFDEFEEDED5F56F665654F44F444444F44F44444DFDEFEEDEDDFDEFEEDEDDFDEFEEDED000000004F44F444445F54F44545155111000000CFCCFCCCCCEFEFFFFEFEDB
-:800800002F23F332324F44F444441F11F1111100CFCCFCCCCCCFCEFEECEC2AA2220000CFCEFEECECCFCEFEECECCFCEFEECEC000000004F44F444445F57F775751F13F33131000000CFCCFCCCCCFFFCFCCFCF3553334F44F444441F17F771714AA444CFC8F88C8CDFDCFCCDCD1F14F441414AA4444AA444DFDCFCCDCDDFDCFCCDCDDFDCFC3A
-:80088000CDCD000000004F44F444444F47F774743AA333000000CFCCFCCCCCDFDDFDDDDD1F11F111114F44F444441F17F771714AA444CFC8F88C8CCFCDFDDCDC5AA5555AA5554AA444CFCDFDDCDCCFCDFDDCDCCFCDFDDCDC0000000000000000000000000000000000009F9FFFF9F9AFA7F77A7A0000000000000000000000000000000060
-:800900000000000000000000002800000000F0C43980840100000000000000000000000000400100000000000000000000000000F02522000000000000000000000000000000000000000000000000000000000000FFE40F48180000000000000000000000000000140000000000000000002800000000F0AEE500000000000000000000D4
-:800980000000000000000000000000000000000000000000FFE40F28000014000048400128004840012800000028004800001082040000800414001082040000217F270C0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE440
-:800A00000F48180028000000002100000021001400142100140000001480420100808802000088280000F0A1BF000048180000001200000000000000200100001400000000000040012800000000F08EC48084410128004840818102214860118002211A01148002211A041400B01281041480028004148828108204808802214800CF5540
-:800A800006481800280000000021000000210014001002400100004001280000808802000088280000F08CBF000000000000000000000000000000000000000000000000000000000000FFE40F000000000000100200000000000000000000000000000088000000800200009F2906000022000000000000002400000030120018000000E5
-:800B00000022000000000000820000002FDC01000000000000000000000000000000000000008002000000000020080000F0FD7F000000000000000000000000000000200100000000000000000000000000F07CBE000000000000000000000000000018000000000000000000000000000000F05E3A0000000000000021000000000000A3
-:800B800000000000000000000020080000000000001FCB09000022000000000000002400000024000000000000000000000000000000009F6D0F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000220000F0CE41000000000028000000CF
-:800C000000210000000000000022000000000000000000000000B0C805000000000000480000000000000021000000100200000000000000000000006F96010000000080028004000021000000002100008002000000000000000000000000EF73020000000000000000000000000000000000240000000000000000000000004F4106004B
-:800C8000180020010000002018010000000000000000000000000020080000000000002FC4020000000000000000000000000000000000000000000000000000000000F04FFE001800000000000000000000000000000000000000000000000000000000F0E5D10000008004000012000000000000000000002001000000000000000000B3
-:800D00000000F0B18600180000480000200100000000000000000000000000000000000000000000F0C9F7000000000000000000000000000000000020010000000000000000000000B09D0A0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000066
-:800D8000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000180000000000000000000000008FC906800400000000000000000000180000000000000000C0
-:800E0000000000000000000000F0A24C000000000000000012000000000000000000000000000000000000000000F0687E00000000000000001200000000000000000018000000000000000000000000FFCB0E0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000006D
-:800E800000000000000000000000000000FFE40F000000001200200100000000000000000000000000000000000000000000E019010000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000A4
-:800F000000000000000000000000000000000014EFE8030000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00800400000000800200000011
-:800F800010021880080000140000480000000000280000000021143FD803000000000000120000000000000000000000000000000000000000000014F01937000000002001000000000000000000000000000000000000000000000000F09718000000000000000000000000000000000000000000000000000000000000FFE40F000082D2
-:80100000800400000000000000000000000000000000000000000000000000F03F35000000A0445AA511000000000000000000000000000000000000000000000000009F1602A0448084084AA4551A01002A022800004012022B11A098800800150114004A0448000000002A0228000040120221FFDD098004000000008002000000100265
-:80108000188008000014000048000000000028000000002100BD6F00482004000000800222000000212418A081200800141001800442000000002820020000104202EDA2000000001200000000000000000000000000000000000000000000000000F09474000000000000000000000000000000000000000000000000000000000040F176
-:801100008E3E80B411021B21421B212394212B1419B242B911B24219B14229F24291222F1429D212A9421CE922C4812E4216E12264192E4296C1429AC2421B292CB49142B29122B49132421B282394212B8419B24218B14228B24228B2422892822A84E822F4EE2680B41186B41122B4111292612B1419B242B911B2429A212B94222F14C0
-:8011800029F24291222D912B422D912E521CE922EC11E82264192E4296C1439E212CB491C2421B692CB49122B49132421B282394212B8419B2429A212B84222B84222B842229B82294822E42EF740420880400000000800200000010020088000040010080040000000080020000001002DB5C000000004220010000880000000000000085
-:801200000000000000000000000000000000145F4C012008008008200400480020080000000000000000000000000000000000000014F01F8600C2000080044200220000004002200182000010010020040000000020020000002400B04A0800000082001200800482200800000000000000000000000000000000000000003F720B000037
-:8012800000800400480000000020080000000088008008000000200840220800000000B064010082000000480012000000000020040000000000000000000000000000C80080F8D3E700000000000080010000000000000000000000000000008200200800008A0400D0AC0700880000428004480000000080082004000020080082000021
-:8013000000000000210000000020F82A85000000000000A08400200482002004820048800280080000002008002008002004000000DFE60A00420000000000008200000000200880080000004800200880080000008800201802B02C070000000000008004800848000000000000480000000012000000820000000000F076970000000042
-:8013800000002004008A04820020040000882280040000000000002088080048008008008F5B030000000000008848200820040000880048000082000000208908880000008008000000578D00008004004848000000000000008008008004000000000048200400202828080000007FC80C00000000208804000082488288882088880850
-:8014000088800488000000002400C042200486020048482424828880F8391B0000000000200800C200008800800880048800008008420000000000000000001002B0B4031C0400001C04204481A8481480280400800800008280088008008882882004000000828008488008828882EFDF0B8004002004004A0842400182008008004A0852
-:801480000000000082000000000000880000000000F05F330080040000000000002004002008000000000000000000000048000000002410022F580C000082428004822014B18104008200000000008800822008880000002180243482002480C4824A384200007D632024084248000000828880248804004882480000000000000088005C
-:8015000000000000200820088882601814BD5100C041408104601400008A42810480080021800188002008860180288824880800480048A028008800240021F09E5F2024084888484A0446813CC142130482800C8288C2A08888820082CA2828040088A048002C280448482084880830824A08C082206818889F5E0C2008E01404110042A4
-:80158000C88282467141A14882C8002028044800008008888282888008001042228484048AA8888848822B8421242114829F25091924440120044248828088BC81888428248428888808828888480020282808208828A888000042483042860200824A4C22BC828888084F1C09111001119041100119044800002008488004488004488049
-:801600000CC80000800823042110022182211002210000002F574E0114141D411B841F14541115B141F4C1C11D8150111F18E8188824240488CA8884A44CCA0CA0C4428A8CA4444AA444828A0880E42CE42424C4422F2464244A6424256228E028F8C2C22B4CCEC22F24140240F2E56E141F14E41444D11134C142F0414119A4C4881F14B5
-:80168000A42A1F14DC118A24AC8CA088CE8229A4482BDD8AA8DC4AA4C4CAA8C8481F1CAC44CEC182824A084A64282446D222F442424E424E422F2CFC22228E828EA22F28F8C2C22B448E822F245C228AE828E828F8CA6450114811114621A444114E414AACC48AF8C1E11D811F14ACCCCA088AA8888ABC82A88CCAA988884AA44448A08C03
-:8017000046A1882028A8C88AA8888221469242482B444E422B448A1A42B282A8CCCE422F2CFCC2C22B88290888BFDC48A1444811114621F441411B444E414AFC41C11F14ACEC4EC11F16ACC4CAA8CC8AA8888A9C82CE82CAA9CC1A08A0C88AA88CCE818AB8812828A8C882CA28B84224C4422B442B444AE42CBC82BA82A88A8E822B484ED6
-:80178000422F28F842C28A98828AC882FF570B00008004008A048220088A044820282428242804422084280442008880088004488004008220088A048A048220D83802000000000000001400000000000000000000000000000000000000240000149F72081CB41142B11162141B21271419F6421119F2429119F6429119B44229F2429181
-:80180000A22F1429D212A9421CE922C4812E4216E12264192E4296C1C29AC2C21B292CB49142B291E224B8917242B281724292212F24B881F64282112F2428F24282222B842229A842882E42EF83071CA4611CA42146A1212581F64211282D91682DB119B64229F24291A22F1421D212B922D412E922C5912EC21E812E4296E12264113C23
-:80188000EC11C2C21B292CB491C6421B214E821B2946B281622419C2821B684E2219E22428E22428A2842229B82294822AD4E80C20880400000000800200000010021880080000140000480000000000280000000021B03F0C0000000048C800424882008008008200000000880080088200008800A04800420080040040F177DF14200812
-:8019000080082004000000824A0224004242000000A084000042880000004800800880880440220414F0AEA31420084800200400200288800488400282120080082038810020240C00008848004A280A42884880444202006FF1080000820020A448004248208802240048420000002004008008880000000000000000200400A71F40013E
-:801980000000000080C4810000482008800200000000008008000000A0480000244002000000FF5B0700000000484211824210018200200400000000288002820000000010020088801802008008F0BB651001000000481021B4410811000082420000000000200282880000000023080000211002008800AFF90900000000200482000026
-:801A000088420000220000002002000000000000420020088821000000F058850000000000200428C80082001042022002200400000000000080042008280000000021007F590A0042280020140100A8000080084002008200008800202288040000200C0028000000908221A042E60500000000000000004800000000000000202808009C
-:801A8000000020020020088004200400006EEA00002200200400008800C220082100000042000088822882000000424280088800480042100280B49C0C00000000142004884800000000002800002008000000000028880000000000800820F25EF200002002904162282A04000042004002008008000000000000006024800821A8000043
-:801B000020080088822F480400481824005021001426820420A8842C8404400200000020021032628800220020040000602A4824A028428A02245F2A09004021010000000020080088004800000000882008008200008008000022200200228800AF3C014800422022048004284800C0222C844822082800212800801882088220048280FA
-:801B800004880020180248200800828022F4C59A004800000000000022000000000000200460248200C8000000200400004220040000008F9E0E4081440100190400000000880000000000002800002008880000200800400224828002106228EF8F071112001CA6419022130222290628602400242CC44200200400228008422C42022102
-:801C0000280060222002260221282082880288002428CE2C20040012624820A44242002004428028880800002008000088008088240824008028880800008820022E8114FFDA0F00482A11010000C0414828A04824242880020038A084211002402184089042000024880000284082622840022912029FA3090030511F250180A22448482F
-:801C80001D4128482038428A082D422C0C002820022A048222881002100220C4222C8C8488888808602AAA4422A8A86E22E0322AF42CFBA0440040A1234A7442C1424A82A2224A048088944221C22B28212200208408212C6828822C0E2B4E80080010B2C22A0824230862284A0800A0A286A1828648113151C0312AA244904117122262B6
-:801D0000234402624A642A46E2288E088014C24288100220828424E82848A2C88AA2C82A0800002C328228801492222B8A29283282826028BF9C0C4001183022100223022382541210220A2A042A042A042E42E022042E42A0C21082024A022880622428886880020048288A0480A2482800AF2C0B1F14A41115A1635EE12F21F542423F9A
-:801D800026764371227242F243433D413553332BE26EA22F2ABA22D82292226AA6444E622D222F267642A2A62B222B66CEC223A2646E622F2EBE82BA22A222AAEE24FE62622B26AE62826AEE22BA22928240F24242272A2B6E242382A4C2A0AA7F4B47F141415A55112AA76C2F2331421F16F641212F26B442F261211F1256333F34B44227
-:801E000064242F26EE22DC22F6C2626AE622A2314AE62EFF62224AB842F462622B6617124A4EF3C2C229B2620E8AC8A22F223242482AA2EE86F282822BA240F2626227282BEE8E822B288AB622ACA8AE22EFA647F141411F1155113AE225A6712B441F1656312A326217164E6242212CDC22F822822F24FAC2822BCE212A82A1462CA8623C
-:801E8000214E42E02AFA62432BECCEC22F2CAC462BE88AA8882228428AA46E4ACC82259222E024B462EE2EFC626225B222A8842BA688AEA26DA4141F14F4115115B131E325A6332F24F463611F34A6662F24F263214E62422B44CEC22F2EFE62C22F24FE42C22B8A2B664A8461222F278E14E222E226B682E83EBCC2FEA1222F2CBC62B487
-:801F000082AE2A8A28A2646AA2C82BCCEAEE2AB282B8820A4E422F26FEC2C22BEE8E822BAAEAAAA6A8AEA2EF4A0200001C81044826810448140048248A442228040042000000008890829082808844022048220800008200288220F82DD400002002000022000000001002800400484200484200002100004820080000800200002824EF71
-:801F80002905481B21B011E226B111724292212F2691212F2699212F2499412F2429FA4291222F14A9422D912AC4912E421CF8224216F1224296F1224296D122AC292CB4D1C2421B29241B29421B2923B481B24298612B8419B24218B142A84A2BA42AB442289AA22AA4A42E421F260E5819E61215A116116A11A116116A19819B414E91D3
-:80200000A24E11222D912AD412B922C4912B521CA9C21E812A64192A64113CEC19C2421B2D241B692CB49162241B294219928219B64298212BA4112D828AC422484EA2822829B4424AF28C3D00824800000000000000000010021880080000140000480000000000000000005012149F520700000000000000800400000088200448820068
-:802080002008000088238808800800200848A04880842802F0F443202148817181A2128004C223044622844822068024242404820000210020240488002400C042822008001002000014F0C5EC00828025A812004082042A2424082100422442202908A08488001182420088C0422008A04888002200460242002C0814F0328E800114407E
-:802100000380048A04400280A42400200442004800100200200400822C080024008220080082800422008F380E0000000080046824824282000028008228000020B422240C80080024004888200400200848008822002FB80313022E11183880820480240948000048422004004242800AB8860221008008008282802C08808424440200FF
-:802180008008F0DBF6002002282002800468308242880048482242000000002E8224C82180080000824A084A88082024240442008888003FBE0A2601162181018004802409420000000080288284042A0852AA04000088400200822004008048020020027017070080022A0500141190220000000086820423082160220000424002808807
-:80220000022800009022000000000023F4362F0020040000250180A22448004800002480212208000000820048004800008800280080042211800221FF7E0900121400800200000080080000808404002100000048804802002420022008008880140100F0BE27000014A052804211012C2284040000008848422B280000210000002182B1
-:8022800082420024800A240000C880048002426F770B001828000021400100004A08000000422440820200800C4800302220020000880000800200004F850620062242229022308100304210220488000082A0A12810022C8188018A01188840020080040060220020080088425B37008004C0420048281C08219022828044228202822217
-:80230000C8C08200206C2288006A2808822A8404C800008A0400290880820A00FF1309C01100901100800880040088420088208408002028028220082024088044022100248004001002200428DFF10B62A012133421805422D022048A228826542210028221102244022182800842C01200258241022C0842002100282D828012028024E9
-:802380009822F0415F200410011468A04214A81002000021212A08002A682200822048022440220800002440226422860280082480080048DF7C030000482C844102264231224882218682840800002221C042420048234402428200820000000080020000004823089F3E0520022812102102004824808404002084042084840227242810
-:802400000042683042C0222018A2C2208E04888008008820220242821F990F20081001190222A024202808428022080082212200400200428288212400C8888008008012820882800882821414EF8605181148002180042180042882802808A84882238484118208602C18603820840148100221210000A02821882502288842212724F047
-:80248000C71EA034AAA621625E212222482AD232388146E22C5C2220A4848820AAE48088AA482A8B5222A0AA98AAB4828588A59898928223E428E428B2C21422042CB82204288E822348028AA828881C88F4B9470017188012B141C442284813CA212B2220DC22A48882422B8829282A08232C0225A2488A9C42122948E229622C2F26141C
-:80250000D222088A9C82218828200424822318C28200282AAC44669182DB8280840115C1423CF15321272227244AB262881C82ACA42D4229B4A244C22280A44C2E424EA22D422A042542E22C64244A984229088E42282C6822424224C22C1482A2882F24C8822092822BA8224622A8484AF2988320051220418204481400820000240020D1
-:80258000242814A2240000A021A025A0218012828288828806282008002200004222421F220F3AF221211AE113A7261F16F213332F26E222F283A33F2EFA62622186F24242293C42EE2221A082C848EEC2AE822E622F24F442C2824AE42EFA92B22F2BB322B622D322BBA2FAB2B22AA6E42B666E622F267642F222222F26562225F2828291
-:802600002D822F2AEA2ABAA29822AEA1AAA8622AA2663F5C07121F17A7221F13B751F151113F32F262222F22F2E2E22BAEEAEA24F682C22F2CDE22B8C2A826A02A8AB842AC442BDF8AE82CAD442CE82CEC24FCE2E21F1DBF32F35251182D322BFF23A8888AAE66CE822F24F4E2E22F22F262622F28F842622F24DC22F882822B882229A299
-:80268000AA2ABAC2ACCCAAFEF895A0761F1256111B331F27F322233F37F762222F26F6A1233F3EFA62622BA8C6A2442CB842E82ABA82A8222A94C2CAACD6AEC22F22FC42422F2414A266BEB22F3AF882622BD98AB8B2ACE89E92216E422F2CEE24F4C2C22F2632424E422B22CEE22F24DC22B882E828B8A2B882BAA1AAEE29AC444AF66A8D
-:80270000DBA0761F12F611111B221F26F273733F36F662222F26F6E2E22BAEEE822F2CFCC2C22F2EDC22B842E82EBE82B8A2BAC2ACC4CEC2EEF22F2CFE52C22F2454222F2CFCE2E22F2FEF36BCD2BFE3AE882F2BB892FFA2A22B88EEC22F2CFEE2A22F2CEC2CBC62E624B4A2AACC2F24DC22F882822F22BAA2B882AAAAAAAAE6EAAEE87FB9
-:802780003C010014601248260322822682048A44A248A04820880200282014228428948290824229080088482448244002200882200882428242F086CC201801602200401281082400004002004280282204000000802418020021480027224082440200200200F0952F80B51182B111E224B111B24291612B1419F642911B282B94112B17
-:8028000094222F1429F24291222D91AAE414E922C4812E421E212E4296E12264192CA5292CB591C2521B292CB19122B491B242B881B24298212B841B282B84112B84222B84222B84222B842AA4A4AE42BFC2082A91412A15A116111819961219F642911B282B3419A294222F3429F242B1222F1439A24E112B124E912CE811AA4296E12291
-:80288000E418E232E51CE222B181E222B581A6521B29621B212B8619B222986129B881B64292212B84222F242AA2A4222B8429B442EA28F4781E00800400002008000000000000800188000040010000000040020080020000004001AFF60AA200002842481E222A844461142490220088200C4200420000000021000000802C0486028627
-:802900008254220000202228041FD34911E118821201249011404341622811822488488008002200422302A820818221988280028018022C28488114010040022C084081B44D051114281C0420A44170630211AA04272828230880C84280A421A01480082210210288208402C082A08488881318928123840240022CC8224041B21A06227B
-:802980002800801212A112601450321100808408880000203422800818C0129082000000602400480025020000202884F4772600000000302248B0818428C881112088880482004221009012100200881002148088842808004001000000009E4D10410110B12244314242822470424241A2482819041100CA02820031808828840B420076
-:802A00001124184081081011020000822A24840A003F1D0814004091223042228280A88414B0820448100188002C0424149082002800401241621130814A88081421001400882A848402006FB50A1001004211304242241724248819188132818842006A08880000128622A4188084080000002008000000008008005F6B0D001180048097
-:802A80003242211124400228008200001823EC180200214890818211422482003482401182042082080000004824FF8D0E48A02100182100A014250100000048212C084A01C20000181001004800200800A2821182224820220428824A022B242F7A0E000000000082A04800244A881201132804820012100220040000002800200800908F
-:802B000042102204808402001F414A810400002100A04924C224008A84328130834A0880C421182424A0414882821400820014214021AA84148024082A24042A044800A7C100E012014212807242023411002012028004008E42884800000000800421202288082C08002C0846020000A822422AB43D0C68802292212382022880222218B6
-:802B800002198404A048004280A81800622A0421008260241100001123944140210220924280280400F094E9000020044820040042400288282092A200E0220400000000502222242C28080000822CC8821C0400420000003F2D01282200203C212822680018005012A0823021198421262202221A1A0180082601002814822100400200F9
-:802C00002100220029880448CFA942010000144011422244113241884002290418B0810429C141D012C4427082E1280421202418110114002004882420AA842004008008FFFC439141001100201401203481200C822008822028213842188088E81408A8828814008824113B8480F48221820010022008008840F1215800000010420100E1
-:802C800000290825014A024A1202809C512880080040012121242400C8000080041C280400002004428FAA0640912130212381044825332100406124135121113142001121800211002994124621011601304232904114C041D012244401502220062248821F9E0200A01242221440831431A114008880A4410088100200001912020080F2
-:802D000008601110422238828224118282340000800800CF2F011490410014C06218284A2114C2212D1120948110430121138241A2842306482A4141014022880400142811241422142888C8C823284802882D8282CB8E0013A222A02227111B241CE4245321171282212F14C8111718422B424E1186B28204F0416129E4222435422E4191
-:802D800068398CE4210A3A081722242311E11812F1C12227141C948119E82432812B8C46A2444A3282248044E128E4BE4DF1216100197241B241E21234613712224A922119043552228E11C681F442211922A8442B838A6214E018863BA130C140021D822B8915F12181469283250219B8C2183282312F145C2168888A044AB4822882984B
-:802E000082AFC605425011321C2412C222482B6429E536E43918A18C4A94C31D222F2AB821E41368141B89246E83296B2222C662349E232532821B48863342482186928256621C144819623C4E238E812426A1882429882802CAA848422F720C4001144002001400822008822008822008821003390888800829081480088848000080042F
-:802E8000480024480000E0AD022AA2221B223E116AF671511F36F663211F17D711F233733F32FC43422F24E421F142823F35F563E33F11E512EA16A4C44AE413E216F4E1711F15A5C41F16F641632F35F742422F23B342B41261281B998AF81151CAF4F2F3212F26FEC3C22F26F682821F2E3E611B8C3F286228CE424A84EC2ABEC2ACAAE0
-:802F00008AA84C7E6E142E211F1656111F11B541F453533F367643F13131283F35F543C23F26F6C3C22F25F342823F15F561E33B732AFA62633F14FC41412F2AFF21612EE22F27A7446AF6C1E32F35F7C2C32F23B3C2FC131117382F2DF982821F15A54C2F3313F263E32F2CFC6361CEC3EEE329A28C8E428E42CEC22F28B882EC2AFEC256
-:802F8000C22BAACAFC42429E2CA0221F12B621F231311B663F27F763633F36F6737137143F33F723E11F3CFE43421F29F942822F3DFD63E33F1BEF12EA1ADA13F8C1C16E71EEE16EE22F23F74161EAEA36F6D2F12F34F4B2B22F24F4D2D22B4C1E511F38F891911F1CB4F11FF121A33F2CFC63623B881BEE1B2C3F1C78C2F2C242272CCEBD
-:80300000822F28FCA2E2212BAACAAC4C6DD220F2214115F15131113F25F763623F34B233C3213F35D513FE81A33F28F8F3923F34E839FD63E33BFF1F22FAE3E13F14FCC1C3EEE21F3AEE26F632726E622F2EFEE3E32F39FBC2C22BBBCABCD2AD4C1AE528F8D191CAF4B3B33F1CFC61E32F2CF863E1CEC11F3EBEC3F8C1811F3CFCC2422F64
-:803080002CFCC2C22F2CFCE2E2212BAACE42CAD44406260122200226836412482682448304480010010000210028112800210010022503244081440334823482A04820088200DF310880020048000010D12218D122082F34081CAA424A0888C0A12322842498418A12220880082928081308822490828A040010020023A4484286F1535283
-:8031000080B411021B21421B212394212B1419B242B991B24239812B94A22F1429FA4291B22D91BAE414E92AE414E82264112E4296E1226D1D2CAC292EC21B292EC21B2926B291A2841B292B841B282394212B8419B24218B14228B2422AB2422A92822A84E822F4D14980A461481AA21419A2141B2123A4214AB991B242B391B24221FBE2
-:803180004281B22F1429CB113B4B4E812F2AE114B121A8811B52122ED2C6E132E914A2921B242E938AE432B591A29219B422B981366219B2229841299A6129A8422BA422A848299A42A82F22F4844A0080040000000080020000001002000000001400004800000000000000000010026F7F0D0000160338482C42011B182321AC1400AA08
-:803200002132811B248A028211111304C0B2884AA9963A9C8126012D81802B8AE82482240800400220228204824A8AF88FA3146200148041210352AE412110012724190213A8428A0128602C002088B4412102800211381B81002904406238190C20880C24822422681470A80C424240911123A11278282961243C2862141A542226A18179
-:80328000A82ACC42A8A0811368184800CA33931B29AA2549312146B2113A81A2A04800002002A08460228846C22288E886F21E1720020000140019E4122881210848204211C1B1800242211420084248A0428A02112081A12821682324D832B88104C082008002A042004FE104220000000060141301004002002088880421100280020089
-:80330000A082282908000022820020088A0410024A2208B0BC0211C0A1902114144AE12224EC22885C21482502226A01428A442122280C0012294282A88112290820028820098602824234800C888222230420069FAB0B1302144001802522C4238815424202222B2520A484860148C60200122342028A0182A226A282800812C0A22008F8
-:80338000142004882082A42420027FFA0F002A082211116024884AB811044200000000A8880024008022082C0100000082008220042928A884801812028248E0A30D2811200134800220180242808214220430424218290820342300008A34628024080040024215024823228424A88440020029440248002004008001002A081002100250
-:803400002CA8124A81A4281200C0A1101112A1412C848208802404004A022230220080822404213FED0C00800200C04123020024000082281100000040022C2104008200342002200A002100102202200240F22C3BA042002044032219840221C0C24002209822114278484220C14210E21209249063422488002064242800282304E02282
-:8034800084280A242A240448EF54068211A0210000241288000022460242008240822802C021002904C88009221318820280884483440246028004220040F268B180242202426A712241222446A18282000028C82818282228A0341C82222804422044223441208804110040220290222800C8000023F4AAD70011E018220142281002400A
-:8035000011018E121908908219248808A2800842904111882088084021E23804884842422024080025024A388200F02F6920082001103141002014024601704202A08440020080282108004041820229042880062902212C28082100000088F06948141400002001160218141C06A082424031820021A0140042212288002C281182084025
-:80358000022A0822148A02222888A08200C8804402AF63090000203442213842582A29095880632848B0220100800800242C22012021080080C44200008200803482282002C2C0216FD50D282A9121C0228062218088022142828024A21211308122A012E02288220200231202241400140040412148C2810000200800C8F035C4000026F2
-:8036000001001419840114C082B042021182521110224832413944012280280425B1410313082B283411A0484A1801804401D02228140200825E5A1448134801421CC2120024884842194C4302888004482C81B1811402308190818008001A088A8284082EC12120661860148A042800002220FCC9D2B0810248182C22016219E218820234
-:80368000902220D42118312113A282222D81172218138258222682C81240038A42219241298428612840225A12284828242A048800C29042F06E9C1428BAA2221382F231622B2717222B45199822173240B14224A686A82F1EB441B18288AA9219E212983113D212E2123842A621EC28682417181B848A788192C22A083B88339822282DB4
-:8037000023190239A8A8222AA888218A8488C441626FBA061B4482111CE324245411297221A34E1621F4C3C34A88B182186322242986C241241E822CD612046218862244823682242F38F2232120247CE2C2232A2EF422C14A18B2C1C842131452222722F0628282228E822CBCE20826511114122A91122CE5148593326AA9F8381B481D88
-:80378000831E628E53371C19EB1AF87151A28E2123226C2E3C66282B2C2AFA11822711002BB11AA441148E2319F611C142421F2834C11B4AAA9862C2244AA628A0CC20A4844223F835160000001C08244003000000002420043082008004C890C28004880000482C0824400280440200000070EA447181E111E312F211111F14BC51E62727
-:8038000057333F16B6E1FE42C23F1CFE919127382F1DAFF61F15F5C1619EB115F161611F16FC51517E4315F121131F14E42278C1E32EFA13514E426AA6441F12F2C1433F1753111F1AF681833F39D113F44141212EA13F1EFEE1C12B8A1F14A464EAFEA2A22E2286F2222229A4EEE022F6A4871415E11527F211511F14B4D1F7731235B381
-:8038800033F311922F24FC93F11F1B5B322BDD6AFFF1F11F14F691B13F39B923FA23C1DAFDE2D33D411F3A5C233F367CC1E32EF233731F3DED22A2883F1AFAD1533F13F781833F1AF2E1632F3BFB63E11F12F681813F12F263611F3EFEC3E33F3CFCC3C12BCE2BAA2AA28C6A82B4E20E2F227645417141E111A722121F15F451717AF7118D
-:80390000133B663F1CBC52FD41E11F197F82F3D2923F36FF73F11F14F6D1B135B3B3F323C11F15ED36F581831F32B84164223F38F4A1233F1FCB432BAAF0F17117383F395D333F3AF2C3232F31F343431F3A1EF281833F1AFAE3E12F28FA83C329E82EFE22222AA2882AA2442BEEE022B6B147E11CE411A5225AF291413F15F573731F3104
-:80398000F373723F31BF52ED19FDD1F125B3D2FD63F33F13FB61613F1DF9F3922F1FFF41C15ED2CEC33F38F843C225F343433F38F4A1233F3FEB39FDE2E22B881F1FF7B1322F3BFB83832F2AF2C2223BB9CEC33F3EFEA3E33F3AFAA3A33F3EFE83433F38FC83C32F2EBE22A222CAAC224AACEE8E822E22CFDE0500260114482248262108A6
-:803A00008A44A2481482288A84B2818432810010012190821002008840012D81C0810048A048A048002008822008F04F54C0410011809412304200501200190450120020040000002800244001211124000013A886820021800A2110820414AFC407481B21B01122B411724292212B1419B24299212B94112B94222F1429F24291222D912D
-:803A80002AC491AE421CE82264152E42D6E122651D2CAC2D2CBCD1C2421B292CB89122B49132421B282B8419B24298212B84112B84222B84222B842229A842882E42CF43072AB5118495216A217942B21132421AA28613B142BA11B24229E31428F34291324E8123C1B13B584AC3C25EA115A22D1F2221E412E915E222B8C1E222B111E474
-:803B000022BD9122B691F42212486E81114A88E2348AD212A8424A28B242AA4229BA22A4A42722DF720B20880400000000800200000000008008000014000048000024000080020040080021F09D4A00409521182C06242416883411004631118223850800002B2810952228188088A1125288112B1828800488265228004602438408002D
-:803B800082802206CF690C3B128E1118242614A14A16A1426229082C41824892112C9868424902CBA41008278450264532484722844488622A8892122F6A0440C884A2882382A88482248A12982630C8881C88FA6B76001B1C4711262381248421D4A283CC11322127183C61182C0C4864206821A240A88223C21421199A1244D81091225A
-:803C00002B434C2404888E222E88822322BE4288082918584282AC0CC8881FB6072F120100439221231A312248000042C012128BA480028F4402812446154214324841812A012AAC2898F02282008441100200462488022800A22822CF3C041400408204122A21B142B811440124304240012100001110410400200200880000C082008247
-:803C800014110000008100F03D98209435190223081912C2476022885022209585482E8AC2841481C661684024C1284489B8820441431845428172235422828C082470424262A819888832424C18024284F0FE3200191101868244023E412582285C212424522110881C0A841C4C1401144441842304448800113024218068281092C211D5
-:803D000015180122D024080000FFE6061CC4242224001C221124A12439010070C124C4A300110088214112830288882042144522C8221424888100400223388288244800844281F068F60026225412004125430130263022A0840021105424484A11021224C8502A1028588180041941164418141216B284944253121C984622484484120C
-:803D80008382F4AED91018244432415420211302418822290110220125411288018E4421428065113084282518814481C8480014C08888490222242240140442C90225F23C2F24000012243044402214011C48C22241204428289411B0889228100280082480A22C444022210AA02400802804008400214044F4A5230064106214151234A5
-:803E0000153351224225612886D122810A3052A48664444608AB284B242931422924D1B2098694221CB2411204F0481422814511928C82E8214954842221454844442813C846AF1A092128109112442448220028008054620040011C81048400824800812C088840319125624800660221A084112484462422042354844C02BD1C0043068C
-:803E800043826412003121860200172268D02414982890288718848A246824830889B242012A149882C022150C60824128844486D42184984424AC0484304C4200421F86031942922121A82428158482817281041148182F1394113223A89288224A38241E48222092812A381249A8411E4423598200421091862024040022441002108472
-:803F000084045ED90040042849040028218841611448802412644214004501D0210421904840140111504150234270161151824246064608422C88280400F01FBD20140311115021281C968116C624298892822182A299C882111022C352434201E6094501168289548444488612A884812324840481813C0200462844820450246FF6095E
-:803F800023181402214C0115240100108401502410441858482904418921028B4A85048150242051942608153884C058412450184548447C44082184100486F1CD29803412400500108282219283288219522111249188A8181C4A4811412A584124000013480814148211818012291882521200222422258404F0BE550011140025026002
-:804000002413748221048280880142301110021420040046C18441601184412088081064288800881C04290400880010E4ED0B204242220442220020C414344211C20046120811C552281786A11C542890888CD42878440843744201566E844889E484584113A848896A3440A982416024432828022AF49F51508280A42111111121A048BA
-:804080001C544126830224001B1811424714291C830988E0115424182414248A420810124124184102255143228C420423E84488080021883F2D01489A52524D255051421D2446B2215822486D86611F3882F892915193FC8C4C2F82782C91189B425FD4F42DD4F04B492788E9A498CAF4C4148B411C8474685DB2CBC142CECB1C7CA4727D
-:8041000011FF8341874C9B2C9F245C894C64AA2B44456A282FCE044081F4183424E072447211E21432363443D21166311D94AE231D111536422B23422F11EAB3C92113996157284F2422C8231E4126E222E43AD2828401ECD143CA122351451C32813146A484CAE144DA32C88A6127643167444183A6C48D826DC422E046E8F64B716213FE
-:80418000372123B22364243352322B122B6CF6B14328CA81D81F3494614E4629D223F84C318E884EA92F98D9287A42F84928889F15DAC1F85D27A5FE288A63FCD4127F4818157881DE9A7428748DDACB944C45D281D412649A4D41CD2B89D468A8C82141424B444243F83D290000211084140480044004204804810000214400004908695C
-:80420000084142411006008810040044402408100800D02D024F44F4711A15E2217584F451D15F54E426B452B5C3A8941F16EC33F982836F69DB2396138EC36F4CFD48885ED99F9CEA19FDD4E69F9CE824F3545C9FB4FA935ACFECF64C5E4F64F4444C8FA4F4E5F75F7CF8551495FBB9F48F98F845441F64F45B1A3F55F16BE83BCC2BEEB5
-:80428000EEC25F54D4ECF6A2E26BC44F66FECACA4B6A8AFC2464B0649A62244F64F4F318116F45F564441F3FF547456E422F25F563C14E956AE8215B326F69F983A23D132D22FFDCFF4C2CDFD5FFCAA8CF49FDCE72DFBCE8ACFA5D5D9FB4FEDB7BCFFCF64C5FDF7CFC4C5E8FFCFDE1FB5F7CF8551CD5FFF9FB85F8454C1FACF45F5F3F7DB2
-:80430000FDEFEA3F4CEC16E62CF644468FC4F4E2ECEBC4CFEEFECACA4F2EEE68F86664B0767BD70B7F64F4175647624F6151647F71F1674547623B573BC71F477D61E1315B764F6DFD53433F39F916266F5DFF5D9D5ED93F9CE81DF5CCFEBF8CFA4DE74FD5F749681F99F5414BBFFD7D54FFD68C8FA5F4F6FE7F55F8145485F2BBB595F912
-:80438000CCCC9F44FCCDCC9FF5F5EAEC2F58BCE2BEC2FA4541CFE4F46EEA6BCC6F6EFACAC8CF8EB684F82624F024B67F5E41F24546FF5965327F61F144C66F75F5674747622B553BC71F27FDE1C33F3159766F7DBDD3FC93936F61F2D7FFCFCDF95DDD9F9CF8DCD7CFACFECEEBFFF4FE547D9FB4F6DB7BCFECFCDFDFEFFDFCD29ABFEDFDBA
-:80440000F7F74F4DBC1D51FDFFFF7B4AFACFCEAF8CFCCFCDBFFDFDEFEFBBCC1F1EBEC8FC4545CFD4F46EECCBCCEFEEFECAC8CF8EFE84846F4242F2A4B2FD740040012581440314822048230811A048852248348130814211100319082004C0815012C081C083501440E3884401344026480200008DAFD032440400003042110021114210B7
-:8044800012512A40814484A484002C24142484440486140440248404444098828A34484121004820480440F1C7F9C0421F4152281F41324E1F41324E1D24AB141D24AB9419B24A19F54A9443FA4A9143F24A954F82D412F924481CF9244A1CF8244A16F5244A96F1244A96F524CA9E244DCA1F49F224421F49522C1F4932681F49326A1F00
-:8045000048B64ED941B64A9921AB9451AF44B924F44A9443B24AF9244829F92448984FA2F4F537F0225A1F41B62EB511B26ED141B22EF11144AB1617418F42F81144ABB45B21AF4439B4AF1432142F54BA34D41AFA36488DB12D588DB54DCA8F51DAA4F598214FA2D518F224D98D214FA27DC1F824521F89B42CF59128CF267191382C1F7E
-:80458000C1B6269861AF46D941B24A9B21AD948E482F4403ADB44D482F447B22F842B44D5A5EBD4028880400200800448002000000100218800800001400004800000000000000000010023FA401F0112425012548C2244001001021241101C1442184904410C22C684624024123722882140420013014401648F88128195141424821CA43
-:80460000C1444828465484F0F97C14428222B361129C08C0444188832C5162860152488A96CA99A4241E242C68843041418541342783B248181664241C01A54444072430C414528CA484635148C284409488894141F4492420F4C512701342187822045C0490482654218240018E48237C41324843F194422410B164D88444342719D2226F
-:80468000CA288924F4421110465414230145C2C4416E912E51442364E44A385843344426FA14488416F463DB0028264168121308004488822C116414124A81C42445182A820283048F440214225084835424444100160810042184854118B881C414008200884044F29D671002000045010026014282881142909AD0182208481042141499
-:804700001804209484442A0122442CC848811140582200008C24A4484441008744F02DB970240154D02441A2422941C218E018311142242A788422B82534CB259444220085628627244098C222A03488250249D818C8142449944841808408272815622845181588140C8A024F2646922110014911F22144002981C2810082884522F82AB7
-:80478000413F88D48522840224844782494458842904604864288048D524394845C84910088824882487284453141C440C89066F8705411004002129018114124E11C82413A2849094243084800490422502202882842788113224860824481044221402501248838408480049085F66082814288742441C11026C44614810631AB0828494
-:80480000044420744218B48801C72814464C0A2541014415A884480081A94416143124884941322C41844604620064A0148FCF411204422581044C081044053024203212002F8261482584840182004400148F426481A48035281825240230528490648C242208218160442124412E129FC505200100432408230190118848001046010045
-:804880008148290A2422484420213882412C438408201808000021188122884400C43018449F634882025081424D514120511682123159042B8256425414A9634C8554488F248852A4148744C4501212CB82278845A2A525B48822118A4A1A64154782401228918CD042180846140489C146F210341126C2244110026304141188828014D1
-:80490000020080240488002322140620941411200150248C14042180A861465284608242414A02A1414422F71E008A04221111502244432208A260414115662486420248101112818404152201502141210000002D4C241C48242422840A49880800468408EBFB5061C124158CC4121119048C88F44284488C4888082E844249C841C021E9
-:8049800043C4492121208434C447284622287C84021120881425011001890812C830247092281408C47F34096089002100421344032441F042842488008450814048224443088C124188C8C800129081891406106848A3C4827088425422A048482400C042CFC24A2204C0184CE244622441282518C4C450875081478400114A38246332DA
-:804A00001146588549482614433241464724B48454148D42874140914A812904882684C424837418F41844812B81881A888884F87F5E00006014853441830240142841012414251189D229088531221018088901834214088121A18422114D488438401951828C485482888C0480C4480021FFA20F4111271100224155C244422D428034BE
-:804A8000442263088E424614029042102289382844A4820010420868E048036D22488D2448A100214828235A22260222833186242F9F0F1C148442042502002214000000C982420442218C14211443042A944120820440011C01140048614A011A240542C01442990122124CD29C0224822F124131228601203344881006C228008B21905B
-:804B00001889F21C4200701824584890288914180480241228E28221562426C428F012885082448128181A02384A6154E0DD012588C2422286548241845012148C0228255892841064842145114284118418420224245481264428C24242D90500208448148622614112A16042AD824918B248F8925760144F2865312F42F38421E71845A2
-:804B8000514C6D3655D222D888E648542A16DE12D848F42C212F2C35262B1445AD267F32D1B874550763F6424417921F3881E4645822AD4447283F14C12833912C1D25ACB61483F6C4C41D44218E22886F8CE7E874A4E8282823E1A331148E5126F43F5C506483983315394117244E463D2942AFDC744124B84472C538CEA666882F2C78DB
-:804C00002C7888F3894889D2A811088A745BD84858ACA1AF84F44E83ED68CD884B244C186C221CED86F85C4823664467868D28AFA8F19848A9DCC845B424F852F41E1829F3C2912B248F84D854C8C27F244B93433D2C22C5F222462E3C314E421B422AF284412F249812542A5C8D75C3445CC24C3CB861D455E4C43443A5587484124E626B
-:804C80004BA2C4E05CC48223845218CD281F595522C5D5AA546835E314E822E8C471463218AB1585F24E24CE42C7A28BC8AE544672CC98130000A30283028130288281823482A048288230814A020042114280928380289484424180094180014D114800804404444001462461448F934B12F2272555FE2F4CCFC4F46D644E4C6E6CCFC591
-:804D0000F54464C6F8222AAF67F54A4EBFDCF6686485DD44F25951DFD6F69F15C7C2CF53F53C6F75FF8C1DDF55F56CEEAF25D1BAD63B588A8F46F6484C6AF644467FD652B92F33F55A185FD351998B12AFC5E58FF9C8C85E588F86F5C6C8AF88FEC4E4CFC8B88AF9D8D8CFC8EA88EC4BFA9888CFC2F62F9650631FF6D65DD26552D9DF443F
-:804D8000F64B437FD6F67C5CCFC6B4C8E48AF2943A6F44F4CD4DDFCEF6894DDFBAF4FD59FFD6F69F1DE7D2CF95F16D3F75DFF5F85D59CFA6F65E1ABF92F22AA9E5FB68EC8DCE4F82DE64FC276595FB1B93BF85F9191FB7F4ED1CAF85F5DE5CAFCCF45A5AAB746BCCAFC8FCCC86EFC8F89A98AF8DFD8E9F2F8CFCFAECCF8DF86CBEAD5124C9
-:804E0000217F52D7217127F54C445FD6E644F46965BF55F548E8CE84AF26FA5AF2FFF4FC8A8CEFF6FE4E8DCFC4FA13D1EFC6FE9391F7C25F57F56D7D97B4DD8F5F55F16C2C2B55BFB6F6A3C3A7DCEE648FCCF4E26C4F6CF4266735F1B113BFADF13716FD458723AFC4F5E5C49FC9FD5252AFA4F7CECC2F2CFC86E6EF6CFCDEF62BFDEFE8AD
-:804E8000FA82C86F4FAE99CF82F7CDD53435F62B673F32F22F2F1F94F4656F3734FF56F6337F5F66BEC2FCEAE22FADFD47C7AFE8F8EFEFBFDCFCEDEB7F9BFF6FED3F9D792DF97559DFF256BBD5FB5419CFA6F2565ABFB6F6A3A9E7E82FCEFEC8CE6F4EFEC4C26F32521B9F38F99F9EBF61F14B4FE7E1AF85F4CF46AF99FD5A52AFA4DDEEF4
-:804F0000F45A56EF6CFC8E1AEFEDB592D1EEF8C2C8CFCFBFD4F56C6E7FB107004D111082046032000040C24840480244200444002004282014260430223026601220A24824122008922C22D96822A1243048F024C9F082420028246880243481462228042F1408881B424A081CA84210012C44C14240621C604820181441228811114254AE
-:804F80002440A1494AB11454228A440420084188241FE90D6D421F417228F21124AB161F41B24ED141B26AF18124AB941B28AF243995AF1439A4AF14B9A4F442B5578A2F14F924481CFB244A4E815FA264154FA264595FA2E459D2A2ED4DD2A4FCD1244DC21F49D22CF19124CB941F49324A1F48B24ED141F26A9119B64A19B54AB924F441
-:805000004A9443F242944782AB944F82E444F9244ACFC2086F22F51148AB5215F46E1115F46E1313B16EF18124AF467991B44ABB94F2481553D87AAB49AF543295ABB473D158DB26F548B17FA2F858842CF1882559B598F224D3875D4F22F851286FA2B891F62C5217884F16F98168EF26F1816C6B168CF222951D6C2BB45D28AD948CF489
-:805080004AB48CF442B48CF44AB423F242A4ACF5A2CC40088001000000440000000000000000000000C08800200400000000000000424001DF9C0730112135041868A0141C0182A1814282292814E748048C6494841354214110048B284A384284824E8244882B922282884400122190548B84582A1468448B81104804CF4C081C62488CDA
-:8051000008453324218306A825D11802412508C08886C8228145012464444062881014C222804235111845427414914242278C4E18899818602812C124182270428141C1466FA40AB041C188714427632268B08113D228722814C44888828E482D8C4E84A44211872145738401308E702438812D22818938457344D224C2241D1242488365
-:80518000C41849D8822112B48244AC421868882D431658141E46CDD660124421400142844A011413088421100214222155384820444204008229240428881298926048884429889418009A94181A44424864810000DB291012012002205122840000801402008B84800200426044588120915400448844212082048008008847884088083B
-:80520000812014B4E80E13123234C04425C844A04152AA8425582A1D84E048247529C44100830815944228D0283221353214C128B042024C02161825D1488854242C0686811982646888842F240A2022F8FB2380022E14201622042CC158884888A13988B44228712C41810C8C0245010046E8325438181248804484420244224B844844F4
-:8052800027248088918289088388A8420062F015372434110041814116220462120044102404488120082442683024290141C42E1424226048441648814108A08210210843C48421A42C480890849F790639942414400420E412019012601580A8412042C2124A081C810230448006C0248B4122481E422200C092400282D1882A014412C8
-:8053000045024C082C044E148D7E002085010028482144004362412752C0411E881041024A0160212844701201118A42CA844885243244284460815081491272231424C24489486422228118A9F326C6200140A341290141400414200800416044405C48C15048C42450488428482120021120511A28C0412E9A008004250210280420024F
-:805380006FCD0F1B144413015818302456114402F0449144471A4A31443E884684C184857448851224C124A0422D192092882CE24482312C30541CE2481262942F215A811C32826F14117422B4148448EC2228228493649F260E212830116502806422001301C01200110025C148004058482D424445082246B42205885012282484188036
-:805400004188480800105284214904844078B641C2142200260426A4414D41F041222200442400C5022782414B126082001004872240846482802441010014A45042E04408100281824A82262444F234E710111451583084902D1880418411441894140041404811243414004022B4242401508212A021A44123140A808824028450482426
-:805480006081840084CF6C0D2810081D288004A4116100114008400A8422442284604200288419022C022889121404811008800400288121A9082140084CF4ED24405112214004250410043B14650100C0243028002880E3A244420448108802400200422184250211C026108148A481444944024121222F790182C410012002602149020C
-:80550000211001004464001528042C4208C4006084488CC242008D21841048018521926A818501202124C444222144F0CA68106414484470120484442E4C00221C42088002008410880120028416044028052420048024022C022C08400889041048181412B4BD41C3182312110800221001141240024028022800208404002046943450B7
-:8055800022A0212818422C044314128204524911121402122C820480F2BF34000022C0228C044880840230112C02441222302480018190484822C0484001281002C028200460882182C282832AA82443088004F0EB4A6082C048129400441618220180424238188428841848214382012A1824612400460100B028048004208428C214805A
-:8056000022019014249014842546782D4E7131F68425118D25144C8262110026B24132251140D2489128AC21D2827224C8298CC2286E788C42741428E286426582BC741AA84280721921944E8C54E9239429AD248391329D11A1C7C844C785C6D4A4F648124F8404246FA744921693569811D74225322ECF427418F342264F5115B212011C
-:80568000608212448F42823228284412228512A242442C447428D844054825F228322B124A81447248D212425212424AB44834848E1A225E182F42C8122396227044D4C6F24C83C021250247818C32144E448CF2445CDD112B242E1340D5F9514A21478241E58ED14834354F42B4484474245284424E28AB416B645AA2242E22282B418567
-:80570000B42452A84E28214A446828AEC22F22EA4888A48224AB882C94C483E1C254483068CF4C4A01214001C04822488064120000840028801281024A02004A12221404222002471248244814402128A2491482204922C9231242C0244F6D41F222222F6252D7CF4357A8EFA31332459FC1F1292C3F11D111F2111555F515354F42F21C9E
-:805780001C411E12C7E26F43F14D6985F85C4C45F42C7EEFE2F26A6C8F81F148286FE1F7262CCFC7F7282A5A25F2723885F818789734AF2252AA6F66F64B498F82FA496BAFA4F52A48CD8EBF91F326A6AFE1F56672EFA4F16E5E2FC2D4847448F84C2C9FD7427216F2666E75FD343C8D2CCFE1732AF465249F81F16D6C7F11F161615F1362
-:8058000053555F61F126266F4151441E1C47E26FE3F3476D26F46E7C47C24FEE5C66EFC6BE14F168286F65F74F4D4F47F7484A8F27E724F61A52AD281AF3494B2F22924ACF46F641412F22FA4B4F2F2EDF8AF61496BF11F12EA6AF65F5EAF6AD1AFD3E2F44D4CE7448FC4C3AEFC5022D222D66B5F9353485FA3632AB465F16F3495D9FC2E1
-:80588000F263441D211D2155F11D19EF83F31C18C3E221F12E2E2B13FF965699CFC487F628EAAFA2F26A6C8F81F5486A6FE3F7466D8FC5F7387A7E7826F2326287839F91F359138F26724AFA6767BF94F42BABBFFCFE2A3A8F8DFF4D8FBFB9F936B6EFE9FD66726F2DF96E5E2FC2F546484B44CFE6D78C4F3216DF62569BDFC3D3E9F21664
-:8059000036AF46F465359F94F575763F47A5773F115315DF31F13E3AEB11CF42E2E3F3262E2F83F3676D1772CFC6E686F464CC4762EFCEB614F5686A6F67F74E6D4F45F7585A7E784E622723EFC3F215359FB5F56262AB44DF56F64B49BFB2FACB8B2F2AFBDAD85F75F99B93EF63FBDED4CF4EFFD4D2EFE6E746F54C484B44CFE6F6D6EBEA
-:805980001002610084224003260200640040024C0289024E249028214280024222422230248480448204842602C04800805468C0243048F0557CE01A018501342842200442111001400428000000410040086B42400A00214002002502898884288821C186488848214904705E046D531F41522A1F41724CF11124E3D641B64ED141B66A6C
-:805A00009961AF1419B54A3924AF143924AF547924D81AFB35485CFB244A8F14FA244A1E214FA2645D2E4A8F5DD2A6E449E2A2F491242E421F49722CF29124C7341FC9364A1FC8F64A111F48F26A911B28AB945B48AF1479B4F84A92478A2F247924B84AFB2448984FA2F4BC14D016F51168AF22E441F84C1119B226B11134261AF42A87FC
-:805A80001E44AF14BA15B24A7914F842A132AF543914AF143B132F44DBA4F148B14D825EA1A4DE254D588F1DD236E518E2A2F5912C2E5A1F48F62C528AF224131F8934248E68AF12E148F66A151F48F24A228AE6747184E86472A4E8247224B8483A2629E9A2F51A8F00000000000044000000004200008008000014008400000000002059
-:805B0000080000000014F026DE50211228121301411A041E68244810081A18448E92A80042460250246012458212080000101253842148C1A602304817244218248E482428202204BF2904204854184147121451A49042854282082304204105891618584841203248A6084B6810044210022A2182112498142009441D182C5848154288DF
-:805B800061CC46681183F2D59650214249C211167424014E15814A3142A3742204B0524814B822F1218C248442561A24082382022285041400460825821218924445F814A241188356411A8418F243828429D324BC284421619F00124048014501248C02406288001004002A14088141447048F1248AA0C210044810021CC1241880082001
-:805C00000848A5215148840081A01426F8654B40011444471200101801111400130200101204488100002128240000702A01241002000088008002000000DF940E29022D2228217111411902212110161422122262444608424002484B214C4632C42608444004247022D4144252242829048C449142860241A1222C188888A2829EFB40D9
-:805C8000011342922125411194281400002002212248844142482420B414B244022B82220010448202C0212125243242002C08882141252802258808F02633242210D24242440410012125411116142302502442004008001092448121410050A1244722414002008C1421048002200880A2286EF7244611724866685022150411003724B7
-:805D000030250028261446022454508210022302A4441D4284150829441445542C2C54843CA8584841A1433214904443041200412B14CFF8080080042004212400201221288104814012B84D1304424C440821621544442894442860843024141284153441E012042F826881833264108204AD324FDB0D184411B6411401008420022D42B9
-:805D80000000242604200400100800000000001A0220944241822008400240280440083FC70C191154781450321944125128B022042D4120A8212A14440C5018534608C04E0021C044411148254414A143644B2445D9123C4E1B48148C4845E482781218A424122140E424B257092F2804E041120641000011214125011054222221604459
-:805E0000A4442442902810B826042508002244C18424481892801482C41260442E48858404488184AD5A40C2441100212187245021000048002261614800168284022440821484044824000081482448002445020080084244424470C3021100281495141911081502131205415016811006814110924C4AC24200210041418514420442CE
-:805E8000704204880042415042284604180081B0DD0C82178128142001004100210000102102256444280044606243224244144218845248A18002004221001131260228304C4487424846E2640851284044081110012414401A441204441441488054244D42108484C4444829C64348481502608464111112411021030020E48508005022
-:805F0000844F6F07002115420447248C4492241110410284400800444004000040060000441044420A44448880424192440092902C0040F19D5E400A141031238444C4001902E024924410024180042180840480044642242402813C044548842112024821002280142214220121705348C2284112260416080000241044193141140084C2
-:805F800000222F821481221408A100C54224E2140216022A04336411001C2CD112044344144424012B2485542A6D4A008663221002241134110010091006280000482228172211630200404102001C624414004C54242C283442444148884008278441484AF25FF3D086229344128C7884C2142C42444248042815124188124311012304F3
-:80600000493115884912410440034008190421214440A124C01486814281420423014098224CF1EF3224218E2577231712A5DAA45AF328254E512B2414C5157142552215952D5D214665444A54446E4223565419D284D426E44444F46242144AA224E504F74146724712611453F14424246856164464224C92628B516B5146B44854542C21
-:80608000F4D919144B228F2841F114261718A981714858114D24C02121F02A42914575285252508461C582D744D251A1644F44D452624447822F24041F64C44C441F2652A22C52488B222419E644C1822354111C7343742591244B844B946358C8E5C22842C7873EA750717B4328407411354C3D47C13542119321157A445124839422241A
-:8061000064800466528249362A2722668252224145548261619415056D48CCB41654662D418A84F85282394C7342E24404866484621847428D6A44EF250120022240030000814002C048280015088450822815081508844008000014120000200882800400001242009D3FF086264FC543F61737BD8BAF23FB464EFF665222BFC2028FA265
-:80618000322A85DA8A5255D57D28582AA49F94F448488CF46C6EEFE6F62A5E46FE4C2EDFC4F4686C2F46F6484EAFE4F446466F46F642462FE652EECFE2F65555CF46F214545F53F754166F2636C62F37B6F24CD445F226246F6CFC46C44FC5F9646AE5B86CF244484FC7F632AE246D266F57D362F21775B5FBBF3F7F34F46B6E55F62F2DA3
-:8062000065F428282D2C55F64A48D55D454732F543FA41416F44F4444CCFE7F766666F7E7E44FE6C8A7F42F46466EFC2F6484FAD4E2F34F4662C67647FF656EFAFA2F25F5DCF47F745457F67F757566F66F646442F37F653644F54D447B426F2C6C62F2CF8C6CEEFE6D6CEF16E244F84F4743EAEFB242D222E6747627F73738BFB3F2FEF86
-:8062800075F46F25C5FA2F2EB5FC2123BD22E5FE4A487F14F44F49BF92D22A52A237146F4414F8645A67245F76FC4A267FE4F644464E46EFC464344F64744EFE666C4E446D4475A7334B22CF42B256F564644F65F566E4CE843F17B7D2FE45445F64F466466F6EFCC6C4CFCCFC6C6EED586F86B464F4647CFF3D48F382262F33F716367F21
-:806300004553BBDFF3F25F4BBFD656FDFFF252DB1F3252B775F64B48DFD4F44B4A6F72D27F52A7B7944F44B448F4447EAFA6F667E6AF64F6E76EEFE6F662666F42F64C4E4D46DFE4F466646E66FF7256EFEFC3F32C2CEF43F347436F66F656566F4EEE4CFC73737BCD7F54F4474667266F2EFCC2822FACFC6E6EED584FC6F4644C4FE6F7C0
-:806380005BFC00302650248445435824400114400664116C020046044E24604421282142414220140245411804450334400214483440A2416430486044F0E76F30244424112444404442084002D0810400418024043022100441282400422444410048A0414244428001002450228C44441848F18D97E022F4112487221F417248F21124D1
-:80640000A7141D24AB141D24AB9419F24A9251AB9443F24A914B422F147B25D812FB24481CF9244A1CF8264A1E214FA264192E4A96E5A2E449C24A1F49C2421F4952281F4932481FC9324A1F48B24AD141B24A9921AB9451AB9443B24A39242BB447822B944F8284F9244A5F2F0F2E531D6C8F32F511248F2641F468111D64AF36D141E27B
-:806480006659412F249B258F143924AD914B42AF147B2598BA6F82D41AF924588D817FA2FD18A15FA274D861A287592F92F498252FA2B499E2A2F491448B421F4872627381346A1B28AB161F48F26A941B28AF649325AF44A948AB3443BA427B24B8425B8629EBA2F5D9BC4028880400000040040000000000800188000040012284800458
-:806500000000004004000000001028F4318260461284154C447522420551848448C414272200F021428142C1860661615042104804838142426188155441241A04ADC4410000490467844F2822018400F03ABB00374A10028688C818C01800D0123846C324088D1488200A00220060424426120444120021100141145A0889081694822BB4
-:806580008120618C43054B2116019F6F0568CA13581444342A8801591104667289D64174421402C48E21258A5C844359228612046143021D26449C9124166284864A45045270816C4441892852244374827248C4842F84C844A4268421F1FBC1502415444208864C52C14018480800268808184820020043020050480000100140111142D3
-:8066000034429200208128013218122001F0F499804404001508110021200400001004414002A410048400C04800908820042001001008000081004508F0AE510050A4C90110121401008410568461450883420C418100100840040021000020210413C418481223444858488410C21A0040FAA94E0044418901A40000004224401C1404DA
-:8066800083421404240021410041008C14020020044212421688842144084048423818214140F2295A2004A4444001541124441008412440084184404408841008840000840083082001100100A110480C00008490185B63100184810000100200104884810412124008504261008421440044000084818B1400811220140200801108C07F
-:8067000018419F3105605200535134160818800810020085C14481280040080084428908004828C024246014244A012008400221812849E84461842012F8BA880000000000001810084008860842844C4404002100000000000000810084848418124800001200281F5D0F144712104854251608160282120084C018428C98184A014C44E8
-:806780000425461442C8428618046044280024304946A8141038888146622120448832148F4481048C61822F17020081C01100000040420841508146042884811008004008000000430281C01284001810082C01008890188012F4B9250000440000000040080000104818080000441048080000008100122001000000901816884108F0B5
-:80680000F45A0010441808101C14080000818140180800100800000084000000000012810020C11889819118002001844D720000810000448144000081814008818100810000008400840000000020010018892101840012830189F1383A5088831414440850480045544443120800008424402801820044401841088558888304400820B7
-:8068800081411804220084121889C11824001AF13F92000044100400848181000081101818080000840000000000000020010000000000004018F8CB8810C84842480084004044C42422280000002502A921812988080014111484848C24840400004014C4242228120000502210F2878C40084C040000005044800200004440180218800E
-:8069000048080040014008480000200118441228001800008421121F330B000000000044100881810000008400000081000084000000002001000000008400A0113E2940040040040000100800000040084018080000000000000000008001121800000000F0F55E10142824040010084110242202810000242430181282821008101111A3
-:806980000881424200811800124141222200000024241AF11699405888484800000040448482021018080021211818888800001414404888840400001250484C8182020012400821215BD700411004000010080010080084001008008100000000000000000000120012000000F07B8A0000000000840010080000100885040000000000A8
-:806A00000000000020010000000084814008F09F3E5044004504000084841008840010480C8141100881840000000000001088A11118108881010000401808F0DB280010044004100881400800848184818410088484001008000000000000001220218121810118844008816FD40C400400418400814008815088810010484858880010E2
-:806A80000884000000000000122081210100200184810081F0CB4F702612A6122B119012C0122582E8B17111A1889659888F18F44848D09114815489C14E488744C5B444F22424C024805244412A722612A2122B11882B98C0922582E8317119A1988659888B488F84048C04488518E884F4F776F02622241812122180512229C8111B116F
-:806B000019E88818D818242444591148C485C8488F441494244322420428444584F222222418121A388282182592829CB11191819E98818934484284804458888CF4D71C000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04F09
-:806B8000FE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000000000000000076
-:806C0000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000000000000B6
-:806C80000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000036
-:806D000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000B5
-:806D8000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000000000000035
-:806E00000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000000000B4
-:806E800000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000034
-:806F0000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000B3
-:806F80000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000033
-:8070000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000B2
-:80708000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000032
-:807100000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000B1
-:8071800000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000031
-:80720000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000B0
-:807280000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0030
-:8073000000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE4BE
-:807380000F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000000000000000012
-:80740000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000000000000AE
-:807480000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000000002E
-:8075000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000AD
-:80758000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000002D
-:807600000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000000000AC
-:8076800000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000002C
-:80770000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000AB
-:807780000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000002B
-:8078000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000AA
-:80788000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000002A
-:807900000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000A9
-:8079800000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000029
-:807A0000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000A8
-:807A80000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000028
-:807B000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFEA7
-:807B80000000844100001004404404445048100881000010080081000040484808001200400800100800008FF608000050484144414100440044100400000010041048480881841048080084810000890100000018848189D1CB0800104844041004411004000000008100004048480800810000000080011008000084801108848DE70079
-:807C0000000010040000000000850481000040040000818100000000000080410800000010087FA20F000000100400001044040000000000000081000081008440080000000000000000DFB30800004008004400100440140400000000000000000084814008840000000000000080F1B6620000000000000040080012000000000000000F
-:807C800000000000000000000000000000BF1A0C28000000004200001288102192144841202802C044000090880020010000000080140400C088008C04EF84064C014012091D28C19082204491861024B28401830482430240244481048481408424186482264A081E2EC028428440A88100284280344418004F9F051200100926114822AB
-:807D00000C422482908428512289014141822241100100849088488844842484D0840226284408841A1C042242806C44128C048F320F43020021104804004011840120094924248802004249240481004100A0128C02C0120000000000008400009F810A000025421854810000241142842C1204C08400008C04840042260A200882002494
-:807D800044214400000000A0418334142001841F1E04143426042E4C6416A1214C1268241270180240B48811C4442883044C120242122F449244690242184441154212E48209268475248854A2D88418844C61C28800874448006F22071110022782A44591182881460230181048329C414994244608412184488C11421442180244418607
-:807E000001100890148742488429118801188982618418441810B82701109124D02444849121410012241123044C020088002280046046424926222421082450423A584263820410220C104844A4841034484200F7FA002415341813C414004220A12425428284A8410087248C421284181A0420248508895522282C810528688AA15883B6
-:807E8000028722001002A9214438820018E084F816DA8001834411048C04840041302880228813840324C0112282C0188200165442400848280000801C4424928288400200A01840D822F25E73000041100800448412008001800182848484880022008C84048644064400848092120000844812804804890280019FCB4F810185541C42F8
-:807F00004C618400411238002984A98512E0814208C19C98284480A384488156C61E4024212122C248989028C8876260228C2828D12281482A98281A08B028F8FD9500501212454108304810885422842002224C8194A284408208400818C220D424885222440022E0262901004082048442410020911848BF83052004237318848102805C
-:807F800042944200508230420022484190440080810448414884284C822202CA11229224440030842188662408281A18042CF8685F40024018011210711481C5821A78446886A04110182228218184110264248A8199322A01284C81498401442CC81480822104C04280382467824126048504FC0B101458142391288145018284282200A5
-:8080000022702804414227422021A8428024A282444908E044088008206628E0242B3442122180E1441102184A410240B4770B6822448064484D4127829301308B42909423382A303622252408430841482282A04280080042D0848C0E2818218C2128A4188482221848888C1864829A92687FF1091C4105221145820216484661223442D7
-:808080006224242C082C01484800322142100410821194248220880400C02640420224885A02840026088C78ED0E48D01202C42712124122212A2124541C20268402422210221414C22282482810C222282829016902433124414241A06180812821820826041A0820747A03252602812A84848416344140013812604148482058424B83D8
-:808100003082808821218189A1182C8C0821800198E022088282828212888144924A092628FC844826F23BC14004A1412011082C028D21848301814481449024128006C044182504484148301252B04C014C923420944418188082E424816424E064018741C0143A048F150E3D38C06111288954143D5A4394284844822D2286A51482185C
-:80818000B29846841AC2A418A086A0863062821CA428F0824828214240983284888224860C2902413022242C46281842F4F982144F447424521ACD1A1D414E28B9F64A2CC7311425F281824A1CE4287442C8424C5C282A92644D244F4148C2822C042B411A9912982763422B541632228ED643A24C4D148E228E949E44224F4228CCA8822A
-:8082000085E624F14C244B884F4132441EC48F82DA482E58648FFD0E2A11F121241D252A92474B135F13F4223429E253324229F3495C6F4169232B8567274BB44F25F1E2142BC46AF564C4474467473E4286A46C6EC64F6526E42BAA224D441E223AC22447414AA6C72225781634CA388A248499C28AF922626E822BB2C7842749478A4F40
-:80828000C1B3E8BEF148F213232D648423F25C1C8F4361F47041F8758C9F84F528699729218F9692E4CF8291282363482C288BA21882284AB24432229A22AAD849E129E88EDA447D4438828BB2B24D1C2F24F264328AEF21F312C24E122F21B99224F922425E148A7598AE324931128BC6844F450A4001001440220182003400926089201B
-:8083000009821002000021001002219088100889088110088100008A44028100FEEA146E642E2195FB3352AF87F77476AF85E414F43B279F36F429322F23A3C4CB88AF2CFA66263E22EFEABA7A7618A6414F45A4544B664AE826D146F436F4FAFE64664F42F644746F64FC56644F4DBEE4B6C4F81838BAFEC4CC4FC4FC7C6CCF4EF6687A1A
-:80838000EFAEFECAD88F2EFE9898C7E465F62C2A6B756F44F96EBC8FA6A399CBCE4F4AD9A4F863F61467636FD65499DFC3F3783EBF73774FDDE8F47B66FF76F62C3C9F13F328E88F69F9CA866F4EFA34268F8EBE78F65C524F24F4F4E46AF57472CAA88E6F43F136F4BAF764762B775F55FE56D46F77F6BCFC4F6EB584F818188FCBFAF4C0
-:80840000F84FC4727CFCEE746F23B3A6F39CDC8F2CEC63FBC696EFE17B46B256B776F77E3CCFEAFAB49ECFCEFEAC3C6FE3F9ABFFF066664F7256FDFF73F35B599FB1F55E59FF12F73B3F5F7FFEF9D7BF97A775FF14F49A91CFC6A337CFCAEB87E7C2A9DC6BD449E922DF46F864A66F42F216764F6DFFF4F64F6AEA16F612D22F26F4F6EC4F
-:808480004F2CBE92FD3434CF8AFAD4C6EF45F57C644FCFFF66766F6FF6DAD62FAEFE82A2465222E7E82F46F6E6F6EFE7FFE8FABEB8EFCFFCB4D48FEEFD43C3346F67F42F6595FB3E26EFE5F67F77FFF5F36B77BFF7F777678FC3F779718FA5FF5F57EF59F9ACBCCFCDF9E4D44FCFFF74FC4F4FFFE6F44F42FFA4F66F48F864A46F43F3B62F
-:80850000764F6FF7F4766F6BF976F56F49FD73726FCBFFC4D62B11CFC3F324244F6FFE7E748B276FCEFFF6D6EFEEFFDAD62FADFD96B2AFADF13A1A6F2DB5F2FFE6F66FE5FFBCBA4FCBFBFECCCFEFFFECDE8FE30B0043026D13484382742463812663896081648424846C024C22C1246044C02429811202490963024B1280094D1280A841F5
-:80858000419A64229A4482049AC4268A8422D14822F94824F0659DE01241542A206281A10020044200C024484A028820040044411A3224A04216840400E04822A421C0248016220882298104431108005014DF67042CF4112485F2112483F41124A7241F41B24AD141B24A9921AF3419F54A9143F34A9143F34291478A2F14F924481CF91F
-:80860000244A1CFA244A16F1244AD6E1A264592D4A9E24ACF4D1242CF4912485F291248B841F49724AF28124AB141D24AB9419B24A19B54A3924AB9443FA42924782AB944F8284F9244AAFF20FA41E648D431F4132481E24A7341F4112DA41F64A144CF24AB341AD314B43A7144373423134271467822D114D581CF126CA16F124CA5661D9
-:80868000A296D5B2E451C2481FC512F2916C25F21164421F497242D241A2141D242F44D941B2429B212F6439248B9443DA22F1A44889312629F9A45ADF38048400820000000080020082000021800100000014008480040000004004280000004210027BBB003032C1122E4289018D2100C818446041301423C2A2CA0260620010021249FA
-:8087000023060048200828262201901481AA012084048A4408184A01224F164811A421B021014190622018A812888AD1281141948200A0341A04F04428004CE444022126C44410812222A148422AD422AA844A880C4280F888248A84A184CD228A0285D184E41545016E1212998181741282322850842A28428443052428A8272452124F0E
-:808780002102AA01604476C4141B249044811442828084A46124C243318CA82A04C2CB24481882ACC29252E083F4868B1004224C024C12884421081A8429592812644309802A2204D08404210028214C0280842222A1822825A228A0484212002088A8488314840281418F5E0140742212018C82C144224420010011298304128B141289C7
-:808800002802002481108815A8820010424882028C146288202824080084004400200F2601184D122622C4A31903810011960C4B49C1238992444480460849F24226002127424B829044C8E24942266213836411228B2846848214314812D028A685C03DCAA2941644F477A3902140128492429818224400A08160542D2CD2C054C120C6AF
-:808880002800235422242449A21C812624AC4A2250821E22890490A88C2482088418F028424A089D1443880CF061F300641A7211028C621279068480115148A01812212820253188004362424008844902C200644428142816B148126248206414C800301820A224124311F48D4C20442494254400490381A2C36684008A11A41440185B20
-:80890000A499D128286818400885042211C9E282E12483F4812C008A012711336843D084018521A8A48C08488880239132FD8F4002521210C882812791901243416212812218109C24D224284A83229C524C32821014388121248148108114B28414880489B1250843420A60E41287241084D422E58904121800182188004A0120381840E9
-:80898000A32821138801C04400C441200200008018042A4141046281838404A048400818A2380080F8B53CC01218C02116144862C2A37148223858A41C11E812A98118882E148B18C19B436E882285941441234A1824424268222A41E4486211484C097048E1C2915822D01454288C98886CA1498316A221E028F41819A0484418164402A2
-:808A0000204121A112284A4808D062825458842714404482D821246482100484824322C1C250182834F044821F819682487091088688A842C048289210A414229B3400441623040000A0821842821219312218304489220C218044A84980212184876141A021003A54486082400C2011486884AE44418002122282C546C225182061111415
-:808A80001904628883342882008988082A84282102284042028444264C483488282902141544224134149280A414888220012A01004110F45175200844261C018001A40049628120220132008113A2189C4E8144681212232421A442211024A112448B48460C1D48003041125374384408584335C42A8421F1A4D7C0162299149158388176
-:808B00009018230288A119141862122AD912688A2A0C29480886681122182E48828220088413944881812C22B28B11B218B288D12142384518C014426328D822018E46ACF4DF4200148120822401288A9124400814172B002B410094124A22485881118002302818660AC021B02881011488484344814285048D222008828282149F734D71
-:808B8000220212224001802124E1C4016082A041002A442A194A08802801C41225C815C4C028128C2408416044E02228F218C4899928814904838102A025224AF239B1002B21211183E488518146088008488A820588234218082288002810424862821902146044908444198882A12828002100128084482232120088AD13146048502445
-:808C00000000C012848621311828441502001321448108191C92411B1410B492066821128D4122141744821E48244E234481A64A01142210E8248188468444F41B2AE08144C246A082284AA143259822424C968168880082860888902AE082011A0C80A44870880116548449EA4164878242284881D2A22504284C8888A86863324420982B
-:808C800016F0B8C524474327284391692D41760189964A89B142BA68F24C388A9818611D81929B48CE888FA88343C818821B442CA1148D1926FC22561F88EC4DD4C1DD28E5427545A4289D494F54F844881E24CE644E434F4D388A8B1A8F1A9C14CDC18E548E248BB85AA5B849E14AEF1E71C4F2A369141C35848D1C26F5E138A88F84A1AB
-:808D0000111E286E82CD181F294DE184E184E228A9112E321EB88F4264139C7CA1B1889A818F821893E8118F25142CD788B328B22292222816FD84348FAB248BF41C9BAB2A8D187EC82FB458824669454783CB8326582225B21234162CD248E53C092D221F43533369311899F11141422E122B29AA44A8C88F11B431F831292F2E928223F7
-:808D800086823CE889BB22F4286886F3584937117249E38D9A3A43622D474141BE59DB123219D368F76C1833F211882AD624B211B6117189D481B148E284F452464F4AFA6444CA2AF414C42AF8373D205414901480880440420812A04810410200000010021110028810021C082E812002224002200186880220810220015F8544F3D342C9
-:808E00003FA6F2292ECFD3F758D93AF359186E22AF84F558C8AF8C6C941F11D911D131F226ACEEE12AB242F4B8B81F1BFB595995A14C4AF4E1731B455AFC58594F42761CE485A5E48BC48F2587F171348F42F22C6457646F61B1CEFA4DE3BB268F28F28CA81F99E89DBDDDFD557D4B57CF812DA3114F73A3FF4F47BD84FD3486CFA64EF31B
-:808E800033122F22F6383E8F93F759791F13F359196E32AF84F5FAE8AF4DFE68619F96F281891F39F127AF2F25AD3B2BEE8F83FFB9B9BF96FE39197AF468489FBA7349F96B696E68CFE2F6262E4E496AFE48EA6FC5B744F784A49751CF59F99D1AEFA3F3EEEABFB7F63B298FA9FBDC949D111F9AFB9D915FD5F57C38CF81F98C184B9C4F44
-:808F00006BBBB2FF64C44BBB6F67FD2EEA343F15B6317719FE37353F11FB38385AF1683AAF84B5D2FCEAEC7EF91F15DA99F15153EFE3F972D12E12AF87A7DF1F18F87AF81F92FAC8D88F84F461EB9F35B478E717F67C48E7432F95FFDCFC4FC9FC646E26F431748B221F8BFBA922CFE8FBDCF6FF7DFDDBD1CF69F8D2A41F15FA59F1DF1C67
-:808F8000FC5DDD2E948FA27D16F414144DA44F4FBF72AFD84F62D93648F3F1733F73731AFE6F3DBF94F7F1719F94E126D78AF3BAA8AF8FFE78F99F95E288E82DFD2F9F3F36CD122F87F7D8D81F98F821A91F93FB68788F86F471EB1FB4F463691F17F75C7EED6E7E78CFCFEFA7FF66662F46F691B5DFD9F895AD9F2FF29CBECFEEFEC3F70B
-:80900000BF9AFBA4B6AFCCF95B9BBF95FFDDD19F95FD3CBCCF27FFDED26BDD1BB9FAFF74744F6DFD64D6EF580722B022012382C411482248C0481440218822892298288289028B24110089024A92943024420018F02412844B828C146488608914484484641648A44846246144F0AA55100441C0118440C81290182889088D13112D1220B1
-:80908000240119C411A084109852142C5548A0241812211D2422444621213491421AA282A01419242422044A032B243220924CD024F41124C5F211248B141F41326A1D64AF24F18124AF24F91128AB9451AB9453F24A9353F2429147822D954F82C4915FA2C4814FA2E411F2274A96E1A264592D4A9E24ACF491242D421F497228F391247F
-:8091000087161F49326A1F48F24A121D24AB941B61AB9451AB944782ABB443B342792498B24F8394984FA2F4F633D0B6B41156341D6C8B141F41522A15F442121FC8F248161FC1B2489A45ADB213D2783925A97925D842F927482B945FA285D9A46C117FA26C194F8264192D4B8F59C2CA1FC9D2A2F4916487321FC974687191746A7281BE
-:80918000F448121D248D961F41B24AFB1528237414B84A32342B14478129FA3648A9F1A4581F5708200800000000002800000000001880080000000080040000004004000000005012F0BA3180424442D218111148420A188C122814EA12394A2260414A684214812A281432248D92C1003848122A01224C0388E638244582324882846085
-:80920000844C2624A124782A0141481FBB4A42A21A2A01303488A021E8602430121068484183C328132224219242C014814418418688C418192244041988932111C2C6C881881332118844004400826018842FB34B82B2E4211332191C03248C922243618227824289F228824D8830382E148E232A34113638A2C26941DC2848041528C295
-:80928000489921664428130BA88B284B824D8813D28424722801814C823414484AE228018621F1437840020021448908188A0448241221132134244028140420042062418C4184288581820140A412114681642482881388216844480028122840C448BFF9060082800800880000000000000000000000000000000000000000100100112E
-:80930000400170E7058012478491282661446D228417128AC49210E2819414422722C08580721148A1488546E814B211042788811844884A12478491282E81469424842382C4118078129A1429E42228C8141A8862884FDE0B29628111895144428D65224D2830221D511A483A8A484B169A828841071E2883C44447181D22369818C0487A
-:80938000339C48184E242A28911348474289E2144816C64815A1158B8A40D8223444296123888E148D885A32846F1E0F008280080088000000000000000000000000000000000000000010010011400170E7052B122841282144228440A814480000462202128F1413044885044420110420A4526022004002221214A08648888400440022
-:80940000802203F076B54004228153426AC1224C0628181622119D162742124982C6841481C48A44D18222C224AC213222818044042AD161B821218244A4428B8721822412418B25701A86F2244881418D242E447EEA504220125812901483220280859112450162292282C36145419848490425084902291282240326021217482981A212
-:809480004243C1618E488848701218E48245D4820183262242CC241F8B0F3222412849426E826044815A020085C214611844424D9800418648312422124D188012888444042870210200C032628882000045224244381422427F244362842212C04418484421260241482A012100112812218B418501386F11A42489218401441609812104
-:80950000D14120840484C96289450161004B4281E021721802B048F2FECD400A830410188A221114CC28E01228412112414804238402901CA4001290481814288B4318301A1A6242C01814489024284243814308A24092188A013FA60B504145C13181450121CC240400248C04414724404A6841002800000018A028004120425418844189
-:809580002118400800A188182321248808F0FEF2602454C116914C8D176062C443423828C0938C4481523494EC02418C561822C12C25648148188B144188284E321841C921E15264848D1415A816928C022144893168242AA94181892119F8A7FA1082C21128008724A014482120042C0144480089A141180026525822800120E18201404C
-:8096000054382843420810421C180149C412224C688120929282A0422FEB04008441222C2242314226922415524124121642440224831114B518C242001008A181A1442126D4424294228084828182042D4881A0812602442881288B4228F0EEE900444493849414108201006220028CA4412A0541421042145438122448125848188112A8
-:80968000E08102281614628442A08518308C20A4241024618880012DB8008311241108467822140858004110014922220213828114322963012100114A92414418121C6241418C2284042890224624C44C200856843228A04223E21B09806222811A120A00460C2D44184281611C1112588200A1414842106881408AD2A441E821021110A7
-:80970000E1840260823810082B188C0145B828E1810212182088B4BA09A200254208414400281982052881608160822031144008186E18008001424315848191144228A302A018414221E081241212046848216018DF5708162411280544282443D242218141D1420228430200423022414CC212112428A012003820D2A502872285021854
-:80978000128448285C012890128002002225082E850028480020A12100100812415242621812C582621481008C02424A018042040000A0140048008C080080082888884A014AF223D66046004145321818184723400224148F21446D21C16C44245594482CC4286691442064833042102296421003212004183812226AC11141C058848BC4
-:80980000484688018C11F8EBDB60814448106226C18C14E82112781826E2244344722148022C014229228241881A240121222711104218C2482548462C810280440449429218A0811800922348F44B64604282412F24C42821C449D242B424C274271180F1381477138D746F82E14393124F81D591E111F42824457843F12234CF81B53256
-:8098800061861E1283C172124D5E45C4111F13D144B348D482A5255E286AA511521AA41A437448F238142AE18262418D288B312AF12891228F14061AF63C34281A712CB214B21837228D322F4171227241F83257612FA472487863EB41E4A4B42432484B224FC4F1461829B438725D2892482C3128253248BB74F0226236D62A721853E297
-:809900004F46B222B42835182AD684F621982B4583F9141829B69A82B14C8DA18A5AE229D684F69FD1901450E8C5BD12F4285E67221E5F4783872483D128B341F25146416C31148F241272185A624E441B222CF46824EC44512246B81254826E71678345B672A211F9528427824B2287218901284AE828F14A2245D8C1E14844EA847C9C26
-:80998000A4227ACC4A8B48844AF8968A0041842184422004421214004034110000441100100100000000140040020088C0828028C182000000004775001E384FC1F1145C1E568FA3F652486AF26E7E4F66F5361ABF27F772523F34F512326E622FB6F66656EFE1F17A7E2F87A3261E51CFA7F426646FE2F76E6DEFE3F63A228FA2F65A42D6
-:809A00008F21F16A62AF26F37A764F65F31636EFE1F21E3E8FC2F26C3C8B548B464AF748288BAB9F1ABE82F91595CBACCADA88F1BC98CBD58F8EFCA8988F867528F8F4ECEF79025AE585F73C3CCF43F7185EAF23F6526A2F26F326326F62F37A7E3F23D332F74353AFA5F563623FA4F776566F61F17E7AEF47F77B789F87F764726F42F610
-:809A8000E7EAFF87F73EFEAFA5F4786AAFA7D6BAF14A6AAFA7F7727E2F65F75377EF71F33E7E2F82F2667EAB546E484AF5C8C89E8C3F92F662785D9D8B9D2F2EFA2218CFCBB968FDF8E88F8AF96A488F87F5ECFCEF3806121A57CCC5FC1C3AEFE7F35A228FA3F63636AFE2F3221E9F27F753721F34F51A12AFA7F77A61EF67F55E5A8FE5E9
-:809B0000F572382B577E51CFA6F72E6E6F64FC4E4FEFE2F63A32AFA6F75A4AAFB7F66A6A8FA7F7727A6F65F13352DFA3F33E3EAFE5F1463C8B648B754AF4E8F82E361F13F74A68DFDDF5549A2F83A1CE4F4BFB5C9C8F8EFFE8F8AF8AF148484FCEFD49ADA0558F43F72C2ECB37CFA3F37E36AF25F32A7EEFE2F36E7EAFA6F633323F35F509
-:809B80004753AF24F57F7BBFB1F77E5EEFA7F55E5AEF46F77D591F17F56C6EEFE2F66FEFFFF7F5BE76AFA5F47A6AAFA7F66A6AAFA6F65E5E6F66F752723F33F71E3BEFE7F3565CEFE6B76AE787A3778F87F7F8FABF9BBF5AF78D15CFC5F93A1A2BDF4F4AFA7CEC8F8FBF28B1F8F75878CFCEFE9EC2100449418841284268228424160848D0
-:809C0000E081442481028922F14824800281214A12A224184222424B128041A81284E08104206281E08144A44160884C8204A024F09C2AA0481A4242D824E181024465A221407842034C21F14221F04212124CE2814471243A481128290500211A12869242112722161C84941A2084128816B2148441188AC414B0482A8868129FBA0D4D9E
-:809C8000421F417228F2112CA7141FC1364A1D64AF14F11164AB9419F64A9151AB9453F34A9543F2429147822D915F82C4954FA2C4815FA264114FA264192E4A96D5A4E449C24A1F49C2421F4952381F497248F39124A3F48124AB141F48F24A921B28AB9453F94A9243FA4A9443B242792498924F8284F9244AFFA5046D4A1B61221FC1FF
-:809D000054121FC1522A1F4152181F41D24AD941F26A9149F24A9113F34A954782AF547924D812F933482D852E5A5CF927CA5CE8A27588E5A27598D5B4F49825ACF4912CACE449D638E449724CB391326817482B141FC1F24A164CF248311A724A17F4483422AF44793498926F83949A4FA2F566E200800400000000A02800000000210049
-:809D8000800800000040084800000000002800000000003F31478102459218258107721132208801008452124C618100C64244469628A014251414024C216412441524611432481224488C28C5144250422842206242328CF4E998008A03459148612D4841818998483281A11698329244442062C21244C0286844412238839224C8288289
-:809E00001283210223314226042283B911044008C28C084E2844881482471580A224F01F421CE46295484B42A01A49A41A872290282B218B814614C4141E2A80A1492183A842C120341295128434184A280714162234226840B29CE414A8124C0180C4284222244B82325E823F2507201104850220511884818041880120810170240841D7
-:809E8000444722442342A4124C322428884C0211C9C12430114A4184810216280483042D8482C0484C0240F8C4CA10820220022A81040084000081902890182281104832482004200218120022842248C111221221120080044844304880024FE109221635244C11C6128112124981E22508C0113843329818208AC544C14C86A2214128ED
-:809F000016326816889688262402478121004AC3582C64142004848F24C1A4166281E084028014B8644D0222284361421820044901CA0190112A018C810289A14242C1CC2442488442821288044400412122A0411C042D412152402895A2244A11342848800497232062514410022F82212101228502007028849818A02812450828B03281
-:809F800004421246288392982A81028B128480D448628162120000814684110842812042F867BF4014420485121162481410142129384582D01461A170914848042849092004250148824193048394281214A85CC148C088C129728881852104C022504212F03E1DD08201100A60424038424D9842F02216124C7214D82802490244188376
-:80A00000049829A1218D128C8471221102248122C2214A921C200289024B21325241008D14004CB24208813FAF061004324844B08A2201004001800822420081141048081128848F4124020024174118008C01211800000045084885440848286E4F002544943A89546370223411211E880045C354A654842C233162887018240450821248
-:80A0800099E5A214794A84240811248CB928A1255C9118442D4838E0821142915418461824D44822E24408229FF3086B180000302484814890412C29490198559828418D1145081588528412221022E1228102442984523400842AB81102848908189E4800441608504AA014843F3A0B001018088112818C11382987121C911890181A0214
-:80A1000030588C44C84800200280A861360880040012838187C24880014A81A11258200449011800AF4502281428401128011110A4180090298008110012110022C21A3A28148180A281122021018068812301008414873481C01242F0244800625F41098210084A62824284608252841644080084000000000020A41411E0840212128C6D
-:80A180000181A01200488840840100121230324212701709224C024400D04122012001004110A48128A0124800223A48280200002814004A02404108284D4900280083250223924484006F8E0600840040248221011008181289981480880100200212828C0481128CB1B804008001208422010080810148002120018F9B078C0110082AEA
-:80A2000014889121222826C1110088288841890381184588638152813091128200608856C4481A420882224226081880C4480022424CC218904245F85D6300404511812852410082828813110118142A096668148400118450813081148E48000028811048C212890116CA48134118314A240042240018FF4C0C20082604124C0480040030
-:80A28000002220022008484A0300380028824CA448424288400C801422120830484800484418422044E112F46E4EC0181CC244200A222006224604289420022624892213022A018C2CA4413A98480012C088E012244481188844A18448460E1C0224404202403842F0A2ABA021867125584117121A382843E11743A8811BCA40E11191814C
-:80A30000A0182A29B8483318426E482816A1327AE281B2E8C6518F1A68438CAE11DA04C05481A06D8CE41423D2C1344A9F84A415BCB242A4452F2526D126F6482A83641412BF9D0E221B28008AB648F244748752B038C7648D188B1199014CA3918DA54B281F82AB41221A351822848B41888E111E88824AA15872AA8469452AA2219C815F
-:80A380001191323258834898124819C518258811227432041E114B423F3C0118435248CD288426489831150826E811D2952A518926F82828436341122E884E798518052A62848D586AC8119BA515784898188BA4118AF1181987861287888F227978D28AF4C8285A813514953158830143E224654349E58184E484F297CC00004501004191
-:80A400000000820014400514828714501840018D21000022811001150815C882112215081100C048240040048304F0A745A022157921B921F249488F86F558589F94F418498F87F4D8C89F9DD69951899F91B1A1F899988F82D299B8B1D289A8229F17F67D4497821897911D11BAFCF9E99AFD88F8CF41B718FAD9F19AF8D4851CF11D5D69
-:80A4800017A13FB1F173F99F37B759F5E9E99FB959AABF91D111D111D18AD1A8F15E5E2F23F734244F817118A811C5FC3B17A0221F167629A9628F84F468788F85F769699F91F578788FCFFFE9F99F92F3191995B921F299989F93D399B921F3113ABF92F67179FFC657891F12FA71799F96AADB9F97FF91919F88F3547C9F85FED9F91FA4
-:80A5000015FC94D585F91D3597A1AF21F1FAF81F17F77978AAFE98DEBF94F458781F15F55939818D4AEFC4A4667E647E32AB455AF15C1CEF23041AD3117421F929298D218B128F87F531119D718B578F4DFBD9219F8853119D11BE998F8AF831318F81EB1BF36888BF95F12878CFD67528D8117818F8383897931F13F2D9F1FEF9CFC2F657
-:80A5800058E86E681F11F494C49D18DFC27218F918881EA89B378F15F778F88D8EAFA1F143219F94D4B9F5184A27256F66B752F574344F87F55A581AF56C7CEFA80D1A827629F9692D9F94F668788F85F7383D9D798F87F7F8B89F9FFB89B99F81F119112E298F8BFB2C289F93E31AE387FB5A581FB6F36C6D85A8221F95F7E8681F1BF9F7
-:80A6000029A99F19EB9BFB747C8F87FEF1F91AFC94949D18DF437318B998F9D9F91B35AF95F668E81FB5FD4B498F85E115F4795BAF21F552526F66B642F474746F87F15A581AF56C7C5D96200222202288012601204101148420882221044A02288082912819B1488238482A29840118841884248C041220018C44E181041AC422484A025C
-:80A6800000EF6D0E8A01402C2421460448422810112882110422810084008120E4820826B888028288302810482842B8488192989018111884180041400848EF9E054D421F41522C1F4132481F41324E1D24AB141D24AB9419B24A19B54A3925AF5439252F547925F84A915F82D418F9254A1CF8254A87115FA2E419E2A264592E4A8F4935
-:80A70000C24A1F49C2431F4952381FC97248F1912CA7161F48F24A111D2CAF149921AF1419B54AF92448AB9443B2427924F84A944F8284F9244ADF580D6D4A1E64CD431B2146F1112C63F411282B141FC9F242841D2C2B345F81B24A39A52F447931F84A9453BA4A7137989A1FA2D548F925C283D1A5AC292E4A86F5245B8F19C24A9E2C54
-:80A780004D4B1AD63CE8C97648E3C8F2689186F44A11CCF24A974CF248B159D22AF924482F2469824E9436F84A846783A9F8245A978A4008480000120000000000000021800188000040018008000000000000000000002541F1679A30814100A0414081014628081420020088A01212C902281284A08128209242288800A043184A284147
-:80A8000008848440110812222011A88681D01F0224928443492802008988012021186888221884428C14840443047014384883A1410000411820388283011A022148582081240C1800601181AF6F021562450080071120985C882212888382880288468293141A028A068145A8492E1819249242832268441220A5184A289118102C24020F
-:80A880008C2124240212A4428D1116F891240010E841180800188400100110081884C048D08404411220410818000000E022088901221042A8141100988001200AB0A3040000A021000000000000980000002E48004008200800001008000018001002000000003F2904100414844110844404004800810000834244044140084241810092
-:80A90000000012804118040000C0184008C024102401BFC80140044028014442000000008009404814044F8204008C0481880000008410080012002489018100490220017D1C000014302400400400420084000028000010084004000000182001410000000000001004F01C282428004082010000802101922002002004001004008004A2
-:80A980004C0100000044000000200100800100DFD5020044E1410000810084001004002014084548410812413018200820428408800484904900000000000028DF180B00001088022024880182008118404428010000000044002002000000100200140084008002006FDD4D22021048148802202428818101108C014484528304450800B3
-:80AA0000180087414882430100820042411092490014804108001200285FC40E0045424422010084008182200922000000101118044100002082120400008100000000008002008FB40D0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000000002A
-:80AA800000000000FFE40F8004000000400428000000002180018800004001400848000000004480020000001002183F5F0B0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000B1
-:80AB0000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000077
-:80AB80000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F21000000000000000000000000D6
-:80AC0000000000200800210000000012000000000000F08A97800200001A2204421002420000228800808804000048003800002200880000000018200140885884F097B5100100800410010000128A04484021064240048004008E2448881004822088044882820020088A0482800520067D1D800200003248114210028001002888008079
-:80AC80000800420030A480034420280280080000000020014028986CF0EFB3400100800400000048A0488004114A0242604400002004428800008088044888820020089A0482A04100006B79001614022302000000420080021810082800B048021224302400440018A08244220000C0128200850418481880C2486F1F4412142283921472
-:80AD000089833343814381A24816426444844548441838848183496182901481499228301884814A1A022626024E12828144400884008C846288848826041286F42B7C1036121830248B122229440828200541848C021008C028100849074C820238002C04008018240200001602C04826348881C2288052482DBA0064282682011814C045
-:80AD800014804C12240441418C01C94888198102848412A4401C1898A4006C8382E2212448180481108808100818901420813CC7004142002220C1421024A41880011E480083528421199148908884228C028AC444100281208429A48296280243E481444888948481464428068CC82244F039ED400A56A8121044128401492802260421E3
-:80AE0000274818144130460080090000805818288304422200000050248A0280220880022412F0DF591001140000008C01008880020048251158842042044522081008410041880080040088008183014054840081009FCB0D1125C41822200227415883012200182D22C38101CB428054414222409824228034482485248204823A888419
-:80AE80009AC82230444A49C888424F88818244B8280488224C01CF4705001412400440028848984308A0844001A5558489410845082483088241820040040080010081104208844C184424124808D0820712484448204204842024080086C4880082200A484880240848488541B4181CA4416800A8904884814400200422C200282002F0B5
-:80AF0000F496804402122130494C6224489012422945024532284E2241414381411228341C304444C14F2432A890181444182C028400428440C881449184004E88C08881888674A501242A012242180016923812301224122381051224821288004125C4181838188031828011022B945838A0211480284208480022444002242AF49A4482
-:80AF80002438401422024381040025E41208428810122181811C3224596288E064424414410444408411141408400C28832688044908100487484100F064C96048801154424A11014480A11480112456141845C1A92414204441011412818D111221160800008280012A8148082288818880382800C02814FFC10584182C220428C01828C1
-:80B00000222117480000216229015624724364A2188100422280020042412C02801488248814C444801281240880C42800486F9A0280020051001244480020045841624021840281301A7022022881811084B222611124264178416448482648410844C2CC2202481240B452C824DDE320020022480022818036844480948800204898A442
-:80B080001828008D2400002E82202102A082460880312882220082208862484C02284880F12659401CAC43284C048341544810440428414120143414484129148231241908139242260414422884A0424A014B16414A2228A4484E24800242482282660C8C722218D8480E26E448072B124411C5FD24148D14CCA1442CC2A41E42499486B6
-:80B100008F498494344FA3E151D8C40E25742418D4C2714C443244156C848EAA81C0222B221F63A1A887888534488564888B224BEC894858449C342C4074A8441858882EC9123F7646B24422E16241B226E4429451B03496282F2191511B414961452AF542914B143F71C48549E415E14AE6A4D418E2B218EC13FA7655CCF21C118F63922F
-:80B18000182F4155443E14004B463B257E385B41EAB361668C26E886E21A2418ED8CA22A4B2A8CB868B98492448B28CAF285AEA01127826B214E644AA235128344BA2214B4D2682840624C45FA22286282CE12A24F15A8233374486415A4282B436A521463E28CE881E314F41454282F21A1C248C44F819498491C8904C8CA88ACC4884BED
-:80B20000644D6426B822C2124FC2F427350069016382F42411007024824421488444A7486C0244824A22E84402850485044A12148818181431241149D881041D4849D88124F281482211448E482882A0488D2490187048F45CC5E061F4162E23E142E64472457511058F45F356342B15FAE325F154164B156B263F19F51F15EF87F5373121
-:80B28000BF91F12151DF98D175F42E44DF32F71B519DC19F91F31551CB531E7A8F21B358F53C355E533F13F314165F51F741295FD1F368281D191F94F921A94E889C7248F94D8C4E894FC2AAC44F42FA64AC4FC3014FC5E788F82C8C6FD5051E526F239622444A7675F15145CFC4F45818EB352F65F571337E325E165AB5765357BF53F3E2
-:80B300005A586B3BFFD5F57644DF97F655576FC2F6ACEA7D4D8F81F759791F15B53CF7197D1E3C8F85FD38397E537F53F715374D26AF87FF7D759F16B658FC68D89F16FEEDCD8F1EFEE8A99F94F8C9C8CF46AEEC4F42FAECECEEE88FA9FB767CCABC38FBF4BFE045F616746F41F124246E645F54F5595D4F45F568646FE6F652542BFE2F33
-:80B380002CFF46566B547F76FEDAD8F774FFB7F577F7BF9CF967F5DF9CF94577FFF6F46FEFBFB5F56B499F97F72561DF97F5446FEFCFFED8484FC6F655766F63F737376F4BFBC868CD6C9F97E78AF7C8F88F8AFEC9ED8F88BEC1FEC5C48F9CFCACECEAFCC4C4EECCCFCBAD8AEFCEEE8BFBECDC1F374EF272646F43D322E342E246F67514AA
-:80B400009FD5F54C4C8FE7F57E7E2F25F573B33F3DFF56566F25F5E7A7EFEDFD7F77FFB7F7F6F6FFDDFDE4F4DF9EFF41733FB6F66EEE7FF5F56E6A9F97F77571DF97F7787DFEFCCFCDFD647C1F27F627372F23F3B2B2BF9CFE7D758F86F6F8EC9F9EFF69E18FCEBEE8BEC1FE45C5DFCCFC6CE4EAFE64C4CFCEFCECECCFCBFBEEECFEF8CFC5
-:80B48000CEDF9C0318B0220100492121022440022041440800124C0200441828000021C011C011E012012E112002260114400128800289024270150B238802304228408841084888201481898432844A014A3924508212A446044C5284898248342440E24882E1813464166814848B84004318A84820088C440428142F46042D421F41F2FE
-:80B500002A121F41B26AF11164AB161D24AB161D24AB941B68AB9451AB944B4AAF54B924F442B1478A2F54F9A4484EB14FA2D458FA244A87514FA2645D4FA2F49825ACF498244DCA1F49F224421F49522C1F49B248F8916CE3F4816CEB161FC8B66AD981B64A3985AF44F9A448ABB443BA4AF92448ADB44F82A4944FA2F464DB90461D6CAF
-:80B58000EB121D44EB124CF46A1115F46E121741AF42F89144AB245B21AD868AD47AB315F44AA613F8483473B84AD321D148DB81FC18243FA27CC8D425B188C25B8D254FA27D91F824481B49E5B211968C1F8916FE8168EB121F88F42A141D4C2BB41F88D24AE188F44A34A2AD1448AF443A228F44F8221ACF7B028400000000000000000E
-:80B600000000100218001002001481000000000000000000000010027F9F09008126012004284318081241812A041E642AE4282294A858002004008280428881080045280148882C06001081048E24888122C8009F7E09A028400400528428C84288868208208891481C28044548942429E182014908CC26C8821C2AA482248220A44122A3
-:80B6800090848C2C028889A4218301A084428C42093F6C06A02484260500488126948C423244A328047268A82DC3AE481A3414444B2812260844881FC4A282A4871A42CA028281584A81225824C32422021D486218A880EC22648484126F550D0000004212228242802808223084188C0400844022840188008028810824100480048A86B9
-:80B700000820081281418884200AF091CE5024004418842200001A14220813810218114284424860228021440820140420080040028800828100C092004110048CF4FB850028299228414D419443A5424222222021447881C43489E44384222361C22C448C1408123058188309222841292281E181A685124988A14280091246A841809C0A
-:80B7800028898226F8E9DD00282244411185A11468001A048004882A3118198144A84162422242008C014260480010140290484AA11882A042811A0818A458808822A2248CF43EED4054229028128D442244202422128209178153128434642838100CE502168804C018528301228A022212122C830844188200004A099044814508826B25
-:80B8000096004197441A420C1821E014214802841230441002604418882C884948E4820C1812200881324220A1841042440241C088820000402A88E181F293EF248C0162252224012200478122482A081C0880B21C06290846A22498A041002281E011121408C6844114280811881EC8413848428840244184484E049FB2014812180000B3
-:80B88000424601808488042182200100810026A2218902440042001820818882C14822484A81028200200C82620080B461448281C11C272287441812298224A41820C848181C884482B124014AC81846E22CC222B028C548A0128321042021E24881299158AC844224ADE120882C8C884C84E94482483C1483F44167804464121200804460
-:80B9000031118168232448024C08288C04412008B01812A4284100A092442001302482886014100A1884000000818220E2C4084211281004412A148401621A88C19480882324C1C4C084800C804424840238B028C84182A0284A0218C820044225045288284222828B8482C8F058D26042284C2434282612482A42A2122480022C342C9050
-:80B9800014C602422228614632249022B08224041A321210820C8882000000180022C860881818C028224F380C208161214C0442812082280118484249422808282880041280028120228804800600280044001200802822921488A082004F380C12D021A4240080048248200411A242002818A04212902830828228408814180180440818
-:80BA000012782842CC846C448884003084302490444582FC283F30848384124458424C14429412881092864956429082442B21414A12C444244450484522682286E122A848A4C2008002822048048A22220100412618C88890C885F1E69480464104621A021524223438428608002021041084014428490A288021440118800142A0414804
-:80BA800022280024808E0C20858885140CE0DF0380010046188212231202489934822229241222944280C82242002C0226A2848116C81282328C1202D02208C20082200C902829084800622822FFBD0118C0412302480020081A028A24018971840841188004208C21A41888808884082A19084820A282B04488021818000028444C821130
-:80BB00004224F46C82407828840525125828E0244184442491223400E028012602008A512A882308230423521A814042822461248C04840048CC081A8281A1411A88010020F8993550449F4C7134E646942228A9D44134424CB8228AA419882F123C64274A8D886F49092B4A4AA2C847248E444B692F62F28242128F2CA28482C8C6BA28FB
-:80BB8000E818B2120C2AE8268CB38201438C82C8882D84892894886AAFC68D244D2880F64825E6F8F979A014165111242AF44A4C44A7844CB232B188A413A12B155B1429B848333630A64D222249825124878490244F2A88E423A464AE323AC11B3A6122215A049AA447E6481488E42CA11652182A2288B144A185CE9A4F86F8A48AA81F6E
-:80BC0000B7063AE682829332C7E4367244EA22F22512CE225AE124E224BC8D64692CD684A4384E425E725E1449E446A1622B84272243E186D842B222B882F22B8A8785893C924EC28D288881282F86888A8EFE4444C21A2689A1C192214F49E28BE84AB118644848487E2B0041100441501410240840264904448244124440044440840876
-:80BC8000888009882002819098B028088110088100001008819028BFA30B485F117135A122C5E887F3242A3F32F273736F23F24A1A2B268FACF952132F69F12222AFE7F762722F6AF342922D946AE24FAF638FCAFA681AAFE3F162E22F67FF4242AFA3FD4242AF27BE62E613EB34E52B31829AE1AEF232BAAF85B448FA2C6CCFCAFAC88A74
-:80BD0000AF22F25A5C8F84A5CC8FA2B332F324A4CF46A7FF8BAA8E848F4AAC64CF9305581E583E322E628FA4F658388FA6F26A222F27E72FF74E7E29F2F8BE9F95F111332F2AFAF8F86E622F26F752922F21AD66FAFF6272AFAAFE6AEAAFA1F162622F27F742628FA37723B37AB768E633F35273AF297788F89858EE2A2F83733A38684BE2
-:80BD8000664F4CF8C8CEAF2AFEB2B4DAFDC8C82E322B374F43FBB4B4FAA7BB4F48F8C4C42BFCEFBC084F41F615715F23F3262445F87C3CCF26527F6F67F736A2AFEDF9F2B2AFADFF56D72F6CF9E6A62F6BFB4ED62F6AFBE6862F4BF9E6A4FEF44F4CFDA8AC4F66F8785E4F64F4DADEA7AAAFABFDEA4B2F2FBFE2F4E1D91F3DE52BFD8A8885
-:80BE00008F89E92EFABAA2AB4DCEA84F4AF6A4A48744AEAA2BF44AA5DD8FA6BF12FB24B4CF46F7CCDC8BFBAF8AFEE8E48F86F755A5F01474CF43F334364F66F24C6CCFC5F36C24F7746F67F7F6D6AFEDFF92B2EF8DFF9F9F7F7FFDE686EFC9F9DCC66F6FFFE4866F49FDC6E44F6FFFC4C4EFEAFE6666CFC5F56646CFEFFFAAAAAFABFFEA04
-:80BE8000CB2BFFAAFCF1D11F3FFFB2B22B88DAE92CBC9ABBFAEE8EFAE4E4CFCCB848E4AB9FB68F8DFDD8D86EF22BFF4F45FFBCB8CFCCFDB8F88F86FEE8EE8F8EFE3DD8200222404228C2482001001A04482C828422012004810080024A2232482B1290120000482248220092A041200848289A24246844E07C0C821118502250226022C099
-:80BF00008280718148022562892480022824282100C221812D8883180288280022128880088810020028801384024A6212FD8DC0521F4152281F41B268F11164A3D441B24AF18124AB9619F64A9253B94A3924AF1439A42F14F934482F14F924481CF9244A4E814FA2E411F2244A96E1A26C59ACEC49C2DA1F49E222FC912487221FC932A3
-:80BF8000481FC9B26AF9812CAB941D6CAF24D981B64A5985AB944782AB9443BA42792498924F8284F9A44A6F270E4D121F85D22C9421CB1211EB141B21EF14B181F62A1415F44AB21B29874432AF5429DA5261832D8527832D952E5A5CC9888F55F222D216E5A26D51BCCD25ACEDC5E2127CD1FC2A5217498F24D141B2685941E9D941F27A
-:80C000002A9615B44ABB85F24A924B43AB8422AF443124A9B926949A4D529F9B0784800400000040042800000000210000000040014008480000000044000000000021F04B3F00224054423887244428284E82288929052288281E4212004822000090D883886923881821009012AA812D042008820030422840240400FFD10613642884AE
-:80C080001887348002812D468521010082100400421441828003472200C1604282A0124149D88102448A422298182242824C888282A824238228D61468884FA9074226021E424598224E28253428461497221A2884A2288200212442481A22288801229288932921B8880128C0C426A91AC6240C88C928A28288C0222A044823C28242413A
-:80C100008B81CF67011410486414120024288B841281120030244A21014011048002442D4881412863022112419012808142021820044C08208A12242482081F83022412701124824201A02100003C81044820810220028C048C9428212022948410041810821248542800008424482422284388028870DB0813542412282D5816084228DC
-:80C180004384B48214C8148062822826182C112802002A4404834A5248248913868282022858164428A22422428888826082812C3448C2498882F862AF90412522D1252196182084E241022190141C1192282883C2142A012002832412446A8A244528348E2144009022321608306222008286022CC2282E42482AC48488F068350016041D
-:80C2000028162842012084A48484004A0242400884220020C448220022A0214422223800484485342800428284804408D084880822825F9D031E28242001850140044C2202202182280426A2422112A041814964466041820000854402604744100241860422102438444A22694684648C045FB107844C22942160224823E2145222861440
-:80C2800002881008258208304226C41224A810282884217442C42830884442A2008222420043366200220042002890822FAD0E2011011002000011102204120048908880044002002180024200502220C8244120068484448410C21250288AC1883048CF9C0AC0163021603248281D6425A2282501881A0492250268228241242481497479
-:80C300004A24289512424664824054241022133484412026D828124814240A2C22CD2612898294882F260A2A8142214142480200804202608280840823C44838484222200241822428208408A02863246822284244802404817042A441C0488938848148BFE70A10044114188014A24200001800220020044618480200004321041222003C
-:80C38000422015A42443622C2282A1009064210010129428A90211244914210140B4141284C12142442554484C44DC420432C4260420048E444456048100816C01A42842B042024618A24929868414648880B2849442290881483F8F062A9522B062619422181826381840C21246813438258A0466022280326226A8143622042313140250
-:80C400002143942821412142200442001644C48868882083026A285822AFBB04111608E04211212422040044002002403824302821C18200122608284248800200200200282844884229440824844008005F1341222822821222210423042821004002224A12024800248C02004464106442641004418914D642644248440088212143D8CF
-:80C48000A492244502431494444372A50380C11200402224A186121022E121240212A341081082088002184A9112122088A1149024208801244192822908000020684A808202EE8B400400814428004440111105480010440290240018430422848400488400200232801222614452848C1C82C8824028628421F07BAB2428211818802281
-:80C5000022021249C824471418802401224200002B2C430483026082004129022302210081002823041006282182002E44822848BF280756082A04490616221108284480562A8002812225241222C414808C21043022A631484284A0428A829222180012C02465C828244248301882A9082B4824AFAF44D1213282272323F539391A02495A
-:80C580005688E84B122F22624127118B144098324AD622269268248825FA2888325A29B52867C3A74168478C27616E1424D024246A44814614F662268A2FB85CC1448D4469A82269A2814F2AFA28844B4C66B664F494EC242B168B21C0134E442E112A311229B31C8112C1411F446521AFC69132C41883D44462428CB2287664A424604299
-:80C600007014961A2827486C86F3144226E442E242E22424F35264226E4E8223E3261652842F2CA8626B88A24D48216F8CB4229A6C2CF28299E051B42491344B2241445E626E124B4766A481147354242D442CE6426426A7C2478227214226744492E849B442D584D64225C4224F8221044E4828A9423A8289D222B7248186A2D146928278
-:80C680008ECEA72484878C8F64C482AF6AC14828848A18F8851A400444004140020000404822015048005048100800100622100400000041100440088444C0245048504840F41992F076764FE2F222363F41F17D781F17F555554F44F44E1CCFC5A4AA1F32F2434155B7167144F45E548F67F7622C8F67B372F76464CFC6F6686AAFC8F8D0
-:80C70000647C3AD68C54444B478562414F4AFE282E215E266F4242F286848F84F47464EF87E226F626622BF62B37AAFAB89AEF68F8CC88A724AFE4F442C22F45B548B4CCACC48F44EE8FFED2CC147E726E7A2F62F33377BF97F771715F55F15446EFC4F5D4D4AEA63F32F222655D554B74C7E4EF44F478748FE3F37A7A2B776F46F664641D
-:80C78000FED2AFA8FCAEFC3AF24C584D443E42297111A1C88FBAFE3A2A2B676A56444F48FCC8CA4F67F67A686E622B662BF72F4FEB2AFAF836EFE8F8CCEA2F88F8CACA2F26FEF2F22BC62D822B8881EEF88FE24CF223313AB734D315F12D3DCFC6E725B742F746545E64BEB41F12F241637F71F11F17AF47F36A6EEFE7F76E2CC7C44F449E
-:80C80000B426B264F62434CFC8F86CE43AF63C6C47414F477414E651F2C4E4CFC6F2545C7E266F6256222F28F86A484F47F76C4C4F66F466426F67FF72362BBBAFA9FB828AA3F4EEAEEDAE6F65FD1E5CCFE2F6ECECEFC6FE6CE44FEEFF5BAC345F53B338B534F345319FD3F37C7C5AE727F74674DEF4BA7B21F145615F54F56D558FE7F1C8
-:80C880001A1CCFC1F3747CCB664F449624CF86F6ACBCCF88FC1CCC3AF27C7C4D443E666F61F11221CAFEEDE84FC7A6672A06CAFAC88A6F67F77A5C4F66F666666F67FFF2F22F2BF9D6FA8FACECA6F48E8CED8A6F67FF9CDA6FE2FE62ACEFCEBEACFAA4EE5FFC0F14A012C01120A241221E4824408144044C225148484A024604890228805C
-:80C9000082011842209412200200802482642282248C04864882C422802288022E8DE0188452221122483C0140448242032C0124482C2221A4428100232211042250824480322244254264221A248202704282024308222160242084042AF4E2C2D024F41124C5F2112483F41124A7241D24AB141D24AB941B21AB9451AF24B924F44A913B
-:80C9800043F24A914782AD914F82D418F9244A8F14F8244A56F1264A871D2FA264592D4A9E242D4A1F49C2421F4952281FC932481F49324A1F48B24AF1812CAB9419B24A5985AB944F82B44A39A42BB4478A29F9244889F9244ACF63032D5A1B618D421B21C3E481724ED241B24AD141B24EF11124ABB459D232F93448AF147824F84291AD
-:80CA000026D852B926D412E9A2E554F1248856F52688D6312696F1224B1E256D421F89C2421FC9C6421F4132481F4932461B284B141B29A7441B21AF449B25A9A9422F4429F94A34A2AD142B424CF922521F62018480040000004004280000000000008800004001008004000000400400000000501214DFE703301100808242028F1842B8
-:80CA800012081210082848221088E42224422441088C925440843824488829A82130188428100488C850822221288AE42204628441DF490A30A438188421181641C8424822421542842204322460461061442823642284004412000022502160444C012821834248084181240089044D8122BFE20F1021A241812922C31125F881224334EE
-:80CB000022264412C42842A0422C4222041E2149A4285822818416142581182C8488A8428071449834502441A6E882144888124282E82462A442D432EF1D0AE04182010000C0484028341100208201702428C442284502A4202204448002302212348400800280082141812242002288413FFF042210028002280000140040022400002AAD
-:80CB80008408280000A0214904800250140000002004000044000022BF5D0425011C33248430212324028AA24200158884A142485C84A4242210084848003024888130255092801412044538441B4129182158144842C22C822C0440F4EE84241942024484004A0280081150184212282C044828284A3288A02448006042A2450845211214
-:80CC00000A4914021018C4112142882004884C1282049024EFC20C003681022213122202282A04000023041744200400000000802104224001111004414242881110054248800C00F0964C4042012200404201A872128004481482421082440128482724480022401191880082404102008A32444002828A842448C18200426F4503842039
-:80CC8000044E8C2A114281210125022E11009012142E142B42231471441284810112842810C621100842144A4204281800C1224C0841000025024944F26E22B021044C511282002F81324842000010024200800880521240042144000040020022CC82813444482288004002304100004FD6041121302283A41221AB212984A12826021416
-:80CD00004821422384C83429249C41472441284E12644A11C8242844228048021C287424C12E2210A4288C22C88680682442824221C04424EF3E032A149114114100118D1148241A8421010013418184021081120348100224001100002200124A8124840400418800800880F42E7C2006240020461152181021042246014813041480043A
-:80CD800000402214140200650100005114460400004044044D22462258424604F01C8700281A84222232120020A2240048A024200248400322420000444140140880820480840217488248508682008882414A08430ADF380D20014820014289841202C042D02142218212014230612D2111111111411444444840414582027024C14100AD
-:80CE0000141110010021A042200261AFD60200281128118022026800110020142214022180942822004280C4410041811041020042424846140841000088004182CC05A68321012118131141E882C441221180010048C0218004002501460180220200212822108404202804000000E622428222061F9E0900003022005022400121004253
-:80CE800028100210A2242C014240124822541243440200444414004140420488000000C88821F0525A800414221180021100484224142211008522840440810224C042004052418400004042841401C08885240886240810C44488F0D29D008052213400482411003592411400400200003042280021104244013544041444400480948187
-:80CF000082448601865424221005821482FFC10B842248214033412213861441042800009061241062112B14118819041014C14100848004112022421412C42480124102902210022142E7612026082E2226D32252114AF46162BF24344114172427243D11248072417242F84141421B441D221D43AD62105121254272420240534241D0F5
-:80CF80004304615054444E81824E218D841D888A0829B882A2C645014358148E44CB21C042183E3225912119A1131D238549E91286D612C441281922248212118204622922F62161242146188616F44444154C42A5222214442E442142824F143C82844758456148242E862D222F469282682E27882B6490213A1231412136B14226022AE3
-:80D000001232611081E412D411E624A4422E432602F012416215011CE414D444544155E4444613561581C0214554115F14A2664D4259148144124814544420E828F8C4466E848A0C3FD50711002140030024400124001100241100100311100321100425014100501610062501218421504200000000EFFC48C1222F81F211211C22B83312
-:80D08000B31241F14848A712211F261232432B556AB661A6666AF22A292B664A24E426F621226E422F16E4244453A8642E262B224652212425A4225F52522125054D22276417442BCCAEA227A8DD81314F2838822AB842E448A82A2AA2664E424FE94BF121233F95E521F122631D211F21B251511197849FB6F245641F24F2632417241F93
-:80D1000015E716E616A2666AF2484A1F1216027E712F12E62AFE43418835D18C5446346F42F24444F55C216F44A4225F5216516537642F62F246465D843F64F8E2A2AFAAF28D8D3F48F28486272829BAC2FEC4C64BAA6F42F264C41E12AFBB4ED131B612F611213D213D813F13F312111D218F86762B59421F36D212F643413F11C5611F22
-:80D1800016A6666AF22A293F1212024E731F32F261C32F16F441433CD4A844E276B6626624555B342D442AF2252555515117266F2472467447E57CFCA2A2AF88D29BD831B88668482AE824F4E6E42BEA2F42A6664E522FAF016E62BF13E621F163231D213F21B373F761618F86F26B2B2F44F641227B643F34F433511CE616A6646AF24A50
-:80D200004A3F1202E036F722632EE23F1464283D43CD4E65F644466F46E66454E755D24684F2652555534757464F46F244447D841B84EAEA88F28F855F7AF8868486F622A22F2EFEE6E62BEA4F4EBEE4AE981F91012200002082641240011448008084024A020028200442201424041004004150244800200882248264C022824A2228244B
-:80D28000B8E90A20411151321110018425010027142214007042810440114211016142230241501200281411230245023410185152005022C024C024248EAFD022F4112487221F41726AF21124A7341D24AF24D141B66A9961AF3419F54A9253F24A9353F242935F82D412F925481CF9254A8F14F8274A1E215FA264193FA264596D4A9EFF
-:80D3000024ACF491246D431F4952381F49324E1F49724EF18124AF14F18164AF149961AF145985AB9443F24A9443FA4294478229F92448984FA2F45FE8D0A2F41164AF226441A73615F44A131D242CD1C1F62A961D448F34BB14F24A8353F2489253C2925B4229F927482B945FA2A19479E811FA274A96F1234A96D596E419D2A2F4912C9D
-:80D380006D419E6CED411F49724EE149724EA128ED111B68AF52D141F44AB159F24A9143F24A94A22D144F8294926F8294922E5A2F49068482480000000016042800000000001880080000000080040000000080020000004041F1DBFF80110221146044100120020024000061C04800240080AA2400100111112250211C04418180080069
-:80D40000000040048A04BFC24541248912480228935384942A911110611429428194434A12214424142316850114411A02226922216221111914044D112358142304D0E141110A641A4226C9341645B4E44D41A218222D4811214CD218431899241A0290212722114231624522146425118E421524011CA84219022C322C121962111B42BD
-:80D48000484583D41411541441822285165182402643F614824B129661414B1E901400002004450118111021040042501230480022002042840110014002144001294838420013010000006044F0531F004001000065830220044280012501004008004011064100001341421482024400140010021014084008417F780A4140024578222F
-:80D5000042114248812182110210084722814200115022004114242042D424140144502424444014022542185221000024850400975200502150842912018133022846020084244184005081101202641424800224141C414212C42241441042110250210040082100415FAD084100001052225120011880041260322004000000114140AE
-:80D580000441460440144402004400101A12021004508484004F89095430220014211642C41243082116044C0845228811160200180041308280C2118120C14200804401801804142011024904243014E0250410020043014041144421021124180000234461214814004004446018811100140000444C111105502C0000C0224480F19CE0
-:80D6000078001440110900000000000011421008004212000021902200200250145024104202102404000012288460C650613428107915025052490111211211822941C4814A116284408224840144442180B2A20111201201145014444C318125014449440210042AC12443015DFC4008100100120029081004410021400414001100004D
-:80D68000826100001A4402402404250200105128120042001008BFCC43024044046400005021000000001440040065024046031612044011944441404441464158220041100421854404008E941024024002103912220041400121006024001014012400005021004448000044100400445084214008100881FF5602400C31240000000061
-:80D7000010030094250A4001110000404443040010043017212110022110111A02211042440424EF3D0500001508844100414410410214118002408201400181008414441100100148401802210020014004100210F6B25B148241004004451204001041084420410A000000501424848001000041D0240100000024450821304C2C0400E9
-:80D7800081CFD302004425122412120200215042002140411144114101142400400224185081004800405241104144140200008416121406AF3B4452840043420884262801C02212248042080011002A4441020044002100000084508414008110222141180429011018A8417F9F03341100004440042502002400144001144001400100C6
-:80D80000C40010010000004411150400411004614144008141DF1B088480144104244018044490220080120E002180018822818902811412C4948004248440084055418042020024004223012FCD4A5244C34816034161E1492102298251123022210025324221001411252452982244A50254850140545481455248854C42542C00495126
-:80D88000A445481214421456CC84C3F1BC125032004D24950E854A210124345024B541126C123D19944041E6124544430250C4C542F1141241211541118414F412196155524734113121448F41512A25546287A4E1648041E475450117424134412D26C02EA54454425062112410115148995215111511110115111246528384212B111575
-:80D900000441204462445012147194244125134214044D14468A81542CACB4E905001004244022014002344124411005590459045110051018040014000040425814501440424804644006240040E43C4551343541F2232545F42E2C85F4242CAFC15164212AB2125145A5A82265F42C2F6F8151B86754475445F16461544556172A525508
-:80D980002E226558A8236141550540D44444FC5E5C1A51253175518A1553888FE1518AA50445F45A588FC4B412F14C4C1E188FE5F4C81134343F9444F6236775F52C2EA5F42C26EFC1516425B422B2325357AD2A4F4212F22C2FFFA151EE33744614B57457414F7818F424A495F12826C55AB8124741C51CA14445D444E4C4F41C1E2F619B
-:80DA000051B6255626B55C13AFA252EEAF8153E86121EF81F14C4E6F41F14E4CCFC1E1E575B20545D65714F42525D5FD2624C5F63E34AFC1516425E622F212321552DF2B22218FF2F21A1FA5DB1254524E452E3145C18635A522D5FD282AE55CB8236141550D481054C4EFE555AAF55E237557CAB59B2244C558EE255264AFA5F54E4CEFFC
-:80DA800081F14A488F81F1445C4FF64D5264FD45441F5652FD6F22524ECF63F31E1C4516B222B2125313E7E22B2265F4282FBFF1513A7D45541F54E41253157C58536F4A52918FE252CE8532126F4151D51148457444F4444CCFE151EAF5576375578BB599224F41F13C18C51E5646EF81F14C46EFC1F148488F81F1445CFF690E1400103D
-:80DB0000464842080000400244848100004004000081004901004100000000842001840081400444F07B7F204814145122100418440025124401007441250154400154614042041042440141004425524125524100214121451812141214528450B44F310E2F22F41124C5F2112487241F41724AF21124AF16D141F24A9219F24A9351AF3B
-:80DB8000343925AF1439252F147925D812FB25481CF9254A1CF8254A16F1244A96F1274A96D5A4E449C24A1F49D236F4912485F3912487341F49724EF18124EF14D141F24A9319B24A19F54A9743F24A9643F24296478229F92448984FA2F4213EB022F4114CEF322471687311746C7211F46E1311AF666941AF349B252F3459858F243B48
-:80DC0000154EA355C8B177822D915D1A1CFB25CA1E815D488B297D4A9E244D4B9E214D4A1FC9D2B6A469C5A32945E388F24C131FC8F24E131D248F74C9244EB18CF24A9743F2489643F242962E482F447926B842F9241AFF27068480040000000000000000000000880000000084800400000000800200000000B0510E2420411458342CD6
-:80DC800082010000112184001C01422004282C140400004100490121444144400500000044004004444A42F4BD4724200811512110092741400112000021180012814444D068012C012C83D1481201C022150285638140C88A00841E826424864C02A4858468117082460242105158257122420125144421522110089011C042A0411249E8
-:80DD000072C40285020013921281911842231214566984548487284160822441248C480224A4821A22F188F9400218444004160812002001001022010084004449012C011844430241401201800100002049124404508444414241EF440A414002810020041811001811002D114100000000100441100210010050240080080025444802DD
-:80DD8000000000EF8A0B2942C2213440C1212220824248C14311306480D82823021A020022E04112082447823200401444021E494410021002A4410000214242E0954B02702142032002428011489141250144901249810200002890248100612800114444001E4825042188002410480200214200EF4D09430221401811810228281100C5
-:80DE0000181168308187220032000080110444262A0100002450140000240085460400008004CFF501400A0024100210840A0080110828001212001200000000882422232221C444242241100441280018414002006F7606440041508220D8410110410400400200C26041000000211042114904140064504200103422111004480024005F
-:80DE80004AF131B2241100228100A22200000040080000002224458212240422004211000021806241000000241002481288008FAE01312480125882242854001B2800008C41022220240122246C210248201202141C08238282C144424332240024400500188024810848BFDE0F4100440021A01200000000840020084100004424000011
-:80DF000042414003245026901244000010542248440000F03BF80080020040011120120400002002180000000000844008002001210000104402241002004220F4672D002260211280A22100841341082001228100102801100818800118811818004084011604102201004341180443210100CD2100400211110000000014280000220048
-:80DF8000280020022200000000124144002140040000000000009ECA00008C022820018C02C40000840000000000000000000040080000844004840040582210022341F2C2A10028C0110000800228404108000000000080020014280000001004002100000080020000F0BC66200222201221020013120100008002200144380080022850
-:80E000004001004400100244002110120224100244291432622AF43F3B00003082100128180085C118002668818062810012842001812210C8188921212101180021001800800181001218183212F07934A028860122222814200226011400222880022820818202002880020084008042020024140024004450242400424641210284C07E
-:80E080004210410826081484C480120114260800100218128841000014180080044048440800C4C02210528484413044122912F2C3470013081E221F1A81021621621226A822118185018B228C9328282A820112280043C22800001E188118000018604140028421855222C1A5488211A4443AE41623F22DEE142AA2282E2229912226D175
-:80E1000011E2828192181C629114108142382822C01890184322020022282A41F81828811E1860418052244502A424B94124410200302425E22101181E4123E47E0E200293021528820219121959C8190132140022200138841883818221821281012001B018C114251C16041002442901164656CA4425F412164280E4C40A00100A8501AF
-:80E1800081C011C0118001188041884108160884400884400800000081502C9018D0280189018D1280012C01240000DE18001F125288AF93F318A88D21848CA3119F83F118188D111AE111F11818189F91B138B13831281AF1181881C5048D188B11C74270285888F038388F81A111184F4151882A6281C4A5981C8F81F1191B8F81D12847
-:80E20000F11A188F81B112D1AAF11A1C8FC313C2161AA1731AA3225F9E03F041492CE231F518898D2115E883D288C32187D29F92E34343D198A2329F93712818B828F2181AA78181EF43D288F288888B11CDA48D288F82528815F138388F81B118A111CF4555888F8276145AA485981C1A513385DC28F13232248D282D12AFE1F13A3CF0C7
-:80E2800012165AB132A7377AD7DF0B281D61F032318B311D292A92381A7129D8C8F21829194351881AD299732868823AD1881242F824148782881E1847428F81A1133AF318198F83F318181E181AF11454F028281AF11814EB1147811815534A169A325022A7E1AD1C8FC2F212141E162F41B522A7712AE7B4042AF229612CF27A3BAF13DA
-:80E30000F12129118B238F82F3313197929F93D28DE3117128A9239F92F138388CA23328A548FA2434288D881E184F4AA2338F83A3118F91F138288B111E181AF1145485A8264F61F11E16EB11478118BFB1116AA12D32AFA1712A7A12D6E2F12A2E2F41F112162F45A5737AA3763F620300226012000020420840010028000080020028AF
-:80E380000000188001004901000000000000200120042F4D062240021001289021100115089028002200000000200220410800000021440021001012140A2514148284039F35043CF4112485F21124A3F41124A7141F41F24A111F41F24A911B21AF143915AB9443F34A9143F34A914783AD914F82D418F9244A8D814FA27418F1244A87E1
-:80E40000192E4A8759ACE449C24A1F49C2421F4952281FC9724CF2912CA7241FC8F24A121D2CAB941D28AF245985AB944782AF2439242F24792498924F8284F9244A6F930ABCE541C6411D2C2B141FC17242E1C17242F1112CAF54E841F24AA15B21AB845783AB8443F34A8143D31AB826D41AE922D558F824D28F11F8245287592E5287AD
-:80E48000592E539E25ACF4912C4D4A1B692E5217C947241FC9F242121FC962241E2C2F74F8112C4EA25F81F242824783AF2438342F247A2498926F8294924D58CF3C0A862888040000004004280000000021800188000040014008480000000000280000000014146F4A4301120030211823011200008005180000002682022810082200BB
-:80E5000040448202000080128202460442004C42840230442F9803448A028400E082082302A410098C02D048A22120524822004684518436941818421644828142448A418221210228160881400A89182881215418E0764301CA03002621B18203224130228501688021824202206122A24200001902101864260000128022322428228766
-:80E58000442014123824442C2244B114F4E6A8100440080084241240080016085048122052482200442A51484F823118184249012901434298121022011062810040088281121810084F3809200128200100848004842001220000004284000000002822448002000084221A04862804008304008074450D41001880021281000018440099
-:80E60000002242222624322442800228008100002280042084020000800684008002F07F1E1004002001104808000012200222004C82324400002800810022440000002884220082800440082002F0188C0016081A06222001004244169824000020840218288C04220000008C022082260480040052228442224028040080F4819C0000EA
-:80E68000280090141818A01400414100002004000018200400001820A212008C0248400880080020088100F0936D8012041842100200001889012004100480240400288081014008282001480040081100000088000012F04BFE8001810030182820C428008004000040480400120000000000002232480020C428000088200200002F8AFF
-:80E700000E2800384022912412128322241198444442004130484C8404001A024A01008120011220A2214810089964820000828882400800DF930C18448120048112800412200100000000002001001200002220A22142302820040020080080020018F026380000000000120000200212004604004420010000000000002004000000008E
-:80E7800000420000F05E366041004014C81800800342890581004122C06820028C0246142802322200000028001880018183048200986088624242F0DDF70084800484180020014C24813228002032440038001249040000400800480020011240E8820488001242842800F0B893D0C8B148A4444241100820712454444B222E6822001813
-:80E800004140C268A0114B11830B4088021B1222508885B848A444422820040041A0222A2202200888462224A411CF9C0200000018280000000000000040440428000042000018180040080000000000000000DFBC04818C24840440080044414C22820210880550229012129882A844222214111484818C24840400004014C424222800ED
-:80E88000A04100250229F1E783402881840144000040048902000062002180818208400840014008481200182200400428420000228210026F1C09A044002001005044B028028420440400001A01410000000085084A0400000000E0820220C4480000001AF1BD650020810118000000004248000000000000000000000000000000008485
-:80E90000842044084800007F1A0AB0484424240200004504CB2242224008120024241A01128628080010115188128B44200400000041CB2220020020244842A2118F17098485A8414A0400004044D44492282A22010000105242181E142A88082228404141485888484A2402000040C4248CA222180042001092125F48021200008001005F
-:80E9800010080000840000412082024442000000800118000000400820043088000000EF7C0B2001000000000040880400000010048012048004000012001212000000488044080000008FFD0EA0111218A01120020040088085041A04005044A02222284128000000181280021800000010A854004A048A08001F1902004C01100400006D
-:80EA0000102874482804850C680041201204224C04000020218101204128020010688442D0888428810600F086E420012081021E1800008150880081800100004544C4284130282AA2440000001A0120010010481888044285084200002B197026B212A2122B111229012C5122881E1317118B98967948F888414E48421D4911489518F8A6
-:80EA8000444887444F42B444E24222C224805244412A7226B212A2122B111AB882092C5922881E1317118B9896F948888B484E48428C04488518E884F479B1F0262245A21232122118182592821CB11191819E8883D118246484941D4148848588F44844C14B246226448482425444282F2242A212321A38828A81512229C8111B1119E856
-:80EB00008938188B48C2464888844458884877F6000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000093
-:80EB8000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000B7
-:80EC00000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000036
-:80EC800000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000B6
-:80ED0000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000035
-:80ED80000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000B5
-:80EE000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000034
-:80EE8000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40FB4
-:80EF00000000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FF26
-:80EF8000E40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000000000000000000000000000B2
-:80F0000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000000000032
-:80F08000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000000B2
-:80F100000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000031
-:80F1800000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000B1
-:80F20000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000000030
-:80F280000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000B0
-:80F3000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000002F
-:80F38000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000AF
-:80F400000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000002E
-:80F4800000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000AE
-:80F50000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000002D
-:80F580000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000AD
-:80F6000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000002C
-:80F68000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00AC
-:80F700000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04F29
-:80F78000FE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000EA
-:80F80000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000002A
-:80F880000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000000000000000000000AA
-:80F9000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000029
-:80F98000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000A9
-:80FA00000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000028
-:80FA800000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000A8
-:80FB0000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE20A424004508843E4820B12421018002E0418402120060441828400418628304832484420840082E4848122200800260CE
-:80FB800081122828962804AF1C0990188483A441C9B41446C4644C06288F4251844694644C22C2142A2562818B1416046218181698182E4889018C2402898461848C84E482848182062A6882862898282862224AB918081E8889F9DD6400328100418C810148222283110400482004814841442A240180A121421088022284000081A0435C
-:80FC000000408808901820420860882FF80600407814084849041212184312282604281E242083412881042240048C2402208404128400481800A082848810082A84222492188C84F1B6D620C44880044828224210040010342400280000000016480818421008848084344884200428008022820212181280084F2408000048844484430F
-:80FC8000C2240000442830148001200120011200104828048004100828622800200200002088882801EF2E010000000000000000000000000000000000000000000000000000000000F04FFE8004002012880260812A0841814902008081142102221822608412818024E244018480048180219298224800800158008498849F1A4902166A
-:80FD000004800441C0184180915120144202460200000060444004299418840044002023820200102848282204C028124820F41DE28014042084428492184416A8824E1144814302002021140100124B429048128964818C24C244448180840328182886883248828120051222188C84C9486F340F211200008100001200460224602400BB
-:80FD8000002220020041100200180000302800800100200220440800F0FE7310220110480400800142000022812280042A044820022200000000001A022004421288000000A01484003F39051828202284A11283243148400842248180044088722804898212082371544818A2162820840280410222302800215281810088005800775A1E
-:80FE000030121A0200180090481008000028814028D2840283820220614285020020840200000081800112000082208105F0CACC00002883148433481280014248508220042280042A04488126028B41003A84020000121E228022842244828814480800201408F09182208104220048221800A021401842440249810120214488C21400B5
-:80FE800012901280118414010028A0252A81822202189800804104C018FB14004884009018204248012812001800105242481A0420440281008094282158C42820010080140400202424010080F39262000000181002808101000018000000410000100800000000112002008C018281A082800280684470FF0D008100C05A20011C210158
-:80FF000012101244022C210148484481484301818C01001A12245149283011004812688C03C0181AA8A4422218443044819F370618002820012822840018100818121004410042804202002412481002000022282A8102802208008001200822DE662001808101000000005280014200004002206421A041002824008001008086018400DB
-:80FF800020A42100620012229F2407A021168842280100000000000000228001400884108202000040028428000018182800208208882280F4A41A00000000502800210080040048848400848484250884800424101202100881003018814034680020040000FF6E0A12481800100800000000002901210048184800214022321228004820
+:80010000122F21F112122552222552222552222552220000001AA111255222255222255222255222255222255222255222255222255222255222000000002F21F112122F21F1121200002552222552221AA1111AA1112552222F21F1121200001AA1112F21F112121AA111002F21F112122F21F112121AA111002552222552220000000087
+:800180000025522200001AA1111AA111255222002552220000255222000000005F55F555558F81F11818000000000000000000000000001AA1111AA11100000000000000000000000000002552220000000025522225522200002552222552222552222552222552222552222552222552222552220025522200000000004F44F444444FC4
+:8002000044F44444000000004F44F444444F45F554541AA1114F44F4444400004F44F444444F44F444440000004F44F444446F64F446466F64F44646000000004554446F61F116162F21F11212000000CAACCC2F2DFDD2D22F21F112124F48F884846F61F116164554444AA4446F65F556566F61F116166F61F116164554446F65F55656C9
+:800280006F65F556566F65F5565600000000002F21F112122F21F112120000004F4CFCC4C46F6DFDD6D62F21F112128AA8882F21F11212004F44F444446F65F556562F21F112122F21F11212006F65F556565F59F99595AFA9F99A9A006F65F556566F65F5565600000000CAACCC2F2CFCC2C2255222000000CFCCFCCCCCCFCCFCCCCC0001
+:800300008F8CFCC8C8255222004F4CFCC4C44F4CFCC4C40000004F4CFCC4C44F4CFCC4C44F4CFCC4C400000000CFCCFCCCCCCFCCFCCCCC000000008F8CFCC8C8AFACFCCACA255222CFCCFCCCCCC55CCCC55CCCCAACCCEFECFCCECEE55EEEC55CCCC55CCCEFECFCCECEEFECFCCECEEFECFCCECE00000000CFC8F88C8CCFC8F88C8C000000A9
+:80038000008F8CFCC8C8AFACFCCACA255222CFC8F88C8CC55CCCC55CCCCAACCCEFECFCCECEE55EEEC55CCCC55CCCEFECFCCECEEFECFCCECEEFECFCCECE00000000CFC8F88C8CCFC8F88C8C000000008F8CFCC8C8AFACFCCACA255222CFC8F88C8CC55CCCC55CCCCAACCCEFECFCCECEE55EEEC55CCCC55CCCEFECFCCECEEFECFCCECEEFECBD
+:80040000FCCECE00000000CFC8F88C8CCFCBFBBCBC3AA3330000008F8CFCC8C8AFADFDDADA2F21F11212CFC8F88C8CCFC3F33C3CC55CCCCAACCCEFEDFDDEDEEFE1F11E1ECFC1F11C1CC55CCCEFE7F77E7E6F6AFAA6A600EFEDFDDEDEEFEDFDDEDEEFEDFDDEDE000000008AA8889AA9991AA111000000CFCCFCCCCCEFEEFEEEEE2F22F222A8
+:80048000228AA8883AA33300CFCCFCCCCCEFECFCCECE2552220000EFECFCCECEEFECFCCECEEFECFCCECE000000004AA4441F14F44141155111000000CFCCFCCCCCFFFFFFFFFF3F33F333334AA44415511100CFCCFCCCCCFFFFFFFFFF3F33F3333315511100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000008F84F448489F95F559591F118D
+:80050000F11111000000CFCCFCCCCCFFFEFEEFEF3F32F223238F84F448489F91F119198558884F4CFCC4C4FFFEFEEFEFBFB2F22B2B955999855888FFFEFEEFEFFFFEFEEFEFFFFEFEEFEF00000000CFC4F44C4CFFF4F44F4F3553330000008F8CFCC8C8BFBFFFFBFB3F33F33333CFC4F44C4CF55FFFC55CCCCAACCCFFFFFFFFFFFFF3F33F3C
+:800580003FF55FFFC55CCCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004554444F42F224242AA2220000008F8CFCC8C8BFBFFFFBFB3F33F333334554444F42F224244554448F8CFCC8C8FFFFFFFFFF7F73F337374554444AA44435533300455444FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000004AA4446AA6662AA222000000CFCCFCD1
+:80060000CCCCFFFFFFFFFF3F33F333334AA4442AA22200CFCCFCCCCCFFFFFFFFFF3F33F333332AA22200FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000CFC4F44C4CCFC6F66C6C2AA2220000008F8CFCC8C8BFBFFFFBFB3F33F33333CFC4F44C4CCFC2F22C2CC55CCCCAACCCFFFFFFFFFFFFF3F33F3FCFC2F22C2CC55CCCFFFFFFFFFFFF8A
+:80068000FFFFFFFFFFFFFFFFFF000000004F48F884846F68F886862552220000008F8CFCC8C8BFBFFFFBFB3F33F333334F48F88484255222008F8CFCC8C8BFBFFFFBFB3F33F333330000BFBFFFFBFBBFBFFFFBFBBFBFFFFBFB000000008AA8882F28F88282255222000000CFCCFCCCCCDFDFFFFDFD1F13F331314F48F88484255222008FD3
+:800700008CFCC8C89F9FFFF9F91F13F3313100009F9FFFF9F99F9FFFF9F99F9FFFF9F9000000004F48F884846F68F88686255222000000CFCCFCCCCCFFFFFFFFFF3F33F333334F48F884846556664554448F8CFCC8C8FFFFFFFFFF7F73F337374F4FFFF4F4BFB2F22B2B00455444455444FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000AB
+:800780004F44F444447F74F44747355333000000CFC8F88C8CDFDBFBBDBD1F13F331314F44F444447F71F117174554448F88F88888DFDAFAADAD5F52F22525455444455444DFDAFAADADDFDAFAADADDFDAFAADAD000000004F44F444445F54F44545155111000000CFCCFCCCCCCFCFFFFCFC3AA3334F44F444441F11F1111100CFCCFCCC28
+:80080000CCCFCEFEECEC2AA2220000CFCEFEECECCFCEFEECECCFCEFEECEC000000004F44F444444F47F774743AA333000000CFCCFCCCCCDFDCFCCDCD1551114F44F444441F17F771714AA444CFC8F88C8CCFCCFCCCCC4AA4444AA4444AA444CFCCFCCCCCCFCCFCCCCCCFCCFCCCCC000000004F44F444444F47F774743AA333000000CFCCEF
+:80088000FCCCCCDFDDFDDDDD1F11F111114F44F444441F17F771714AA444CFC8F88C8CCFCDFDDCDC5AA5555AA5554AA444CFCDFDDCDCCFCDFDDCDCCFCDFDDCDC0000000000000000000000000000000000007F78F88787EFE9F99E9E00008001000000000000000000000000004001000000000000000000000000DF8D0748000000000012
+:80090000000000000000000000000000000000000080020000000000F01B24000000000000000000000000000000000000000000000000000000000000FFE40F48008001000000000000000000000000004001000000000080020000000000F089A2000000000000000000000000000000000000000000000000000000000000FFE40F2813
+:8009800000001400004840012800484001280000002800480000108204140000484001002148000010F26B52000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE808401800200000010020000100240010021001400000066
+:800A000000280000808802000088280000F04EFE000048180000001200000000000000200100001400000014000000148002000000002F49054818148002800414182810820416012810A21140012810A2414001002B11484001280048408188022148008828108204F05C6580840180020000001002000010024001002100140000000086
+:800A8000280000808802000088280000F04EFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000800180010000000000000000000080020000AD89000020020000002400000010020000100200000000002200002008000020080000F047E3000000000000000000000036
+:800B000000000012000000000080020000000000000000008F37030000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000000000020020000EF1C040000280000004050
+:800B80000200000000000000001200000000000000000000000000003DC8000000000000000000002400000000000000000000000000000000000000F0AEFF00000000000000000000000000002100000000000000008008000020080000B0B306000000000024001002000000000000000000000000000000008200000000002F6F0F007C
+:800C0000000000000000004002220000000018000000000000000088000000000000223FE10B0000000000000000002128000000001200000000000000000080080000000028EF690C000000000010022400000000000000000000000000000020080000000000002F8908000000000000002008000000000000000000000000002200004C
+:800C8000000000008828F06B6B000000000000000000000000000000000000000000000000000000000000FFE40F8001000000000000000000000000000000000000000000000000000000005F1E0D22000000120020010082000000002280022880050000008008002400000000000000F0488900180000200100000000000000000000B3
+:800D0000800100000000000000000000000000F0C12820020000000020010082000000002880022820040000008008002400000000000000F09A9400004001200100120000000000000000420020044200002400004880040000000000F0B5A500000080022001000000180000000000000000000000000000000000000000F0349C0000C3
+:800D80000020020000000000000000000000000042000000008004000000000000F0B21A00001001800112200100001200000000004800800400000021000020040000000000D02B072084022002000080028001000000A02882000000000000008004000000000000002170E5440142000000000028002008008210220582000000000044
+:800E000048000000000060160000009022001F5E0148002880018002000040020000000020020000002004002008224800000000000000B0634F210428222002000000002008008800488A02000000008004008088044200001C0400000028006F120D0000200120020000201102000000002800000000000000800200000000000000F0C8
+:800E8000A8290000000000001200000012000000202404000000000020080000200200000000003FD80322001C622238182824002246828202A8128084020028808281A138200200224002A2204822280828200800824282824200FBCD000000000000800228000000210020048800000000000000000000000000008882F0A27720045837
+:800F00000048800448800428000048122002801802000021001002002C08800882004282248002200C80023714000042000020018004480020010000828004800800000070820282862228480222000000000040F16EC9800200008001000080012218200221200222A0428800120000000000002002000000480000F0335D00800612206C
+:800F8000312222192292228044820426822224028088062A0812323800280024280020420222808802218800004A8824A4489F280A0000200400004220040000000088480000000000000000240000884848801802000000CF880D4A21828404188004480080022800482001001842882110024011020048000000002400000028482C02C5
+:801000002486718E031820A14616A252A0362842281A04801222083248008028888404188A282303212440020029A8A82D8223A88820888208231802428A84041C84F899D8A04400002011428204424A222426041022249222006A2824A6481229410280022240120282208888022A9A428A140200008A0AA2F0E5F3A02228281422521862
+:80108000489031B022C2424818222AA2134AA5122C0320CA6222282B16823A020000002886A28A40020029026200882282684A48A2C4B08274C707122212803242282B14B04201290129012922110228120028242824C082C01228242824288082884282062888800888C082228822200222F04912A0471AA133483ED27E525AE527F3321D
+:80110000721D437AE327F6124246A2115E522F23B122A33380A2222A42922230322D922F23EB23FB22222F23712242F2222223622225F222222322A244EEE2AE2229A8AAAEA22B4C4EC22B88AEA223888AAAA2AAA8666AA6E6AF760B5A84043A672E3E125E522F26F262221F33E723F732222F2562245E722F25F512122B331AA111242A77
+:80118000E222E221D122B88239122D922F23ABB32A72217322E212A22226B262E422F2A2622322A266EAEE2A9A82AAEA22B262EC24BCA2A8222A8A8AAAAAEEC2CAACCC2BAA8EA2A0762AA62215F111312B117E3229A4223F15E126B24285B25245B262A6223E322B333AA13321A0122E2229EA23C212AABB32AB113C022B2280C2422F22EB
+:801200001282022AA2888E822B2A882E2229E62C9482242B2282EAA4CACABEC2ACCCEADC990F4AA7221AF171311D212B543AE721B522F263213AE722B342B452A5466E6229E223B352A1223A13022E322B623AEA23E228A5BB2BBB3E322F3103312E222D222944F2E2A22D222D8221AAEA28B8A2A22AAEA229E62C3482AEA22182A2AAA8FE
+:80128000EC2BCCEEE2AAF88C4F000000802121220112A0418004122800000020840118000000001002888008220048000020280442F0EB9D0000008001002200004800800400A08400220028000000000000210000000000480060182F8401581B212AB111E226B111726292212F2491212F2499212F2419F14292A22F3429F24291222D11
+:80130000912AC4912E421CF8224216F1224296F1224296F122429AF222421B292F22B4917222B29162261B2923B681326219B24298212B84112B84222BA4222BA42229AA42A82E428FBF022A954118484E121361241361241B214E831B216E821B214E82124E23224E91122DA12B422DB1581C9BC21E212BC29E212B4286F1225196B122C3
+:8013800034912B421B492F22349166329123B2812416A18419A2A419E224082BA4B0420A299A42282D42CF3A0820880400000000800200000010021800000040010080040000000080020000001002EF85010080220600480014241280A24212220080024A0240018200220000000020040000000010220800147FD60F5282008248000046
+:8014000082A0482C28088282822440A148C2230824200800802104880042000000228220040000624001372120240C22C80080048211AAD422A82822682048424221E821A84A8224200810218281044A080000480020A282800400002C0600AF190B1800208204000000120088922800A024480010018800000000200400000000000021AC
+:801480008200001BBF00008001240068001840022C0800000010032128000000002100200222008200000000200AF06D52002001482112283229082304828004004280210248001082692480042428808208000000008880188208002022F84B49002001122112212A31C2304218002904212004200224404222A2812C044840824282023A
+:80150000002880020080082C088800A08222F055420000200480022200200880080020012014010000000000200800000088000000000080F87B6E0042002084046014002842110000242012C282200824004200001820040080020000220000008800F0B84AA04162000000880028222021828681040021008200822810410200420000B3
+:8015800000000020022200804802007FF90D140000008028220182001002009200800200000028882200002100000000000042800400F082FD80240200480060121228001826220440A2810082280020880280822822010000000000002002002008001FFA0E1C0100004200480088481480222104200224004002200410020000210028DD
+:801600000000000080048A0400D0930600000000904120080000200800000012001002802282018004921800800800004200200880F2AC79800100800442200842203822000048001100001220080000822502148214888800800880020000A08280F895B90000002002000040810100002004000000220000181200212002000000000024
+:80168000200C0088F07AAE0000002004480080840300481E4248232828282848022211880000800800880000208282882208828200200888F7D600000000488008882224000020080000802101008220080082001212800820080000000000F05DE4800120044800424800482128001214800221280011290848100228002480342200003C
+:80170000000028000020880828F026120080048A24E124012140022128105222B0422152212008110024105212002082922124002222282008192242010028002082081FD40E20082200000042001818000000000000210010020000000000828282000000880020C42128A7BA20044800C012002824002944021522C1828622281822A874
+:801780001890828200804881681124806C22282062180022008A02200882820021F0465D0082A024A0452C16122248126222236123503223212862328A88080012182428251102A0118082E824A4281EB18082882802828200488248828260182AF258FE8024082008124A24E4142C841CE2388111023042272C214213286818242CD1228B
+:801800001AC18220088A18A1B8200829081A028282281B8A228002200288888AE6128AF886B1A0110020044A01482820A844482902A0141ED3C88A08A08288501292A0482488A0222A62213552222D2122222AB98108A088281021088A88A888002A0882ED6F20048081046022800888800824482008000000002008822182200882000092
+:80188000002200000080220800005B48A045003AA7911A8115A2446AEA28FCC242272C2F21B9121952312F28F953132F22FA8381888AA8221541F213132F21D922B8C2FC818186D222B822FAB1B13E323D832BA28AB4A2A8113AF32181AAA222221F128AD81188088A88A8A214A066AAAA88CFA70CA044A0735A89A114A0446AEE28FCC296
+:80190000424E822F21B9321B52312B993F15F1E2A23F3ABA82A8883A53112CF913132B9186B242F48181373827282DA11F1BEB2BFBA3632A8A0C1AA1331F12A2AA2AA2221F1AA2281D8188A088A02240B262A6AA21FF4F0A4A84042A021AE12445B242A46E2CFC42C22F24F692122F2941F243432F2DFDD3D32F2EFE83812B888AA83215B3
+:80198000C1823F31E123F322222B661F1AC281A02A1F1BE32BDB33B4A222A8889AA13B171A82A0221F1AA8A81F18A8888AA8882AAAA214B062AE8A8AF8F6F5A04448A0264A84E126F722222B44EAE628F442C24E422F29612B2552332B993F3DBDE2FEA3A12B888AA8321D81123D132B3B2E222F2EFE21A11C081B2A1F12EB23F323232FB4
+:801A00002AA284A038BAF3A1A18A08AAF2A1A18AF881818AA8888AA8222A0A822B64AEA22A683D80010000008004482412000020080000002901002120022A0121302280018882228200000020088002FFA10100000000000000210082181002888008000000000000008008008002820020080000F033B480B411021B21421B2123962176
+:801A80002B1419F2429119B24219F14291222F1429FA4291222F14B921C4912E421CE82264111F2264192E4296C1429AC2421B292CB49142B29162141B2927141B282394212B8419B24218B14228B242A84A2B842A94822A84E822F4334280B4110619A41419D22211B142012F349921B8F042B313D22219811191B23392921D52981F22D5
+:801B00002CB1212CF92342921CE419D222A4293CA46926A34946A129271682271619B24288F242A1282F1428324222292292822312E222F49FAA00820000000000A028000000002180010000000000000000000000280000000014F0EAFC20042200800122882818008AA44880828484022800800200003012200219025A2808000082112B
+:801B800000004242008200BF2F4D018200280088160196021200200512208504204A01111822181A08001C882188138101202824020050210080044081FCFD8C1448C228800220A82188122002C82025A241421E4200128A2208802182911124002AA814A68183AC180082006012003480044224881482CBB6000000800114E02228810161
+:801C0000A048000028482800112811008008184001001C010080242208000020040080F44B1620021800800100000000288200008800800212000020018001000080020040014200002044F2C51A100100100220028021098004201A0142C081114200281988A682420052002248C04240028800C2884800280080029F5109220040021888
+:801C8000000020088004822A1801422008800200422800002081020040222208202808002200204272FE0D148001000022001218002002000088141448003213282228041258002004460200008014212404000042F0976400181210818104482200118818802404242024D22282A4282200001922022882422022042C8446210420088204
+:801D00002120044A220286026F1A0A202402002002002AA4811081082180622200122018818204181324011120041822000020082800888200882C04008B4E00148003222200800880041A02A021428220818802808402118004A021001400822008400121C0224888220000F0153E001C212103384828208228A68188181A6224A02122C2
+:801D8000284232A22982024A820213A1422A011112002A81022C28460188142C0824288A240C2AA44200B0BF0E00224001222004001448148280044829080042C0212004004280A28200114220048848000088822180220880083FBC0342A02100000080041280011901189031221820080028000080082002804802104102822008860244
+:801E0000860282A048B09F072880045221602340816111400112100126214C01E02611412206602A8004562264241124241200248219021522082120088002009F61041800002002802282820400220000230442144A7211021222808201001880821481062A04AA04488004000000004F660F144228004842A01424C04200800414000061
+:801E8000234A012501184621243542881C45110238128014010011482200484880040048F0B44800004240020022A0280082008830A180082220036230220030822028042002000000000022000000211F9F0C2800000000000024000080041C0280010000002004102188141282490131001121100220040000AF770D42141001111814F1
+:801F0000A0180088183081115220B182021E418819084A42E11822282A880419944124111113611830821308908310018824C0228A242488021F6C02000028002200880000882A080014882AE811084001002028A82800284880021B28208202000000000040017F210C00480028800448220068400286B2212808502280014A3A81B042FE
+:801F800049A1141421821C8988A4A4142880C6814880026814800480C44200B054032848284248001E22A0223A8EA8811CA481C23AE21CB912AA823F17A28A16E11B480111222E61482A862CB4E3E82CA4982CB311B261612139D22188A2282378210290433042244082086016F0CBE720032280912168111258E03502005013008E118A63
+:8020000058132A06C217114E21C82CB1C2C882CA432251114E411B4C8621089810E222984186A1841521480310A242482C8448034F5B0E1B44111811262234122A84C48320828411E211881841B141024AA29833D421BA62E222F5532113A8328E11218A8D84190323C2623F12661CBE611B481D411C8296238E62A04888EA24283C42CA02
+:80208000028A04FFD7061A021A021A3242A014A014A014A014824A31214A118181849141C0424022C18212241A42A221241AC28212341223062716B062082F16082B84908222292892822A84A842883F1A0B1F16F631212AF311717EE217122B371F13A676429AABEF4A65242B111F37F66371173A3F1BEB25B5627AC1F191916AFEE282B8
+:802100006E322B553F26FA73626E723F15F532222F2CEC29BF33F7726125F291923BF93F3446A2712DC34E42EE224AFE43621F3C7CC1A2E42F26F6C2C286B262FE6262EAACCC6AA662DFB347A1771F17A4321F13E32FF6715123F431616AA79DFAAFABEAEF25B152F731833F1EEF27B5F3CF222BB7171C1F3DFDF2F22B8E2F2EEA27F53193
+:80218000921B672F2AFB311316A3FF2F38EA27E727B613F5A2A21F29B951F7D3F33F38EE28BEC2FCC3232D838EA23F1E7EC3D222A8AA2BEE2B2A2F24EC2ABAE2AC26CEC22F26F67D93F031311F12A4231D116AF543433E323F36D322F433733F39F983933D611F39FD13111F32B162F6F1533F1BEB2494C22F1BA9CE2AABCA2F22EE27F778
+:8022000071731B2A2F2BFAA1B33CA1CC2F22E82EAD5C2AF683821F39BB31B362E423E316E816B222EE22F281A1CA9AC34E42EABEE2BE42FC42428AAEEC23A444AAFA8D7C142AD211A4231D312AF113132E223F36D322F4A3E33F38F8C3D33F18FE81C337124ED23F1A7A21B3E3EE21D312A619AE831F16FFA3C22AEE1636A3172ABAFAA10D
+:80228000B12BB2CEC21B9B1BDE2F1CFDA3A2BAFBA1A13F36E63BFBA1212F3EEA3ECAE31F12F243631F24D2210C214E424AAC662D224AA6886E628EC2FFE20E00002220022220220800000011288210811221044A020000420014200222A082601200400180044800004F8D0A181200181222008A02000011000088803221302142802202C5
+:80230000484A021B282A048002000000000080024A22022200BFC40E1CB411021B2146B21136421B612B141B612B941B612B941B412B941B432F14A9432F14A9432F14A9434E912E424E812F2264112F2265192F2265192D529AD222B591D222B591D222B191F242121B692F24B1817642B281F642821B682F24B881F44282AAF44282A258
+:802380002F24289A82AA84E82AD44C02141AC6411A42A36125A361341AC6831AC6A31A46B33144B23144A2434E813B432B841F22E514F122C2143F220D3F22052D531CD222B581D222B5C1D22285F2621319F462138A7462B3817462A2482F34B2817642A24A2724A225221AB2A214E22AF4E911202888040020010010820200000010021A
+:802400001880080000000080040000000080020000005012F0EC2700220022180012008008246A082240028028024A029032800100804201802828118108008842100228280000424F3E0F132308122C8C82A24280820218001120082242008602202202B69121881280A4848888190323022140815221008002002622846614286E6720C9
+:80248000A12C80C442182228122222200250128002242C048222A01C2822221E2119338100484A3281A04182238A1123480111224082022228C0424AC2414AB2CF0F260120218A024800009800AA04822002008602224022810820018008881902000020022988040000222100B0F607220012202102620000002024088001200811104165
+:80250000012820842C110200224002248A4221C881000000800280F4BF23108123023042120011881A8221E818611111121846A1249041468104420016818429084822B021018823A482422B4A42C80000212848284280240C3F240E282822122081012214802201136811421A088007488E41421448111412429848881222100124A082C6
+:80258000426223E214081100212800488084047F3A061412009042222004881220280111203141001100000014222088C442001A028A82444222280C828800004828800288485F54084862100118E02104380022C88083081100203262488A1401C8001100481200008662281002002188001442002C0C48F09E7D202224A11248221984B9
+:8026000002218223A48380450129211A022830122088255421403141AA042860242001008004112A880A484EA22C88026227224A0828DF590418002041024021240111100300202429641520088002800100200413CA210020C22188881304480014200800002F350A2082B11122C5324852212B1682204102148223E1181222A1247822AF
+:8026800082421B4162190816018A044A2205A228C082C0222A04881C0280840628822488C848281FD90F2A050000142814C012481CA8484E1132008084081448420020140248280000253111002C081482148A94828A04822D8248A0424A0200BF1B0AA024221904112002204A018681A81219080011AA2484094820944122A02100298480
+:8027000023024800424813040042800442282228284002DFDF0B11140024301118241411881F2384B321140122421B1400302128400100002915B38102002B1810126218221446A12400008888000040F268DF00002880011200A012003800181242181811234481882182021180A241203111001AA81400000000200421880042004F8B16
+:802780000546218104424011A114221E4188A0A1C081422C48E1310A88C081882302802121355260181814A0282823142101804221049082824002008028F2ADE100200222A012A0148800000088C06200002228208106001480B48204122008340082800480840C88200A0028F056448081110119A4122012810180011C094E2200225809
+:80280000208404202201004021228122921111001480222202482800224880420221F0CDA980248201004229042252299481004A92121CA28124A846810AB0410211C81388E828E62C01203882250228001C149141000000200814682A048AF46B5B0082002220022088082004C2802102000088008021850420094A08121A82A2411C21BD
+:802880008804A82828008004000014222F450318C051221400482681012A8584820426D22108803411230158114A18033908C021804211A1C2B0C2218204884821002880CE2226020090A282CFC2051C2429C2212C0256A1431E119AF2F18158171114B631412B961AB212C622521A0178C22EA113A3221B4A1A28CC127842AA24731102D2
+:802900002BA21E821D4117111B4482681C8A26044A082C2684EA12422244A16A6FA54F81611A1A021CE41193212B242E422A09EAA864484AAEE12CD431B82191C133B281BE6124BE219841F01141423B182CA568B093C5B18682E12AB211A1545A22042E8117142B4222484622A8C22A4832A28004AEA188BFB6061385D711A14213062A15
+:80298000C111134481F512212CA99919611A1B282B1A4AF87211D846C1921D812C22A41423A4111C163171272F3C3A521DF1AE211B918E422B2A2C91528E811B64221324240248C2C22BAA002AA24210F2996C1001111011121112312213382213183281252141A148148214921486C221241424460180082142888008230200000000282D
+:802A000000400128009F6E096E611531211B224E413F32F223223F23F75261373137213D622F1FFD53133F21FB92C11F1CFC23222F3B5F323F1ABB21E31EEE34D433FC43522F35E115F5B3F13B199ED32F25E52DFE22623F29F9A2A1BE822F23F3B2721F17F7436315A18CCAEC22B4E2AE664A04CAAA84EAAC2A2800A0A84EC2AF9C41B1B5
+:802A800071E71145D111B261F422232F16F671311B752D932F19D911B2C1F752132F3D3FF31F24F432333F3DF363223B8C2F16F7E1713BD719EC3CFC63231B773BFF2F39F8D3D1DED32F25FF22623F3BFEA3222F275E222F29F7C3413F34F44141CAACAA242BEC6AA666A08C6AACCEEAAE221CE222B242A4AACEE24F22091B662E613E1147
+:802B00002AF241427E612F12A2731F25E71EF6F251EAFAD1F2DED12D911F21F153522F3EBE82FD91823B992F19A9DD1B7E1BEE6EE35AB573F7B1F2BE71FEF22F37F5B2B22F28BC93E91AE229FFB2B22F2BFA73E31F145613C24AEC22B6C2AE664E622F28B8C2AC646AA66EAA02B0A2AAA8CAFCD28BE016A73313B321E236A4663F26B473DF
+:802B8000E335A7E63F2FBDF3EF34AD553BDF7E532F27F5F3F22F35FFE2E32B771BFE6EF36E914EC23F26EE17F77271FEF21F2FFFF2E1DEC22F2DF7A2E23F1FFEF1F23F39F782A22F2DF3B3736E6139B1C1A8EE1D622BEA6AE624F6C2C22BCC6AAEEEEABEA2AA226AB6E2AEAACEE24F460218200222A0121200A0418044224802281A84022E
+:802C00004A0228001880218429B422012A012A012981C41148222082044800808402280082FB2D20280100126A2181218881041288481880012001A08448422A2188082A0824800820082818C08111000042A2248200282220FA8683C0411B21141B2146B111724291212F16B181F2629119F2429113F8429113F2429113F242911B422D08
+:802C8000911B421CF9A1421CF821421E211F2264191F2264192CA4292CB491D232B49142B291E224B89132421B282394212B8419B24218B14228B24228B2422892822A84E822F48FC5E012A4411CA421341A764283D232A1682F3621F862938AF242111391A21B4A2F24B9A18439B329F8A152183F22AC813D429A722322D932E41982AC53
+:802D0000212D831B692D831B616E83132994212D821B282B8419F242A21B2823042BA4222B84222B8423B84222D2EF0D000000000000800200000000800128000040010080040000000080020000005012B0550F82001601800122489A220100292C24C2122A25242422044219A2241C21822204C81681048822481901202428A4428220DC
+:802D800028280482002028D25D0E1CA21A0028003252A846218288218C0218828008002200008029822301800B1B81A0842928A4822B24280040C3222A08482211882601E73F0052802102122852C2AA852282C1626A8824A3182B168E424820212228226611283A8826C1111C81A4A4B03188D4212988248CAA24222A0880B8420AC82816
+:802E000020E81812B29506268102110020218242218108880000008082044814000080820C20810880046022488004C083220000110022DFCD0100001820022A810282884002208323882808000000002B42808C022002220000480000000028002220F8DC4D2002002021012CC4812832206814282A3482422385021A8208208282A2C284
+:802E8000280080048A011421111A482108A20082884800822086A82460DE80020020A112E024B28182A283205821284AB222A824D8808801002228A024262206C248A01840834221112128040088200420084A222202CFE50E0000120080010088800420C112800A2288000028820000280028008008008A020082008002808824F8B2DF90
+:802F00000000009042181118112260184828428024A4812158102208A042621180042800200200288828822C020088C042684A081082F2E69E14400118001A02008E221724B2008028250260262025242C81220822100120A9248A21010030421400282C0428482088021082F8CBF280020028220000520000002081020020020011800133
+:802F8000A02800000088484214420080881402000000425F254F2142011220A2410018CA53228286812402425222824218200612B081A424130100202182A121808804424E21822C0248482A28C442AAA42800A0848FE303000022302212144091611800A0841228481822422C04482082022820A482288880080080D6120800205822005D
+:8030000000480020F26AF510211281128162162004000000CA0288188021B84241033032804182A82840A281282022B1128811A284238236222221008228002904A2F0678B000018004051222240A1181A486121A08100C222281928449111202134411242284228A02180028002000000002148004248228F9F0A180000188082010024D7
+:80308000248008284A02802482024200100229088226A2821622022002A08200214280040028220022484FAB0D2212110000008021018039212A8121110100A0828888481988A21813242124290418924229E41522480214488800484800202202F0EA5B100100142C21C2311B121F210A4E21193111193272290800000024303125410113
+:803100001998112C88818801A0242002A800820000222121210040C221DFFC0800284022820548800C80820448A0580020888A080022A012402102804861282218002008288224142008C02280A248F0B866002212800200243021008A220112828081218905111480071C872422044A1181810C1A0824002002110021004248484220F4A1
+:8031800033FC0012A012001818281822004022082800200880220282280060231A0840022C0480020000280000008002002FE50E1A027880020080882121828208108102801202188018C1120042144220848284010048142A040048002A840248002502AF5D0C19A1321B222213B232B14245E325B12231631A81B19221FEB211EA98113F
+:803200004A0E4A8181B8A3C3822081A882E036B893A2422B952ABCF1E128818289A4B32829E818968211211BA8484842CEA22022A464C0814AF2BD142001188002121B121B628AA2A11F1432B11D821E12881AA22A821E1120A178F0E1212AF8211323E431E11582C5118AA2682C91622023B68213321122A0622EE24AA242002129A422FA
+:8032800029E42206200AAF520F2E211216A13114282E211A021B811800D011E82492521AA81320A8AE224A083714F0317119B22235914AEC2529228DA8233B189E623622E422A5682C08204202312210220423A2664E622B42DFF609111001112100400322400114821440A141141A042C042C042440022C08241124003042112314314220
+:8033000011231431420040020000F0DE29141CE111B131B231F311322F117211A1551F31E32CAD911F14C41237283DB33F3496121BCC1BB24AD431A5CEEAACC63F28FE63733F36B623F243432F24F5C3D32B4C2F2FF7B2723F3FFEC3C38EB23F32F322622BCC2F24E426E73CFA22E13F3AEE2CFC81831D412D421D232BCC4E622B662F2607
+:80338000F662422B228A2A6426EF8A0B1B111F15E513F311711E332F31F213217AE721E22FFDD1F16AE622F382822F2DAD6E1F19B971BDA1F841411D532BFFAAFBB2923F2AFE42C31F36D633F353532F26E72CFDE3F22F2FF77372FEF22F2CF4F3F32BAA2F237632F211133F17F7E2A12F38FC21633F1CFEE2E22B423D434E422F28B8420E
+:80340000A6666E622F26B662B2C2082F26F61363B011A1513E313A43E111F351632F27F753731F3DAFB31F15C5223F28F893932F24BE52EF1EAEFE1F15A4143F1B7431B1A1FBC1A33F32FE31332B664E423F33F2F1F32F1FEE2FF7E272FEF22BC8AEE237322F23D3227131F171312BEA3F2AAAAE1F18BAE2EE282A54332BCC8EA22B662FC4
+:8034800022B662A6622BCCCAEC26F66FDDE011E111B711B3717321F232311F35F773733F35F7F3F31F1DFF71711F11F381811F3DFDE163FAEF1FADDF5AF451113F13F751531BBA3F3E9A423E333B773F37B532F3D1D32F1FFBF2F22BF5DEF23F3CFCB1F32BAA2F2793122F25E527A3EA1BAA3F36E22CEE2AFA81A317142F24F482822F28A6
+:80350000FA62622F24B462A662CAEC28A8667F990722006022A012122212204123493211281389120113883281280019A124184A820118C091E012012E92E0220126020024000000A02420043B8800408142014280A1489848202804888A2404188298823021140048C621228CA524888A02A08220228888A282908200A0A4484E22482049
+:803580008862324FDB09481B21181B214AB111324219F2421219B242B981B24219B14229FA4291222F1429FA42912AE414E922E414E82264152E4296E1226C192CA4292CBC91C2421B29241B29421B692F14B881764291612F1498612F1498412F14A8422B84222B842229A842882E42AE428094615819A2141B212394212F2481A29413FA
+:80360000B84223B8422BFA4291A22F1421DB1238321CF822121CE922E811682216E1226C193CE411C2C21B292CB49146B29186A8212D818A5212282D81282DA1282D81222B84224A2892822B42882F22F4CC7D00800400000012002800000000218001000000140000480000000000280000000021F0F25380051822382228602100008254
+:80368000200A2A88822389090048000028A0248229082082810A4222142848488084E82244022842884220F44A6B202282020021242621A2213292172540025632D12C384113260233883223121122392812A2214A21124223022A89012B24468208C08200E022844822A4821C24F28677A0244A2283222182428293221220EA240822214D
+:803700002CA8A12E1256B28107233183C23902112833129162928A0542B012248A032CB241228424246228800246A282242C8C8884F62A5F8001002210021420A22118130182A0434621C88180022002180082226022602260122820A8140028290880848854222280042A04F06E7FA012408142018082816212138901422A84210182202E
+:80378000A88422420018001200200482002908181002001480080042200440F244E4100100A012A21248885224A0581728182A28A6182C84A4120022304222628A0192281288822091A240322188243081294422C442288042820480025FE30C001110A1128832A08246A181211AEC3488242881880C3A882882042118688021218201826B
+:8038000082182308241182245021481129248C022880042042F229553031002800228005381118001A82A3241290422004288024028A0182004A080026820838100282000021002C044200F0FDC2004200220000104121028003200100202822084200820042184A081301A01800C0428A02224200482C842A280821F0775420A242000050
+:8038800018141902284AA2122005282088A4822C045220182122080019054A02424001468124948122484248002221800423823842F08598002082020023024A810100C08220A424281B412044214401005218000012001228800242002008000020040042AFAA0B202282820212271220242302A0418A91224278681B2100C8681480248E
+:8039000028840918424AA1182081014E9162424AE822840C8A84042229C4422A88B822882804CF5A0EA200000060121214198401200280084A88241401402102180042808204141122004001224828000020840400485F7D0F22001B4200420000A0181188211200184252A012482842580000124288420000803442424800246024208476
+:8039800002800800AFDE0211C041804201002818A84890121C4212D122811202304100182014222202802413220120214142013042002100422442108208FFE5058A922128480040010013019890818219081800188008A01222001182820012000080082004211001004290420023B4F54E01904140211A012A8401248042021122194829
+:803A0000611100002B846A081A840223042081012321840412420020042501308240220448005F630700800280118101220000A081182222241A2683020042202186240488C2000000200400008004680020886412BFEB0240010000402122611812111908001180052304001222000082182C041800004200420020C42220046200488019
+:803A8000F47D9C100140416214B042013415022D4121213223121232422342014868111001421301122800211C041C8454122008354202282124821002290829083F5603128200483800A0144810A1853888A0812A01118004008088210111488A04000080018282000040814C02820088009F2F4321082A04001CA4412A041722782C8899
+:803B000002181922829C41283022A0128018228202189012200829049042000000481C8206202822880421F09A4814601A1C2232412E21A0418064163E81C22B488A3A82282B2886B212A66218124A244881A4142A2123A212482BD4889A0921802494114AA4C480D422447243F14121C248A24EC22B48484021F436EE103181111420710E
+:803B80005111A242322B113B582F21C8121B111B231F31F821121B151552317AA4722842A8721CA825682CA644882858221E12185021585E4286024A04424042D222A4840042238468282227CCE01203221B64223384F441111B3419D321C2221D511F1158221CB9A2E111F822A16E112B1514421B122E6242182B634829611115A11D92DA
+:803C0000C6E22414321142421221888601350223042B427082A2642B22248AB8C284CC421F380500008229082148210048204822088200001424142414244641022CA8249021100111108118412208000082002400005B8AA0394A22F22121221F34F643432F25B512D731F172323F2EF613D129F913B11D112EB12F13BB52BD43B462F44C
+:803C800061613215D223D422F513431F17F7336127223F11A1122B6D2B76BEF22F29DB3392121D411513F243432F34D812E428FC83C1484A14D313A244C2CEC26AA8CC2BCCCA0C4AF657C3A011482A82E626F4D2723F14F45151781F23F353323F3EFE93F135F19333373A2F1BB132B1F237423F26B462F731611B771B421DC33D432AB649
+:803D000032D322F213333B122BA13F25B992E921FB43613581E424F443112F2571C27382F181C32F28086AB643D413A6442B4CCEC26ABEC2FCC2C22BCC4AAC645F91063AA362221F1252313B6617141F11E525F573317E322F2CEF2DBF52F9129226C1822BB22F25FD42412B463F16A6131C81F421E33AB272E7277671E125F52211DE72E9
+:803D80005AF5818337322F23D51301242127244E821B444AF441434AA4642512A3C4CAEC2EAC82CAA4C42BC8A064EFBF4FA13B1B22281F14A2C47E723F24F413114E523B371F25F3D3F23F1DBD52F8B3933F3BF9B2912F13BBF2BF62F172112B761F17E716E726F6424217113F13E325F771732B312E119EB2BEB23F1D7C31F333532B111C
+:803E00004217342B143F34E128B881F841414E424E424AB643F463412F24BCC2EC2AAEA2CAB442BCC20C4AB6D8062260124083848144022682044021890228114A2281024220848112A224002094829012408144834481448344824483048A0482428242F0B3E4400100804211A11200821C2108402148A1410042000000181220840934CC
+:803E800011000020080010022100E0240200C041BF6206481B21B09122B411324219B24291612B9419B242B981B44229FA4291A22F1429D212B921C4911F2AC4811F2264111F2264191F2264192CA42D2CBC91C2421B29241B29421B2923B481B24298212B8419B24218B14228BA4228F242822229A842882E421F8106581B61481B21424F
+:803F00001B21272419A2141AB642B881F242321B494E22A24E13B24623C2913B4229B98185B123ACA13F22243D21922D4116D12238812CB59144B29126B481A2141B282B841B284219B2421AB14228BA4228A2842229B82284F82242BF240D208804000000008002000000100218002800204201000000004002008828000000480070BC7F
+:803F8000448164224414108872280116A82118924888A0184628810100004082028818E218288021A3181111822004808239412C21C11220A4421880012A78BD47923182222C8222A681482AC1C28222429C88014222A0248B12588B52CAB22824A461B044A212812088E4218C04802888A11A194882032A04140046C4182034288246213A
+:80400000F4D6B720229C263C84E282A4288138ACA9A1226A984118A0C183042A612348581A88A2483A1482840813084AA21C1A24266818142039C12432221AA24217211280848484C122002E82BDD4D0128502280018190648208161888800221848811289A242830420C2242A31182A24091022810188922200008A4401205142168882CF
+:8040800014282984F49A726012110080021261004001211608262824011228201402180028001882219092C0120028218A040012421200210000F0CB6614A02180D22243A81222184A81AA1482484388D22121B18222A214824242284E2200681A024A8221242105228682C452244828288AB2210415820823024A8894284200FBCE80221C
+:80410000022410AA2122184222908142298801182B84121AA48128482002202681222221248901B81022012A142288084022848102298CC42842009FEC4E416111808283021261128852004483721162822822004220964221182002488001294402821E422C0421222A24E2120416210821000000F067E500260881222848A02125E28277
+:80418000B1842452B41200482F415268002CA18122890830848002A08228384A01412002450880A22C6084418624A62445281328B23204CF9F0522460800841228200443220280820481425840268384880418280019048C0142112884182E4220864404388852002002401442F26EE3200423921120818241880320014884002002428451
+:80420000004C22C242A041188100204412041840042180010010024112A02C8908425E4180062362912289A3143289C1728C832C51A1182248422F4261C4124849A1284AD24822227492A4411A122824AA124812101488A324412A04382A883188562408B0248181342C182CD4960780020020022602800241428400812223048100200481
+:80428000200200002A0165818201454218820448804412A4244B428122892AA824F0C29730118480022902002022411432489012220018490828C014681828285800000028486021282002004902002820044200426E88142A04812041820200208441022921241188011088140220C2184301004148100200305441491404000040480811
+:804300004A2882882171B607D0410280A3481827441818242489321822812E82242052228288182222184222122608122A8401400200A20020024242428200001A8284062E9D50A2602284100222214C32141E24D012022A01800100001848001048944A4440844484548412490880628400508444414245084B84644918322467893081CE
+:804380005800C02400282304001490444621012E12001A082002400480A2140020022302A200A08242C800426822228218801448F194FA8002582221242880011819424882212218042082210400882A3518888021822DA4123022432112248104008004004220048001F053D6144AC122454804001221002081664421182A8412628100F1
+:80440000222D42862816048148448200504244244423C144448644040000218100904800A2DFB10C001284220018A0215022304860845022002840022448000012222083A1210024240080042800C8000028848A21A112827FDE0984E0428401181228222440044C332510021A12041821486A01290949181238581C8428C2489044B014BE
+:80448000422AE882880860C68002272444408443982827E88187C23419F4A4234487C23AA12423B122A33229E2625121218B41235488BE924D22A12E12129684A9622922A2634283913C2A61814AA2271AE121044594464D1669912490248828844881106282A0445AAC471AECD34CFAFE18E011028B11C022242A31143034A0738D3A462A
+:80450000C2416B1729A416384B212E2829388829E126C464A0524B1A2558288F448191448012A222A022E04751844EC4C142C828C24A843C48844C88D184E98481B262F96ABBA01627854F82F21222703284622423A114231162417D194FE2C36246311232212981816424F0C21A4AB114C22C924F85A4624B498AB944A6164D26248F61B7
+:8045800032129EAE2BC8CE24A24E24224A62444C542466D44276288462CA8972A294188E24FF7E4D022C418821A8962004660262160816880260814008160884C01228244488448844224422B0280183028B82B028088B828018841A8418843284284328F4E55F14CE622FA3B222F234622B4667632B664E622F26F722226B723F32F62A63
+:804600004477343B744F42F6E1E36F645682C7E2AF82F288888E88AFA3F22A2A2F22B322E242F4B2A8AFCAFAB4AEEFCAF81444CE444F41D244A424C5FE1E6E85FC8CA44FCCF4C4EC85FC84A48E888CA2CCCFCCF484264742CF88F888A44E44CFC6A8DC8F46EC4CFDDCC48F1F42B252A6778D266F41E32EF4D6562F22F222322B766AE6638C
+:80468000F72363AF24D77FF45B54CF46F7F1F36F66F6221AEFE2F332122B989E98AFA2732AFA82E22B674F46F61E38AFE8F89E9C9F98AC475E45CFC37214E4A256666F6357CECF6BFBD4CC4FC656CCCFC656C4EEA88FCE2E2CF8A4A4CF88F888AC4E44CFC6F7C45CAFC6E3CCF56CFC3F8F46B252A6633AF234222B214F47E421D222F212C7
+:80470000322F26F722363736AD6A7F24F143524F4EFFF1F36F66F42A126FE2B132B382B998E986E722F228C826D242F298AACF8BFA382EA7939ABD44EEC5E724D666D666F21626EF41F294BC4F4DFE8C244F4CFE4C6C4CB288AA648F844CB2A4FC684C8D284BCC8F86FCB4D4ABC24B9B8BBABF3E0BDAE421F71A3E6F43A3774F43E323F32C
+:8047800072722B773E322F237363F35A5AFFE1F55B5CCFCCFDB1B36F66F428126FE2F13A182B988F29E1A2F222228F82EE27F76664CFA3F3BCBAAFC3F35C5DBABDF5EFC7E727F72E266F62F27E3AEF43F334BC4F4FBEECFEECEC4F4EEE42B268F2CCE84A5C444B228FCEDE88B2C4FC7CFCFEF88F87FFF4F8CFCEEE8E0F1400602240020010
+:804800002622018C4422091AC4221228200428A02418008982218401180010021848800400000084281A0420042FEB0880028C024846A22142284A810211212E482440022028042821001A4208268802C04240420444884441824282428A242418280882A04188A6F141CED026F41124A5F3112CA3F61124E3D441B26ED141B26AB911B2E4
+:804880004A5985AB944782AF143B342F147924D812F924485CF9244A1CF8244A16F5245A9E214FA264594D4A9E244D4A1F49D224F4912485F2912483F49124A3F48124AB141D24AB9419B24A19F54A9443F24A9443F2429447822D944F82E444F9244A2FF3046D481D64ED511D28EB1415B44ED141B26ED141F2489417412F147B11F84AA9
+:80490000A455F84A9443F34A9543D25AB934D458F826528F14F924C21E852D5A16F526CA56D1B6EC19F224CA17894FA2B49164221FC8E42671912C7681BC6259C12F4659C12BB41D28AF64098DB422AF446988AD342B48AD342E12FFCE0F2088042008120000000082000010020088000040014018C244000000004480025200000000FB2D
+:80498000728044060084221A140216180811122CC644830444184AA21400422E182880321288181A3812160212232211688C2844884880212CC45821826088224A312889D26702189212C9986823A449418D724528AAC1C6888884488821A842301481D01804214C819B1522908222E88001902428C0828A02284A280886044422AA0482B2
+:804A0000821442DF74021AB4C4213184899642D84D128F2314BC8C8138A81988A5A48D44562888662146C45812488A341832884430812988BA280D238521624281C2882210A448B684388424202208A6A241843678AE0C0021844028820420E281240400210041200350182428411AF221121A02122C01184002182881286928280680244A
+:804A8000E4814424A8248608822848EFA40921901220A22118842001001240886382004213081100000000001222280014284A084100828800800288A02400F02E7A800222260AB028888246A834362144A84112422385A75228722E582A8C322128B02865416A2822AB5240054921887448A2121AA6426A2834414280848F8888B4388400
+:804B0000A81448E2DE6B200223C1282218208212081E2180A114815A222202281C8BE7128402002A212184021A24312100824883A42958688848884A08A0A1828880218401C8BE76100222102292B88142124A034281800127851AA41642428182302128C04844A2A01A284024921440C1224228414A02130420242402C88B242A288484B0
+:804B8000E22903C01C80024460122828284BA4B04488A161602460448CA18411128C04248904421149A2140018844C72248146C84422136644004CD2848541282222A194411800AD719012468822A12132200112102C0241142280312A21F014221602A82E112282121A4239248094225608002238408482A3424C0390244621211824850C
+:804C00002881F8EA39C02240088424830123242488B118341848840080010042100840881228041644014420014400008291832888247818213C2C20122882F4BC9724226184388C5224841E232A2481BAA86185874549C4112242122D2421484712468244C8128326A83494224B124C31412143C12453A242C3A221224625A4828B2481E2
+:804C8000478C182E8C89A62CC14C2835981888BB46A018122280A121180068800482182E4800211E488921880181221C0281A0214D4842002A012001304420C2241811981242802181AB414C0228486F99032C2444480284812200CC24832405E0140270220268182A0442481C82041C22218184144518014220A49200C22842121144463D
+:804D000004008A832124F443732042444244021260218B1A0020A81200821114164201302114200541201412822211817242140313011962148100202106411882484220F11FA9201808004400208401904484281280519442452184018A22410130141C013014580010081248832482812582043018484849028902D04D0A20028426A8F0
+:804D8000212004812890148160312003000080130260138BC2004048C1884211382B811E81114C010070141831418282A88004184822FF1B09484018022001122A012004124324250210222422048002004A1228410400490248144342242281A428480022481848400428F05579002902008C2402282001811A0200408301183301141C26
+:804E00008855824A218181848482450C30148001221C38212800880000284468A820F4A4F7A0122002188A022D344014C8D818002A98214D413AA44822A27028A148428004541426022961421440021C0288824282111420418894240088800483F8EF470082A0121A248424A4424242842284484A0100285E212004481A22029021482001
+:804E8000B24412082800A04228481A082A89AD38C88280E241AE1A4A02888681F251AE40082A44B82828812211084004285021B01124A241248123524118C11121204584CA411A48618441C99C2120B844180112144414A0140000856148901282876FA0224B48902A6E82C92124A1168E1C1A11A813525A83E211B26182F2429423410977
+:804F00005B222A84A1131394112AE41545D122F12414CF5515C1489D812B42821AE859B8A4A2CE1AE79192314989F851812A48381488112A36281CC8C8274D60258AE22212E481E385AC332B5685B238C4481A984C860C1B4519B5147471B23884A5961AA5141344011C05C71111ACA641ABC119625C544F2282F2436819A1761F44981158
+:804F8000148A24CC61C691484E442E44CE3438CE2446A4981CA13C1FDF0F48A352881618AA22844CA2214AF248246E18428945F8249323E618C1111D236E233D646E219CC4A35F8EEE34D682A2471F4CF324247AA9244A22B2148542F4151616E11816A5519CB221B861A9C376A85118284B2D2AAC474F82BC94A8656A24F2FBD6000022EC
+:80500000482148218C94828048888884288128811881381188241001200C82200882418214004021010082204804A048002009EF11085AC528F01252A9F152122F23F36626A16F47B986A9CC8E84888EA27F5EFAC1C15F54FCA1C32F2CFCC2C18F87B7A1F8BDAF3D43EFE4B551F55A58CAF9E5E15F1FFBB85A2F26FA66A58F4BFB11442EBA
+:80508000A88FC2FA27662B881BAB1F1FF7A184EAF2E1E11F18EB12FA61454AFC48384F4AFAA4844F42DE44F2ACAD4BAAC86AF7F8A8CFE8035AA76489F23232AF81F7527229F564648D686F47FDDAD44AF4283889EC28FD47551F15F565F51F3EFE63623F34F4F8F91F3BFDADBD1D41CFF8F453538F8FA7265F14F6B5919FBBF772F26F4537
+:80510000FEF4FC1BDD6EE1CFD2FAA7A72F13A3BB1F5FFFA1B5DEB11F1EFFA1B5AEB11F5FE51CF9C8194F4EFEA4A44F4AFAE474CFCEFEE4A62BAEFAF7EAF88FF706622CF62A222F21F14A128B152B354F447248F2FC365ED45AF4182883E824F867373F15F1E5541F22FC43423F16F5CBC811DFD2F3C1C1DFE6BC51F17B681B3757475B7F13
+:805180008FB7BC72F7B6244FC2F291944F42F6AC2C7F73F392911BFB5F5FFFA5B5FEF16AF6B1B46EB11F15AFC48F85B9E4BEA4FA24A46AFAECEC4F4AB222AFB68F8EFB37A8A0772CD62AF23232AFA5F558782F25F566648FA4F7FC7E8F87AFEF8F8133885ED27F7CBF53F7E5741F36FEE3F21F16F17B791F1FF92D2D1F2EFC6FEF3F35F502
+:8052000078683AF6B5E15B7B8FB7FF72726F4BF2F5F45F45F52464CFC8F2B7B52F13B331FFF5F55F5EEB1FBFF1BFB1EB1AFBD5F1DAFDD8984F46F624244F4AABBECFDEFEE4C42BFFFEF28F8EFEEB76200221842342A8121222122284204122811201124A22A12480022819A12400184222421C011490128089A482408144A1411482441ACE
+:8052800044A44842A024824EFC200800184880041AA414281848904142A03430421242114220A412124342E122240100408222061486049A26A649A04842C0248A84228A0888A29F8B0A4D421F41522C1F41724CF21124A7241D2CAF24F18124AB941B28AB9453F84A94478BAF1439B4AF1479A4D852F9B4485CF9A44A1CF8264A16F126BE
+:805300004A871D2ECA96C5CA8F49E2A2FC91242CFC91248D821F49B248F8912CA3F68124AB141D2CAB941D28AB9455B84A3934AF447924B842F93448A9F92448984FA2F41D1BD0A4F41164CD421741C5F21164C5D281D624F181688F44F181242B3457882D344F8BF44A15B2AF5471A1D84AF1B748A5E48AD558F127C88F41F82642871131
+:805380002E8A87513CFC18254F22FC11284FA2BC11D424E881E614F8912CA3E6497242D1C1F242941FC8B24AF38528AB1447832F4479A4981A32ADA46F8B14FA24527F7401001A04000000008082010084110021008008000014200200400200000080020000200425014D7E8021A1124322818284B442A2438C82984820D4C1358E848C12
+:80540000A24146041B14190A40C23436541414229638244A62461AA2213011181CD249443894428290414AF9821C4B28128E648886242684F2C57924205812895121818C3298182031181981594810B115829185181A14082E466011112C042249C4448B41641411411CC14246F11882121942A8286AA114102872480210A521182681F459
+:8054800096A1241842383214818942B842A114CB12893979904C875485146C825B846CA5141CE5199224821321713442449121821E6C8F24A22472381661141331311F4164924143A2122211872DA0C2A04A5948A64146A1258FDA03205112C42C8122A4C12228002009122D81138321011008422130274211284974580444451111042C2A
+:8055000081D428480896A8848AA4144870B458681244802B8202DF1B0E430223022100122A010098004838A244120000149028581218814882A0212200128002304828141288820060894A014A024282CFF10846118411A221811A9248487812586085529B129018185382315400458A42D441C224222A3112800711A092D08161452E9671
+:805580001E2828838986C84820644A6A0147824CCA881A688A48AFD80519042301228118482AA125121A2481A414118012644340041014021D444321D2288284A8421AC221A021200188A961842E881B24824200A68432184E38A2838CC888C8BF84064312841292128062814800806881E081A6128B181811124A01501822CC22838221BE
+:8056000081011200202851814B43498322820118898888041A841814248281067B8D24284E184F11125248103A121A12044902A400444A4864C3182508872166641A00252812829122285D280012C5C1284602C392212248C05442422B8284844C2461814C2602EF7A0E832144E88201281B6128008BC14784E249AC4100842410B6468885
+:8056800021213888841E28381051580084181AC228221249A2481844A038288F4802122035211222E0219814897886034222003221102C34522818181181C3618460814008460D10E4410400891B826441484880880140088B144A11C8418008830446212834A400425BFAA0163847B289E1C1123263362402B6A816185D42301CCCB448EE
+:8057000008C48741445785F0628487524E1C1AC238282FA9422886D114248592884F91628143B642383C9CA3148AC6611E884218A31868848AA4242E9C5A1AB448D86C0821808102288D12844E121E4442844A68888B1400D0682113E288048400400A40D12401438202122A0122100843849218202428A4424A21C21412108403BF8203DE
+:805780002A443814808722C444583A142801481819C418128004000028A0289018A0124C8481EA4221826211605200812088014001820082F2A0188AF2347E202143880442108A022881428881418052122A21112842831228331813028184160127414021814282311184160218E0221944082084018008F06CBB0048324907006200202D
+:805800008241444408804444923440242481428412018022024C01288001802222044A01428004328883021E4810B835081480048932580060416B1400214A1842211108002F1164121B120014122C33112A01100144001B824618518180021B8284119289024280012A08F0F26BA0184E182489232401000048C05212008420A41415284D
+:8058800082421114E128E111042A0440A121660118260420224121014001B084022AA812803144832676250100001244321218420044A8221385018082021880312118222042081C0100282001809124848C2268420012800120C8229012885F3E012A84C244002C22942862803518424C220415A8421B2418E50181844C4102418420014D
+:805900008001001001288221C0811A1232141B182C08A8248122C800F05F220025840240288101004828128289810822003641110218485048100400111114002A013051114D884111111018883284899A14800244F723400894818460821022425842238142082954841891260CA1128D1485918885018150292681028418480016C12864
+:805980002023C12144A038800818200418A726F0165260238F8DD1E4F31828621E14AB41813A27E6C12524B21491821D19A0251921C64585F8114928B01CA2318B211D6C32918B214982D111822321F22125AE225F12E31872119D284AE213D911232161982B2C2AA382822A41024249F417AEA0744C323843D28885A2261A374249248689
+:805A0000B456C4C48F8E85D493F1281846E941D784F321242227C11F52D6A161141FC8B918C1288CC418421313E4125414281A3111811B13A3E231B198B88422C219CE15812AA888422F8392C8AA8B27B88AFAAF7110A142144AA5218F86C4124786E02153288F838131C243715AB45858242A5681A3F31211897321116E12837224631295
+:805A80008D112F437121A213282B9357411B221A011852817817821FC2012B855F2892811A598CB09497984B295AB4FCF83878223F840A11000040482201400224400220118804488004190448800448800418008638428423042304230423042304230400282074EF47F111137FC5F118332B618B554F67371A902238CB766AD642F18486
+:805B0000848BA8F0D9D9DFD4F4414117342FB4F431281712AB459F94F4AC3EAF93F66CE63F160745F4484223E512F638215F57F435252AF2A4B4CA7D13F2E3A27F62F64B497FF2FB26B33F3EFEC3D52F28F882A26F66BC12F5244623D4450C4F4AE28AF3346E3FA30B1E227FC3F3143F6FC1F358584F61F51A28782B754AF328742AB672D7
+:805B8000F7C496AF8D6DA4BF19F96D751F15F56D5F6F51F15B591F94F46C7DC5FD6DCFAF93F66CC72F92F359495FD5F459432B252AF639295F57F6757D2AF234749F95F5FBCABF15F325659F95F56F7F2F5EFFA1A11F1FFFD2C2ABCDCF42A8DD4F66F97A98CFC2EC28F926742E784FCAF7F9F5E027F537448F73F332348B55CF66F64A42AB
+:805C00002F86B312A1425E6E2F85D622B392FD989A3D489F9DFD55655AF675736F12F233211F17B56CF52D29DF72FA5A29CFA4F21F392AF244548FB494522AF371691F52F23165384F43E324B651B6B3FB65359FB4F56D7D2F5AFB91B1DEF3CAFD9A99C7C21E126F46E38DD9C5A4546F4EAEBF4F46FFFB47F05173FF43F3383FAFC1F35842
+:805C800078CFE5F75A5A2F86B752A7768FA5F71A682F25F7D6D6EFEDF5425ABF18F96D758F85F56573EF97F739391F93712CF96C69DF72727AF9FC3B6F97F539295FD37318BB32A7331F97F52535DF53A7324F4FEB28BAB1FA333AFFD6F2193BDD2D2F3BFB73711F31A398AFB9F1E6E49EF26F42EF87FBA4ECCAFDF6D48F8BFFACEC8F35FD
+:805D0000062A012A41A8128422202221420812701108842813912813810228001881188902A01290140080012E11121412149214121484208922212409F0A2F9202801001220110226A241002D8200484601421142601426286482460152A024304180221221840248224842284A0888484A0242222002F0EEF3C0421F4152281F41324845
+:805D80001F41324E1F41F64E121D64AB9419B24A9945AB944B42AF7439242F147924D812F924485CF9254A1CF8264A16F1254A96F1214A96D5A6E449D2A4F491242DC21F4952381F49324C1F49324A1F48B24AF18124AB9419B24A5985AF4439A4AB9443B24279A4989A4F8284FBA44A4F7C0669E4C1562E1BE1E5F21164E7241F41724C55
+:805E0000D241F24A961D248F241BF148B643F2481743F2489726D852F92648AD951F22C5847FA26D413FA26C497F8264496D4B9E216D4A1FC1D2A2E449D63CB491324C1FC9324C1FC8B244D181F248941D244ADB81F24894328F4428F2489443D24AD986D448BB26F14D7A4008480000000000282084080000000000000014000048000037
+:805E800000001200000000002501AF6B084A81E211020080A14162221692417082827298C22AC08483983945182432213618722418F1144110C4241A428179220119982255024C659218A0184244C0148B9644825664828329FE934780224868821D24263814481078188222C11CC36488C0944AB1226413E016A12485250412252221B2D6
+:805F000042223352208C02641A6681421A0230C89C9248922C254512243462828E444541F4BBD18024361828548144184A3168C9C2322E114391CA2AA8818B124A91A69F2861838C317413226A222C712C42E151A4246CE214921846219F21648A353842224915D18409E628B4148491144B2530A22C3124C719BAF42ACBA0126012842273
+:805F8000281848002C0142846484853284214828114E255048193418001828211249818208216032503412C028421D281892244824866844484E848E4810F42FE3101281012280014A8112281108248001288A840183B4248482042228A02520A4424604286501404801802224F1428111004C0A444881865848225FA50119823222A01406
+:806000002A44813328801288E53144981149E2853A44189CE61A21011DC88582A7411F41A41E8420F3821412221838181CE211E42491581E651344C148892194C5887022B86829624680023F8A4232212232A0243011C018282240C84330114322E944A21C2AC4211A44C44146A842321C25E283041A2431448063124021314156080089EE
+:80608000D4920948604883E28A242462888382F2D1D800142180210638684098181A84111822916800932149A8428B2890124226A44900226BA41222241624219249182159E712344118421C7484812812C21428C90441E0F203485E221741881812224301108434288B48401124011091468C6222848A048B142218A2142C194812A81474
+:806100001A98142D68150820811298281E284810A4842C6244A0928880F1C365002002421044222194242122124B4121604484C41062111241435A242644841442C124001AA484282220A3147284414398412884A08443C344604184248392942F5E4DC13240B2280981C0298C0684002490148341322162418C420428705108196842AC02
+:80618000811402522244404914048129324868002148404838888B24304441623F254B21B312B2227112289518224F32A125C0282944E8211434148D1416C22843524146645228E166B44C714834A56223899432A1121A36141A7A14C22C168CF558223648B488A6421848484B848B8347868E484B52AAA18447826AB875028A845414288C
+:8062000000418481480060884E12119044148C042698188002142B1290148912624860842182D08122942100C06850818542086044504284814110F4A93730142648A4210000220000124304200228D05201848314088311816141004181001120810541008008400880222404234224F18C9A80028C2244088484842284000048004E38AD
+:8062800000301840A14289041004C011114C24019024A48002244420418208430182220000F081C260481110814102180029221202181200400180240212202201281024A1144004804405008082A28200004488804804E0E6073C426222009A22E444824104001841421810190822802442E211C844428744828C54188D44E04124842407
+:80630000C8144217444AA22484A084428C220445E8845884880082222F2D0B0000142228280000005824160128222081021400000018C6641400102105543034100480080000424281186012BFE2071214112A040020030080820282188004408A840189A41A004E1482140000482601841A24080000C285C44884200282C028F01A4C007D
+:80638000284818278646984C81424A021088120840985184288051414E1842A8D018A114814410280181684414121042C4111421806128C0821A02241684CA8418FEB100864241348280420200800A821018880817824312B42121820224842460141212004784001018212422828402A0244148418210C81484F088C940022C14B121E157
+:8064000088044B140040042820012A0100842D2180011B8388C22883C214142444C4C064488524C81412444222462CC4244184414648CC8441822723F0E4C3B01473A1982323B54AC8926A429C124E228426A2823064B018A9211E58842E21C42E3D8392488B25284CF158488D12C9C414581C0180B42432349D5A1E541D412A82C42413B8
+:80648000E28224344887C4259C888D388BC4414444CFD2086D1A6062271847B21D4213D28856884B662A128402209118522521F241218314A832815F153461F072186A8291441E3CC374843C4D4D5443344C111DE441C63814274C4F22921942DAA86849883C4846BCE6AC2A4AA8984B1828F0E79810C122E052E39123C6448B115628025A
+:806500001088E1418C058D188B822E2130171E42289CA2429D418F29788161472AB89124E1E164851E14C4144216541D6E144B5144498492222CA818493214414445AC48E5B832AA182B338DC3400444A048008004000000480000104144088440884208840040011810022302AB1248A901292198128A9412842941081608EF370C57786E
+:806580004FC4024F31F718198F827E4CFC446E214A04F0888C45F48CEC24BF9CFC49519F18F94941857824DC9CF12929DFD4F4C8589D59CFE2FEDFCD8FA6F41A1C9B449A59B8674160C4284B6295F79187118EB227251F35F15119ACF3F2D2CFA1B1D8FF8C926F25F13612AF85F54C4AAF81B138FB8CA8816F76447114F4616735D216F728
+:8066000038B88F8AF24848CD2E2B11F024242AF288AC41CFCD69243F1CFD61619F1DFD696197926FC2F24C791F97F54D4D4EC89F91F524EEFFDDECE6F69A8C8FDCFCC4C44E422FC5B5445485115F117159F3D1975F34F596A6AFE5F36C2E5FF6F4A2BAAFED5F648F64F48A962B554B82CF86DCE4F49A9EEFCBFA88A887A3AFD30B5F73D1B5
+:8066800051762DF83C1F8F95F54828C7C6CFE3F15A588D288FC2F228288F88FA1414CFCDED25F19B9983F2A9A19D298D2877C2DFD2F16D7D9F94E486DC99E1A3F2EBF94FA6F59EBC4F19F99C888FA5F4164C1AC5455CF224349FD4F5D3C517752F4EFB5C68FF96F64127ABAD8ADB8EF88882E3B1CCF9E4A48FECFCD6D88F88B882F88C88A1
+:806700002AF321D814476A3F32F62F2AEFF7F35A718F84F66C6CCFE2F34A788F84F6282C8F82F28C8849F1CC9C5E123F1929F2B9B99F9272297935FC3D1D5FD6F56968629F97E52FF6FBF97E36AFCDFED8C44F49F95C5E2F41D544545D1D255F53735DF1D78557154F6FFA52746F47F741658F25FE4ED86F45FD48CCCF65F4CEDA6B77CF0C
+:80678000AAFE16D48D8CEF4AFA8CAC8F22F32448A0123022B02241286281220000122001128902893211002880820149014909419014400141F024111084240200404864884CA2480044F0C8AB001140444128040000008014088714402102118004408404204108009021811180248444210800000000228814BF9C0D2CF4112485F211F8
+:806800002487241F41B24AD141F24E121D24AF249921AB9451AB9443F24A9143F2429147822D914F82F448914FA2D418F8254A87157FA27498E1A274D8C54A8F4DC24A1F4DC2421F4952281F49B248F89164A3F69124AB141F41B24AB911B24AB915B44AB934B44A39342B94478329F92448984FA2F41175C0421FC156281FC156281D24CF
+:80688000EF24D141D22ED1C1F26A961D2C8B345788AF247BA5989A43FA429147822D917F82D442E9A2C1855FA26D117FA2E819D2826C5925EB59C28A1F4952A29E64C5B38196881F49B268F891246A7811EC44F8116CA81F89D248383483B434A48436C8846F8A84F926589FDC09848248000042210018800200100800001800280000149F
+:806900000000480000000044000000000021D0FB0D44808112521828841682844702251808801E44183E649C8164128354423100408241C412646011231351824D4260244D3860888715424E1CC442C9019225486442D0A90E186F28021444B6A481122042C828121882008091241C439144284453A212228536545B2149614258412282E1
+:8069800010694CB2701824220819014C01182890844B24884AC28149F626AE3014272C18154234A98A8281B122B44C43622312890880429428A7332E4117411A3625479C2CC12145CA144343664216951CA0841311514136181482D44A1BC4812A61414785004CC1848AD2A2C844284B21DFB201C024800216844108008C028400A04818BD
+:806A0000414441830460224C02804481218104672240E281E224282864C12200167848810447814A42084B4120C284488F6D0E211220011146813224194201008110080014842002000084002880021514088144008110022908002938241084C84880F49C6500229421844C03B01804811189210480342216322822288484398862418160
+:806A8000806241226180A1142C02184821422446018BB489189811464824014281164804412FFB0A21181598128418142881100883018140824212982128818982882201206241222280A214100810220448904A88811442209124488184819044FF8608814A02005322044E3413521411A042008304122240082532111044088440120408
+:806B000012814E2521128944042491A01A459882388144290810A481472400BFFA09116022C10046148224098044984429012483C1441A42AC12641004808201804222252131342850822821C118A262800882CC88614838281E8416B824F46FFB6044001A022684014D180022808891842820181803004508848902A0828542884114048D
+:806B8000E08881624243C824109C488941180289210181C40000DFEE4C8102125082250100135481D810048483211424015084007024020025041044A2284421410012842329240110180C40081004009E23306520D22E41C8215860C41641A8D29088416D8881248E188D123245D88402C160822222126B82842D284921E442C11443A344
+:806C00008128892292244781428E188B14104824399889318CC3423414182CF2E6310080814242542480A148142014A414123848444944011845024144250800002416948210C22C24444D92842968C16228852218484804208122189844DEE2001200420090180080014212000089010080240100001004434204004C020040220180081E
+:806C80000021400410F4FAF230252302002D18454104524668140015028064240028502881854608CC0440024A230121122614022031122C2141389880014881830130844822AFDC0D915200204141448834444820222401800400502283410A400440022218CD2200100220011210848822010021006460428F650E8D2E8B644A24C442E5
+:806D00008444802151C455B434A2222603800421ACD12252221E181A614D8301890410011E448558888F44A4454306490230127016761CB42CA322A28014688140D622D822A411CF1B0910622124100400004008001008000000000000004002180040022400000084820012000070250D818C84840500200444414C322889028480015096
+:806D800022901212988288002214111484812D484682058001008614C42422A800440010129212DF530584124A04800100204404284002000010024C012AD8240289820114008480046041800210420428008100800821F06FE11082040000220045042A020000002421A0111004000000508880040000005044A0A2002410080021A01103
+:806E00001FBF0400400180210200000000000000000041440048002100121602000000214618480800120000D0890E304A124200000045044F82126882128400401242A21149A2218282108802111185C81289044222242002504489B8A4C248221008002450241AF1DF4940D88885944221000011405444682A0210080021659212181A34
+:806E8000918888000014142484858885440200206848444584A2220000001012F22B3730124024811284010000102204000000004004400400100220414402181810020000422C018C080000418BC4000000120011008100000000004004000000000000100240020000240000000000E0A74C02214418901412220010082100851828019F
+:806F000000415044004514D688A21200403212214C91122011421242C282884A3842878C40480C0000704B0727214012030028108104008784244008000000474228280080440240021212286D12182302880083480886120A1A0100007E26001AA1111692221684011904008578480818000000102402844004280024001A414212021247
+:806F800028008281100818908800821014F43A267026F212222AB112219112C0122592812F317111B18979917948F888414E48421F9414815489814F847448F424444B242E24224C02284554242E2467222F21A2122B111AB882092C5922882F317111B188E999D488B888E48424E48404488518F844481A0A6F2252242A21331221181C35
+:80700000512229C8131F2191C11F8938188D41424668941581445888488F4414BC44226242442828444584F2262245A212322B8123A818182592822D131F2191C19E888B818B48C246480848848588F46136000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000A3
+:80708000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000032
+:807100000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000B1
+:8071800000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000031
+:80720000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000042000000000000ABC1000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000003F
+:807280000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000030
+:8073000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000AF
+:80738000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000002F
+:807400000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000042000000000000ABC1000000000000000000000000000000000000000000000000000000000000FFE40F003D
+:8074800000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE43D
+:807500000F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000000000000000090
+:80758000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000002D
+:807600000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000042000000000000ABC100000000000000000000000000000000000000000000000000003B
+:8076800000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000000000000000002C
+:80770000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000AB
+:807780000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000002B
+:8078000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000042000000000000ABC100000000000000000000000000000000000039
+:80788000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000002A
+:807900000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000A9
+:8079800000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000029
+:807A0000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000042000000000000ABC10000000000000000000037
+:807A80000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000028
+:807B000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000A7
+:807B8000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000027
+:807C00000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000042000000000000ABC1000035
+:807C800000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE26
+:807D0000000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F0F2
+:807D80004FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000015
+:807E000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000042000062
+:807E800000000000ABC1000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000000F5
+:807F00000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000000000000000A3
+:807F80000042000000000000ABC1000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000B2
+:80800000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000A2
+:80808000000000000042000000000000ABC14041418154A40026A8424121A01240C22224128506001012A2121840140E8144810084C048A448414964223022004488AC42021A828202D2826EFC80648516581839D54874683444458237342244414956484CC22C2B122E121E28299118165424244129713288913849414854842822A34174
+:80810000E24441ECA433284CB44432142AB12441382425342476468639D22F8148CA128F6E0430188411A911724408463442002A014B42C4104208280040A62144409412224110440410181882A44146C4222C42040049982810220123143888182F4801802481C4418400286C8103004012C4283221A12184430100201234188445088035
+:80818000223212C012812428604412184B12844042A4422382098A81C482DFE10B40014044048D440080024430222816061A0218000012272181818001400881208404849044800200284422494182220810F266619041401108482222204204440000100418805122400280010010080000851494248400200241100210042E128001AF92
+:808200008D05000000000000000000000000000000001004000000000000000000120000F0B8E78081029504172281B90228218001218901844141B024010000EC41D818622416123448444C912484403C24234822041E28268814C89228C0228A7144024C1164822F6A490211C0328934484B4116C4482F88A1418CD182048147122D48C0
+:8082800011A18A31181112261C582852224180E18846381412172870140111165849CC43413882188A01484E142394542628D28428A882F08B58109221301C2D484E284837412C94184883810570212C44184E044C0349424828C11C45D81862253A149C484991114C420C818D3687188D321181AB291E2842E0246822903429C84686BCD8
+:8083000084318426F824988001902110911E8C12A8282901A1102A111A019289118141082442260200AC0849014D82C011501410442404009884184B41424889230280024FCC0A1800302200194242582800841081228822C21484B0245418488534218391841221D02424011200004028028034484881604400A084438208FFBE0B2200F1
+:808380001A72116812260A36898322129882124B815985829456282212F042228302C061814638C44F828D889823902536B121088817211E8D848A041611210181A8830E25242484D46F0A22002CA221800291A9423822848308511A8202441E242210744248480C1993844861C3B54418222211852208888C611B80246484488160848ACC
+:80840000E28C0223CC2400BF850A1800189119429A21321222002118985324E822A4614028A1421C9262302183446881C8A26029112032111C025021C18482901114181004004442C24847662430414C42081490228C542484130229010029012812218021B8A124B248829A282302488AC21481442938985664288A11BC21998E82C02455
+:8084800012882312848C812C6124A0187FB60C16220412841200311A024B411A48562426D448084C58842225D484921422824141645048D45082224CF8421840041220220480C1E4008AA1211064825024E024F11CCA0018122811C10012800A0000C028281200805CC2001242160448414410011220125848402841184938880048800204
+:8085000028832818F42869142CC11132818154001D58228B82181A381425147688D4823324892313D448D224E848B2413224CB412E468741618D444974222433854721828CE944F388128749411B48CB818187114E881E888829892164428C22914C8249FC8A831002411A426181242821161492612400220088410080140820222892289D
+:80858000008C484402184400C0288F2201880000224E2482188A842208F0742D00428004004302282002004C8282022840082D282024D4827888A3820041102801308210243121184485342138004324088284E2488241CF520D902840040000800200002038216082221B42484508000025041C84A4484885C1444902A084432428287403
+:80860000480280044824462804848C24F4E86510440440410140461402211006491104412141414CC881454A417614E8840882210000142482488124810000118100812022220289F1684E4008A024B01406008280841807480018502448290418224826A124301146881481440141429944018334814228425904000020240424229E9497
+:80868000004140124C1418044042018081084C72213424A8691C4801409D442044480182000012420020040010210100C02A124604F0C7C1208382220200902222224400002008481228222AB12A69840090282622C41160111246A442450116A881100841002C04844A0800002128EFCB011041921428224C01002124882460421C2A0462
+:80870000111481D048244431228D2240A2848440048A04828284B048024031418004942C0442C60888204CE4BA072301221125044C02C4824428114141504230840010088052481486011508104C8498838012519261935225422311118104848554842400002CF49676C02C8004221229C141C04440048A26180110024482471819B8614C
+:8087800091142A084E240023C8818048081B422182C82844104408802244040040121812F845AC109421F02126511C614110B2A4120429A848441B2621E21713C012E74E5CF6C685E6E116C1211F32D8C1F262685D11C24B49421DCC5A29F821268210F832584F74729161487D4866F115211344189848858274488882C282CF44F4C1DC30
+:80880000703244480225C42429312185D4221CF2632286517669084F5108457424514C8CF24D888F22D281CC28B7C2A5B4AE15D8AA044255285D2117C41447221FB46C8D4B888C548449D448C14AC041114D484C2894882A96424A84E422F2CD6980F324442AB254B4283274C3D2449424442A0200184D842AD2449AA24E262EA1C8221F70
+:8088800081D448D26CB444D484E614E82828DA8B1C6248A0481443F853A483D815B44832298F2438414A12A144B04A6544235C84C60AEE92C538C88CE1950E004001422004428246014282428242000000820042008800000040012C0888482C080000C04800240000EF924E011D292AF236748F84F46462AF86F66123AD482CB442F48172
+:80890000822BC82CBC52F585823F14F444C635F141451F9DAD229F96F2BC8FEF92FC281AA7849FF4F88B898E489F92F248C81A5198DE441F3DF587844F68F817F58F84F81919AF8BFB892D17185D813F15FD49411541F25A5885BE82584C8A28F29292CFC2E28A7A3AFE976314285D652CF2373785F83422AFC6F66527AD4CAE666F4CF68E
+:80898000E1E22BEA4DC62F45F7E5C635F124A63F1EFC24245F9FFD24249FB2FE6C7FEF94FCACAAEF84D6BDF8CF898F8EFA61E11F14A499C5F8DDDD1F39FDC7C547525F49BB49FC19492B379F5456115F14BC32FF29215B224E42AB1185BE82F84444CE888F82B292FD6E6CEEE88FE6F52AA9344D141F52F624246F4353D92E26EFC4D23144
+:808A000056CE47444CB261F681A14B844B915F2C5C574F227A23F36763FF9FFD6E6CDFD2F2253F6FD2FE6DCFCD4E5FF2F4CD8BCFCEFE6D654F7CFC1616A5E8CDF451537F48FC84A67F59FB8DCFFFD9BD96798575C177CFFDBB7D9F92F6416146F25B19CFECF8CEC8CF48F8C882AB8AAF8BFDCECC8F88FC4C7E5FCC4AF334341F52F22426AE
+:808A80007F73D3DDF27466AFC5D27556AA6F6CF8C2E63F22F283A36F64F872D45F6AFA83814F26FEE7C76F22F2FFD9CF86F66DC9CFFCFC4ECDCFE6FC484ADFBEF6ECABCFEEFAEDE54F74F496D6ED485FD9F911137F58FC24277F29DBEFFC9FCD6BF7CF58F2C147FFDCF4FA789F96F6416146F25A58CFECFCCEC8CFCCECA8F8AAA8AF8BFF8D
+:808B0000CCCC8F8CFC6C6ECB749014200241200243022200401441044C1221044E2411890244114A0289024220C411200280A4128C44011448144814480080A42420046FC606220011A02140042800140080220822442688024CA842144064A228480000114084082100100A0000008724001048F13971D022F4112485F21124A3F41124AF
+:808B8000A7141D24AF24D141F24A9219F24A9251AF143934AF1439352F147924D812F925481CF9A44A1CF8244A16F1264A96F1235A96C55A9E244D4A1F49C2421F4952381F49324A1F49724EF39124EB141D24AF24B911B24A19B54A3924AF64F924482B94478229F92448984FA2F4A13CD0B2F41164C581FE42131E2CA7341D2CAF34D101
+:808C0000C1F248164CF248334B218F343134AF3438352F24793458127F82941A4FAAC5916F827C58F1268816F127DA86D4B4FD18256D5A1F81D2A4E441D61AE448F24E131E2CC7341B29ED921F81F668861F41F24AA25B21AF24688A2D164F8AF44216478B89B186D442E3A2F5EDF600800400000040042800008100100200150821004040
+:808C8000812142084880040000402488020000100200FB2120114211042032481048810280014B1818196848C416118482322C4C6464D0814C14E2C122081D121412A2148531488718C7118270485121828058A48C042841491108CF2F01702124017483514228184F1308142444244111C35886B46048501C2588042952149022422CB81C
+:808D000028044C4214439842433424809219262242381856AA14985048AF2418E88846E582F4B3C16021424044D4A2213268184783411922021096844971825D48656A51E0614268CC484A02C6694260E28F180219714748C1625018CC447918748158241187121818888C984A84295E244E14841AF62E44001D241C011410043081144062
+:808D80001284011C61883081204854812822446542450229248904430229618846C1442282262121C26824867848A2414C014484A1A64844F81D7F100200412084B22241B828A1614A01250130A114122880820441502114630241928880280812811A12982185215838C0814041880128802288083FD309266462495122122F44D226287D
+:808E0000E428A42414811CB842911881CB2921C3B384F448114D31154443024E24224C68118AB322B52834241A92262622C1224D12845303472219B19212518223682149C8825692848A44045A12F4115C242828491112D62226A842C8211CA134421642014D28222E1D4B418C2362521012A4422662381AA282321AC48420288AC1322C01
+:808E800021514126C1231CB1814342814801122721888849222843F4D17B405424001844472424388B428342E838813418849833088213D4140119440244144445C1124C648A223827422400C18C62835048882558128318C212874882484C2204A048F0547724121288A12628031E28D141824D4891A14A11648422001032141628328821
+:808F00004D418D42152291A78D6122C21160844C91882538143018282220C2A41E84842D14414A2116042343CC32950A11469211224120022A1428122402822840244988912222562234812C6142902450344124442CE1C40211406848248824822CE4414228480825248162C1632482F18CFD200649880181400220C131801C41880811A6
+:808F8000439224004110049044200189B4120200152841948281212084440800288A0284200820F47BB73413C61255E282912C262862239C12A81A8F16410A4A89B24838248E1189C2342841CD426891567648D442B412D243724C22A61C316042857418034F81183C122842C84E28232151284392A446A46122CC9854C1487EF3A0188018
+:809000000120018443440440E18844518400100480031044214211242952482342C412C01182C50288842988120288478888164822111884218222F2BE2D80042082C74152202632149042001121003E8849018884484845618140880425046051294288042A0110C8812594812860481008002D44294A02DF430E210041800248201888BB
+:80908000113895128021C62124006012008C811201A043105141D0940100004308800A002800A08430889084F0C3883081C0121213C1142822004211121081C441142981988421804101102191311E24442244321240015042182522722204272288450261444342B844127444084E269F260227815A82421128184894122440043042009A
+:8091000018100447811D128071888408801879210881D084084849120825088018084588128434820084818014F2527AC0222810836211E0148202424818200487142E4683833238218822008143B82801521034411D2822802144840100844008100882829828888C84C8E1FF2C0D844400304845111874110444A0211244008800401553
+:80918000611613C4142C0164100228408801A30A0041614902448601188682211284A82410083FC80F8011342448824241244A02884848D032A18100131121180810880824840024814011D48456142813D2C10250219424840028102402802A42FA2135B021348132708308260846080064481502241824C48A62881284221C5112862876
+:809200003213C9D28284126241268212022225243222282145912B110023886228848E4812448C025FF3038484498401223150241E42596144223C02180081106A4184800188228012814881088414591F08244114840044482882410028200229C494DF560E1AA2484D122E218B644D2193D464E6212219E42184D41101671580A6134D4C
+:809280003B3E1A888E8126A8223C5D481E28321F2192488902114951413F13C282858CE243B31192A487422282811BA4A01866E288B12492464AF424644B6A8F16F426467E37342736B62852469E19982D5C13F648442F627212C8812E1ADE4214188D524F22D128B2A8F88C25C7C9518D311C64844711CF289911A7924F51F26214242DAD
+:809300008D8F43729442F41B28A2265224C762242D2A4D8515FBA128A348D66CE8489822448F88EB4AF248988F44C8AECA9A8390411D341E241B1133B279E4121238241B544E55425644F4535215F2538156D18368412998128FA111314195D4816112ACE248F1611A9CFC26248956112E314D184F52B145461C53823504BF28722E543203
+:809380004509286149A888228D8A82252868812F2546010014800800881288C0818028010082000000008230882008824008400226022440222804240040012008DF1542F2C3627FD1D264F117749F85FA181A31DFD27248FC8135CE11A09C13B883F314149F89D975F281911F3AF18983C7481F91711159999D4B357134B4A2A8137D8549
+:8094000019FC84848F9CE41AEB48FAF73DCFE2FAAFE5287D257D25F59D227DA53D81BF9A72ABF948488F89BB42BE32F3A4A62B374BAC4BBBCFC2A2AACFEBBA5646D322F4774547617F43A3559FB3F34B499F96F648485F5BE71DA5CC4BFE1B182B5C4F41F1D8D857729F9AF98CAADF191BF8111B1F92F12929DFB45C9FDFF1F19B9B8FBB50
+:80948000D976FA68EBAEA28F8CF4343C4F41F2B774DFE3FAAFE52855D54652FD85D8DD52139F9A728FF94C4CCFCDFF84A64F43F324A6AF8FFFCC694F83FBC6ECAEA84FC6F7EE12243F25F717754F62F11536DFC5F77D6FBFB4F34F4FAFC6F241B546F7C2D22F24F745C675F4D5D59F95F477373F9AF8AF9F7F5858CE15F929391D41DDCFC7
+:8095000075FC2C2CAD18BAFB1B598F9BF4AE2CEFC67E15FD15277F79F524A67F5AAA223F12F23F3DFFD2B222F22BA93FD2D883FAC3E1CF88F89C986F44BEB2EB2AF8F2F8EEE8DABFA6BE64FE8CDE7FDA45F3C3627F537634F63533CFD5FDFD6FFFF4F72F2FA7845F57FB42532F24F5C2F25F74FD46555F5DFD5B596F67F5BA98EFEBF3B328
+:80958000B14D14DD1D97921B66DFB4549FDFF3F3BBBBCFF3F3567F4FEDF68E2EAF84FC35255F79FAB7365F62FAEF894F62F23537EFC3712F7B2EFEACAF3F3AD831FAC3C1CF88F8FCD86F68BAB2FB24A66F4FFFCCECCFCFFFACE84F8EEEEAFEAB673022800118842E118C041A442101001B41A04130918D240080121188011901188122E0BA
+:809600001201471220024D118422826088140082208822A82482428287874001411142800124408124043C011811811220918811C0488184812044088428184418842602850224843C881208889022B04802408822D248043CF4112485F21124A7141F41324E1F41B24EF11124AB941D28AF345985AF143934AF3439242F3479A4D812F96F
+:8096800025485CF9244A1CF8244A16F5254A96F1274A87596D4A9E246D4A1F49C2421F49523A1FC9724CF2912CA7261F48F24E921D24AF24B981F24A9251AF643924AF447924F8429647822D944F8AD448F9244A9DE2D0A4F41164AB4216746E7211744EB211326617812F64C92CAF24DB84F2489443F34A9745E8747324C8113F82D45248
+:80970000F9245A1CE9A26C517DC89E257D488F19F226419E2165FA91288CF4916425E3C1764EF191288346F44E1119F248941F48B248B311F2488436F84A9436F8428436D842F9A2488D144F22F5A9D5008200008400004480020000001002000000242114200280040000004004280000000014F06EA54084023235C416202151411429A8
+:80978000A24884C2A342B281721842149811100941C311E1447144311A494252288642017084613280084582C18186A841E0419844F022582E84C1828A0689724A4311B1826162511E421C621426611481E2181200112A083189A6814436B124581C84244902842283248336152832118421C72315D4582238E184228484A13841C04827A8
+:80980000221141266544EF1F0715A61C43D2727151F42215481B124A1139C529A2928482A9A2282712842D688E124D11149E2D518698142625C54D848D642CD318369B252106CD8228A742411782442E81D12A6887D086210281894A4E82CE218B25F768002880025012404124222104421120D81211140838101814184244A2210040247C
+:809880002241114121D11248C4821A84480884884B41643A64642219184454249F290D008280080088000000000000000000000000000000000000000010010011400170E705211714001D118D24262614F412282AA1488D838421901419B43248E34821A1241D48348225448832583D438658482AF14442290A11E042912C3C6844412535
+:8099000028A2688D91842429B22491429E82C01487814A9244BFAA0C422871442A91281442444598222AC41390821698141B482E81402681C388821D418546A8241A04334898184CA4A610E7412192281C2844D48512E213450229688149A1482A58224412388C7846030082800800880000000000000000000000000000000000000000EB
+:8099800010010011400170E70500411008450281002084542841008923B248818402144021D248A24216214214042282200112872210089886880881807B24D8420287448C04F079C1142253430167126E151C21D225019913220111282F818852148564423058C964AA89722648A184A5121838E8214C721481F1258847826C411111ACED
+:809A000018214A0216A8184AC18C42004B1E3A287A6488F4AF1480A2124124CC82C51421122199130250819018228741848B3400444098221312CC62948C32A841441D1492CD81CB2116826112E19221C0881282488118266C424945A4C22688F495B61410450114174214229504004A21042D24230819C22441428B258CC4A929521CA051
+:809A8000862528014C14828202224014110881A0E1308818836148E81082BA78486844F0F12200A01400004311116458628922848463844642081036218AA241A82022123A41918C01478141484518582481814302124426810224124004246024418AF1B7B2D0680146282284012362222444808A880120110119130A419A9288848B140B
+:809B00004480D2414192884E2A244870120713081611114804688021121828028264E024F2E2AB80022C6211508600C98482420121101202424800400A902541424225080020288103400410849A421A348889D18414082200908810F4833F2011D2289131D084014361342819EA14C288298C5522484239849421454841B882C2284D219D
+:809B80004E242E4648311283D182B8444334124723164E16041E2511182178833C18C9B12A41D8480224888B844145B2DA0443022260244082322C4421000032811281800128432A04818C01848B244508002908811170811808418E28421100420080021004AAF45FAF1084015984812103004180062002424904100A8810084D8890212E
+:809C000081809441222A440820213212874222294A2442928400002810CA88C0225FC408C0243022A0248002282B824800814146151468524441450820C4290081118494400128205181439141140021704409002002820010F2E6E4100422121200482849C8412210A414102202144D2122448C54828A02408444081614080010111151CC
+:809C80008124484012010010422244180C8074E90146632448A0248252141B141122901211220046C12484219021288800001444511C4244444845584844C024211658128844312992826100108418B64208330F821C0111141931414034248A04430441482A01112A04212488002871422041C22881100420812451829180282402C8201D
+:809D0000086048A9880250329F274E628440042D46408C822444C82410C6488444228110588448444981C1481091442226886414682480042006424483246844C022883086102824285884F09B49A0210022801402008004001D241400100281361823120284891201000019044484A14002150240584800308480028C14E281FC4659703A
+:809D800022C226C0142594226024511C6841002344044004A744142268C0EA8424485844444182444C444414141134416446549442444E8242424C9284415048433444414B84885F2F021781A061101114114D880444C022D081A424B0220400141118424A58818504282214281484288D428428258802124D28281584CA28240022002340
+:809E0000022126F47C5E145F51612828257114A5321D154A321C43A6164E425A561267828336244AE69456CD3512F24D2A12678C8D2246D815741495481485B144D211244404D054E1B4C1539C93498CE1484494612E4B860210024DC84867828B88942B858FB647F2226273C3145D362B743B448B43144E648697ED2A023058CC96612619
+:809E80006142664359481CD4A112A8828F2256C8836454C7C247622E5883D25424F46524453A1153F25528B76246F516418F14A28E27244CD884E448D264182442F4C68E8A5A448A64A86BF820C47423A24315624123F4214C3591E1860445D244C44455E3545144E5827624F4242826B4ECC8A12F851491828CF425281B218C328847C49A
+:809F00001B2247229481855848A3924467A287623FA218661AB3F44A842D8223C8844DA289322887442D484F64B824E6E10F000000400120288204000019040000820010A1240000000000002412240048244002000000F09C4790113F11A1321F13F311454F62F248295FE4F64A481F16FED979A04246A2241F12F2357126B226F64543DF
+:809F800055A1221F96F27DAC3F1AAC162B444D415A21F635199D2AAB64EEC15F16F261237F1442FA17518F96F53B791F13F4244A9B735F38FEE1C33F32FE2B498FE8A4A82D846042AEE8CCA6CACE4C828FC2F2C125341F71F313772F22F335364F55F53726FFD1F2456FA7C41F5EFEF9F942497646B246F46D655F177764F643211F36F693
+:80A000002121CF82F26563DF4EF7A7C5EE822F24F644415F11F56465CFD353BC6B224F4AF8656D5F76F6476DA47F11F1695FBFF7F772612B66BF47F7C7E53F1EF461E2FF94F6CA8C2B8847686F48F8A4844FAEFE66EC4F48FCCECCCFCCFCFCFE6FF941F165655F53F734347F53F373354F65F578595FE4F66F2F7F7CFCDBFF2F22B242567A
+:80A080006487E4FFF6F273711F36F467417F64F4232167425FD6F6EDFE3F32FA61C13F16D455E445A5469F9351F82D44EAFE61696E623F125668FF51F1757B7FB3F777756F67F772787FBEFE62E63F32FE4361EF64B486D82218E242A2EE4EEAAF8AFCC2C84AD8E8F9A63D341F34F437372F23F337177F55F57776FFD6D4F5F24A4A7F7651
+:80A10000FEFA7A2F26B6425466AFE4F44F6F3B774F6654577FF656DFCFC2F26169DFEEFEA7271FB6FC63635F94F415514FD4F43C1DCFE2F226244F4AFA65654F66F62F6585FE1F1DDFF7F7777F7F57F77674AFC7F7EFED2F2EFE63E3BF14744EB4867884F686844F4AFAECE2EFE6FE86C4CFCCFCCCCCCFE4FD39ADF0241120022A81E41289
+:80A18000813424481400484415C8241994281189024C121108817048040083044001003C011C4148618834008A04001028B848222824D8440E86012302471211902122E0148822044240018744224422282688C848004674244841088444414440485381C522410224D03888442248042C08A59444C041EFDF0E2D421F41522C1F41724A6D
+:80A20000F21124A3F41124AF14F18124AB961B21AF24B915F44A9143F24A9143F242934F82D412F925481CF9A44A1CF8264A16F1264AD6F1214A9E254D4A9E24ACF591242CF49124C5F39124C3F49124A7241F49F24E121D24AB9419F24A9259F44A9643F24A9243F24294478229F92448984FA2F477D6D0A2D441965E1B21A7241E2447BD
+:80A28000241FC1F24A121FC1F262861FC1D22ABA15F6488243F34A8353F24A924B421CF927482F14D984D1589BC75AF2278AD6F1255A9E254FB2F518216F227DD17C24FA9144ED431B29E3F2914863F2914CCB1219F428941D44ABB41D688F4439248F44092DB44F82D442F926488F44E9A2F1928B000000000000440000240000100200A4
+:80A300000000001441400800400800004480020088001008F0FD2B800241304414481423C41214808134449118942042C42197424902442B244642C12960228363C42819483414902D814722419562B285825222481C1142A61489889126C9A32C24EFD50337448A82528630161661822A11248262348301635241274227D82462CC048509
+:80A38000213A428128444B182A248438128818888199E8284411DA288184290C836C998AC4128904488400D446FC3D752466248652484D421524044A9214598222E6847144628241E5918D282F22D458661236242A18A242145C2324F422881CB52838114B84837181B8AD541AA952261D482DB16DC825B2A8E411C4C216924C588A648101
+:80A4000025C23C4D6847A19F630714502400121CD181921210023C0110C5112221400485548190468B2424448C8822225186800841001064814008282486C811400281C0248088E4150E800260128418408244A14181114440023021284321148512042C0539016B12104204408132641265111124A1921242908840064C014A02188477CF
+:80A48000722413D242F126182E176C6112678883B318F235881A5282C0141E43895F148D2183F24812812641CC285146F228442D214C912C89014F82C156501428264C49384A84CB41836184271423C6182551148B4184424AD2484CB4840446F424F9242622F226184D221C93228216E821C28118182001484502844E1284144813420411
+:80A500002D4825115212166842442C411421722934294E2423116244CC61847A289448D05888410C4935444AC28490441FE2071443011C1154A18D1422844D783C32488115F441142F811AC129288D21284B2185143C21496442784CB12C4122713832441004008489447D11081642B12261211460849042288648842411F8BDDA80B41251
+:80A58000C415178222168814129524442490418D84181081013012182C19149141504252234114264228884474221808842218CE284414848489850A4A58282C012443A61477AA244C233248211002122829D14111B81816820460228283062D6826C1382C886821CC244114042825C4194848841462C94494184845C28481A8431564845C
+:80A600008C4824C124400E2CF113674001C012843400A1428436018504508250214112400848418002841C0820086122004418484512018C230400A0414024240181815F8444A2412A81913A8427314825C2292B2193D118D282D49424C812811D221F216886128C721841CA8615D421C5221846D442084332A215924428451238648F4198
+:80A6800094444D324661C48B28818C98144985A848434C7C628201C446FAA91E70A403C5113122842011C44420C1127048040010041A84222A04D08444C41816512410248108811912088184188A921219048C14E882941880311450844A024F18042223642222002211F04822830316041688042838801A941184282551811110888144BB
+:80A7000014C81441DC110142005041200120414484210200884AB212F82DFD0060818D42848501812018012008412048C12934118232814A214422437144410830412182A08288481481421EC84214228C0C8901901848100442AFB10C822A011823820128834201004C8404910044281884801208439221242844220080221244621890EE
+:80A780002183A212828A9244471956A421882729AAE42C228322AC288EC680044D41C5311189121A2804414C2204214250122111C04840C311884289042A28440290A24E24460811B0340421D048049088898498821004818888009EDAA0120011102602431121C222424004148002850464404432118A420C11488C2802820026844291E6
+:80A800002192002634111B4841114400801228117842F84B23401848022022414151488544C4221A0293014028823141291114C1810040482822114A121151141004428124888244001018145448182110A2214F6A0EC0123849028200812A0488102181081221458814840CA394488C5841184F1142042986148304802808209411222C08
+:80A880002484412101A200258818B824016FFE0511A2250826091E4824542004204158294228814002008841404898448128C38402194284921168C02890688002151842882223616E1CB11842440D5F1307164A944412921D12C024220054116C1281813115160125698127941D684E1400481112288D84149024A4284C044143021906DF
+:80A9000041184C0228117044228201241A12028B826031235AED3A3698548D284C322C9FA8D444023218165818601116499843E18F349521848F1498496E29B02DD3D254248D4A8CD244F846418D24C084423F1438418B245D696F4CA2B546A1A44E1D59B11AE127B82231542F129128A64801AF66036AF288523AD39951829DBA7A51895C
+:80A980002D44663178A81C74C6D21EF451188469A1329F42F28C324E515B89C1FDE18E4294CD447D119419F2484C6F47722882B12152155F5232B5224CE212F28349832222BA23F88858889AD4C4BA84C38689F218A827894BA18F9CE283F8BF5680E1411252661F1233322126D191C32494137242741184C1C43F14F1A122B1456192176D
+:80AA0000C1842E5B66D4872135818F83E249B46CA1A282483F3662682ED8C0214F48BE2415A8124AF118D849845335DB49852542B414E2EAED24E422C9144F62B5C2B7D307110014820014800888802881088812000000004218822004000000482110821402218C1402218280440200F01C31141B654FE6D299B2199128CF61F24B71DF42
+:80AA8000E2B21AD355FAC8E81F38FAC2C15F74FCCAE19F3DFDD3D14F63FB32984D263B314F4CFC9889DFB7F4C7E9CFE4B553F164459F9EFCB989C78E8FA4FC9ADC8D684F5EEE3CFA622457525F53F941E33D419F94F6A1ABBFF7F58EEC8AEB2AFADADA1F18FDCBE98B748AABEE628ED12B98CF88B9D4F9E88ABD44141F25F437558F83F117
+:80AB000039388F92FA3C3EBF94752DFE7A5D1F54FEC8C81D236F16F641C3AF1DF941132B554F41FB189826B27BB588F8D89ADFF2F5EBC9CFECF41A581F18F479799F93F18C68DFB2FEFEB88D494FDEFCC4A72F86D615F215351F14E224F24A2ABFBBFF7B15CFEFFA82162F2FFDFABA1F1CF8DBDBAFACDE22F1C2E22B9DEEE22F8AFB36BCFF
+:80AB80003EF8AECAAFD743E111F734669F91D3999338DFD1F25969DFF2F21A72FFE8F66BEC9FB2F242615F59F158C1DF75F55F5DCFEBF3BA184F6AFAB398EFCC7D18F96D7BCFACFE4DCE3B154FE6F47B5BB7B2E7BE2F96FE98FCCD6C5FD6D631F4A2C45F18FA34B41F16F4A1E19FBCFCA28AFFC5D7CCE764F76362BF8DDF13FD199BAF22E6
+:80AC0000B1A2B9F2FFF2D22E512BBAAF8AA9BB8F86FBAB12144E637F73732AFA393D8FB1F13F2FBF95F62D2FAFF7F1E326BF86FCA9AB2F34F6D757EFD5FCC5DFEFF5F5BF3FA79B4F6AF8B79DCFCCFD5C1DDF72F4E8CBDFE4F85B584FE6F67F7FBF7AFACE6EEFF4FCFEBEFD665F5EFE84E7FF4AFE85A14F41F361433F4EFEC9A99F8BFF5DB4
+:80AC800076EF45A7741BBB8F8DFFC6C89F89F93C28BABBE6FFE2D2FECA2F8BFBB4BC4FCDED8EFE5E49A0125012B022012E114001260120011781109128118B2413394811281142902811424183240247127024013C08224847129E482602141E4844126C22C12480024604AFB1051400C41415082044581811141114009018200480048CF5
+:80AD000004192401424842201C02004AD8414481744222210485924114D0220842842921019028C0421F4152281F417248F31124A3D4C1F24E111F49B24AB991F24A9253F94A9443FA4A9343FB429147822D954F82C4954FA2C4856FA264154FA264592EDAD6C5DA9E242D4A1F49C2521F49D228F1912483F49164AB141F48B24AD141B604
+:80AD80004A9921AB945D48AB9443BA4A39242F24F92448A9F9244889F9244AAFFE094D4A1D648F226541C7241F4152241E6CEF263111AD161E64AF24B3117648B624D47AF1344846678325F522482D952E585CF126CA87552FA26D546D1A8F14F2225116D5A6F5812C2CF5116CAD521F49B268F111442B141FC1B24AD141F64A941F49B2F3
+:80AE000042BB8596924F8A941A4B4A2B944F8A949A6B4889FBA452DFFD06848200000000400428000000002100800800001400000000000040042800420000400177A54071224214D818049144AD244B2129C6821C9441272889C8128651588494C4131444314C11811534284382044A32421428822D884A11411391541F21A4841120C4D9
+:80AE80001889C64A411014A8128362223F294A021F48E181D82202A12E821C221102931258484601148922F9249149884808004D484810442198146115025117416445C82487418A91834912286184C95114451124D284A81643088611F8F65A1071C4514885D281049B287165C81643D4383868C7341DC28C485192DCB834D8A178846888
+:80AF00009412114388344851C1263141244E24B9446154824D88A74414596128471C6C354C19316818157C61CC4C2D2487484B52A42AE19268A37F8B0E25A2212D9228248480E22281228242010018A21815480410048C54580022448816041082D23401184C52281381912188004D48180000C08400F033480000288110028022048800F0
+:80AF800041000020022A04414008000000480044420010084200000000108204487F734581E151020022702122448248894415C2221C08188C12C1481908282821460610542882239426182505A8812601004C02C048158238248128C289820192225FE40A400128811022120229548188112149120180024A42A1424014D2280440440A88
+:80B000002C14C44214308446982100004830481423C8248428C82829212401AF5F4281E1420100224021248208484440820818811184822082024100002C082212448002004038240000000040082028F68D3B4021022012218201100240084820824A4804401808100C2014080000008002000050284044880100422280F85881100218FB
+:80B08000000085411828A8141002A1000060448008C0242118430228188001400220A441424C41988848108884482C0480C114009FC90C000041210024284800000021208402000000200410020000A021002182480000240020280400F055B210830260622032182082880100A90423A2828128428048082C42882126C42821200100A005
+:80B1000021481E424243819488404858248988018820951400990B001800111051288423844442080000484441400840140441001200002400280088848044024250484880042220E89F0F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000000D5
+:80B180000000000000FFE40F8004000000400428000000002180018800004001400848000000004480020000001002183F5F0B0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000AA
+:80B2000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000070
+:80B28000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000110040080097
+:80B3000000820000410000000000000000000000002008007F9E0B44C0218116040000502A14844188C0811042080022142054288222C042220080024480021002848004A100000042F0CF6A40512444902181241241231181041A1811426481C11A18042608C542484E9144404A14C814244445621826C2328344945890483082100818F8
+:80B3800010084A08C024F03DFD5041442D218153031002401158128441009C584829480828D0A45218812354288210443A244044A428282584141408215082C048100A84800C20065FB403004100842051241224482049234824011244100800441146048912228401215012E0224128A241C0482008001200000044F085EA000044C02886
+:80B40000221902482068144021D122022113921882814302430211542C21440243024140811242041068883011818C44311429588400A90242B0E40847211502278218401198484B82D8222971182394A9D1152862885B8645D841141848912C20269C298CC44829180624384549011B84834534442F8C2214A1182335282091242D1486C2
+:80B480002464C14722DF4D0900902E00118181AA048223611130985D281522C2811A266844C181101461424A3128A442004400C111806C84C4838804819053893282838172124404874141DDAB146C411102128C22C2214841D82813447842312125420826C88DC485210247128C021CC4821C844478A64204241C932121441412C044273B
+:80B500008A1345E18C0143014141242E884242285F25022B242456A412264421C2225024863441A88E42122223912231841788A12218908810840929820216588626044614C22400003286C488288C048F4238442C21492254C2C0127F7E0B00464802100814428744805241484100001042B1288188486182A1844253A428C0282444424E
+:80B5800012480000424414282181A01200494214028C71230111210024444861890260212440189884000050481426042410240480145221482008004441239488394402824309102802807844083F754E91432112502445C1484C022CE4888451228E4246C82827412502908960C294A604112742168CB44282C4821225C4242564482357
+:80B60000E144024141214E98234858228C6C482E884962A19247224644481C78DE072210AE2123022602A71244904188511841882214844048210284402A480843A224841992420000002084621413089018414A012800432804DBA1004800100400100C8241608A00C450282A4498428410088501101124C88830382001454101001504B5
+:80B680003901800218121662220021FF860F2231224304149342082A28880288A125C12881C08100208972240982403882404948414B012183088220074011048301840046048442284FDE0A182818188412293121004888A95212105212E011584A27118068A28816424306C0498D46222426C4248584782804222828441B4220121104C9
+:80B7000041228912A22182284931446FDA022889D1A496211082022124183100C0842200004598424008A800100410414228C8284603128896C1884481444029021A48A4A4814A314429047F2B0C824400C01821C014842904211002697821548411E3528241244D2215124423410483445824004091814068542021110424301484411239
+:80B7800080C416188416F16CC650822184808142018002859414811240014004C0181D4C400800259982A21820C8894248229400152802622800841284281E44800229024FD603101192144011181812840288804849628888A21B844C86A8288841116088883420E882880250824426C22484104119311100250100250820048C7295085E
+:80B8000021221410528210364421904281A19490142543420820042440022441814978241274141AD4341A44522494618455984488E02148D54168E2644026C8844C426C44EB284088914629420812282608C18F42081C02220011804691219015281A481111A14121252142C1A8B08114180128499BC2181688418802122A4118582842B7
+:80B880001829012FBC0F1AE278E4F1F21231855A148B3174B0887214F22288455A41BC588A179288A7A835E4823C6487888B988B28B528D11248529397AD2F98F424249B222E2D23F2C61695B966D131F22631A62488F12115843E221F6151172E1143F21C2ACCF25A1A1AA2E14F41D218B454F4D69B2400214332121B11848B224B142654
+:80B900009442871818868BD111CA14C518F1A48185D348E414E58666A21E25344497114125A12423C98C17218EA19B2243D889D28C58C8D96A11BE6143D54D5A1110781AF818182B1A87224748857EE62624E282F28FA57022B23B332C4C04AD2A373284A762248FCCC262ABA8A1A1A6D6267A23F1148585BA57D28392A465D3567824325F
+:80B980002F157282788896C4CD86857886B28E58459C98A28617127142F129BCFFC498484E11188D81445D844C42A4112AA45C18AB524FC55142CF560A200222002002A0480020882208008200420010080042880020028880082248000000280048200820B43C09224F53712CFC3E1C3AF319119F937124F658784F42D882ACA68F8BD971
+:80BA000098E881D112F213315F18F8A7A16D8537125FD8B8B1F935A51F92FA25351F9151911F1949F111112E286F8BEB1AFAB59113F2A5218F8AF22DA184CF9AF2E2494F2AB233F224318F8FFF29291B8B95FF99B98FE3F31A382E228F83F328AAEAE646A6278FC6F267B1242B314F52F61C3CEFC3F3383ABF31D19BF324268FC5F7288CFB
+:80BA80002DCAAF2CF8BEB28D898B11FF12F2379B5FF8F8A3A9BF92DA9BF281819F2BF92CBA7FB2DAB2F8131B3D8B3FB9F98B8D1FD1F921A92B33CFE2F2379F29FA83683F2AF225A295FAAC2BAFCCF68C363F1BFB39399F9FFF2939DF985BFFFFD9FB3C1EEF42F12C22CF83F33CAA4B6F6AE7A3F6445C5FB50B2AF23575DFE2F23737DFF266
+:80BB0000F215151F13F32727BFB5F5A4A6AFEEFE81819FB9DBFFF8979E7F52F23F35DF18F8AFA3FD8537127FD2F291B85FD2F921A9ED859F9353DFDFD919F69D9147F86FEBFBA8881F9B7B26F6A5E78D8CFF5AFA2A2CC7C82F8EF434A2FFD9DA55F3D9DF3F32F293A19FB1F191998FA3D38AF32A2EAD1CAFE2F1FADCEFC6F654548F86E782
+:80BB80007F47D222F23535DD2E7F33F33D3F6F71F11B21FF72F25B5F8FEAFAEAEABF3AFA9BBBFD8FFFC9F92FA9FFB359FD3F8AFAAFADFFD8FA2D6DDF49FB2C6A7FB2FA2E2FFFF3738FFF979EEFE8F89D9D4FFAF6B6B6CFEAF2B7976F6AFAA726BFE2F2AFAEB5FEACAEAFCEFE3CB6FFDFFB3D3D9FBFFF3333BF99F91F1EFFDBF93C3EEF4250
+:80BC0000F33E36EFC6F32E36EFCFFF6C3C4FC3F7646CDF95022A0122844028022220628840081588121118912813A8241181112811811183841808E01208888440681212141214160884141228160812421242F0A64430A2282B124424112981028A42820650221342018512E1142252182210821212D823481104264224524100148C22AC
+:80BC80002238441114111004458802818A0441424712DF78092E421F417228F31124A3F41124A7261D24EF24F19124AB9419B64A19F54A9143F24AB743F3429547832D954F82E454F9244A5CF8244A87514FA264194FA2645DACE449D2A2F491242E421F49D23EF19124EF34F19124EB161F48B24AD141B64A9921AF2419B54A39A4AF24CB
+:80BD00003BA42F64F9A4482D944F82B448F9244A5F470B6FA2E441F628411F41F26E13174167261FC1724CF3116887641F41F64AB34B21AF7421F3422716E874638325F532482F54E8AAC1952FA27C18F526D296F5265AC6F124595CD2A6F599246F82E548F42E511AF24E131B21CF26B181B42EF18164AF66F18164AF24BB95F2481643FD
+:80BD8000F84A36A24EB6AE488D346F82F44AB44F22E5F203840000000000440000000000210084000000140084000000000044000000000021F06AD11414242031688110631196442252295B185058478C84B0129C22834204450881912B822C41512641CC04355422824411248661844018F22912104812C818864294288100489F8E41D3
+:80BE000082B28441546213916193B3389424465218481A0433841291229B288D21862524142412342170417A413428893438294124224115A34114181CE984511417858A04271841CA213226001883724489F84993142621546216D481679289F322111E25491896229B163F41C841CC62CC89F281283B2C772828414361828694299127A3
+:80BE800088521C7244C2261645564156388651134421F91881835418C994792722814592481A72A412244242984C124F1601211604108244C148A041858104101241036081288C24044400E0145227812538188C04260234800125818441D4122108130892850240981822A048DF8C0A4004281001190219541284800440014420240222F4
+:80BF00004E254D4A9041858124CC428149293922008423C228C1F0421200284E1260148424228822881028F257CBB012F2221314D01264221E21A3C42C8846C21211D42F81F828C34124813613E988716824542828688B21653229C1C12E14814664442E15236A424C249471871226F864111D428E12848E4A842996E28C817448846444C5
+:80BF80004CC68ACFF24A43C223112811282D32288742823724123181881C1A4652841C3142369848488487224AD2A1416682C44489318C86021923582410982489024C7441021821A734422EC22A8174642808874426F8B97DA0121604304211141D4890414008466781834401205281884922E2729444A0428561148AD4283424184B141B
+:80C000004B244429922849A6241F8411F162183B21E02A3148C608831242280848432482F823D380223342452124C42641614C5148200183341880A1281052822604C0882200803541104AA8426045214C02882111224482284A914C450200444654284CC4122F8849C212B04112022B120040CA844270221182088450C22E142504228DF1
+:80C0800082982C61C64C21D11298214E24C03E4120045226042601841644C1A82504A04845328480410238EF6A01400412100489C241422001899814214224113088001C0810012185142411820A6042C0210048812142C01880084A8A02A082604480F4D9463432276119D2528134664C526A46314CA9884142B146D18229C4182B8225F8
+:80C1000026584826641AAC484862842D1489F114C136E24294AA1AC244436261224C94248A74290262129619B894D484E42C224E3684496A45478420F4BBF500280020012841128084618881004041D8480300001E2143024502480044230210A11240021484002C08100400006044224F1D0A4184D0840514421A048C4444088454902263
+:80C1800014844124C02825144103901400112244810012149410B114466184541A1204204548082A142849029F3E0A144818C014443844410010C48380C18420084145011C441814E118044421A180042C28624242881CA282148B821D22628184822DC410022824282800FF4547011421148C044423815614221A142201430151C4604280
+:80C200001A58418484004C11698410020044818C2102100A008348A8828C48882408460AE2848281AD73C06A1604002C019121182954414034C41008254168188531828662481508850388445042A44488468546C4822004480044214480024722100C6184F0A12DA04820112894442226249442A082130142682828138242982289C2221A
+:80C28000190245219464282889089948028008855128421D48608888128221B08882388220C898A2C886F1285E1081912112388001402104862248088244000000249028848005400228220043024426A1122E834866421408844100386844C024F0BB9E201115984445321181460189181A08850449581486823889880011102424184236
+:80C300005A48288C4252148012180120081890124682512441122E18844004168491227F3E0C28281C8282826244C02828A2134401181348024C42C2288574144128223238222E43122824100100000040582A41416824A08582242C82988248482AC4485FA5071618C2421415421241921118184C41983182428C0140048A2128E82841E5
+:80C3800098C443210191888581088443810C2485410842A850428002810089042184A12CF8138F1449E24926F3444C3E2255A361A9B12CD49324C418988CC1444F41E1A252114918BC8CC8118F8248F4A18285FC3A2C4F3594744B4594A1C7221734114C9A481AC8218B88143F182AD1896E6A8E343A318821674CCB3386C8222FA2B92660
+:80C4000074C66881EE2125EA29011F11941585711861442F45712EF4512242CF2538284E2154A536441F26D84868228F98E292D82132A88E159F9ED88412A744882711A7A28D2428908C2526C825C1222427824AF428612D11ADA14DC84E282DBA6485C8CA2E92AFC218E82C98888B9A4D988B82BF8B066E1225DB2193314D59284E114D54
+:80C48000452D31382DF49F211CF995818F18A9484F18D1447823447422FC178C595222A5611255F1A91C17C68A7126E2B8D88262884D283036AE385D4415596987825F84612E4E482736AD4244CB88D8C281A0648D242AD746D628A448DFB709E01241A81220C248221628E281641216081228122880022812288082A124A0282008822075
+:80C50000882128220882221222482212248A04122C8284024212429F954EE1617416CC1A6F52A15426614487F26D4C5F7E7D43B9A14818754CF845A586D1AC529BDD2B3F18D81DFA8581265198CD28145DAB3F1DFDD8E85FD83881882EA37F58A8224F42FA28885F48FA2122FF72BAE2F8E9423F2BF82787BF33F9AA82A783C5FC1C144FB6
+:80C5800042FA18888FA8EAA97BA4BE92F364AC8F83FA788A8F4841D171F7175D1D1A6FD1614145654587F56FC4F485CF3FDCFC9188AEA957C18F84F255458E81C55B5ECFA8F88284DF18F895834F7151FE7D9C15D1B9F91F5D8F85F5858DAE2323E8A2FA878DAAFAA4648F82F9A5A41FAAFAAF26BF84F679E3AFA1F2A5A7BFB1FBBAA86B35
+:80C60000236D866FC9F9948C8F83FA2A282F2BF9A6A6AF89F396A48F81EAAAD93C41F174654F53F61C3F7F53B355F735311B24DF92F7597C1F5EFF583E3F3AFF1A385D14DFFDF5E373AF9BF12E2CB792DFFAFAA3893FCBFBA1915F52D3DCF22EAA2FF3F1372B9FA7F4786C17DA4F52FA2C2E2F4A7281ED2AFA1353BFDBF2892C9F38587F8A
+:80C68000EFC6F6E566BF2BFBAEAFAFFBFBAAAAAFA9FB8C8ECF41F1A4A48F89F9ACAE4FEBEBAAB8B2FFC2C88F8BFFE8DABF1545F14577FF73F33F3EFFD3F371645F57F77B2EFFF7F77B7EBFFFFFFAFABFBBFF9ABBFFE1F17B5B7F3FFFBEB9EFD2F2A2A1DFFAFAABADDFDBFBB5B14FF2F326AF7FE3F23B3FFFFBF7FDFF8FEFFF21ADCD8EEFDE
+:80C70000E2F2A22E3D876F62F23737BFDBF329AC955A6FDFCCFE75F7AF25F3AEAFAFBDFBB8B88F89DB62F8DE9CCFCBEBA9F92E2EEFEFF9ACAEEFCFFFDCDC4FCDEDAE5CC95014C011503448450141821440234835810085145148135848131818411471480400000020022484148426638824842400482440A248819028F0D51B6018121043
+:80C78000A114114A11018AE41408881180041188800800101288042C05220000289021008066241B2823A24889188468828886C822822882601AAFF4062CF41124AD131F41B248F1112CA7241D64AF24D141B24A9961AF1419B54A3924AF3439252F147924D812F924484E914FA2C4815FA264154FA264196FA26459ACE44DD2A6F4912490
+:80C800006D421F49722CF2912483F49124A7161F48F26A111D24AB9619F64A9253F84A924B42AF2439242BB44F82D442FB24484CF9244AFF630C2E481F41F4261217C1AB1217C1272617C1667211EC6668C92B245F81F2428216F842A755E8345B842DB16F81F442A14D5A5CDBA7EC14D286E91DD2A7B498D214F4D8256B4296D8B6A468D3
+:80C88000EF32F59128C37691746EF19164C7161F41F22A841F41B64AB215929A4B438F4438348D343AF442B427834E844FA2F12DA80000000000004482280000000021800188000040014008000000004084040040080000F0F63B0011105641268804176457A2D012C141841E42456848411DC4238815084C0229463524220027248C2834
+:80C900003542214D22840024812F21C2421288239948188D84328C6C892140284114F4E6ECC0648E12142E1342244932112302118C024C1847324100CD32411822484D414484842F2164C81558842C52843292116C82514287441A04848D21318521E12804811250486249E188C2212CF86F26C0641724244D21442246D421D141541E6176
+:80C98000B92226681545D2141C94416788169618E0436434CA42C5282F2201918C542846F94A321853D4A402444C14BA2211FA132243D883E982C512874889237C1842A842ECE182816269FB37001214122714842302222814121445586284004C283342800244418141424D8850268A9214808812221142A81420444801A048008921489F
+:80CA0000042048043FDC0A0041281811857111643410022450128234150800222068140020041224442CA4252128244488808112A62110816888444888101854484308E07A0813147122C11259F4122822A512E41A014AA858484391338C22212242082E8C850448C48974213E4446B812E28241141444922570514691448504848A841C81
+:80CA80008145B31852A48CBE84848622C72841FB54101111267143E68142D12841F1823220C892481D1488A48D112800504882484840D8A484A441226943C21400149055111228418C23441191481068E88BC28C2832283800AFBF0B426012281211AC52414C1401424810B2136212002284228A424C01C1481C12448A4138444A52422663
+:80CB0000C226442C084354842120882C8859142B520046944444433C28413F4708B014624434604222004094214E224C29042416440428A564422A215812828422D08211B9122848CC421284821A04A441282E143D14E0810242405884806188A441182FF4044820A4124400444A11F88824808A04422220412811022C8194288212C01495
+:80CB800088534118F8211A40644117414482184280480428608886021A8C8158421E42E024F179DA00101202250818C4268461840012308214144008208442440211004800800100408484914280E42128B844018381042880048321F228AC803434D0124164C222414538288A62922CAC414A21C4A21604848B21444CE224C222264C6292
+:80CC000081112CE18861C48938881743582564411AC85486E484714622B4342881999252888981E441A4211829B84871146822AF2B0B006128250220A1144489810443081012C1150084004A18018012042C210110221158410020210227141018344882A186088287440048C9054825290242304211481144006081E048044788844C0446
+:80CC8000C571421424268128880446315811444008408862844528048100A02821C8200481A018124F510A22402406902844A0820080A88249028880C21228001914982444448A020010281A3282A0489604228290C64200109C3200490242244AB21909205324404484034014210241480022008184C13088400400431408482D4280081E
+:80CD0000820080082190822BC100A122459884844908007F4F0F84414815065280022488908224203412414634449044296821484381D828845184125052C4828C0410440444208108809281A98158848880044D882181FF2C0282212004410080A821008008008C4834816984048084A24886922824484430842A14624845222844482462
+:80CD80000C2004306844830400A648183442FF560E20946222C012119028304825D124845248612200844B422218502486C2C22481E012480484122001104808811842166441492104421846848182449442D047024912844501114423018C2228012C28845124880040084490288C08138449048B421A04822C082922043AA4342291A33C
+:80CE00006C828428E021228883440490A22247F480219218212526C4122C22013C62221E24002724873141292104801458A28014C218218465A2182110028011F664114041988222159842890C8841AC280A1A820A812F2703C42C914144998412218152B46041244C126482001C24120A208411948120C44423668214414284114984080C
+:80CE80008426842C628224448022082001894482944EF0F5D32034C48576435118382D254B11A915552215E24EC1868B68A41AD142B24841745C52881B1465944723F9441A82AFA53C844D4724D6AC45AC0811458468848F4708DD4C6A11F146C44AAA3570885824AE54C418C9A42285D84CC8185F9E064CF2323247114D246CE425E42159
+:80CF0000A522228D8E9F14AA23002FA4B864748C076F48A8464C3446E08474C8D464E242166A4836BEC83326C1256C4D23DE22283884AB488CF77C2C6A7188F2C2A28F88113A848EC81E82AF4EF81E288B8C492AF48C884F482C86F65221F02412D42B322E4263544517822581E21AE24A911265328647412D342B424B889CD48CF222896F
+:80CF80002E64CFC8C412A48F8644E164CC11ABE4228FD49472C591462C6E892D821E264D8451488AAAE18568221D5AA964346AC2184AB834B1C2E4C2C252629E42A3F6D556000080042002148200A04800A048000000008008000088808882080088602282260220482208820020085F180F244F91F23C2D6F52F2682816D344F22424A97E
+:80D00000D154F258583D232B5444C2AF62F22B294B227F9FF3242AFF9AFE4C488F81E1A554A6CFC6712FFD4C4C5DCF2E683FDAFE296A4F48DA98E441AD421F19A3222F41E182F225214AF2E1254AF44941AB939F1AF8EAC88B448DA88F86D68AF24C7E2BC4CFCEAADD6AE684A465EFB2052E264F53F73C3D45F5286C1F71F431321E32A941
+:80D08000F18D2C9FCFFF33312B764D844B48E9F43F3B4F62F2B3F14D4AFF985C84CFA1F54C5E4F24F4648675D764F447CF6FEFF7E3EF8FB2F684AC5E5C2FCDBD22F471D12EA62F69FD68E89F16F27C7C1F96FE1898BF1CB6FAF5F993EF8EBEC8F4C848EF8BF3EEE88FACB7D2F5E888FED86F8EF6E4A84AF75A5920F23761FFF27127F76F75
+:80D100002C6F71F136144F42921A1DA3BFC7FD23212B74448FCCF83A34BF9282F8D3194FA2F28BC9EFC6F6585C4FE445FA6CCCFFD6F44C485F19ED82F68FED8FF6B692DF26F414DEEAF49171416F4BF3CC44DF57B368F2F9354E429F34F472D63F16F25A38818D8ACFE6FE5EFCCD3EAF84F86C2C8BDDEFC2FA448C8F84F5E872E062F237B1
+:80D1800037F55F73BF86F657577F63F33416AB129FAAF2FBF83F13B342D744F8CECCEF47F73F3F4D86FF5DFD4C4E3FD8FC6468CF81F54C4E8FA4F4684EFFF6D4ACF49FD3AFAFF7EFEF8FE6F6DEFCAFE5F5D2D62F2EF4B1D18E862F6FFB4CC4DF57F37C7C5FDFFBD8D8BF1EFEFAD81F3FFB9AB88B888F8CFCB63C2F8FFFCCFEEFCD7D6CFC84
+:80D20000FCD4CFCEE68EFE48484FA5032A016B1210044901450222400244400444704804460487447048048504830483044200002284228480448204482484444800816044F03EC62018415341904122001B282400C082482922082E480028843022442442698822C2246048249084A084444286048221824280A84A60884A222804A8705A
+:80D2800048024D421F4152281F417248F21164A7261D6CAF14F18164AF14B981B24A3995AB944B4AAF34B9A4F442914F83D412F9A5481CF9A54A1CF8244A16F1265A96E1A26C592D5A9E242D4A1F49D222FC91248D821F49B24AF89124AB841F48F24A921F48F24A9219F24A9253F94A9343BA4A39A42F447924D842FBB448984FAAF4FD83
+:80D30000A7D0A4A46185F2112CA72617C185F2112C411E2CAD161E2CA93A152F247B35F84A8357814E3257832D117F8394925FA285F127C8127FA225F8235816D592E558D282F5112C2D5A1F49D4187511B44EC124AF14E1497242E1C1F242951FC1F24A214781AF143B34A324F3488436D842F3364889F124523FFE0800000000004004D4
+:80D380000000000010020028000000008480040000004004280000000014F09F666014122814A531114136223181C22B2140E231E4613A818C94264D182844904848230225E848A452004490226C0160210046C1851E8896081888128B41C7218482444BC1848C121478BA0B26F28422412118C14642714104008348988840941442508477
+:80D400004E8848284110C41481A18C329228264C02F0241821128A82118844251A482814A424429048200C850125076661272C4222C11543D423F3411413289C322E84811E814F227184817122C4186444428B43308224478149E8812692112644185822421E2E162281B211D414B888113984893188488F41A6422D48406C4D86CA2894D4
+:80D4800083F167454042141451188400000081704A22084D48424189E288046044224430482181290847222849010020088442962402200147812028044240045F2D0A214002229014400121828044034E12102A011285044082D2820421000012220020468881122448A2488800001288124C28012CF464AA4044032662218712867122CD
+:80D5000058A64A0829641816B848388851E8226217860048518D444149724439551024394E222D52148D14829666144484C6C2192B52264162C149948A2698AA49828802006F5409101112522250242890C2212924084A388247352E822628C44140041446322481852205206944A025114528B8E4518344818821181B28824C6124882652
+:80D58000828A2868481240F2E1991006802293291B1881B5048048E18441190848A0128982418814440C2D64471445014450821A12128201808481624417A92C26042548141898184C82810280F4AB67405142422800182502424C188852121825822884D9848496820084492108002344140426A818250283088A32484604C04424222145
+:80D60000CCB882011644144418022CF1A8612044221423144C082648445C32A800004C2242121122C34AB028F1881484824280325294C400874C230294181C8113C435281287160042D01881A4422B244391382F2409282200831102844641921112A0488008100888C4498408404214042C09222922244204122400224888218C08202120
+:80D68000C2888C48812A6888005FC60F13C422241CB248518489512A89522492A99182330C2728884CB2281934224C48E4A81448D848413484422B5828451238248210C228249C82D4148145A652893812AD4149892264C1899164818B2C4C41F2DBCE602244002400601448851101800180048CE41448A83400430225080065A2252242FC
+:80D700002E1244CD8292209818682282142800852299888244824A0A60829B171044C4284A410800104114018800884F819814100800214008331188081812008E48821008A3E852B89A022F51022180C28885221286526A45C884F0FEBA141410820250164A91123041304442421100881124415081308410080021004440519428124482
+:80D780002816081008985C014100881842828122BF320648190610A4125048420030128486088118008A051800100E801404284C01000044238448A82800288480021244169414812001CF2309F48054C140150800400428004C822814088C91AA4440A8A1002440088C84410C241604832911022F4482A28441818D148888840012882560
+:80D80000D448F825266028800216A21216420160214022083012000025280430141002254438422054C21841800144284244418800490110264802611048F86595801614324450249024301821301920721108810084100264803188150C4118291888423882000041441485521883110252204882128418328241FF24012321D22404210D
+:80D880001195A414400148211E624B490014160C001094128139182104C02443011800860118881001281860A924118118804988D284012CF443B9508284442200484008800425119848C124D04811040049044196D684246481490344004028423418840083088C030041C4C96282138882419112FE61C018800444844022218144051E92
+:80D9000024221604418B28902217412D1280038848D08401811C026081146884812449E1281208D042081C122C011220820123A1288F5B0315B18212726432142943D466311A95C1112D43A93483499A4169F184144788C1C417C18A15FA4626872136F28483458E41CE3622CB144450814B826F83711CF842864CF9542A2F82D826322A0A
+:80D98000368AD918913C448FE141F218142F61A1358B1987D945FAD8CD144F64E74274248604167641A8215800421E168931E8C185CC898959819A86215224D084D81C915899954421EB419E146428166658914024B812722245041CA184A3594437C6CB81701C98A42E29A762884D91ABE87F3E43321245CB288D35C45792E7119B44A090
+:80DA0000112F441411B154DC82E591213A182F4126512AE11658414054C284271487C4CB812688E281B41C81816C982818CF8171ACB889B89972E8FC11AE8B384538131286B886E8423AA243D88458C660439FC30642223028822A0100200100922043214AA142142A44A1421448000000008008004A084A094E1100820020080048A0483E
+:80DA8000B0CB42D31144D2A8F23A3AAB3315FB2F6DD5DF8AD131D18AF4595BA55875EF4CF168273F12F331333F1BF114277F15F6253CDFC1F15C6F7F14D2FDF4323CDFF4B446E42454247E6A6B9BCFE27216546477581F527228F45C444F61F93A289FFEF77B71DF6BB383FA7862AFA9D173F147554721EF81E9237312F8AC2E6F4AFE5446
+:80DB00005C4F454DF274CB345F34D4E664222F42F2282415FC6D6D9FD57118D8B9D1CAF559598F84F24F9DABB4DF64D19EF13CA6EF83F91427FF11F27D74DFE7F7587B3F14F22DFD4F41F145455FD4E4C4F414149FF7F6B6A4CFF372125C643F1CF421A58742CF45F4D456EB7D9FFAF37EF4CF6FF7C2E48F23FB1ABAFD1DDFD5F71C82EB4B
+:80DB800091CF6BFB968CCFEAF3B6F4CFC5F5C4DE8D3A2FCB41F321651F72F627237F31F31F115FF2F227659FF1F11A181F21F14B4C8FA5F51A785D47EFCD55F8BF91F1381A6F49F3151E6F13D192F164745F44F52C49CD8E7FD7771CFE1E488FE554687E6BEF8BFB6C6E67C145F687C5CFF2F23E366FC4F454DC8FC1F3B9ADCF46F5E544A6
+:80DC00009FC9B972FF9ABABFB1F1575D4FA9B192B936F29688CFCAF3DC946FC9CD9C8FACFDE724345F34F42F277F32F23F1DDF31F9373FFFF6F65B1FAF81F1191ABFA1F15B5BBF95F5DFDDAF8FFD1516EF93F3BD97EF89FB151EEF97F53839CFC1D1EDF12E4FEFE3F25F5FF7F17F75F45A4EAF61F17A6FEFCBFB7D7E6F4151643F18FC2D45
+:80DC8000AFEF63F31E1AEFE9F99EB6BF7FFE2EBE77EABF8FFF3AB8AFA1F91F1DCFC7F51C96AFC1F93E2C2FABF8AA1EEF4FF91C5C4FC8F96C6C1F3F0F450121901690148C040000404408164824113811814014514818444911882114044160129014844941382484608824164865884416C824D048220882AF95082A012220122124010093
+:80DD00008C048A2404200800484448422004C0482022014420081084A4848A028AA684282001008220810885047B94E022F4112487221FC17268F2112CAF24D141B24AD141F64A9319F24A9353B84A39A4AF1439A42F14F9A4482D914F8AC4914FA2C4816FA264116FA264192FA264592DCA9E24ACF491242CF491248D821F497248F29180
+:80DD800024AF24F89124AF24F91124AF24B981B24A19B54A39A4AF2439242F24792498924F8A84F9A44A8FD1052FA2F41144453311467311642615DC38C124AF74E841F248B3518F343221AF643825AD1253D242F926482D915F8295886F826C117F82247D22685D65FB98212FA27481DCA2F411646D421FC9724AF2112487244C7248C384
+:80DE00002487741F41B24812D52AB934F44A8243F248924782986F8394823E4A1DBA4028088004000040040000000010024A010000001441400848000000004400180000005012B0210724248411CC82E282E1E44298284218904112898402D0C281130C401804484084022A5822581AB422C11226148241A4414C3A1421188C64412181FF
+:80DE8000249084228A341849B424F87E2424444369628429D482018021B8A861A8A48195028698122D18102232144924022A45E42814D84825C154584CD21248048112E6220148848B7822100A28422827844785008712816EE85042278CA312D84276323838CF2402814F841B382A111611C2A2182C41D82291284961458143A8614450A8
+:80DF0000823E4419C12423F14A143056242682213214484348DE84A3122E42EC018C0228C116C8C289716439B8DFEB056041451211080089A1282049C248818C1408A143811204800280241C1408D248282DD12818C4A049211262124A0881006024B042B824040041CF4E0723A22180022883421808850188480064000043028444000082
+:80DF8000200144400440010063044210A249A3A4482C082C080000892872940B419026812C6214543816A234304830194724459228284E8CE9442414883A482B248722484DD24394448594188D14868201255484CF21140C4C552447888618886181488F28A1422E8843CCA416BC84974483E81D0729E22142440829440C89811449088C75
+:80E00000215442C382628CC420423888C7245028E0449142484008822110426441C449341441001220210C2CB22888888AE148C3448CF2F176100428282219C2212E1824322084C84141502210944241430422A042284888414941CC14C91124011514C84A10822474863A88C6385A4E88248F28A184C0444145886488881E8700A0241135
+:80E080004180D2246294281678410233422842121492687D182B81844046A8482861C48634488911284202644D98004285248174883428A38B48044C348418608C8721C44B81AFEB01684C21941A2800001811E088A1921A14248123480427C24B42004A622946648230131341024A21881108210023044D884C8121160C18C03200122C47
+:80E100008465218F67032C0181002100109842120000882001220083840240084228449014414A02001072888421082A0480048642082810220289D65C41A134212648180420D281C42293E114E12881896142924CA3184A12EBC21968846C12887544588283E418D348C51A444CA54A10584221B08C3414884CBC98D628E181441C245843
+:80E1800042AE163820C95849F428846FBD0D604124136122204214628142101A314840022145C834E04402A04230224C522444008C8142221164892440C24818848082A84820314800304A228981749B011141001512D4419444164898DA20088AC4484800448C1C0448A5E284028444128190822188481A18A481122B84D0424894428C74
+:80E20000248158824C0200CC2809828314D2BB0E0080044212904241C0120049011C51821800842A49984460854424602820A1145041C018288304A140118858826011AF14014988292492C23084811FEF0D428C121C216414C1000033815614812048E4A8642220C44443223882242AB112C848128D44421012120400422810086081A1FA
+:80E28000CE144004883088188044F68418244598422C962C4112219B2410018140024120111338111332230064806424241121448100256221202161249062412146A4218182224784812D18444869044837E714824160242441160260218882882CB88404409882169218188C415484647088220882188D8283388249A981832888388873
+:80E300008889282808242200C1836241000000BE44C04300282240A1211F62440400182440149425112826143221B021041B4283C2121F440180044861418421A014421883744462484A084B2520044220B1888488A4AAC028C0427041082844188E48001022315127318248400550282281660854C2814A0812004012442B53851264C0A5
+:80E3800081228543412905484C69848850A4825FD1052912181C91221F819262211D24B8D02288C1C49014A08326B228218244060020812428348C696148122308828C62487082A4252B28442100412968221284224346480470D70D45982148C441001651A2488341C4421A12185184D08461546415180B19031DA4256482450860141033
+:80E4000044081C8401452851848904818634140046082A04001052481D56D01136A489D28C92434721703C068FC15C828D82B012D142FC42191E4418672C33C116DFD6F4AC58697282952221EFCCF364412B141D8A42DE1442167682E24921C13A53F9182886F48E2CCFC6D2A414D482082FB5E148F428488C64A41AE34288C4448A548A88
+:80E480007FF1044726C4A41754CF34F241342FF582D75AC7239E922F11E128CD82CF819144471847231FC3EC8234E6181F5162A64724CD828D573AB4827B1CF8DA1486DC86748CA288465424CB18AB888D12CEC4FF21E624F58212AD84AD8ACAF3699219B81AE84433EE8BD24FC878DCB8C8F18488E044FCA7193425946B45F4224226D4CC
+:80E5000092B42575437175BAC69148822B244F58247C11D42BF18A8C8D31CD379F91820285F528286E4D6E283485EE28CC41EF21CC822F811DF214C129C88F36C4C82D124E981AC8C1421B4C87212FC9524C5F9613C41443B948C4621A3842CFE458243F4805004001144814008200800484200800000000888008001001111041126122A6
+:80E5800013612211002412208102200882F0DB72F045663D27AFA2F22828DF82B278B1119317EF86B77EAC1188EAF94694CFCCD975D177F127AF6F65F27F3FFF93F26C2C5FD6F66D6FDD6D9FB2D251F22D2D55718D5FAEA7A89EC48EC677683F2CFC92958F33FB9B9DCF81F93FAD9FDDF8978D9BCCFF1C5899AF8AFAD3C97F44F5C58DCF27
+:80E60000A3B326E245E981F16C2C8F84B548C488CD4A6F9D42F243473FF25622FF82F2696ABB653B457E31EF97F77EE4CFE9E129E94EFBC684CFEDD977D577D177F9D6166746EFC2F27E3DDFD6F67C7E5D6D2D9A1F54F72E7E7F75FCDD4FEFADF5CF4DAF8DDD72FD9F9C3F2CFCC2CF6F3BFB9FDFFF98FCBEFE8FC9F9CF8D3F4CF4868664FE
+:80E680003F1FFED2C87D1DFF97F46C6AEB264F4DF8DCC8CFC6FEC8D8EF48F44CC8CD1AA7F81455D757542885F16B688F37956779B476B776FC189CAFA8B8C2FF9694CF4D5D6DFD1FDF73FA57E7FFB3F33F69FFD7F53D3D9D1BBF92F649CF1F77F675455F78F18F17FF11F99A139EC4DEC66FFCFCC6C36F29FCBBA2AFEAFBCF99EF4FFBCACC
+:80E7000088BFAEFFDCF1EB24AFE4F4AABA3F15FF4757DFDCF9686EAB55EEE48F8FFDEC2CCFCFF74A448E8CCD5ECFCE46F16567FF525228F5F56B6ABF15F67B6A9FB6F23F79EFA6FE8A9C2F29B9C6FF8286EF6DFD1B47FFD1F1199F7F7DFD363A6F13F77975DFD6F64C5A3D412FE5F471776FE7F5B7F7DFFDF59FD1CFFCF4DECEBFEDFCD6A1
+:80E78000DF6F7CFC9EC6FF2BFAFFBFEF8CFCFEFEFFDAFAFFBEEF5FFFE6E6BF3CFCFBFB2F8DFD879FFFDDFD7C7EEB774F4EFEFCD8CFC6FEFCFCCF4CF4C4C8CFECEC3B076501634258268CD424C148A0412416081A44F4114844128D261A34481361445048218594128B2429314869314821426D119012846D1148450145E188446388148E8E
+:80E800004854484C6289818A14286844829B45E01A0400469121A02185C12488A08480082482461244048126022A0449448448C488122C28088226018D82A0948658228287248218122D8426280488804208942F2E0A2CF4112485F2112487141F41724AD141F64A111F48F24A9119F64A9151AF14B9A4F44A914B4A2F1479A4D812F9A499
+:80E88000481CF9A44A1CF8244A16F1244A96E1A26C59ACEC49C24A1F49C2421F4952281F497248F29124A7261F48F26A121D24AB9419F24A9253B14A39A4AF2439242F247BA498924F8A84F9244A8FDE032CE44156281E2483E441324A1D24AF24F181248D941D24AF249B258D9243FA421153BA42798598326F88D412FBA55A185FA2AC8A
+:80E90000815FA224F921CA16C4CB9E254D4A9E2CBCE449D63CB49132481749A3F4812483D441F24A9415B44A1BB5483924A324E2447924E844F82648184FA2D57B0100000000004004280000000021800100000014008480040000004004280000000000CF2108460428193141114E122416182885280183446E884152A4C0186082200294
+:80E980008426082546C41824922488121211908890A81604844283A44121002281B0140AC1EF9A0C308284204142381CF045824068884E1469880818A18AA62C438848362C246A81C4848C8AE884088442223810B44468A44AC148128462981084E824314880944488E01201BFB301472442896211581123711488314C6981A88243C58458
+:80EA0000862C8861818562284B81888721E0288282D4480A29D8C124411808230D4C4185A4414038144964896245E824092D4800812CE849827318F4176B000040018724103A8142848901A304A14123A44A4A420843D248025284E0824894828124D2222818A08484A9C8482A49280280041A04A024490400D08D0A008002844901A04828
+:80EA80008306428C044004001848002848282004D0224894C4909228002130244843648820210429810412009843826282EF8B0A23247226581A19941182871274287082186121C186088820084189257248044D4244CDB24A226144422229246211618485642440287944A2482028081084B22C2418846188E06702803226359841148213
+:80EB0000155821822CC4885028414084088200008924E42412F444122870C234424448A2131252288442618498482908C8001024A1428286A4128318F878CB3042408802833114284462260846A141848C08002091448385C22440048C8A8401446E82901218444004224846348C42126028184280120C12412828AFFB0D2422422141A188
+:80EB80001604A122832893821302282F4E2168880029022C82B42C612826382C444B42808462824684228442C414C80060424A3838218C34442880480846A2411AF228CB0030642E142244100A2444813022840080121C72827424088021482208809484408898422818004120C1924420C21480311418A0124C5428E021F46F5700181227
+:80EC000000242841304400408A04D02441842408704894848022048400200CC0140000304888441281800483A84881484432382281AFD60B80C224259424C144C18149928A8D1240092692D44522CA44218A42DC286248C424267884082014240C4227432812442018A881981AE2846881694198881220F428143A947838A4674A40228117
+:80EC8000A12124F02212108204282C08A3042892854488188492444222282C8452844E24202C8292840028604143840444210048424B414EA41688084420A4421F1909448C11845224288481000021254808814542048841A400800280062004804224128404008843E24104528002488460888400E03A08902481420030141014184268D6
+:80ED00004112240081444222882C0449444206844558422D2442426022E02C02A6C444AA0400320044480080062248848F780CD0284404002012221402248449528464844228200428202894C288248200C04400000010040010041A84988C41424324112421F2BFF960C1214841416410C842801408100212288800122321816422800172
+:80ED8000008C848411C84A812C4188088084440818F01428604200208168852112FF78030010184246082860420010422202282882414C0420014247228A84444802002602464284442401520042000042418288C042F0DA3700414004814721104402440048208168684A6841101208898212B88A0441449028504249848628848885C805
+:80EE0000244488004280018931288122C1234274D50D260828218C1A82C2244244582B24A02118188418124162848982911A42E10020028584048C02442001A880084A020030448C438411C44850C22A74E40223A929841A82A12122004088141804450827A2424228228002418C34248D4283B242A8828C12820221902243F24422801267
+:80EE8000A424222C0252208222021A22A243C551825F1E082658222A0423024124458202442128A432448684424226B51226049084604218224E121422614E1C81484182848A42AC521218C48A81A2419044424D4860253012D0530B22876AE742482612F43828169442448B442184857218E8816181902C49F422224E64CF8CE227C54822
+:80EF00001A66C42F44F486C64E4289F84A4C26A82241582F62E24362621E444F42FC62C42AA72C4D1460832B1487454AC1244F444128E6C8E38CE881F22C135897E5D022F284482847638A632221ED284A12D422932881412D1285762A86E84279228455843A15026CB824226886A7882AB424D9283652EC6424C784214B4823A62C43E841
+:80EF8000888831582A8593C4481AB424B8A8B24494484382166C5122EF3C0B4F41B112439A28E5F41A2445642245F6422245E82454222FC13164439214EFEAB3C2A4A44F4CA813C028214786AD4247A389A2326F4C427246C44A4AF2242440B24ABA8448A82147444F42AC625EA42081C1244AC5488F42D1C4B158FC38126E544E48ED2813
+:80F00000CFAD0300008400184818000000008E486081423048B048028305522025325820051289A84189889488488148814880049A84A2410000422F88036F43B216E321F32A384BB34D24CFC2F22C3A6F47F776762B668FA606CD142B55AB331A7124F4646CCFEEFEAAEC4F43E383E1A2F662622B644FA1E1A5A1754FEFFEAE9EAFAAFF0D
+:80F08000725C4E4A6D144E163E188FA2F2BC3E8FC5F188262FC7E58D55884B118E88ACB3C2FD4C4C4D442E248F86F62C288D48CF49FBF8E889C45845F43BC8F036242B73EFA3F32C3ACFA3FB3E3CCFE2F22E3A6F45F57676EFC6F64A48AF22B21AE185F73A38CF43F33EB42FEEFEAAEEAFCAFE3674CF47F73822AFA6F65AEAE97648F2D6D4
+:80F10000D4CFEBFEEEFEFF9AFB78148F35F5265E2F44B116F532324F4A72C8FC98762FCCE4C9F5D818CF85E5C9C91AAF8EFB44544F44E643E1C3F354148F85F5BCBC8F8FFE4E4C4D484D546F63016F63F336762E222B324B33CF82F22E2EEF23F266744F46E647E726D288F21C1C2B556F23F31A1A6F6AFA6E244FE6F6B2F4EFC6F3343C1A
+:80F180008FA2B742F448EA6D2ACFA4F4D8EA6FEEFFA8AAAF3BF6646ECFE155C67E662E643E32AE228BE64FAAF272B4CB7F6EE48FC3E14EFF28322BFDCF85B414F47434CF86F63C388D4C4F47F27CEC2B454FC5D544F14E8EF036266F63F32E2ACFE2F33C3AEFC3D3EEF23E2E6D166F26F67A7EAFA454AAEFE1F172586FA3F32E3C4F63FB02
+:80F20000EAE26FEEFEB2D4CFC7F77C748FA6F74A48CD2EE9F65C5AEFCDFCECFE8FAEFEFE63EF67F74F4E6F62F452466F61F12626E7CAAF4FFFB47E2F4CFCDC54CFCFFB5454DAFD1812AF8DBD54B574F4F4B44F4FFF74348FC5F5EC2CCFCEFE7C6C4F85F44C4CAF93026110460800842602248424124416C822124440244104282110B248FD
+:80F2800012922861302210042302611024312400001A4424484458489281124490D300282A6181181E2424CC22C24483820412004088AB42882A24044A2202488AA2C28684A4242004282028062AA84880248402488084822404284828F05131C0421F4152281F4132481F41324A1F41B24AF11164AB9419B24A19B54A3924AF1439A42F62
+:80F3000014F924482F14F9A4484E914FA2E414F8244A5E214FA2651D2E5AD6E5A2E54DC25A1F4DC2521F49D228F191248B941F49B64AF98164AB941D64AB9419B64A9945AB944B4AAB944B422B944F8294924F8284F9244AFFF7072CF4116489F4112427241F4132481D24A11D64AF44D841B64A1BD52AA9428F5439A42D934F8AF4421127
+:80F380006F8AF44A114F22F548812EC28F54EA2244E5A26854BC7CC8D524F4C12C2D421FC8562C1B688B841F48B64AF88164AB941F48F64A141F48963851AB944B4AA3B424B442FA24482D946F8294984D127F430286280800000000440000000000218001000000140084000000000044000000000025016FDF0560221D282081A221223E
+:80F4000023428291224608128B148CC4C82291A3C614424168902845822284AA84832424880444412B4A2084B8529846848289E48805808184D48402848B2483F23EFE2021096F819248008749428A21A48140880823180444418C042A04424158490842184430422D348001184189122882820682A041124841381A848141C184CF660B26
+:80F4800012DAD22A62434E188052482964294721822A1428E18491C2C1502D66B61C84B41422A648261C644A482A38418446D22884223414442B2C444E2888282F4472248868825212A0144122664442F82841C3F162B80040410828189A2202421A12088810A8482810088004002C052084694420985400800140B8420942A084862824F9
+:80F5000001484A6181181220FA6FF80010A82100008100001008002003000048A0420080248884822481014220044230481A2404208108001800F088B800000000858204C8228308528381098800414A2124180444888004400200004006C8C0441200424890488005808228D2160900A0210000A304422886088B14128A01821210042012
+:80F5800008202208420080021818004421480089A1140020C18800002888283F58010081000084008800008100800220850549044904004888482148480042202428C44442208424044280051200185F770341100800421084518240020016A41880210118220000001604004200002A440818800100521212C01818202104F01D6E00282B
+:80F6000016048430288002122001400887241A0C4828484220A442482842484280084A011008004242800C48814825A442800200007F2306220000898141018014088189012200484400000044890122800120020000284400808101000048808443082FFE054922321C4088C1581444244884104248E841F2884248581A04122800224100
+:80F680008B124218481282A061008162842841008212188B41182162181A04181A420897FD000000842220229118804188012081094422424880248404E044020042000000A04142124220044243018428208404F02ED800000000840018000010080020010000000000200400004818000020041848421A040000F0727C0000000000126C
+:80F7000010088301800100800448484842484A81041220048001002084210180054842800148582001F06A29000000000000001200840000528005800452420000001A040042488001200100004A01000018E7FC508883040000848031148122840018004002A0111A250D42003011203448A0444A24042021011024A442481A8424054803
+:80F780001A4482011AF18A95000000000080011200800100000000480000800100000000124280011800808404480000DFA907848C24840400004014C4242228000020542290124A812988080014111484818442480000124094444C228202000050229012AF2706848004000018004C0138200100004221A01180088004400140288404E8
+:80F80000000000C014481A22840120040021F04E9100000000000000000020010080054200000000004A04000000000000800112000018BF110C000000000012008001000000002004808404420000000000001200200400000000F0E9BC00814242000000101C2422020000404222011282820000111190188B442004000012484149A198
+:80F880001222004842002424121F540B8484484800002001444428282001000023148281818C08004041018484484A0400000016448482820480010021213F5C030000008420010080010020018004484800420000000000000012120080044880010000007F1809000000800100000000002004000000000000000000000020010018007E
+:80F90000004800002742000000100800200100A0118001200480A4444248200480010000000000121258181A0420A1441A210400F01CF800000000181280112801200120014848484242800480044800000000001812184212004A0158800400002EF50000000080812101A0111800002004800400200400002001000020810518A0451870
+:80F9800048520042480000DF7E096722212AB1120129012C5122881E1397118A699987818F18F44848D09114815489814A7448D44484E242024C02284514A4226723212AB112A1812B99C0922582E8317111A1D8967918A8484E48424E48805488814AF4919EF02222241812122180512229C8191B1119E98918D8183448429415814458FC
+:80FA000088484E44414B6422224480425444382F22428221A181232988512229C8111B1119E98918984842428480445888482F94070000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000DD
+:80FA8000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000A8
+:80FB00000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000027
+:80FB800000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000A7
+:80FC0000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000026
+:80FC80000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000A6
+:80FD000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000025
+:80FD8000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40FA5
+:80FE00000000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FF17
+:80FE8000E40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000000000000000000000000000A3
+:80FF000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000000000023
+:80FF8000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000000000000000000000000A3
:020000040001F9
-:80000000100220140812412084821108000000F0D5C40000008400000022214A821102420000008400208134184002400240080000000020444804420040F195B30000480000000080020010022181210022502860260000004002100800904820020000002001F0812E00401868811884848484000000001002000000400A842400200225
-:80008000222C2402808101122A2121311812328C230138A021F0B7B3000000A14825284188041A0481901828801218024008001284124004C022240000840000002822128218800120028B1240084800002004184480024002000021808181080081400140082A04200316080044808318088428802211029F8205A0521A113818856884A6
-:80010000814A1188014A01800100008400814224502A2B4125E8A712022428487042028311D88801125216A84218C81A312889A148A018E01321D4870A124028021A51288485180221008924341A224862858A0200A185488841A81440C4222121212B22006082A012188D14811A018F8293481A6181181AA6221A03F05EB48001814AC1B3
-:800180001A00008442201222072C413252251212084A41E882018724167828F2184280210226424282D18AC22848124840880316246184A84B2228420028285F860A122001100221100221104218020000004002000080022880022880020028800200000032200322F0D9FBA0115AA111581E128B11AF845422AF2515A255242F2715F294
-:8002000048685E52AF81F122222B446E6221001652222A4352221E12AFA6F652187E3267422E222F22F222222F26F222222F2214A8118382A213224AA42200CABE68B6B85B446AA4662A83A2321AF257C8A0111E488F81A1111E128B112B44A5B25255A86F6555222F4547528A4E42AF81F122222F24F46262255A82C01225F2A8AAA5D8D2
-:80028000A8E8A1E1A7F7525ABFB7F726242E23AD2A2F22D2A2F622222E22AF82E2817128C8382AA112CF45B528A3311AF1C8F88B468BBAC5AC566AE422B322A3322B33DFBC0B1AA1418F81D188F118182B118FA545B258055E5625B252074E422B558FA1F122222F24F42222A5588A80518AAF824A5AA21E127E722FA5F5727365F62222EB
-:800300002D2A2F22D222F6222224AB228B118392281AA3118FC6F6181828F0D8D86AB6B8FB24142AA7522A32122A83F11994A011818F81A1118F81F11A188FA555288FA5558A5E54F05452214E422B558FA1F122222F24F4626221A50850822FA21A7288FA181A8FA7F7424AAFB77726B62352A22B22A5F2222226B22AB2383328898383D9
-:80038000F1787C181AA1118F8EA9178BBACFC2A1664AA5222B312E32388FFE06000024844008842400001A04004881001008812181184200002110024008842001160812E08104000012006F5502820000122C01240000502200502200000021400224C0120000400222000000000000A0240000146E3DE022F511248F22F111248B141F77
-:8004000041324A1D24AB141D24AB9419B24A3915AB9443F24A9143F3429147822D914F82E414FB244A4E814FA264154FA264192E4A96C54A9E24ACF591242CF4912485F291248B141F49324A1F48B64AD141B64A9921AB9459F44A9443B24A39A42BB4478A29FB24484AFB244ADF9E082E4A1F41E62274113C481F41324A1F41B64AF11113
-:8004800064AF44F91164A9BA15B64A7924F8429347814EA347821CFB26482F14FB245A4E914FA2E8157A246A1D848F59D236E419C25A1FC9C24A1F49D628F481248B141F48B22AF19144A3D641F46A941D44AB941B68AF4431A42B14B6F84214478B29F926482B944FA2E1970E8400000000004400000000002100800800001400840000FD
-:8005000000000000000000001002CFCF040000812200848001002508240000000010420810280400000000813281000010080082000028EF6C0EA018228054220040028281830824008911220400290200244221842188290120024121008A0100840000304882D82854448B3E004A01304821008424412012180221401862240012218291
-:800580004048022578410A30182004002180210141200200008C084E122820D1E10A00220028210080211828180824800100002824008004002C08002210048128890800811008004282884034243DEC40010024004042280434840024844200000021400884100400004140024111260222004002004C22420400BF2E0F23221243120160
-:8006000016831428140100248184489022000000244062412C81221424120228284C021042248AA48280088A422228080080F8C9912428281150123011488064140000A181212002004002100A16682126844404211004490224144D22A84AA228002008214B82224400B03F0A112400244002A481001512080089642400000000002504D4
-:8006800000800220224202410000008224282008000082BBCE0025422403142200241181822CC8642C08223012100200820012400441CA01442305412142004002412A1408440000450226C82E6F9D0B844200220025820410210281002410141202241282404242020000200428901141000049221204408101182400F023D9000011105C
-:8007000002182440622190420084A1821400008400220000984490824100E0420880020000A01433094B4228204404277A14101224814201244221100246924C2C48C8228865110200A1002642421204184B1C40140243024B1E440000285084001A08800142C1811F5C030021194202262201501217812D828200248420010000002001DE
-:80078000008604908216041012012002212004B0141422E1442242042843F2F8F20011114200601400481100288502002410020000824004442D820041410000001824200800004C4284624220024F7B0B00200211002501000014200A21822028028642220222E026086024424280042A48048008241044048084241224248208EF3807A9
-:8008000010021440020011400284214A082008000021820040420444824424004904240082204102004421882140128412F2796B2024130111002211422918B82198211B848012088288E0288248022842604446020000008228290443082D94C0442229121292242120210120F6461360291224004250210082828008C012A0124822003D
-:8008800020020000412E8200805224008800002420080086040088824840E1CC094042081043914230231421004800304200002008250200284424002410441444044044444214821802208292444C12C484F012EB00114008000000288A0482A048200842804402484246A2422C0448C84A826C4480020022A012482200002C84243444BA
-:80090000800140F4FB9600004062241092182304190814204402008800880010022028182408000041242041846141008280186428200422009F3F038C4182141121420140424114830282002880022180034A084200224621022668212E4288242082249282224490622821504220031082F29A41003F1841B2210429541127122434334A
-:80098000D8318AD211886A248A13BAC2A8880028242CD222EC26022A56446D622348924243E8242641064748800260682C7182C2242C9C224F4438448AB864A2174F4401471A49F256F7A015321481141425B2414411821C78424182848C08602428A04A82230829A484C042882E8263ACAA2147422524624C2C5844233214AE324B9443C2
-:800A0000A284240086D262E42242D4442A33242C08CF7D0C2424B11415F2412240921B1B641423B8811878C161886642A232A0CA234882A882002D424242E6D444C6C4424A0445922249A822272480FC148423B112022127482421226F44148284DA428622F6B28A002541480146024603815018501810284222022A042A042A0423022263
-:800A800030244A928628882821288062242842284F2488A284E024086C082C88848804003F310CF011128FA111B3C1B46126F441428F85F5E1E2AF88F8A92AB7881BCC4E484E687AD5A8A2FD6A26AAEECAAEEE2B8A6AA6644E622B466AD64222F2A4624AA68A624F63C32267426E444F46B44226AF5E6BFE2B7DAAB882BC82BC82B2C4BCB3
-:800B0000A2F686842B489ED14B374D648A58442F9207243F95E521D112642C6E622B443B44BF81B5E2FE86862F32728AFCC9C81F8AEE82F658F82E222B9BEAA46C2BCEAAE82BB182EA2EBD62F462622B646E462F46F441672F48E61AF4A8A82CF2167C47626F4AD644F226242B467AC2349EB6FED4EA8EEC28ACEE4F2ABA86F884868AFCAA
-:800B800094D44F4FFA26644F4AFA1414DF930B3E223F23F72123BF8232413B663F12F263632F15F5E9EA35F7A3A23BA89F94E414B448A475A5AA576AA464232AEA2AF1C2E22E8266E224B44276647266C6276D662AE484A4641E76476265C4262423A6D88EB46F49FB32162BCC29BAC258226F4CFC62646BCE29F434544B7367444F44F41D
-:800C0000445457E2E023F33B718FA2F26B2915F261633F16B263B613F5E9EB35F7AB2BFF88B841B4A19C288F87D522B212A344A2CAA46C2CB162E421B842F642622B464E462F4CE676F4824419E686F46442EF61D166F2E684474A6F46B442A25AAE142F6DFDD2722F2A18F2C2822B4E4F2ABAC6F4E6E62F48F4F4F54F43F764244F46F6A4
-:800C80006474878A80012501144002148648424841088440088A242408824220044200490829080061D02408002CA84100240048648022C1248200A503200100112100135822800846012C0820080024001002450200004014044100124100100224004120C2A44120F225AFC0421F41523A1F417248F31124A7241D24AF14D141B24A99D6
-:800D000061AF3419F54A9343F24AB343F242B347822DB14F82C4B14FA2C4A14FA2E411F2264A9E214FA2E459F2244A9E246FA2FC91242F22F49124A7221F497268F29124E3F68124EF26D141B26A9921AF2419F54A9643F24AB643B242F924482B944F8284F9A44AEF860627821F417422E3C1746A731174687211746251C12F6249DC3289
-:800D8000DB85E2347134D8383A344E2347821CFB26482F14FB245A1CFB24C81E216F82EC19F2264ADE254FB2E41DF2264A1F85F2224A1F48B62EF59124E7261F49366E1F48F66E1219F268941D64AF249B618F643924AF64BB2484E982F442942D482F44E3A2F197726088820000000040042800000000004C0100000014008480040000F9
-:800E00000000800200000040015D7B144218C02810A11240226881111001A084212008002400000041400232C024883024004321028200008062422008A084F06FAC8033818612012D22410024008A442204123042800882200821002488400429082948C284482412881014024880189482803844C24414417F5F4781A61C82934282F218
-:800E80001224002C381414E21522048E521082C88220283182820000881124B01A48B264084CCC6410B2848112140462800829C22488422C1CC44143F13737801141021001400281000000200400004002002444400428002C0800180090820000418800430880088FC90200000022E02201210000000082A800002400004224200222203A
-:800F0000420420048002000000000000F0DCE79062805928282041022052124840022481002048048200401284220282604824000080382412002008A20022484880042F1A4E82061281212042821142422104002484802822180400005042222C020041004400002228000020022022240448F01CB2002008222001222428000021000041
-:800F80008800800821002004200A8A022902004288441800200882000000005FE50F10C82818000000002200002840022100A6220800000000231C026A3848C248202802411A0438448001202804281FFC0E1088D44802C022002290222214909229084100210020082008612062442828843046804134C244801404802208280041004C81
-:80100000F4DE4B800100812180922200240000C012008A0410040000E028044400100400442002001800904A8800288002B0A20212C0288D34850270220228902221144082C8124100006028008008490C436244284A021064844A48B4424804480020F1428C823880024A02482FBE0F000000222002000024922002B042081084020040F3
-:80108000022100D0224844A22860414228882820A114000000C0840043F2BE9700004042C2224002488124884622C2220000282C4282D62282228802282002222100002800204424042042140420240400B7A940024008408804108228C4686084212A8884822424A868004222830420022420028028024828820012418C2681C5589A821E
-:801100002201492602EF890D00211008008100001002400200008004008422000000229022800830442E4442488004484481424800002FC208E08104840020D22222024008848086048100298228228422088100008800820000206881C0241AE481C2482228481AA2210000CB1700421002000082200C8248824282201802000000C08243
-:80118000800800000080040000800468000020220422FEC600002824836222008502702282460224242A04A2908280984200218022028830A20082228260881004808202C400200200F0964F200484002C448802428420443822842140282424242404800422200442282024C8284200E2122A21A812920016882825A31482A01A28F0BD62
-:80120000F720682A000000800800000000002100000080082C08001002004200440000002002000018F04F464098121240180824836282484C448802820028812830429012800800001422234888240242842218221222C4121A0284844800381221F0D46840B288848112F84A22842F221272889A4AC28121212B6850228C7448488206F7
-:80128000C82D4230628A382880A422206A22288283BA4288A2842A22B2A4012A6181448F8514A8651E3812382A28A21500DFD7033092818508848190282BA280EC84F488CA4E488D8A424A2A86BA2206AA1422820224848A0A8682C42220220400228081BA7C0C626A84E18555448B448B76425A074CA822D03703484E322502A4F02222AB
-:8013000048262A24447822226422F022628229024A28A4A4CE224ABA428486A22485A2228822B082F882422228A2628E48CA34984CC4144C86AD11A0228D884742823A044AA36218223F740E10420860246024C0828488C082C082222C288228022230A220022A24A8428A828492422888288168812889A821C9A8218908884024810888AD
-:801380001A842881F88D75A0552B2285FA2A288D886A96424821CE4286C8C22F88AC48AB4C8B822BECAAF2EA4887A22BECEAAE46EEC2E86A26E622B4CAFAE82223EA2CB6E2EE2EACA84E622BAA228D688F8CBE687628F8D8688F8DEB4EEB8EE885E288B818F118588FCBF958788F8DA55C5E118AAD8D9A085FAD095E526E2A85FA6A288F79
-:80140000A4E422C2422CB448D42AF8848CCE42AFE2EE24EC2CEC2AE226EC24FEC8E88FAE3E622BAC4AA6772B462BF4686EE223EE24BAC2FE61C323E218FA2A282F26742288F268688F8EBCA888A2668FC7F5684C4E6CEEF88F88EA81F51818CF83F3FCD8DAA54C1BDD8EC22B151229F1D9D5E021F1326224AB2285A822A52814E224DCCA25
-:80148000E42CD48AAEC42B448AB42288DA8AE228B862B4C2AAEC8ED22A88AA242CF4AA488DAA2B642E832B8A8EA2CEC826B2A2DC88A2888BCE6E48CAAE5C4BDFCFC7E544B6C8EC81B298F898984FCBD88CA7914AA4CC5AB112A5118AF9C651E021F1386285B22262A82F2656AA2F24B242F48A22AFCCE424FC466A2F2CF4CA42AF22FC426B
-:80150000622728AF8E7428BAC2AA8CEAEC2EFD82A223A142EE42AD6887A823EA3CB642F4A1822FACFE82A2AB888F8AA8AC8BECCE88EAFCD8F88FCDEF4DAD468B648F88E989F99888CF83F2ECD87AA9446AA59D2BDB16A2888D8300000048C048A048800486088E48A048814842200442000088000000008400888C048A049A0482400848B0
-:8015800028800228F03399001002002582224218028848215022008488002400000082002400000000004C04200418498401808402007FE5092CF41124A5F2112487241F41724AD241F24A121D24AB9419F24A9251AF243924AF343B242F147B24D812FB24481CFB244A1CFA264A5E216FA2E41DE2A2E45DE2A2E44DE2A2F4D1242F22F4B2
-:80160000912487221F49326A1F49326A1F48B26ED141B26A9921AB9451AB9443FB4AB443BA4279A4B842F9A4484CF9A44A3F390E2E181F41B622F5112CA7261FC1724AD241F24A121D2C2F64D9C1F248B259F24A9241AF341BF442B345C8B16D482DB14D5A1CD386EC15D286FCD82129E45DF22249D6F5224A17CD2F82F41144AB42174987
-:8016800023F2914CA37611346617C12F4658C12BB45D28AB94922F4472B43842478B2374B658424FAAF51C41008248000000004480020000000080018800004001400848000000000028000000002501BF930E46028001100240C288000010020082280082240000824C0448000020840A1200004800008008C04400FF8C0E20080010081C
-:8017000080042400210000000000001044020090224200008024B28804008220880288199424884001EF1B0948C2800124810024490821902210020024001288822100207841042C9428424200488848228A0441200C282800C8282446442171820224000000004881000000008028020000404402000000008002128100008008201811A3
-:801780008408005FD60F0000001001000000000000000020040000000000208204000000004800000000FB92001002004200008308000000004100000000004228000000200282CA01000088A08482488008D02604002100804401000000000000440000480000808402000022420088880000800888200488006F180D0000000000C088F4
-:8018000000000000000000000000000000008002800500004880840800005F2E03832402800228008008000000008800428200001004001800202404000000000000008800E0C10E8480440400C02800808C0221008002008001200200000000304420A84842000044442842008A84880182F088F8002400810021208204000082002001D3
-:80188000000022000000000000001004800400001288000022F0999B0024008100218C22220CC800800820220900000000000000004420881404800410044212800C822008FF83044828402402220000004002000000808408282200440020010020048848000000002008821880022F2607000000000000000000008200800880040082CC
-:80190000008288000080042004000000004200009DCB20220420028004228004288028048008000000002800000000000082820000820020082004003F2D09000000000000000000000000000000820000C2000000800400000000480000F0A8770028800228802202222200222AA82822A08220822202222828288002000080050000000E
-:801980000000000000802488F465B7000000000000000080888401880000120000000082000000008004000000004800004FAF020048000000100800004800000000200400000000800400A028480044002082044822208808DF8B03208402800422A024002004000000008818000022880080242404200148428800880080080020084868
-:801A0000E09D0B8282008200000000000000000000004200200400000010040000000000000040013FE60C84800400002220624280020080022810028A03C82828800214804508484200000041448002000011201802FFE502200E228262A02220B228020080AA8428800A288082822282A422288A08001AA4482001124442C2880000004B
-:801A8000200430214A284C21F4B29E20A24800000080022A0642202808208802220020A4262002880088420048008022240488200800202404888EC1A0140080022200482A22040020022A2484038A0880A888124800A0224800C28842000048888A84140400A0822088840400F084648002288022842204422004002002222002222002B6
-:801B000000000000200112000000880080088880081C88041A041F7404282AA2222AA2642AA26248286AF628682A064A042AA2662AA2138A82A2228082022AA666222AA22ACA0CA019881AA111A0114504EAAE4442A0882028A822CA2CA84C6AA6C8DAA5DD4AF4C98980E28602424AA6662A86A4662AF22C6C2AE6460628002AA2138ACAA6
-:801B8000222B222AB21283A2BA4AA4E62AA222AAF2C1C140F11818428C041A014504AAAA444A5444A0AA828AA2AACA2CA84C1B668EC22BDD9AB912F1B3F220820620A264A0262AA2228FC2A226284A04824AA4461AA388A2212A82A18A886AA6662AA2222AE21C0440A81148001A5144A0AACAA4CC8E848A888208AAAA44884AA4EE422911
-:801C00002488E16B0E2289A622A04628A0262AA2668FC222B6440622886AA6461AA388AAB82242A298AAA8A34AA46E2A82A222CE411061881A19A8111A014504AAAA44CAEC48088A8A28A222CA8C88A4EE4229E42C8CF17C630000000000004880048280048200200820040080080088000000000000000000480000B7FE00000048802496
-:801C800084220200000000000000200280020000000000A0848008000000420082001EC1E022F4112487221F4132681F41326A1D24AB141D24AB9419B24A19B54A3924AF143B242F147B24D812FB24481CFB244A1CFA244A1E214FA264192E4A96C54A9E24ACF491242CF4912485F2912483F49124A3F48124AB141D24AB941B28AB9453B9
-:801D0000B84A39A4AB9443BA4279A4B842F924484AF9244A3FC30D2E4A1F41F428421741837611346A15B44AD141F242941D2CABB459B24A19F44AB143F142A145D812DB86D412DBA4C5A14DCA1EA14FA264192E4AD6C54B9E25ACF4C12CA41F48D628F48124C3B491322A1F48B44AD141F24A941F48B24AB385B24A3184AB344B4A2B14F2
-:801D800047882B3467832B944FA2F196D660888248000000004480020000001002188008000014008480040000004004280000000025013F930600000000000000000088000000000000480020040048008800000000000000009F9A0D200800008008008800800100820000000000000000000000000000001411000014C07800C2000096
-:801E0000008810042280021800C0820012200800001904102824048004200810042200401101400214125F7905000000000000880000800800000000000000000000000000000000000000F09FE40000000000280000000000000020020000480000000000000000000000000050A80000800100000000004004440000004004000000003E
-:801E800000001888000000820000200800C75C000020010080020000000000000022000080040000000020080000800800008800F01CE800000000000000000041100400000044000000000000800100000000000000006EF92002401108000088000000000000000084000000000000000020010000000000005FD90100002004008014E6
-:801F0000082400000000000010042800004002000000000000000082880058F0584200000000100200004002000084880024000000400480020000000012000000000081F0CE6A0000004200210000104202000084004002C480020041400200000000800100008008008C019FC70F220011810000A0848400000000008800000000000091
-:801F80008002000000800100000020082004BF990C00008001810000000000000000000000002280080000000000000000000000E02308000000000000000000008112000000000000000000000000000000000000F08B65000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000012
-:80200000000000000000000000000000000000000000F04FFE00000000000000000000102801000000000000000000000000000000000000BF580600000084000000000000100200000000000000000000000010080000000000EF84090010080000140000000000000000100200002400000081000000000000180000F0D9D60000000009
-:802080000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000012000000000000000000000020020000BF1D040000000000000000000000000000000000001200000000000000000000007F740395
-:802100000000000000000000000000000000000000000000000000000000000000F04FFE00000000001100000000002100000021800100000000000000000000000000001FCA07004008400800000000000000000000000000218001008400000084000080030000AE7400000000000000000000000000000000000000000000000000007F
-:8021800000000000FFE40F000000004005000040040021004400100218808802218001884008000028840000800200004FB1070014000048405588281082044480022100448002214818808802214818448828842148408481421882041E148002211A01445C03000040010080044400004840040000400400000080020000880000008038
-:8022000002000000001FBB0C000000004005000040040021004400100218808802218001884008000028840000800200004FB1070000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00210014000048008002214800800294
-:80228000000080028004000080044480022148400400214840040021FF18040000000000000000000000000000000000000000000000000000000000F04FFE0000000000004004004400000000400400002800000000880000008002000000005FF20B0000000000000000000000000000000000000000000000000000000000F04FFE0024
-:73230000000000000000004004000000000000002800000000000000000000000000BFF20A00000000000044000000000000400400000000000080080000002800000000F041EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3FFFFFFFFFFFDC
+:800000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000022
+:8000800000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000A2
+:80010000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000000021
+:800180000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000000000000000000000A1
+:8002000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000000020
+:80028000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000000000A0
+:800300000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000000000000000001F
+:8003800000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000000000000000009F
+:80040000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000001E
+:800480000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE00000000009E
+:8005000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE0000001D
+:80058000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE009D
+:800600000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04F1A
+:80068000FE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000DB
+:80070000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000001B
+:800780000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000000000000000000009B
+:8008000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F00000000000000000000000000000000000000000000001A
+:80088000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000009A
+:800900000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000019
+:8009800000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F000000000000000000000000000000000099
+:800A0000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F40088440480800000000001212421244
+:800A80002001000018180000000000A041000018000000482001B0910B0084100840082001894108008C01200112001812121200182004200420818401001200000018181212802171DB0510080000000060810000898121A11400001800000020040000001212001800000000800100CD54000000818400200110080000000012001800D9
+:800B00001200000000200100000018000080810400F0CF190010481808000000000000008081010080018001000048008004000000000012200100F09CE9000000008100000000000000000000120012000000000048000000000000208121F1997A000000001400000000000000000000000000000000000000000000000000F0E1D300F2
+:800B80001001400812121008400812280088001820020012208101208101002005202301001210A8184220810158C0472002282200874181848001001088C11881800244404818C84100222218529021209B182C41283348A084288B842442104282E84481282408882F1707001400818D14818901890110088438894188280212201248C9
+:800C0000C84118202122A1411811A01A83018C849348229822C2A0145082184A888428015882FFD107222082020012000000200100004004810000808201002A01002C2101808104842400C082C014124282002B6C00110000141A02864801608800288200281008830480045588820820A1120080014018280884811E48180022284B425C
+:800C8000888220F878E24081E11112382883029304490416081C9141581098441846BC4821240442811661C4424628E7892485E44448A2211248A3C457581EC242AA34522C2C984627812CC4982C8488238124E4CC0B14E012116882813041800889019C49210483882491448965842084041E4146C8484E28488CA441582A0432E0243114
+:800D00004852485638C248488F2478C8F2441284428922C4849800422FA10E6011008012B11802CC14010048182810048C02804408841014053A8809C09410820150618981088E22890118204182293262281A8884F89A4820048745181A14480419C248448384342483018442A24244214691A84184828524A24229E152312881844C826E
+:800D800004844A712C0187125518484C8162441608802228C188241889F148D2002A048002106881441E841C022248A0B445C811203642281C2124A2284288001400844848204108181022E54421240B00814146422242C224184FFF420218D018120184414C048418884820020022908C4100108402811302002812B038082282811862C7
+:800E00004430288120A81C2B49422A01C08480F446932084421428121848D4C1D3842468138084049E6885248932644F88D41454184283028D64284827122226082256041A3A1883E712C81828875483B44861928C283488C82F819444AA44A228411883F4137B102291181B214E111044280489C1484A1894182280C421480028A244C06C
+:800E8000242068821249018420028100C4701138221604481841181288222C211128C824D0420B12400819048CC244304814581480041301927882008815382820848231B90040044222404825E114A9428A218208821E2260288AB182A21829321482221F6C070010018904892204428C12448821244444048180084C081418200248F0D5
+:800F00001144108402400481000011881078388242140820D42CA4C1EC0E181B14A021288714481883119524428F124418C848822868C4188B14128744604410E842210518522024842181A141244022C1E28CE521884582AE8118E0242121A81812248FDD0D482841901828154401228951811218414481884400440000478122148450AE
+:800F80008182288C01139842001242002149080000420042812190846F674F0200400890482084018C258404124688C1488C018484001A842C1114041886A121491104008034288C012C14984888002A8138C282182058124E9B00A902684621820213D48411A1210030114608423684042914C144812A3821484226280C8C044820024204
+:8010000023641242462121224421443A4820C52480024A81F43DD114CC22214308411810044800004C188432889024008A528148C018002460824301228C02008112182A18081430188828482302224822264474F5074211848112114453C118902811200588190800305A183384C8A42210496221388240642383812181C115257A88211A
+:8010800008278189D21288315200301442214120E29D083508581C8182D118851265134004288C3118448F419C28604444A344A414D0845C414222828C6814A8428480246622AA240225A24286C244472168803C82434402C2C821F03A51341818C413D71865161B449B5517413A82B14855918CA145CE8586F844C88E748B4426A21183EF
+:80110000798A69888483E71134294CC1328B51E0D6FA14184F44C1111A81E185718432418CB1B9E62A48788112A188922F81B8F248744EB4C22DE848F9D4814F28E966092F35E211028C7351D888D218038D414D5826A5215A3258C90197548F43727CE8C2D184A144841F4608474C686E18471187268782AE81D81B184CA621ACAE2248CF
+:801180004F22D413E1A272C9D12231522EF6A9EA3C6D218DC238486F2FE822076EB86B4789B522F6C216C0449B428B3185A1221F417434FC242D4F847149F5596817928D544884CF81B5142D88B814F2D844C5AC5449F44DC58B625D1CDB284AA7611F497842E88DB21424E4227438041A028F45B61AE521AE848937DA4E59A7418B542FAE
+:8012000086F3E8422C83A589369242606246F49B6A4004444004844160120000008228001008811348048514016180082230222002002A084068120040024C4288420884289FD9457242F2161CDFD1D1DDF161614FD7E747F76121D7148F11F16C681F14F4694C16F84C4CD7D44D8C4F4AFAE4F446E844E584F44444CB66CFC4EC86E683C1
+:80128000E283F37C65CF64F4CACAAF88A865CFC1F14C6445440C686E641F7E7C59F9D32197914E62CF84E525FF585C2B558F85F4E8FAFEF26F22FD4AD2AF22B9C2FD28AC8F4F7F2CF686FB246D466F43F711199F927269F16D3D9F95F56D65DF54F41954DFC3F721219F92F21C1C8784C74C4D884F4AF8ECF44F86D7ECB14254C47F8FD74C
+:8013000099F86CFC3E641F97F71C348F24F4DA5AAD198F88FE987CCCF614466F428482F2686EBFFA3842BF1FFB591BAFA4F346F6BDA3AF9DFF1A188F85F72AA82F23FB2616AF26F5AAC2AF8FFC1ED8CBF78F65FDD7343467743F11F5191995F9646D1F97F77175DFC7735DF164316E741B749F84A215CFC4F44CDCCD848F43F344FC46EC11
+:8013800041F5465C4FC1F56CF9CDCDCF86FE44684FC6F63C6D8FA5F4CEC6AF9CAC65CFCDFD747C4F44E44185A1238FA7F7EF8FBF95F2D333BFB4FD4272AFE4F57332BF8DFF5212AB4C8FAFE92FFF26726FCCED26FFC8D82BFA4FCEFE24564FC44CF362637F52F335359F92F26D6D9F92F35979CF45F35C15DF56F369751F14F34979CF4588
+:80140000F54848CFCCFD4C9CCFCBF3ECFC4FC7F33C7CEFC5F5145C5F8EDFDDFC7C6C8F43F77D7D9F93F77C5ECFEDF5DAD88F8DFFF8784F47F754466F63B332A3338FA7F7FF9FBF97F7BBB3AFA5FDEA7AAFEEFF7B33AF9DFD5A9AAFAFFD7A2A2F2FFFE6E6EEFA2F26BEF2FE8C9CEEE84F6AFD1413E0120143024501264148812422011E4818
+:80148000448444164804280082810000188304819880010043022CE181240240484248628100441028A124F05719F082411E241C51811C21C11144D0411608144860888D152A94881285140455084150812884288828400428008119522213C8128424921C2811222204AD8212804444B9D20B2CF5112485F2112483F41124E3D4C1B26AF9
+:80150000D141F24A9119B24A19B54A39A4AF1439242F147BA4D81AF9A4488D915FAAC4815FA27418F5254A96F1214A96C54A9E24ACFC91242E421F49D238F8912483F49124A3F48124AB941D24AB941D28AF1419F54A9243B24A39242F44792498924F8284F9244A1F12032CF5116C8D421F4132281FC116B211366A1E4CAD8419F64AB480
+:8015800059969A4B4AAF1411D412FBA4482F1471B6E814F884124AE3A2E814FA2452D6618286D5B2E54DC28A17CD26C26C8DD2174889F19164AB841748A9F99164AD148AD44ABB85941A4B4A8B14922B944F8894126F8A84F1A45AEDD50080040000000000000000002180010000000020044800000000000000000000F026560013311254
+:80160000148D1116D81845391812184885C15180C114841AC614463835002086A41420C14CA4442C24A143800248A04240026A0189051C0842218E122482432208CFBC48F14126828489512214281AF42142848B4A144A1124CC212628046210E8816484894208812E5837422E91AAA4522002A8188D928CC29241260660888E12132844FC
+:801680007C623218AA210212481611F4F87C144E2552848C3118141F8192118D2118CB68B061F144114826D1841128C26446CA1883E58104CA025688B424B1E431814C24342A4A22A621AC89A681286C0221C30A1F8324748862261E48388825C29249A48143F1E74F4012911211256381428CE424418891418180288182A41412302500C6
+:80170000894228048B213185E1A2A4212081210810086304004A21998240052482380022008F250C221044440189A121208141084818160849C414114CC94842004588826544004800808182082CC8288F34011812004098184860818BA40022003FB50F41122698182284228984C3A842528D419291A0248C33481A9A28152418183841FC
+:801780001644A8128F15A2C22A31584A4221041C118805284E98488AB4221CF29241C684B48241A24812C21218128AF24FEF4004433218131228A124388982C418A0C1160142725628495C1410188804812AA441CA8284810648C011812CC8284E38AB8442522314A2944C282544A218128A84212201CB428022114804302816081A8821F7
+:80180000944910381828851494213A98484A0850941E241AC4141D28A0128304111822828005141818822A4842914885820989B4680820012AB8FD4A222662442001122CE18441A148498202C30122284988822101E0849268A24A212484C1612A01B048039348239188884E111508172140B81824942840A24980C94218D83F2B04802188
+:8018800015C82438682830488445880280088042843C224D284941442108C02419428148484884041A021AA21280B22A644A2832292881083884222164E022B11C06124480821414384828442014F9881420221868812012CC11288830114426180816044419024C9124A02400C04418C01821108C010088222828F0D6AF9012441283A2BE
+:80190000611A8234282F8154944828814C5884882A8892A44C229D344792288E2C81604562CCA62149A4128130544486B4111282A91A428584A328AC4288EDC19498806189B012C864182CFEEAB6A0421A120441448B121A248294888C44618118224098188042881124B421E411028140A11282411922227128016AC128301166C3483CA8
+:8019800021C1128420022223248A0228F0DE3F00588428830240784804008982911830258001118A04E98284A4124924822102188111489018144226180A2823A4214A01803142228321288404128CF44FFE208402182C052828244BC11881454208448081022614B11408004548C811490442102501131C2409182413921811A188478C69
+:801A0000818648482882051C28C222F0322D0041000010440480018341018228418C0230441088982828446014848820420100108261245082402241884402422001428128BFCC0B2100C304C04800908885848102222E14C100104C2104A742202822A22825816414902283011038C14800001200441AA21420024C052304CFC403C28C58
+:801A80000210112C84018813081200889250182287215818404105228012888422021248802889B881642189015924328A4228100882002052128FCD04260428302230114220810481001C03282A4121C285258882021584C1418C4181628152220011101208B041028C4204802172428241A22422A121A85FE60818472153C1144C21148B
+:801B0000588214201112016440234142441408101408150C144004004424362892242C72242802450282121A12088AA2286088890821F083A980028932288448124AE284414408001E2845195848411C0160149D44448041E1444121A52142890156110112241216B11104141821481A0400482A453238188289F4FBB460C1E0410449E435
+:801B800081420422226041C0244CA418008484912A51829018288829052944484839221361820042A8118800221958418002C01486428E01622D5C2CF87F8224324F282691144F22E281F41148CB3213B414193818CC2191242D8451125C01818B4887811B26C1448B11CF9896144F96054AD688F312511E131B418F248981E8691A682846
+:801C00002E124A4393A415F24284E02841B258FB42A81EB22B118F8201DC82B2A8074E2436544185FC18184AA2142F84F4285E4C34D18481457859B8847298F12A1443F22C281FF27254B4848164568F12625242174223F1316287D21ABC2422E2148134181E218CF4722BBF5426149A6B9FA4A1E883B9587118C8682628E94AE484D82434
+:801C800026A1D284EFB601499518CF82E327F2414485342C10A4288C99121F2192184CF131192EB44D288F81721391141F92F94145E54CFA44884D283F43E11596218F948821744998212E2415D185E22825B281E981F9116117A34427131AC1588CB424A4122D442A354A2AB4D2E8867658F2EAC2BF864F32412411241169111192412145
+:801D0000131812514210328129022D2411100124401258214C5221442642444264224488442C4804442602228450841004412843181804FF6E4EE12456667D177F53F114946F63F2632F3FF1F35A78AFA6F653C335F31A18E5FA4B43AF22B312F1181ABFB3F13A3AAF95F6FCF8CFD9F82B6B2FB6F26B2BFFB5F45C58FD182F66733F7C4C9B
+:801D8000FC1E3CAFE3F777745F6555773F52F22C6E6F46F445469F82F62624FFD5D599F6DBD93F11D7CA5DCCCD4CCD4EEFA9FD2AAEAD3EEF4EA8988FC5E4C9F984E74DCA342B445D4D45F63717FF11FB3F23AF47F259359F94F6EBEFEFC555191D3D3D13AB55DBAA9D83EFE1F1171DDF81F1594AFFD7FF5C9CDFD7E7D6F26CBEFFF5F47C76
+:801E00007DFFC1F77276FFF3F64A69AF85F37A7E7FF7F753714E381F72F3DE1C8F8CFCCB48FFDEFE6735FFD4D79BF6DFFD3DE12F867F48F81878CD4EEF8CFC68AEAFC4F5EE946F4AFD1A4C8FCDFD8CDE7742243581F4141C5FF3F11F174F43F3666C5FD3F711738F87F65ACC95F1193BCD1CFFD5F52811BE93AFC1713DFD3C381E292BFF90
+:801E80009E951D596E615F767C3DFD6A68DFF2F364219F63724AF9283ACB731FE3F353711F11F63D298FEBBB3AF39B83FFD2F6292BBFB5F53D7FAFDDFDA97BADF885F848486F86F49AD6AFA3F2BEAAABAECFC9F95A484F88E986FF6F7FF0414185D677F22638CF25F33C34FFF7F37E342CF6F8F8BFBD3D1ACFA1D119F15A5ABBBA9F13FBB9
+:801F00001C1EFFF3F13F399F91F2FFFDDFDDF96D7D4FF6F67E6EDF53F27A79DFF1F77463BFD3F66C6C7E324F27F723155F55F71973FFB3F39A1CCF4DFDDB51BF9FFF5D1F3F17F73F7DBFCFFFA9FBAF84FF4818CFC7F57678AF4DFDF8BAEF8FFFFEB42F87F75848CF8EFD4CCDFFAC0E414041A812001A541412400884204104441242124407
+:801F8000200444408411088122C011004082E432014048E289041648C24820992812209128A06E200289614185914142288B16118811181285018D812289312181118939211041D181042216011290214813212239288214112724158821080084AD32842C08290818A6F2C1F9C0421F4152281F4132481F41324A1D24AB141F48B64A99EB
+:8020000021AB9451AB9453FA4A9143F242B157822DB15F82E414F9244A1CF8244A87115FA2641D1FA2E45DC2CADE24ACFC91242CF491248D821F49F248831F49B24AF88164AF24D141B24A9921AB945F88B44A7924B84AB924B442F9A44829F92448984FAAF4B22640F811648B421F4132481922D48196181F48D64899618BB41992984B77
+:802080004A8B34414EB145D858FB86488F14E38291984F829CA84F82F5D821A02D9C28CD881F89C2481B4989EC81B248B81192881F89B64A3181AF443181A9FB8148AB14A6981AAA94928E484AB1A2A414AE5A178B6088820000000040040000000010021800000000000048000000004480020080020014F038B180911181128341112856
+:8021000062213218009044C042221912E81132181C52810089344188209314642003401828440811001218001A44C21422622183014246F1BBCF14200A0022800815922818891958184B121381C1184604004E242CC44490228400622E488304681B212200152241321885223422402298221092182C85081C08AF524381B1E14188618198
+:802180001C02203131C1B02808D934341CB5127221C844241213723824B48444CA61890890718C163818681B2183C24848244082512849252242A28529321429E282D122440A1C2CF5B17800000010884A022B12121884000018841C43081904214200A021414429840200001588111108241200002120248109003F2C0340941212450146
+:80220000850224190280012C11314210084AA1422002482821800120011280521200D02AD18112024A082180484822522A22290A8148AFA94523041C2262A190318544C818846250129C382C15CA342CC37141162128C44A228CC5112E4260227285A2342C2202849D221B214691414246E824032218838591428489852E981C198202DF9A
+:80228000EA4A8244A2125041218B21254C92110050121A3822842584E11281E41284088304464A0129C1225818482C836222941D22191161149336482A94822210883948842D48233C224B189028F0FD4B0044141A32181001812618882601155885332463A2484381012A4422A621124A02804298320000812842A721102221042981451B
+:8023000002A012836228896212C042BFE60444382836829228A01210E481120CA7138126116A98114C3411C01C4E1841C0282422001C62822838838114144218A8288B12148B124A7222C2281280A114382228322C81A4283F9F0328200416011C069862901521220018128C032742214082D2A42121121838144641524850682A14681187
+:802380003822CC01280020821432221022A88470C8127414F212ED9011442485011218818608000098000012848341C121C0211448802202008006314F282234510021201808881048084311120200EF6D45C1312E142CF2281113A2212E5136C8184982411152129213021817814E1465886151872622FC32112C4688B224816482842205
+:802400006602A17DB28C32711EA826C22122CA4248281D62828C05472A683200F087611004002941080048836281608181901A178828C0318481114490288042082230261249815214A014844116081648821202241224321882219E484634A4FF83082004141002128082111183011014411201C0414004224412126084249048104202A6
+:80248000842C81961180140284800200808684141872360E4C018C014094322003901849412821820110188A852254128904813C820480B129041228238221048981B21A26433848481283040040880260A23F120B181C0123118821421544040081212414000030281200254102890100200213011B4213012823248201800129436882EB
+:8025000084688002009F75044144435228801288538200D04802812D1400871144164188110820825424002848202124942200008100588190110021222901A118002F2D0D008082011044011A4202413220029012120014002C2484014618182204121E281042188225C2488440010018100258002C02EFEB0100124444355826288189FF
+:802580000140015304301100211148280000842001141C8184828404400818002A64241242480022400810021F470D0020312800840084A3013850C1411042392C422014DF8624A11228428041024002182C0100602142A0128944981228400221426818F0C963207884082127421884211881002834A41D521A821221129121100130482E
+:802600002C1108C0415218222240081E2122C04A20C2280042C01812A02138272100686F18415181324904184782411558164981722164A1002814128C61414485941385A41227226C484C0489A4121C122861848065142C9418A12140186241902281C0282781422181839122F05B32144D1447896C13E86261636F2291174485A4323103
+:802680004FD211BC317124F532211B1212458521E314D1249526A423F444148F21A34116A8544E4297161A8233322A632511282D6A008B123AC4182994182B11164A522827248B634E6A8CC4228F22F27A3C20E15821C123A9D28A53883691174528711858282C51A83B715D14129D138C713CF54D4119362115394C1F6276387225BC421A
+:8027000021942812A046248B5420E2327518A2112F15F262782D22B048F248184E4148222E2827823A03A3A212008F9204146845F812144781514CD2E87238A913813CB3137211384685021425783B52838436784849B62234182D4821818974318AF312588CA1473C721AD2137558D88231688FA235185E48AF84B211642116F2682889CF
+:8027800091181A82F4421A18528B1229F452F600221024084041088414400410C1241181118D241185148102890200302281000014842440020022008022410224128922A124FF630C4F437314F424226F21F112123F71D1AAF13A3AAF83B32CA2321FA253AA3D13BFB4F46E2E2F32F32624CFF3F22E2EEF96F76868DD2C8FA4F447624F88
+:8028000064F44E5AAFE2F26A6AAF85A4557E7A8FA5F53A38325E422D328D2A2F21B772A7474AE426B548A1115AF511332B551AB152A5561A81D188F53978AB722A7418F8282A4F8D084F43F3444C246F21F11A1ABF71D32EF11F17BFC3F32C282E3C1F8173285FBB2F25F546127F32F32724CFF3F22E3FEFF4F56A69CD4DAFB1F542636F7C
+:802880006CFE5E5AAFE5FE5A6EAF85A4458F94F4585AAF87E383E421F61222AFA3F273333B772F27B452B462B44AD4287646F461332F44A3152F85A77689D122F14A588FA2B722B7627618F8383ACF8949D114B134F724226F2151EEBF31F31A3EAD26FD39CF81F3282C9B329FA1D357F14F4F3F27F232332F12D3B8F13F2EEFD2F36E6CAC
+:802900009783CFA4D527F266E6EFA6F76A26EFA2F35A481E583E7B8FA6B472E683E327F41272A78116F36A632393384E328FA5B112E345D731F25A7A242B552AE123E123F1485A7AD782F73A583E186E7ABF3841F11411CF43578CE7A1E7E8FF71F31C3AFFF1D1CDF31C388F83B319D3BDF2171DAFA5F55B1A1F33F133311E1BFFF3D3DC82
+:80298000F16F659FB3D635D537F26EECEFA7F5DA646FE3F3524887818FA6F47A5A2B673AE623F61222AFA3F233333B762723AF27F76A22AFA4D4AAF76A341F36F24E1A8FA4F172583E388B33AF23F16A5A3E73AF83F728782E386E7A4F4F0D18005024E02241681212241234122416C8241224128B2412004A124214724894128118008051
+:802A0000012B120048188422120020018C440228A02400F036731004242818100483420428211548814411018414C011150800840080012628012810018C3222901228218418100200188423048124BD6BE022F5112485F3112487141F41324A1D24AF14D1C1B24A9921AF1419B54A3925AF143925AF147925D81AF925488F14F9254A1CC4
+:802A8000F8254A87115FA264192E4A96C54A8F49C24A1F4DC2421F4952381F497248F3912CA7241F48F24A111D64AB9419B64A9945AF343924AF2439242F24792498924F8284F9244A3F29082E524CC4421E28421F41324A1F41B242D1C1F24294282BB411A9B924F44A93418BB422AD9169B44AEB2291984FA2BC48FA245296E1A2645D29
+:802B00009C74D8D422F5D12CA49E64481FC9B242F1912CA3F4816489D1C1D64AC94489DB85B44A19B4487824B842F92448299846884FA2F56A8D0082482200000040042800000000218001880000000042800400000040040000000040013FFC0F2001111241A14A02241811830181441860812883518412284002162641E881041008527E
+:802B8000101811A8214810022002202102181822306842A01714284B28A012411C811198118501810021400C1004480045698414404222C2481224402201105121004022064023042B14204212284881F4F7F51422CE34E011826131184A028593149132508290182001A484121A52948E42602112818B141924411AE8212441C841C0321D
+:802C000000212441222215228522848161222489CE411AF478D8000010441448C81100100810440481438291440040481104258242080000008511210400620000901280028100F0DDB110240100131108000000208111040090288444480042430243122802004008841820C228008184002002800142418745A02140011604AE1118402B
+:802C800028323816085518382416982822260842463248C4C9845184A02442681213A2241200581981346A1A048C2402C042184D52469162A7244E2C221608CFD70B4C214101009E211200301883011544382441282222002489044140242282C2682A91212A04001885219128008304810021412428488C014A016F150C22003014131117
+:802D0000081088820210288191188110082E488C44944C83246184414849040020018148124229A41689022810288461251386542A49861218E43B0144261162A1444C2124C128811024014A4804124184C018124A12848111088C0246048B2143224474280427412228890189312241284221472100A246046416C8228EE90090280026E5
+:802D80001888024C64C1403824811024044880445814C01A842228D04812880210880444284181006810840280826244003668A43058AFDF0D12410012C0241001E08201901428402902360810088082042081820180028022041024110436220184108402A5820448F06C2B60412484852211CC482AD1181204833218418DC42850184102
+:802E000089C4384E18100884AB12832282B2149268380042448342846242100CC3062A311210E222014B242C68E472C32441F259EA001D242212411A3224008C941812001841441A84020089B12544048004848141E082C124221084B24601832281213122004881414C0228100883E482F42F66C014181281284711008120028952180012
+:802E80002A110800001844C01881812016382800A0422822C48352426A014C41888184A1140083D482024688D124027FED032800110010814228014901848181200140B818242492142A84E442018584221118088041040084484221301241A183272182040084E03A04101108004100114400604183010040044440040081818410082E97
+:802F000014008100100885041828001014020012806122CEDC800228C028A021121A02284C0100200222200322842A112882210222488001C0141008814820014044880290488041C2422A914212AFD1072100844008446082001884004048088314044362842084024A11D4840443249414100480041281122A3458B018C4244634481203
+:802F80000044602141CF470680429824545C428102181428801128822142A412B0288104A042C4002248A041282280A441C0221028D4222414480424422C82224432442248C062CF4E0118801181090010440800008418120010084004400420020022302800452202328C42840229821102C44C1201442D24F055612028091280A12100C0
+:8030000000160100400400281A942448008024941818902420A1422880C228002828441A4228018902202284062214B0250A848006150C150C8111164144880300182284430121848C418818880100148C028480242494224A022484214485942A1012041614120229048FEC4381A2292812DF12F214149F514281D241D241021E2400811E
+:8030800026042E28843AB418742CA4444F82C4486A21F16C1858878380A2626832681889F2442A2F86724C88E227F146662B174A72187258D422D1827662BC2C56486B422B434B121E452722EF6A0B228218852958184B12183698188B1113018F91311C1889D288B1148181C2185E4822890289D488A42181497448781814A812484283EC
+:80310000012244215E18CCA411811E1A182D188F8164651AE48491144631482B21CF1481D11D44B214C11187831D24169C21C02481942681D388018426E8812103224D1C4382D28C41F42C144D28624436E844E242E68265C147814CB224E1C2B2241458282AA642A952884D2883C24C244B26431248E227461284E42292642FAA054422F5
+:80318000C426416812302412262121420845885284284128124C024C0228184C828102800100180050241024410222122440220116484368441628F4CA692475B134F218284F41F3183C4F41F3183C4C52884F42F218381F11E381D144D1CCF13C3C47824F43F334144B227E544B764B124F46F64C48CF467424F464244F45F5345C3AD545
+:80320000C4F6446C45FC44644F46F63424CFC1D244B648B444B644D62C7256F424242B236AF65848CFE4D54CF524264F4656444FC5F16C2CED4489C458CFC2F41EA9F035114B478B335F51F524255F51F13C3D70287825549D1F11F1383C89D188F31C1CC7828F81A113C57C2CFA4A482E48AD78CD28CFCCFC24644EE85E784FC1A5331F0F
+:8032800096F6547C8F94F618387AA7262AA2248F24F42C226B26CF24F35A5229E745A5761AD3AAB148F76626CF467248F4646EEFD2B268761AE487F73C3C5F284753533AF71C3C1B31DFC1F315349FC1C32481DF52F2183C1F11F318388185F83C3887C28B333AB124E247F56E78CB12CF46F74C488F867C24B464B244F53C5CCF43F52CFA
+:8033000065CFC6F61C1C4FC7F744644F41F63C2CCFC2F24C682B64AF86F628326F45F124342FC3B368E785F74C4EEFC1E5A2B3667724F47C144FC6D2C6F422548F42F5245EEFB546F121253AF73C3C1F17F32C2DDFD2F33C3D4F43F33838DFC3F319191F12F31C388B11CFC1F134388FC3F138384F42F13C3C4B13EFC7E7A3F52C6CCF8213
+:80338000F264E44FC3F7F478CF87F73C7CCFC3F368694FC7F77D7C4FC3F364644F41F73C3CCFC2F26C6A8FA2F26A288F26F35E56AD72AF85F548788F85F55E5EEFC7F5623AEB147E14CF67F7262E2F86A6578F47F7645E5F2A03141004408801000000200184813048100842003048100881000040088C048441004800004412000000EF70
+:803400004B0F824470110811008911810150848141004C31144088014028018001200528481200801202189012288B1412A5228211142812628140EA3A082CF4112485F3112CC7141FC1724AF11124AF14F11124AF149921AB9455F84A914782AF147924F8429147832D914F82E414F9244A1CF8244A56F1245A96E1A2655DACE449C25AA0
+:803480001F49C2421F49D228F1912487241F49324A1F49F64A121D64AF26B911F24A9251AF24B934F44A924B432F24F9344829F93448984FA2F44FEEF0225A1F41E422453C64163C66163C6E16F4628416BC42FA15282B9445F842B145F842B147812DA16D482F54DBA4C1B5ACFC48A54D128E254D5ACE254FB2E158D2A4F5912C4FA2F5BD
+:803500008164CF22F59124C3B491322C1B69D0C1F4429417C1ABA451AD944B4329F8344829FA34482F447832E844FA2418EF9108004800000000448002000000100200880000400140084800000000440000000000147064018622011484002800001004000084128C048140048410182424822421040081100212000020244248245184C3
+:803580002004F0E661008A0216044511088002001410648100000048A04218004200000010180410281208008C042120042042011C01FFA807A02460515041800228412052411014080016420883018A26410881108102892104814840128832181004228084628444122224421C21D199052412008110080000000018008480044810048B
+:8036000000484448800400401408000000830421000045180100379B80110100121001000000840000000000000000008001000000000000210000000070F30400002042084222001800000028200248200248186880248204000081802192182044014842100848004288F0EA82801101001A120880028001000080022800008024A124D3
+:80368000808482041800100880C218804401100200000000AFE1090000001081040000100800000048200200000000000000180000004842100842004882D0E30E0000002001000040040000000060220080150422821200002228001800000000002004001FF3482201124184A01400002011880100222C01CC022800222422000000205D
+:80370000220100002002200149011218A889210148284F9D0B2800000020110100000010060084000012124C021281000000000000008100180018001800EF244E220312448480051211001098140010C41240440800222CA1126820618282180000282800122200849014808101811212008F170E000000200100800100002902608220E1
+:8037800002260200494104000028180000000080012001802B210442229F46030040040085080000000000440000410000000000000000008400000022000000008EF3000000000000000000000000004002000000000000000000000000000000F02E9E000000000000000000000000000000000000000000000000000000000000FFE4B5
+:803800000F000000000000000000000000001002000000000000000000000000000000EFFC050000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000001002000000000000000000000000000000800100008FF109001008000000000000000000000000000010021200100800000000008A
+:80388000800200004D33000000000000000000000000000000000000000000000000000000000000FFE40F0000000000000000000000000000000000000000000000000000000000F04FFE000000100800000000000000000000200100000000000000000000000000006F5B0700000000000000000000000000100200000000000000007B
+:8039000000000000000000EFFC050000000000000000000000000000000000000000000000000000000000F04FFE0000810000000000000000000000008001002400120000000000000000180000701A0A0000008400000000000010020000100200000000004008000000000080020000CF360D00000000000000000000000000000000B2
+:8039800000000000000000000000000000F04FFE00000000005400000044001002400400218001882810021880088400008042080000280000F0147B004001008004548588022148400428100240042810828401882810828441848842188204441828842148E041012810A21140C4350000001400004840050080044400000044000000BA
+:803A00000028000080080000002884000000006F9409000000004005000040040021004400100218808802218001884008000028840000800200004FB1070000000000000000000000000000000000000000000000000000000000F04FFE000000000000000000000000000000000000000000000000000000000000FFE40F0021001400B1
+:803A800000480080022148008002000080028004000080044480022148400400214840040021FF18040000000000000000000000000000000000000000000000000000000000F04FFE000000000000400500440000000040040000280000000088000028004008000000B0F20400000000000000000000000000000000000000000000005B
+:7D3B0000000000000000F04FFE00000000000000004004000000000000002800000000000080020000000000E0580C00000000000054000000000000400400000000000080080000004008000000F03D7BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3FFFFFFFFFFFB9
:00000001FF
diff --git a/xpp/firmwares/USB_1140.hex b/xpp/firmwares/USB_1140.hex
new file mode 100644
index 0000000..797c86b
--- /dev/null
+++ b/xpp/firmwares/USB_1140.hex
@@ -0,0 +1,308 @@
+#
+# $Id: USB_1140.hex 2135 2006-09-05 09:16:11Z oron $
+#
+:100E2800000102030405060708090A0B0C0D0E0F42
+:080E380041001000410011000F
+:1009B80090E600E054E74410F000000090E604746C
+:1009C80080F00000007406F0000000E4F000000071
+:1009D80090E6107420F000000090E611F00000008E
+:1009E80090E61274A2F000000090E61374A0F000E4
+:1009F800000090E61474E2F000000090E61574E040
+:100A0800F000000090E6047480F00000007404F028
+:100A1800000000E4F000000090E6497482F0000055
+:100A280000F000000090E6187410F000000090E656
+:100A38001A740CF000000090E619E054FEF0000073
+:100A48000090E61BE054FEF000000090E6917480F0
+:100A5800F0000000F000000090E695F0000000F0C3
+:070A680000000043AF012272
+:1005A10078007C007D017BFF7A0E79287E007F1028
+:1005B1001204FBC205E5AA30E2030206E2E5AA3015
+:1005C100E7030206E275310075320490F400E0247D
+:1005D100FE700302067524FA700302069124F87076
+:1005E100030206BA240F60030206BE90FC007401E8
+:1005F100F090F401E090FC01F090F402E090FC0234
+:10060100F0D2B690F401E0701AA3E0701630B01386
+:1006110074C0120D44C2B67F08120D4AD2B67F08CB
+:10062100120D4A30B04690E694E0FE90E695E07CEB
+:10063100002400FFEC3ECF24FCCF34FFFE7B017A87
+:10064100F47904120AFB501C90FC0330B4117408B5
+:10065100F07FE87E03120D4C7403120D44806A741E
+:1006610004F0806590FC037402F0805D90FC0374DB
+:1006710001F0805590FC007402F0E4A3F0A3F03087
+:10068100B406A37410F0804190FC037420F080390B
+:1006910075310075321190FC007408F07A007B000E
+:1006A1007D017F50120D9E7F50120BCC7AFC7B0195
+:1006B1007D107F50120D828010D202800C753100A6
+:1006C10075320190FC0074AAF0E53190E69CF000CF
+:1006D1000000E53290E69DF000000090E695748000
+:0106E100F028
+:0106E20022F5
+:0C0D440090E601F07F147E007D007C0032
+:100D50008F368E358D348C33783374FF120583ECE7
+:060D60004D4E4F70F3221E
+:0A0AFB008E338F348B358A3689372D
+:100B0500E4F538F539C3E5399534E538953350338F
+:100B1500AB35AA36A937853982853883120521FF79
+:100B2500E4FEC2B2EF1392B7EFC313FFD2B20EBE0B
+:100B350008F0C2B220B002C3220539E53970C605F6
+:040B45003880C2D35F
+:010B49002289
+:02004100D322C8
+:02004E00D322BB
+:02005000D322B9
+:080E460090E6BAE0F53BD3226F
+:1007EB0090E740E53BF0E490E68AF090E68B04F06E
+:0207FB00D32207
+:080E4E0090E6BAE0F53AD32268
+:100E160090E740E53AF0E490E68AF090E68B04F03D
+:020E2600D322D5
+:0207FD00D32205
+:0208FB00D32206
+:0208FD00D32204
+:100CF70090E6B9E0242F600D04701990E604E0FF38
+:100D0700430780800890E604E0FF53077F00000058
+:070D1700EFF08002D322C3BC
+:010D1E0022B2
+:100DBA00C0E0C083C082D2015391EF90E65D740116
+:080DCA00F0D082D083D0E032AA
+:100DEA00C0E0C083C0825391EF90E65D7404F0D0F6
+:060DFA0082D083D0E0323C
+:100E0000C0E0C083C0825391EF90E65D7402F0D0E1
+:060E100082D083D0E03225
+:100C0400C0E0C083C08285130F85141085108285CF
+:100C14000F83A37402F0850B11850C128512828553
+:100C24001183A37407F05391EF90E65D7410F0D034
+:060C340082D083D0E03203
+:100DD200C0E0C083C082D2045391EF90E65D7408F4
+:080DE200F0D082D083D0E03292
+:1008BE00C0E0C083C08290E680E030E720850B0F59
+:1008CE00850C10851082850F83A37402F085131199
+:1008DE00851412851282851183A37407F05391EF4C
+:0D08EE0090E65D7420F0D082D083D0E0321F
+:01003200329B
+:01004A003283
+:01005200327B
+:0107FF0032C7
+:0108FF0032C6
+:010E5E003261
+:010E5F003260
+:010E6000325F
+:010E6100325E
+:010E6200325D
+:010E6300325C
+:010E6400325B
+:010E6500325A
+:010E66003259
+:010E67003258
+:010E68003257
+:010E69003256
+:010E6A003255
+:010E6B003254
+:010E6C003253
+:010E6D003252
+:010E6E003251
+:010E6F003250
+:010E7000324F
+:010E7100324E
+:010E7200324D
+:010E7300324C
+:010E7400324B
+:010E7500324A
+:010E76003249
+:010E77003248
+:010E78003247
+:010E79003246
+:010E7A003245
+:100B9000C0E0C083C08290E6D1E0900010F090E603
+:100BA000D0E4F000000090E6D17402F000000053A1
+:100BB00091BF00000090E66104F000000090E6990B
+:0C0BC00004F075BB06D082D083D0E03278
+:010E7B003244
+:100D66001201000200000040E4E44211000001021A
+:0C0D760000010001020203030404050553
+:050E40000308FF0D6630
+:10028D00E4F52CF52BF52AF529C204C200C203C2F0
+:10029D0001C202D2B675B5C4D2B61209B8120E5645
+:1002AD007E087F008E0D8F0E751508751612750B55
+:1002BD0008750C1C75130875144A75170875187890
+:1002CD00EE54C07003020398752D00752E808E2F8D
+:1002DD008F30C374BC9FFF74089ECF2402CF3400AF
+:1002ED00FEE48F288E27F526F525F524F523F52236
+:1002FD00F521AF28AE27AD26AC25AB24AA23A92224
+:10030D00A821C31205705031AE23AF24E5302FF56F
+:10031D0082E52F3EF583E0FDE52E2FF582E52D3E9E
+:10032D00F583EDF0EF2401F524E43EF523E43522C9
+:10033D00F522E43521F52180B9852D0D852E0E741C
+:10034D00002480FF740834FFFEC3E5169FF516E503
+:10035D00159EF515C3E5109FF510E50F9EF50FC31E
+:10036D00E5129FF512E5119EF511C3E50C9FF50CF5
+:10037D00E50B9EF50BC3E5149FF514E5139EF513E0
+:10038D00C3E5189FF518E5179EF517D2E843D82059
+:10039D0090E668E0440BF090E65CE0443DF0000030
+:1003AD0000E4F5A2000000D2AF90E680E020E10568
+:1003BD00D20512000390E680E054F7F0538EF8C298
+:1003CD00041205A130022190E680E054FDF0E054C6
+:1003DD00F7F0750D0D750E66D20512000390E680CF
+:1003ED00E04402F0C204C202300105120056C201FF
+:1003FD003004CE12004150C9C204120D1F20001648
+:10040D0090E682E030E704E020E1EF90E682E03014
+:0E041D00E604E020E0E4120CA012004E80A3E2
+:0B00360090E50DE030E402C322D3226D
+:1000560090E6B9E0700302011514700302019224C0
+:10006600FE700302021524FB700302010F147003D5
+:100076000201091470030200FD1470030201032437
+:10008600056003020279120050400302028590E6E1
+:10009600BBE024FE602A14603B24FD601114602A34
+:1000A60024067050E50D90E6B3F0E50E803C120094
+:1000B60036503EE51590E6B3F0E516802D02027443
+:1000C600E50F90E6B3F0E5108020E51190E6B3F079
+:1000D600E512801690E6BAE0FF120CCCAA06A90734
+:1000E600EA49600DEE90E6B3F0EF90E6B4F0020256
+:1000F60085020274020274120E16020285120E4E58
+:10010600020285120E460202851207EB02028512D2
+:1001160007FD400302028590E6B8E0247F601514CF
+:10012600601924027063A200E43325E0FFA203E411
+:10013600334F8041E490E740F0803F90E6BCE054C6
+:100146007EFF7E00E0D394807C0040047D01800227
+:100156007D00EC4EFEED4F2478F582740D3EF5835E
+:10016600E493FF3395E0FEEF24A1FFEE34E68F82A1
+:10017600F583E0540190E740F0E4A3F090E68AF0BE
+:1001860090E68B7402F00202850202741208FB40AC
+:100196000302028590E6B8E024FE6016240260039E
+:1001A60002028590E6BAE0B40105C20002028502A9
+:1001B600027490E6BAE0705590E6BCE0547EFF7E8D
+:1001C60000E0D394807C0040047D0180027D00EC39
+:1001D6004EFEED4F2478F582740D3EF583E493FFD1
+:1001E6003395E0FEEF24A1FFEE34E68F82F583E03F
+:1001F60054FEF090E6BCE05480131313541FFFE046
+:10020600540F2F90E683F0E04420F08072805F1256
+:1002160008FD506B90E6B8E024FE60192402704E8B
+:1002260090E6BAE0B40104D200805490E6BAE064E5
+:1002360002604C803990E6BCE0547EFF7E00E0D33D
+:1002460094807C0040047D0180027D00EC4EFEED32
+:100256004F2478F582740D3EF583E493FF3395E0E1
+:10026600FEEF24A1FFEE34E68F82F583800D90E643
+:10027600A08008120CF7500790E6A0E04401F09029
+:06028600E6A0E04480F058
+:01028C00224F
+:0300330002004682
+:0400460053D8EF326A
+:100CA00090E682E030E004E020E60B90E682E0305F
+:100CB000E119E030E71590E680E04401F07F147E12
+:0C0CC00000120B4A90E680E054FEF02287
+:1000030030050990E680E0440AF0800790E680E03E
+:100013004408F07FDC7E05120B4A90E65D74FFF026
+:0F00230090E65FF05391EF90E680E054F7F02203
+:080E5600E4F51ED2E9D2AF223F
+:100BCC00AD0790E678E020E6F9C2E990E678E044DB
+:100BDC0080F0ED25E090E679F090E678E030E0F9F1
+:100BEC0090E678E04440F090E678E020E6F990E674
+:080BFC0078E030E1D6D2E922D5
+:100C6E00AC0790E678E020E6F9E51E702390E67872
+:100C7E00E04480F0EC25E090E679F08D19AF03A901
+:100C8E0007751A018A1B891CE4F51D751E01D322F6
+:020C9E00C3226F
+:100C3A00AC0790E678E020E6F9E51E702590E678A4
+:100C4A00E04480F0EC25E0440190E679F08D19AF9C
+:100C5A0003A907751A018A1B891CE4F51D751E0371
+:040C6A00D322C322AC
+:03004B000206E3C7
+:1006E300C0E0C083C082C085C084C086758600C058
+:1006F300D075D000C000C001C002C003C006C0074F
+:1007030090E678E030E206751E060207CD90E678A3
+:10071300E020E10CE51E64026006751E070207CDAA
+:10072300E51E24FE605F14603624FE70030207BEDC
+:1007330024FC70030207CA240860030207CDAB1A26
+:10074300AA1BA91CAF1D051D8F82758300120521ED
+:1007530090E679F0E51D65197070751E05806B9044
+:10076300E679E0AB1AAA1BA91CAE1D8E8275830025
+:1007730012054E751E02E5196401704E90E678E08D
+:100783004420F08045E51924FEB51D0790E678E086
+:100793004420F0E51914B51D0A90E678E04440F0D2
+:1007A300751E0090E679E0AB1AAA1BA91CAE1D8E3C
+:1007B3008275830012054E051D800F90E678E04494
+:1007C30040F0751E008003751E005391DFD007D0E3
+:1007D30006D003D002D001D000D0D0D086D084D0B0
+:0807E30085D082D083D0E03202
+:020CCC00A90776
+:100CCE00AE17AF188F828E83A3E064037017AD0149
+:100CDE0019ED7001228F828E83E07C002FFDEC3E99
+:080CEE00FEAF0580DFE4FEFF0C
+:010CF60022DB
+:100D8200120C3AE51E24FA600E146006240770F372
+:0C0D9200D322E4F51ED322E4F51ED32288
+:100D9E00120C6EE51E24FA600E146006240770F322
+:0C0DAE00D322E4F51ED322E4F51ED3226C
+:100D1F0090E682E044C0F090E681F0438701000046
+:040D2F00000000229E
+:100B4A008E318F3290E600E054187012E53224019B
+:100B5A00FFE43531C313F531EF13F532801590E612
+:100B6A0000E05418FFBF100BE53225E0F532E531FD
+:100B7A0033F531E5321532AE31700215314E60056A
+:060B8A00120D3380EE2283
+:100D33007400F58690FDA57C05A3E582458370F9D3
+:010D4300228D
+:100800001201000200000040E4E441110000010286
+:1008100000010A06000200000040010009022E004B
+:1008200001010080320904000004FF0000000705F8
+:10083000020200020007050402000200070586020A
+:100840000002000705880200020009022E000101D3
+:100850000080320904000004FF00000007050202C6
+:100860004000000705040240000007058602400022
+:10087000000705880240000004030904180358001B
+:100880006F00720063006F006D0020004C00740068
+:1008900064002E0028035800500044002800420045
+:1008A000610073006500640020006F006E0020008E
+:0E08B000410058005500500050002900000083
+:03004300020900AF
+:030053000209009F
+:10090000020DBA00020E0000020DEA00020DD20034
+:10091000020C04000208BE000200320002004A007D
+:10092000020052000207FF000208FF00020E5E00F4
+:10093000020E5F00020E6000020E6100020E6200F5
+:10094000020E630002004A00020E6400020E6500FF
+:10095000020E6600020E6700020E6800020E6900B9
+:10096000020E6A0002004A0002004A0002004A0029
+:10097000020E6B00020E6C00020E6D00020E6E0085
+:10098000020E6F00020E7000020E7100020E720065
+:10099000020E7300020E7400020E7500020E760045
+:1009A000020E7700020E7800020E7900020E7A0025
+:0809B000020B9000020E7B0017
+:03000000020A6F82
+:0C0A6F00787FE4F6D8FD75813B020AB6E2
+:10042B00E709F608DFFA8046E709F208DFFA803EB3
+:10043B0088828C83E709F0A3DFFA8032E309F608A0
+:10044B00DFFA8078E309F208DFFA807088828C8308
+:10045B00E309F0A3DFFA806489828A83E0A3F608BC
+:10046B00DFFA805889828A83E0A3F208DFFA804C96
+:10047B0080D280FA80C680D4806980F2803380106D
+:10048B0080A680EA809A80A880DA80E280CA8033D6
+:10049B0089828A83ECFAE493A3C8C582C8CCC5834E
+:1004AB00CCF0A3C8C582C8CCC583CCDFE9DEE7801E
+:1004BB000D89828A83E493A3F608DFF9ECFAA9F09D
+:1004CB00EDFB2289828A83ECFAE0A3C8C582C8CCF3
+:1004DB00C583CCF0A3C8C582C8CCC583CCDFEADE0C
+:1004EB00E880DB89828A83E493A3F208DFF980CC6E
+:1004FB0088F0EF60010E4E60C388F0ED2402B40467
+:10050B000050B9F582EB2402B4040050AF2323450D
+:06051B00822390047B73B3
+:10052100BB010CE58229F582E5833AF583E022508F
+:1005310006E92582F8E622BBFE06E92582F8E222D9
+:0D054100E58229F582E5833AF583E49322F3
+:10054E00F8BB010DE58229F582E5833AF583E8F0E3
+:10055E00225006E92582C8F622BBFE05E92582C88F
+:02056E00F22277
+:10057000EB9FF5F0EA9E42F0E99D42F0E89C45F0E1
+:010580002258
+:100581007401FF3395E0FEFDFC080808E6CF2FF665
+:1005910018E6CE3EF618E6CD3DF618E6CC3CF6223E
+:100A7B0002028DE493A3F8E493A34003F68001F202
+:100A8B0008DFF48029E493A3F85407240CC8C3337C
+:100A9B00C4540F4420C8834004F456800146F6DF4B
+:100AAB00E4800B0102040810204080900E38E47E95
+:100ABB00019360BCA3FF543F30E509541FFEE49340
+:100ACB00A360010ECF54C025E060A840B8E493A307
+:100ADB00FAE493A3F8E493A3C8C582C8CAC583CA32
+:100AEB00F0A3C8C582C8CAC583CADFE9DEE780BEEA
+:010E450000AC
+:00000001FF
diff --git a/xpp/init_card_3_23 b/xpp/init_card_3_24
index 3f07578..3f07578 100755
--- a/xpp/init_card_3_23
+++ b/xpp/init_card_3_24
diff --git a/xpp/init_card_4_23 b/xpp/init_card_4_24
index 7a2e275..b766804 100755
--- a/xpp/init_card_4_23
+++ b/xpp/init_card_4_24
@@ -95,6 +95,12 @@ set_daa_country_params() {
#fi
}
+# Several countries (South Africa, UAE, anybody else)
+# require a shorter delay:
+case "$opermode" in
+SOUTHAFRICA|UAE) echo 31 WD 17 2B;;
+esac
+
# Remove empty lines and commets. Not strictly necessary
# but works around some limitations of the proc interface:
echo "
diff --git a/xpp/init_card_6_24 b/xpp/init_card_6_24
new file mode 100755
index 0000000..b300d60
--- /dev/null
+++ b/xpp/init_card_6_24
@@ -0,0 +1,414 @@
+#! /usr/bin/perl -w
+use strict;
+
+#
+# $Id$
+#
+
+#
+# Written by Oron Peled <oron@actcom.co.il>
+# Copyright (C) 2006, Xorcom
+#
+# All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# See the file LICENSE in the top level of this tarball.
+#
+
+# This script is run from the xpp kernel module upon detection
+# of a new XPD.
+#
+# Expects the following environment variables to be set:
+# XPD_BUS - bus name
+# XPD_NAME - xpd name
+# XPD_UNIT - xpd unit number
+# XPD_SUBUNIT - xpd subunit number
+# XPD_TYPE - xpd type number (from protocol reply):
+# 3 - FXS
+# 4 - FXO
+# 6 - BRI_TE
+# 7 - BRI_NT
+# XPD_REVISION - xpd revision number
+#
+# Output data format:
+# - An optional comment start with ';' or '#' until the end of line
+# - Optional Blank lines are ignored
+# - Fields are whitespace separated (spaces or tabs)
+#
+# The fields are (in command line order):
+# 1. CHIP select in decimal (ignored, taken from 3 LSB's of subunit number)
+# 2. Command word:
+# - RD Read Direct register.
+# - RS Read Sub-register.
+# - WD Write Direct register.
+# - WS Write Sub-register.
+# 3. Register number in hexadecimal.
+# 4. Subregister number in hexadecimal. (for RS and WS commands).
+# 5. Data byte in hexadecimal. (for WD and WS commands only).
+#
+
+package main;
+sub logit {
+ print STDERR "@_\n";
+}
+
+package BRI;
+
+sub gen {
+ my $fmt = shift;
+ printf "$fmt\n", @_;
+}
+
+package BRI::Port;
+
+sub new {
+ my $pack = shift;
+ my $port = { @_ };
+ bless $port, $pack;
+}
+
+# zap_xhfc_su.c:995
+sub init_su {
+ my $port = shift;
+ my $portnum = $port->{PORT_NUM};
+ my $port_mode_up = $port->{PORT_MODE_UP};
+ my $port_mode_exch = $port->{PORT_MODE_EXCH};
+ my $bri_nt = $port->{BRI_NT};
+ #logit "init_su(portnum=$portnum, port_mode_up=$port_mode_up, bri_nt=$bri_nt)";
+
+ # Setting PLL
+ # R_PLL_CTRL = 0 (V_PLL_M = 0, Reset PLL, Disable PLL_
+ # R_CLK_CFG = 05 (PLL clock as system clock, output it to CLK_OUT pin)
+ # R_PLL_P = 1
+ # R_PLL_N = 6
+ # R_PLL_S = 1
+ # R_PLL_CTRL = 1 (V_PLL_M)
+
+ BRI::gen "#--------------------------- init_su($portnum, $bri_nt, $port_mode_up, $port_mode_exch)";
+ BRI::gen "0 WD 02 04";
+ BRI::gen "0 WD 50 00"; # disable PLL
+ BRI::gen "0 WD 51 02";
+ BRI::gen "0 WD 52 06";
+ BRI::gen "0 WD 53 04";
+ BRI::gen "0 WD 50 01"; # Enable PLL
+ BRI::gen "0 WD 02 05"; # Enable PLL
+
+ su_sel($portnum); # select port
+ if ("$port_mode_up" == 1) {
+ $port->{CTRL3} = 0x01; # A_ST_CTRL3: V_ST_SEL = 1
+ $port->{CTRL0} = 0x10; # A_SU_CTRL0: V_ST_SQ_EN = 1
+ BRI::gen "0 WD 34 0F"; # A_MS_TX:
+ # (multiframe/superframe transmit register)
+ } else {
+ $port->{CTRL3} = 0x00; # A_ST_CTRL3: V_ST_SEL = 0
+ $port->{CTRL0} = 0x00; # A_SU_CTRL0: V_ST_SQ_EN = 0
+ }
+ if ("$bri_nt" == 1) {
+ $port->{CTRL0} |= 0x04; # V_SU_MD
+ }
+ # ((V_SU_EXCH)?0x80:00) (change polarity)
+ if($port_mode_exch) {
+ $port->{CTRL2} = 0x80;
+ } else {
+ $port->{CTRL2} = 0x00;
+ }
+ BRI::gen "0 WD 35 %02X", $port->{CTRL3}; # A_ST_CTRL3
+ BRI::gen "0 WD 31 %02X", $port->{CTRL0}; # A_SU_CTRL0
+ BRI::gen "0 WD 35 F8"; # A_ST_CTRL3 = set end of pulse control to 0xF8
+ BRI::gen "0 WD 32 08"; # A_SU_CTRL1 = Ignore E-channel data
+ BRI::gen "0 WD 33 %02X", $port->{CTRL2}; # A_SU_CTRL2
+
+ # zap_xhfc_su.c:1030 in init_su()
+ # A_SU_CLK_DLY
+ my $clk_dly;
+ if ("$bri_nt" == 1) {
+ $clk_dly = 0x6C;
+ } else {
+ $clk_dly = 0x0E;
+ }
+ #logit "clk_dly=$clk_dly";
+ BRI::gen "0 WD 37 %02X", "$clk_dly";
+}
+
+sub su_sel {
+ if (@_ != 1 ) {
+ main::logit "ERROR: su_sel() called with " . scalar(@_) . " parameters";
+ exit 1;
+ }
+ my $portnum = shift;
+ BRI::gen "0 WD 16 %02X", $portnum; # R_SU_SEL
+}
+
+# zap_xhfc_su.c:281
+sub xhfc_selfifo {
+ if (@_ != 1 ) {
+ main::logit "ERROR: xhfc_selfifo() called with " . scalar(@_) . " parameters";
+ exit 1;
+ }
+ my $fifonum = shift;
+ #logit "xhfc_selfifo($fifonum)";
+ BRI::gen "0 WD 0F %02X", $fifonum;
+ # --> WAIT UNTIL (R_STATUS & M_BUSY) == 0
+}
+
+# zap_xhfc_su.c:295
+sub xhfc_resetfifo() {
+ #logit "xhfc_resetfifo()";
+ # A_INC_RES_FIFO = M_RES_FIFO | M_RES_FIFO_ERR
+ BRI::gen "0 WD 0E 0A";
+ # --> WAIT UNTIL (R_STATUS & M_BUSY) == 0
+}
+
+# zap_xhfc_su.c:1040
+# Initialize fifo (called for each portnum, channel, direction)
+sub setup_fifo {
+ my $port = shift;
+ my $chan = shift;
+ my $direction = shift;
+ my $conhdlc = shift;
+ my $subcfg = shift;
+ my $fifoctrl = shift;
+
+ my $portnum = $port->{PORT_NUM};
+ my $port_mode_up = $port->{PORT_MODE_UP};
+ my $port_mode_exch = $port->{PORT_MODE_EXCH};
+ my $bri_nt = $port->{BRI_NT};
+
+ BRI::gen "#--------------------------- setup_fifo($portnum, $chan, $direction)";
+ # my $fifonum = 0x80 | ($portnum << 3) | ($chan << 1) | ($direction); # # MSB first
+ my $fifonum = ($portnum << 3) | ($chan << 1) | ($direction); # # MSB first
+ my $r_slot = ($portnum << 3) | ($chan << 1) | ($direction);
+ # receive data from STIO2, transmit to STIO1
+ my $a_sl_cfg = (0x80 | ($portnum << 3) | ($chan << 1) | ($direction));
+
+ #logit "setup_fifo($fifonum)";
+ xhfc_selfifo $fifonum;
+ # A_CON_HDLC: transparent mode selection
+ BRI::gen "0 WD FA %02X", $conhdlc;
+ # A_SUBCH_CFG: subchnl params
+ BRI::gen "0 WD FB %02X", $subcfg;
+ # A_FIFO_CTRL: FIFO Control Register
+ BRI::gen "0 WD FF %02X", $fifoctrl;
+ xhfc_resetfifo;
+ xhfc_selfifo $fifonum; # wait for busy is builtin in this command
+ BRI::gen "0 WD 10 %02X", $r_slot; # R_SLOT
+ BRI::gen "0 WD D0 %02X", $a_sl_cfg; # A_SL_CFG
+}
+
+# zap_xhfc_su.c:1071
+sub setup_su {
+ my $port = shift;
+ my $bchan = shift;
+ my $portnum = $port->{PORT_NUM};
+ my $port_mode_exch = $port->{PORT_MODE_EXCH};
+ my $bri_nt = $port->{BRI_NT};
+
+ BRI::gen "#--------------------------- setup_su($portnum, $bchan)";
+ #logit "setup_su(portnum=$portnum, bchan=$bchan, port_mode_exch=$port_mode_exch, bri_nt=$bri_nt)";
+ $port->{CTRL0} |= (1 << $bchan) | $bri_nt;
+ $port->{CTRL2} |= ($port_mode_exch << 7) | (1 << $bchan);
+ su_sel($portnum); # Select port
+ BRI::gen "0 WD 31 %02X", $port->{CTRL0}; # A_SU_CTRL0: V_B1_TX_EN | V_SU_MD | (NT/TE)
+ BRI::gen "0 WD 33 %02X", $port->{CTRL2}; # A_SU_CTRL2: V_B1_RX_EN
+}
+
+sub xhfc_ph_command {
+ my $port = shift;
+ my $cmd = shift;
+ my $portnum = $port->{PORT_NUM};
+ #logit "xhfc_ph_command(portnum=$portnum)";
+ if ("$cmd" eq "HFC_L1_ACTIVATE_TE") {
+ su_sel($portnum); # Select port
+ BRI::gen "0 WD 30 60"; # A_SU_WR_STA = (M_SU_ACT & 0x03)
+ # (set activation)
+ } elsif ("$cmd" eq "HFC_L1_FORCE_DEACTIVATE_TE") {
+ su_sel($portnum); # Select port
+ BRI::gen "0 WD 30 40"; # A_SU_WR_STA = (M_SU_ACT & 0x02)
+ # (set deactivation)
+ } elsif ("$cmd" eq "HFC_L1_ACTIVATE_NT") {
+ su_sel($portnum); # Select port
+ BRI::gen "0 WD 30 E0"; # A_SU_WR_STA = (M_SU_ACT & 0x03) | 0x80
+ # (set activation + NT)
+ } elsif ("$cmd" eq "HFC_L1_DEACTIVATE_NT") {
+ su_sel($portnum); # Select port
+ BRI::gen "0 WD 30 40"; # A_SU_WR_STA = (M_SU_ACT & 0x02)
+ # (set deactivation)
+ }
+}
+
+
+sub zthfc_startup {
+ my $port = shift;
+ my $portnum = $port->{PORT_NUM};
+ my $port_mode_exch = $port->{PORT_MODE_EXCH};
+ my $bri_nt = $port->{BRI_NT};
+ #logit "zthfc_startup(portnum=$portnum, port_mode_exch=$port_mode_exch, bri_nt=$bri_nt)";
+
+ # PCM <-> ST/Up Configuration
+ foreach my $chan ( 0, 1 ) {
+ $port->setup_fifo($chan, 0, 0xFE, 0, 0);# Transparent mode, FIFO EN, ST->PCM
+ $port->setup_fifo($chan, 1, 0xFE, 0, 0);# Transparent mode, FIFO EN, ST->PCM
+ $port->setup_su($chan); # zap_xhfc_su.c:194
+ }
+
+ # Zaptel chan 2 used as HDLC D-Channel
+ $port->setup_fifo(2, 0, 0x05, 2, 0); # D-TX: zap_xhfc_su.c:205
+ $port->setup_fifo(2, 1, 0x05, 2, 0); # D-RX: zap_xhfc_su.c:206
+ # E-chan, Echo channel is ignored
+
+
+ # enable this port's state machine
+ su_sel($portnum); # Select port
+ # A_SU_WR_STA: reset port state machine
+ BRI::gen "0 WD 30 00";
+ if ("$bri_nt" == 0) {
+ $port->xhfc_ph_command("HFC_L1_ACTIVATE_TE");
+ } else {
+ $port->xhfc_ph_command("HFC_L1_ACTIVATE_NT");
+ }
+}
+
+
+package main;
+
+use File::Basename;
+use Getopt::Std;
+
+my $program = basename("$0");
+my $init_dir = dirname("$0");
+
+# Arrange for error logging
+if (-t STDERR) {
+ logit "Interactive\n";
+} else {
+ open (STDERR, "| logger -s -t $program -p kern.info") || die;
+ logit "Non Interactive\n";
+}
+
+my %opts;
+getopts('o:', \%opts);
+
+$ENV{XPP_BASE} = '/proc/xpp';
+my $output;
+my $unit_id;
+if ($opts{o}) {
+ $output = $opts{o};
+ $unit_id = 'Interactive';
+} else {
+ $ENV{XPD_BUS} || die "Missing XPD_BUS environment variable\n";
+ $ENV{XPD_NAME} || die "Missing XPD_NAME environment variable\n";
+ $ENV{XPD_TYPE} || die "Missing XPD_TYPE environment variable\n";
+ $ENV{XPD_REVISION} || die "Missing XPD_REVISION environment variable\n";
+ $output = "$ENV{XPP_BASE}/$ENV{XPD_BUS}/$ENV{XPD_NAME}/slics";
+ $unit_id = "$ENV{XPD_BUS}/$ENV{XPD_NAME}";
+}
+
+open(REG, ">$output") || die "Failed to open '$output': $!\n";
+select REG;
+
+
+#logit "$unit_id: Starting '$0'";
+
+#------------------------------------------- Instance detection
+
+# zap_xhfc_su.c:895
+sub init_xhfc() {
+ #logit "init_xhfc()";
+ BRI::gen "#--------------------------- init_xhfc";
+ BRI::gen "0 WD 0D 00"; # r_FIFO_MD: 16 fifos,
+ # 64 bytes for TX and RX each (FIFO mode config)
+
+ # software reset to enable R_FIFO_MD setting
+ BRI::gen "0 WD 00 08"; # R_CIRM = M_SRES (soft reset)
+ # --> WAIT 5u
+ BRI::gen "0 WD 00 00"; # R_CIRM = 0 (zero it to deactivate reset)
+
+ # amplitude
+ BRI::gen "0 WD 46 80"; # R_PWM_MD: (PWM output mode register)
+ # PWM push to zero only
+ BRI::gen "0 WD 39 18"; # R_PWM1: (modulator register for PWM1)
+ # set duty cycle
+
+ BRI::gen "0 WD 0C 11"; # R_FIFO_THRES: (FIFO fill lvl control register)
+ # RX/TX threshold = 16 bytes
+
+ # --> Wait until (R_STATUS & (M_BUSY | M_PCM_INIT))
+ # M_BUSY status will be checked after fifo selection
+ BRI::gen "0 WD 0F 80";
+ # set PCM !master mode
+ BRI::gen "0 WD 14 08"; # R_PCM_MD0 = PCM slave mode, F0IO duration is 2 HFC_PCLK's
+
+ # (C4IO, F0IO are inputs)
+
+ # set pll adjust
+ # WD 14 90 # R_PCM_MD0: Index value to select
+ # the register at address 15
+ # WD 15 2C # R_PCM_MD1: V_PLL_ADJ (DPLL adjust speed), C4IO is 16.384MHz(128 time slots)
+ # in the last slot of PCM frame
+ BRI::gen "0 WS 14 98 20"; # R_PCM_MD1: V_PLL_ADJ
+ # (DPLL adjust speed) in the
+ # last slot of PCM frame
+}
+
+my %port_type = (
+ 6 => { 'BRI_NT' => 0 },
+ 7 => { 'BRI_NT' => 1 }
+ );
+
+# zap_xhfc_su.c:175
+sub main() {
+ #logit "main()";
+
+ $ENV{XPD_TYPE} || die "Missing XPD_TYPE environment variable\n";
+ my $type = $port_type{$ENV{XPD_TYPE}};
+ die "Bad XPD_TYPE=$ENV{XPD_TYPE}\n" unless $type;
+ die "Missing XPD_SUBUNIT information\n" unless defined($ENV{XPD_SUBUNIT});
+
+ # We must first turn off packet reception.
+ #
+ # Otherwise we mess with registers while the FPGA firmware tries to
+ # send us packets.
+
+ # Common initialization
+
+ if($ENV{XPD_SUBUNIT} eq '0') {
+ # Turn off multi-byte packet reception before initialization started
+ system("/bin/echo \"0A 00 0F 00 C0 00 00 00 00 00\" >/proc/xpp/$ENV{XPD_BUS}/command");
+ system("/bin/echo \"0A 00 0F 08 C0 00 00 00 00 00\" >/proc/xpp/$ENV{XPD_BUS}/command");
+ system("/bin/echo \"0A 00 0F 10 C0 00 00 00 00 00\" >/proc/xpp/$ENV{XPD_BUS}/command");
+ system("/bin/echo \"0A 00 0F 18 C0 00 00 00 00 00\" >/proc/xpp/$ENV{XPD_BUS}/command");
+
+ init_xhfc; # zap_xhfc_su.c:1173 in setup_instance()
+ }
+
+ # Port initialization
+ my $p = BRI::Port->new(
+ 'PORT_NUM' => $ENV{XPD_SUBUNIT},
+ 'BRI_NT' => $type->{BRI_NT},
+ 'PORT_MODE_UP' => 0,
+ 'PORT_MODE_EXCH' => 0
+ );
+ # zap_XHfc_su.c:1186 in setup_instance()
+ $p->init_su;
+
+ $p->zthfc_startup;
+
+ if($ENV{XPD_SUBUNIT} eq 3) {
+ # Turn on multi-byte packet reception when ports initialization finished
+ system("/bin/echo \"0A 00 0F 00 80 00 00 00 00 00\" >/proc/xpp/$ENV{XPD_BUS}/command");
+ system("/bin/echo \"0A 00 0F 08 80 00 00 00 00 00\" >/proc/xpp/$ENV{XPD_BUS}/command");
+ system("/bin/echo \"0A 00 0F 10 80 00 00 00 00 00\" >/proc/xpp/$ENV{XPD_BUS}/command");
+ system("/bin/echo \"0A 00 0F 18 80 00 00 00 00 00\" >/proc/xpp/$ENV{XPD_BUS}/command");
+ }
+}
+
+main;
+
+#logit "$unit_id: Ending '$0'";
+
+close REG;
+exit 0;
diff --git a/xpp/init_card_7_24 b/xpp/init_card_7_24
new file mode 100755
index 0000000..e06e8b0
--- /dev/null
+++ b/xpp/init_card_7_24
@@ -0,0 +1,414 @@
+#! /usr/bin/perl -w
+use strict;
+
+#
+# $Id$
+#
+
+#
+# Written by Oron Peled <oron@actcom.co.il>
+# Copyright (C) 2006, Xorcom
+#
+# All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# See the file LICENSE in the top level of this tarball.
+#
+
+# This script is run from the xpp kernel module upon detection
+# of a new XPD.
+#
+# Expects the following environment variables to be set:
+# XPD_BUS - bus name
+# XPD_NAME - xpd name
+# XPD_UNIT - xpd unit number
+# XPD_SUBUNIT - xpd subunit number
+# XPD_TYPE - xpd type number (from protocol reply):
+# 3 - FXS
+# 4 - FXO
+# 6 - BRI_TE
+# 7 - BRI_NT
+# XPD_REVISION - xpd revision number
+#
+# Output data format:
+# - An optional comment start with ';' or '#' until the end of line
+# - Optional Blank lines are ignored
+# - Fields are whitespace separated (spaces or tabs)
+#
+# The fields are (in command line order):
+# 1. CHIP select in decimal (ignored, taken from 3 LSB's of subunit number)
+# 2. Command word:
+# - RD Read Direct register.
+# - RS Read Sub-register.
+# - WD Write Direct register.
+# - WS Write Sub-register.
+# 3. Register number in hexadecimal.
+# 4. Subregister number in hexadecimal. (for RS and WS commands).
+# 5. Data byte in hexadecimal. (for WD and WS commands only).
+#
+
+package main;
+sub logit {
+ print STDERR "@_\n";
+}
+
+package BRI;
+
+sub gen {
+ my $fmt = shift;
+ printf "$fmt\n", @_;
+}
+
+package BRI::Port;
+
+sub new {
+ my $pack = shift;
+ my $port = { @_ };
+ bless $port, $pack;
+}
+
+# zap_xhfc_su.c:995
+sub init_su {
+ my $port = shift;
+ my $portnum = $port->{PORT_NUM};
+ my $port_mode_up = $port->{PORT_MODE_UP};
+ my $port_mode_exch = $port->{PORT_MODE_EXCH};
+ my $bri_nt = $port->{BRI_NT};
+ #logit "init_su(portnum=$portnum, port_mode_up=$port_mode_up, bri_nt=$bri_nt)";
+
+ # Setting PLL
+ # R_PLL_CTRL = 0 (V_PLL_M = 0, Reset PLL, Disable PLL_
+ # R_CLK_CFG = 05 (PLL clock as system clock, output it to CLK_OUT pin)
+ # R_PLL_P = 1
+ # R_PLL_N = 6
+ # R_PLL_S = 1
+ # R_PLL_CTRL = 1 (V_PLL_M)
+
+ BRI::gen "#--------------------------- init_su($portnum, $bri_nt, $port_mode_up, $port_mode_exch)";
+ BRI::gen "0 WD 02 04";
+ BRI::gen "0 WD 50 00"; # disable PLL
+ BRI::gen "0 WD 51 02";
+ BRI::gen "0 WD 52 06";
+ BRI::gen "0 WD 53 04";
+ BRI::gen "0 WD 50 01"; # Enable PLL
+ BRI::gen "0 WD 02 05"; # Enable PLL
+
+ su_sel($portnum); # select port
+ if ("$port_mode_up" == 1) {
+ $port->{CTRL3} = 0x01; # A_ST_CTRL3: V_ST_SEL = 1
+ $port->{CTRL0} = 0x10; # A_SU_CTRL0: V_ST_SQ_EN = 1
+ BRI::gen "0 WD 34 0F"; # A_MS_TX:
+ # (multiframe/superframe transmit register)
+ } else {
+ $port->{CTRL3} = 0x00; # A_ST_CTRL3: V_ST_SEL = 0
+ $port->{CTRL0} = 0x00; # A_SU_CTRL0: V_ST_SQ_EN = 0
+ }
+ if ("$bri_nt" == 1) {
+ $port->{CTRL0} |= 0x04; # V_SU_MD
+ }
+ # ((V_SU_EXCH)?0x80:00) (change polarity)
+ if($port_mode_exch) {
+ $port->{CTRL2} = 0x80;
+ } else {
+ $port->{CTRL2} = 0x00;
+ }
+ BRI::gen "0 WD 35 %02X", $port->{CTRL3}; # A_ST_CTRL3
+ BRI::gen "0 WD 31 %02X", $port->{CTRL0}; # A_SU_CTRL0
+ BRI::gen "0 WD 35 F8"; # A_ST_CTRL3 = set end of pulse control to 0xF8
+ BRI::gen "0 WD 32 08"; # A_SU_CTRL1 = Ignore E-channel data
+ BRI::gen "0 WD 33 %02X", $port->{CTRL2}; # A_SU_CTRL2
+
+ # zap_xhfc_su.c:1030 in init_su()
+ # A_SU_CLK_DLY
+ my $clk_dly;
+ if ("$bri_nt" == 1) {
+ $clk_dly = 0x6C;
+ } else {
+ $clk_dly = 0x0E;
+ }
+ #logit "clk_dly=$clk_dly";
+ BRI::gen "0 WD 37 %02X", "$clk_dly";
+}
+
+sub su_sel {
+ if (@_ != 1 ) {
+ main::logit "ERROR: su_sel() called with " . scalar(@_) . " parameters";
+ exit 1;
+ }
+ my $portnum = shift;
+ BRI::gen "0 WD 16 %02X", $portnum; # R_SU_SEL
+}
+
+# zap_xhfc_su.c:281
+sub xhfc_selfifo {
+ if (@_ != 1 ) {
+ main::logit "ERROR: xhfc_selfifo() called with " . scalar(@_) . " parameters";
+ exit 1;
+ }
+ my $fifonum = shift;
+ #logit "xhfc_selfifo($fifonum)";
+ BRI::gen "0 WD 0F %02X", $fifonum;
+ # --> WAIT UNTIL (R_STATUS & M_BUSY) == 0
+}
+
+# zap_xhfc_su.c:295
+sub xhfc_resetfifo() {
+ #logit "xhfc_resetfifo()";
+ # A_INC_RES_FIFO = M_RES_FIFO | M_RES_FIFO_ERR
+ BRI::gen "0 WD 0E 0A";
+ # --> WAIT UNTIL (R_STATUS & M_BUSY) == 0
+}
+
+# zap_xhfc_su.c:1040
+# Initialize fifo (called for each portnum, channel, direction)
+sub setup_fifo {
+ my $port = shift;
+ my $chan = shift;
+ my $direction = shift;
+ my $conhdlc = shift;
+ my $subcfg = shift;
+ my $fifoctrl = shift;
+
+ my $portnum = $port->{PORT_NUM};
+ my $port_mode_up = $port->{PORT_MODE_UP};
+ my $port_mode_exch = $port->{PORT_MODE_EXCH};
+ my $bri_nt = $port->{BRI_NT};
+
+ BRI::gen "#--------------------------- setup_fifo($portnum, $chan, $direction)";
+ # my $fifonum = 0x80 | ($portnum << 3) | ($chan << 1) | ($direction); # # MSB first
+ my $fifonum = ($portnum << 3) | ($chan << 1) | ($direction); # # MSB first
+ my $r_slot = ($portnum << 3) | ($chan << 1) | ($direction);
+ # receive data from STIO2, transmit to STIO1
+ my $a_sl_cfg = (0x80 | ($portnum << 3) | ($chan << 1) | ($direction));
+
+ #logit "setup_fifo($fifonum)";
+ xhfc_selfifo $fifonum;
+ # A_CON_HDLC: transparent mode selection
+ BRI::gen "0 WD FA %02X", $conhdlc;
+ # A_SUBCH_CFG: subchnl params
+ BRI::gen "0 WD FB %02X", $subcfg;
+ # A_FIFO_CTRL: FIFO Control Register
+ BRI::gen "0 WD FF %02X", $fifoctrl;
+ xhfc_resetfifo;
+ xhfc_selfifo $fifonum; # wait for busy is builtin in this command
+ BRI::gen "0 WD 10 %02X", $r_slot; # R_SLOT
+ BRI::gen "0 WD D0 %02X", $a_sl_cfg; # A_SL_CFG
+}
+
+# zap_xhfc_su.c:1071
+sub setup_su {
+ my $port = shift;
+ my $bchan = shift;
+ my $portnum = $port->{PORT_NUM};
+ my $port_mode_exch = $port->{PORT_MODE_EXCH};
+ my $bri_nt = $port->{BRI_NT};
+
+ BRI::gen "#--------------------------- setup_su($portnum, $bchan)";
+ #logit "setup_su(portnum=$portnum, bchan=$bchan, port_mode_exch=$port_mode_exch, bri_nt=$bri_nt)";
+ $port->{CTRL0} |= (1 << $bchan) | $bri_nt;
+ $port->{CTRL2} |= ($port_mode_exch << 7) | (1 << $bchan);
+ su_sel($portnum); # Select port
+ BRI::gen "0 WD 31 %02X", $port->{CTRL0}; # A_SU_CTRL0: V_B1_TX_EN | V_SU_MD | (NT/TE)
+ BRI::gen "0 WD 33 %02X", $port->{CTRL2}; # A_SU_CTRL2: V_B1_RX_EN
+}
+
+sub xhfc_ph_command {
+ my $port = shift;
+ my $cmd = shift;
+ my $portnum = $port->{PORT_NUM};
+ #logit "xhfc_ph_command(portnum=$portnum)";
+ if ("$cmd" eq "HFC_L1_ACTIVATE_TE") {
+ su_sel($portnum); # Select port
+ BRI::gen "0 WD 30 60"; # A_SU_WR_STA = (M_SU_ACT & 0x03)
+ # (set activation)
+ } elsif ("$cmd" eq "HFC_L1_FORCE_DEACTIVATE_TE") {
+ su_sel($portnum); # Select port
+ BRI::gen "0 WD 30 40"; # A_SU_WR_STA = (M_SU_ACT & 0x02)
+ # (set deactivation)
+ } elsif ("$cmd" eq "HFC_L1_ACTIVATE_NT") {
+ su_sel($portnum); # Select port
+ BRI::gen "0 WD 30 E0"; # A_SU_WR_STA = (M_SU_ACT & 0x03) | 0x80
+ # (set activation + NT)
+ } elsif ("$cmd" eq "HFC_L1_DEACTIVATE_NT") {
+ su_sel($portnum); # Select port
+ BRI::gen "0 WD 30 40"; # A_SU_WR_STA = (M_SU_ACT & 0x02)
+ # (set deactivation)
+ }
+}
+
+
+sub zthfc_startup {
+ my $port = shift;
+ my $portnum = $port->{PORT_NUM};
+ my $port_mode_exch = $port->{PORT_MODE_EXCH};
+ my $bri_nt = $port->{BRI_NT};
+ #logit "zthfc_startup(portnum=$portnum, port_mode_exch=$port_mode_exch, bri_nt=$bri_nt)";
+
+ # PCM <-> ST/Up Configuration
+ foreach my $chan ( 0, 1 ) {
+ $port->setup_fifo($chan, 0, 0xFE, 0, 0);# Transparent mode, FIFO EN, ST->PCM
+ $port->setup_fifo($chan, 1, 0xFE, 0, 0);# Transparent mode, FIFO EN, ST->PCM
+ $port->setup_su($chan); # zap_xhfc_su.c:194
+ }
+
+ # Zaptel chan 2 used as HDLC D-Channel
+ $port->setup_fifo(2, 0, 0x05, 2, 0); # D-TX: zap_xhfc_su.c:205
+ $port->setup_fifo(2, 1, 0x05, 2, 0); # D-RX: zap_xhfc_su.c:206
+ # E-chan, Echo channel is ignored
+
+
+ # enable this port's state machine
+ su_sel($portnum); # Select port
+ # A_SU_WR_STA: reset port state machine
+ BRI::gen "0 WD 30 00";
+ if ("$bri_nt" == 0) {
+ $port->xhfc_ph_command("HFC_L1_ACTIVATE_TE");
+ } else {
+ $port->xhfc_ph_command("HFC_L1_ACTIVATE_NT");
+ }
+}
+
+
+package main;
+
+use File::Basename;
+use Getopt::Std;
+
+my $program = basename("$0");
+my $init_dir = dirname("$0");
+
+# Arrange for error logging
+if (-t STDERR) {
+ logit "Interactive\n";
+} else {
+ open (STDERR, "| logger -s -t $program -p kern.info") || die;
+ logit "Non Interactive\n";
+}
+
+my %opts;
+getopts('o:', \%opts);
+
+$ENV{XPP_BASE} = '/proc/xpp';
+my $output;
+my $unit_id;
+if ($opts{o}) {
+ $output = $opts{o};
+ $unit_id = 'Interactive';
+} else {
+ $ENV{XPD_BUS} || die "Missing XPD_BUS environment variable\n";
+ $ENV{XPD_NAME} || die "Missing XPD_NAME environment variable\n";
+ $ENV{XPD_TYPE} || die "Missing XPD_TYPE environment variable\n";
+ $ENV{XPD_REVISION} || die "Missing XPD_REVISION environment variable\n";
+ $output = "$ENV{XPP_BASE}/$ENV{XPD_BUS}/$ENV{XPD_NAME}/slics";
+ $unit_id = "$ENV{XPD_BUS}/$ENV{XPD_NAME}";
+}
+
+open(REG, ">$output") || die "Failed to open '$output': $!\n";
+select REG;
+
+
+#logit "$unit_id: Starting '$0'";
+
+#------------------------------------------- Instance detection
+
+# zap_xhfc_su.c:895
+sub init_xhfc() {
+ #logit "init_xhfc()";
+ BRI::gen "#--------------------------- init_xhfc";
+ BRI::gen "0 WD 0D 00"; # r_FIFO_MD: 16 fifos,
+ # 64 bytes for TX and RX each (FIFO mode config)
+
+ # software reset to enable R_FIFO_MD setting
+ BRI::gen "0 WD 00 08"; # R_CIRM = M_SRES (soft reset)
+ # --> WAIT 5u
+ BRI::gen "0 WD 00 00"; # R_CIRM = 0 (zero it to deactivate reset)
+
+ # amplitude
+ BRI::gen "0 WD 46 80"; # R_PWM_MD: (PWM output mode register)
+ # PWM push to zero only
+ BRI::gen "0 WD 39 18"; # R_PWM1: (modulator register for PWM1)
+ # set duty cycle
+
+ BRI::gen "0 WD 0C 11"; # R_FIFO_THRES: (FIFO fill lvl control register)
+ # RX/TX threshold = 16 bytes
+
+ # --> Wait until (R_STATUS & (M_BUSY | M_PCM_INIT))
+ # M_BUSY status will be checked after fifo selection
+ BRI::gen "0 WD 0F 80";
+ # set PCM !master mode
+ BRI::gen "0 WD 14 08"; # R_PCM_MD0 = PCM slave mode, F0IO duration is 2 HFC_PCLK's
+
+ # (C4IO, F0IO are inputs)
+
+ # set pll adjust
+ # WD 14 90 # R_PCM_MD0: Index value to select
+ # the register at address 15
+ # WD 15 2C # R_PCM_MD1: V_PLL_ADJ (DPLL adjust speed), C4IO is 16.384MHz(128 time slots)
+ # in the last slot of PCM frame
+ BRI::gen "0 WS 14 98 20"; # R_PCM_MD1: V_PLL_ADJ
+ # (DPLL adjust speed) in the
+ # last slot of PCM frame
+}
+
+my %port_type = (
+ 6 => { 'BRI_NT' => 0 },
+ 7 => { 'BRI_NT' => 1 }
+ );
+
+# zap_xhfc_su.c:175
+sub main() {
+ #logit "main()";
+
+ $ENV{XPD_TYPE} || die "Missing XPD_TYPE environment variable\n";
+ my $type = $port_type{$ENV{XPD_TYPE}};
+ die "Bad XPD_TYPE=$ENV{XPD_TYPE}\n" unless $type;
+ die "Missing XPD_SUBUNIT information\n" unless defined($ENV{XPD_SUBUNIT});
+
+ # We must first turn off packet reception.
+ #
+ # Otherwise we mess with registers while the FPGA firmware tries to
+ # send us packets.
+ BRI::gen "0 Wm";
+
+ # Common initialization
+ if($ENV{XPD_SUBUNIT} eq '0') {
+ # Turn off multi-byte packet reception before initialization started
+ system("/bin/echo \"0A 00 0F 00 C0 00 00 00 00 00\" >/proc/xpp/$ENV{XPD_BUS}/command");
+ system("/bin/echo \"0A 00 0F 08 C0 00 00 00 00 00\" >/proc/xpp/$ENV{XPD_BUS}/command");
+ system("/bin/echo \"0A 00 0F 10 C0 00 00 00 00 00\" >/proc/xpp/$ENV{XPD_BUS}/command");
+ system("/bin/echo \"0A 00 0F 18 C0 00 00 00 00 00\" >/proc/xpp/$ENV{XPD_BUS}/command");
+
+ init_xhfc; # zap_xhfc_su.c:1173 in setup_instance()
+ }
+
+ # Port initialization
+ my $p = BRI::Port->new(
+ 'PORT_NUM' => $ENV{XPD_SUBUNIT},
+ 'BRI_NT' => $type->{BRI_NT},
+ 'PORT_MODE_UP' => 0,
+ 'PORT_MODE_EXCH' => 0
+ );
+ # zap_XHfc_su.c:1186 in setup_instance()
+ $p->init_su;
+
+ $p->zthfc_startup;
+
+ if($ENV{XPD_SUBUNIT} eq 3) {
+ # Turn on multi-byte packet reception when ports initialization finished
+ system("/bin/echo \"0A 00 0F 00 80 00 00 00 00 00\" >/proc/xpp/$ENV{XPD_BUS}/command");
+ system("/bin/echo \"0A 00 0F 08 80 00 00 00 00 00\" >/proc/xpp/$ENV{XPD_BUS}/command");
+ system("/bin/echo \"0A 00 0F 10 80 00 00 00 00 00\" >/proc/xpp/$ENV{XPD_BUS}/command");
+ system("/bin/echo \"0A 00 0F 18 80 00 00 00 00 00\" >/proc/xpp/$ENV{XPD_BUS}/command");
+ }
+}
+
+main;
+
+#logit "$unit_id: Ending '$0'";
+
+close REG;
+exit 0;
diff --git a/xpp/utils/Makefile b/xpp/utils/Makefile
index 7824278..4934b21 100644
--- a/xpp/utils/Makefile
+++ b/xpp/utils/Makefile
@@ -1,21 +1,16 @@
PEDANTIC = -ansi -pedantic -std=c99
+# TODO: temporarity reverting autoconf-related changes.
+# Those changes are not to be applied to 1.4.
RANLIB = ranlib
+INSTALL = install
+INSTALL_DATA = install -m 644
-TOPDIR ?= ../..
-
-# In 1.4 those are provided by autoconf through makeopts
-prefix ?= /usr
-datadir ?= $(prefix)/share
-mandir ?= $(datadir)/man
-INSTALL ?= install
-
-INSTALL_DATA = $(INSTALL) -m 644
-
-BINDIR = $(prefix)/sbin
-DATADIR = $(datadir)/zaptel
-MANDIR = $(mandir)/man8
+BINDIR = /usr/sbin
+DATADIR = /usr/share/zaptel
+MANDIR = /usr/share/man/man8
HOTPLUG_USB_DIR = /etc/hotplug/usb
+UDEV_RULES_DIR = /etc/udev/rules.d
XPD_FIRMWARE = $(wildcard ../firmwares/*.hex)
XPD_INIT_DATA = $(XPD_FIRMWARE) init_fxo_modes
@@ -24,8 +19,8 @@ XPD_INIT = $(wildcard ../init_card_?_*) ../calibrate_slics
# Variables that should be defined above, but need sane defaults:
# FIXME: Are those values really sane?
HOSTCC ?= $(CC)
-PBX_LIBUSB ?= 1
-DRIVER_DIR ?= $(TOPDIR)
+CONFIG_USB ?= y
+DRIVER_DIR ?= ../..
WCTDM=$(DRIVER_DIR)/wctdm.c
@@ -34,7 +29,7 @@ CFLAGS = -g -Wall $(EXTRA_CFLAGS)
TARGETS = init_fxo_modes print_modes adj_clock
PROG_INSTALL = genzaptelconf adj_clock
MAN_INSTALL = genzaptelconf.8 adj_clock.8
-ifeq ($(PBX_LIBUSB),1)
+ifneq (,$(filter y m,$(CONFIG_USB)))
TARGETS += libhexfile.a fpga_load test_parse
PROG_INSTALL += fpga_load
MAN_INSTALL += fpga_load.8
@@ -53,6 +48,8 @@ install: all
$(INSTALL) -d $(DESTDIR)$(HOTPLUG_USB_DIR)
$(INSTALL_DATA) xpp_fxloader.usermap $(DESTDIR)$(HOTPLUG_USB_DIR)/
$(INSTALL) xpp_fxloader $(DESTDIR)$(HOTPLUG_USB_DIR)/
+ $(INSTALL) -d $(DESTDIR)$(UDEV_RULES_DIR)
+ $(INSTALL_DATA) xpp.rules $(DESTDIR)$(UDEV_RULES_DIR)/
libhexfile.a: hexfile.o
$(AR) cru $@ $^
@@ -61,6 +58,8 @@ libhexfile.a: hexfile.o
fpga_load: fpga_load.o libhexfile.a
$(CC) -L. -o $@ $@.o $(EXTRA_LIBS) -lhexfile -lusb
+fpga_load.o: CFLAGS+=-D_GNU_SOURCE # We use memrchr()
+
hexfile.o: hexfile.c hexfile.h
$(CC) $(CFLAGS) $(PEDANTIC) -c $<
diff --git a/xpp/utils/fpga_load.8 b/xpp/utils/fpga_load.8
index 09dd5aa..640bbfd 100644
--- a/xpp/utils/fpga_load.8
+++ b/xpp/utils/fpga_load.8
@@ -5,10 +5,10 @@ ztcfg \- reads and loads zaptel.conf
.SH SYNOPSIS
.B fpga_load
-[\fB-g\fR|\fB-d\fR] [\fB-v\fR] \fB-D\fR/proc/bus/usb/\fIBUS/DEV\fR
+[\fB-g\fR] [\fB-v\fR] \fB-D \fR{/proc/bus/usb|/dev/bus/usb}/\fIBUS/DEV\fR
.B fpga_load
-[\fB-g\fR] [\fB-v\fR] \fB-D\fR/proc/bus/usb/\fIBUS/DEV\fR \fB-I \fIfirmware.hex\fR [\fB-b \fIdump.bin\fR]
+[\fB-g\fR] [\fB-v\fR] \fB-D \fR{/proc/bus/usb|/dev/bus/usb}/\fIBUS/DEV\fR \fB-I \fIfirmware.hex\fR [\fB-b \fIdump.bin\fR]
.B fpga_load -h
@@ -18,29 +18,27 @@ loads the FPGA firmware to the Xorcom Astribank device.
The syntax resembles that of fxload(8).
.SH OPTIONS
-.B -d
+.B -b
.I dump.bin
.RS
Before writing firmware, bump the processed binary file to
.I dump.bin\fR.
.RE
-.B -d
-.RS
-Print Version number bytes from eeprom (to standard output). Implies -g.
-.RE
-
.B -D
.I DEVICE
.RS
-Required. The device to read from/write to. This is normally
-/proc/bus/usb/\fIbus_num\fR/\fIdevice_num\fR , where \fIbus_num\fR and
-\fIdevice_num\fR are the first two numbers in the output of lsusb(8).
+Required. The device to read from/write to. On modern UDEV-based system
+this is usually /dev/bus/usb/\fIbus_num\fR/\fIdevice_num\fR,
+where \fIbus_num\fR and \fIdevice_num\fR are the first two numbers in the
+output of lsusb(8).
+On older systems that use usbfs, it is usually
+/proc/bus/usb/\fIbus_num\fR/\fIdevice_num\fR.
.RE
.B -g
.RS
-Dump all eeprom data to standard error.
+Dump all eeprom data to standard output.
.RE
.B -I
diff --git a/xpp/utils/fpga_load.c b/xpp/utils/fpga_load.c
index e4d4e91..426e6a6 100644
--- a/xpp/utils/fpga_load.c
+++ b/xpp/utils/fpga_load.c
@@ -72,7 +72,15 @@ enum fpga_load_status {
FW_CONFIG_DONE = 8
};
-int my_usb_device(struct usb_device *dev, usb_dev_handle *handle);
+struct my_usb_device {
+ struct usb_device *dev;
+ usb_dev_handle *handle;
+ char iManufacturer[BUFSIZ];
+ char iProduct[BUFSIZ];
+ char iSerialNumber[BUFSIZ];
+ int is_usb2;
+ struct myeeprom eeprom;
+};
const char *load_status2str(enum fpga_load_status s)
{
@@ -85,33 +93,43 @@ const char *load_status2str(enum fpga_load_status s)
}
}
-int path_of_dev(char buf[], unsigned int buflen, struct usb_device *dev)
-{
- return snprintf(buf, buflen, "/proc/bus/usb/%s/%s", dev->bus->dirname, dev->filename);
-}
-
struct usb_device *dev_of_path(const char *path)
{
struct usb_bus *bus;
struct usb_device *dev;
char dirname[PATH_MAX];
char filename[PATH_MAX];
- const char prefix[] = "/proc/bus/usb/";
- const int prefix_len = strlen(prefix);
const char *p;
int bnum;
int dnum;
int ret;
assert(path != NULL);
- if(strncmp(prefix, path, prefix_len) != 0) {
- ERR("wrong path: '%s'\n", path);
+ if(access(path, F_OK) < 0) {
+ perror(path);
+ return NULL;
+ }
+ /* Find last '/' */
+ if((p = memrchr(path, '/', strlen(path))) == NULL) {
+ ERR("Missing a '/' in %s\n", path);
+ return NULL;
+ }
+ /* Get the device number */
+ ret = sscanf(p + 1, "%d", &dnum);
+ if(ret != 1) {
+ ERR("Path tail is not a device number: '%s'\n", p);
return NULL;
}
- p = path + prefix_len;
- ret = sscanf(p, "%d/%d", &bnum, &dnum);
- if(ret != 2) {
- ERR("wrong path tail: '%s'\n", p);
+ /* Search for a '/' before that */
+ p = memrchr(path, '/', p - path);
+ if(p == NULL)
+ p = path; /* Relative path */
+ else
+ p++; /* skip '/' */
+ /* Get the bus number */
+ ret = sscanf(p, "%d", &bnum);
+ if(ret != 1) {
+ ERR("Path tail is not a bus number: '%s'\n", p);
return NULL;
}
sprintf(dirname, "%03d", bnum);
@@ -149,6 +167,9 @@ int get_usb_string(char *buf, unsigned int len, uint16_t item, usb_dev_handle *h
#define MY_EP_OUT 0x04
#define MY_EP_IN 0x88
+#define FPGA_EP_OUT 0x02
+#define FPGA_EP_IN 0x86
+
#define TIMEOUT 5000
static const int my_endpoints[MY_ENDPOINTS] = {
@@ -158,34 +179,36 @@ static const int my_endpoints[MY_ENDPOINTS] = {
0x88
};
-void usb_cleanup(usb_dev_handle *handle)
+void my_usb_device_cleanup(struct my_usb_device *mydev)
{
- if(usb_release_interface(handle, MY_INTERFACE) != 0) {
+ assert(mydev != NULL);
+ if(!mydev->handle) {
+ return; /* Nothing to do */
+ }
+ if(usb_release_interface(mydev->handle, MY_INTERFACE) != 0) {
ERR("Releasing interface: usb: %s\n", usb_strerror());
}
- if(usb_close(handle) != 0) {
+ if(usb_close(mydev->handle) != 0) {
ERR("Closing device: usb: %s\n", usb_strerror());
}
}
-void print_bcd_ver(const struct myeeprom *eeprom)
+static void show_device_info(const struct my_usb_device *mydev)
{
- /* In this case, print only the version. Also note that this
- * is an output, and sent to stdout
- */
- printf("%d.%03d\n", eeprom->release_major, eeprom->release_minor);
- return;
-}
-
-void dump_eeprom(const struct myeeprom *eeprom)
-{
- const uint8_t *data = eeprom->serial;
-
- INFO("Source: 0x%02X\n", eeprom->source);
- INFO("Vendor: 0x%04X\n", eeprom->vendor);
- INFO("Product: 0x%04X\n", eeprom->product);
- INFO("Release: %d.%03d\n", eeprom->release_major, eeprom->release_minor);
- INFO("Data: 0x[%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X]\n",
+ const struct myeeprom *eeprom;
+ const uint8_t *data = eeprom->serial;
+
+ assert(mydev != NULL);
+ eeprom = &mydev->eeprom;
+ data = eeprom->serial;
+ printf("USB iManufacturer: [%s]\n", mydev->iManufacturer);
+ printf("USB iProduct: [%s]\n", mydev->iProduct);
+ printf("USB iSerialNumber: [%s]\n", mydev->iSerialNumber);
+ printf("EEPROM Source: 0x%02X\n", eeprom->source);
+ printf("EEPROM Vendor: 0x%04X\n", eeprom->vendor);
+ printf("EEPROM Product: 0x%04X\n", eeprom->product);
+ printf("EEPROM Release: %d.%03d\n", eeprom->release_major, eeprom->release_minor);
+ printf("EEPROM Serial: 0x[%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X]\n",
data[0], data[1], data[2], data[3],
data[4], data[5], data[6], data[7]);
}
@@ -199,46 +222,46 @@ void dump_packet(const char *buf, int len)
}
#ifdef XORCOM_INTERNAL
-int eeprom_set(struct usb_dev_handle *handle, const struct myeeprom *eeprom)
+int eeprom_set(struct my_usb_device *mydev, const struct myeeprom *eeprom)
{
int ret;
int len;
char buf[PACKET_SIZE];
struct fpga_packet_header *phead = (struct fpga_packet_header *)buf;
- if(verbose >= LOG_INFO)
+ if(verbose >= LOG_DEBUG)
INFO("%s Start...\n", __FUNCTION__);
- assert(handle != NULL);
+ assert(mydev != NULL);
phead->header.op = EEPROM_SET;
memcpy(&phead->d.eeprom_set.data, eeprom, EEPROM_SIZE);
len = sizeof(phead->d.eeprom_set) + sizeof(phead->header.op);
- if(verbose >= LOG_INFO) {
+ if(verbose >= LOG_DEBUG) {
INFO("%s write %d bytes\n", __FUNCTION__, len);
dump_packet((char *)phead, len);
}
- ret = usb_bulk_write(handle, MY_EP_OUT, (char *)phead, len, TIMEOUT);
+ ret = usb_bulk_write(mydev->handle, MY_EP_OUT, (char *)phead, len, TIMEOUT);
if(ret < 0) {
- ERR("usb: bulk_write failed (%d)\n", ret);
+ ERR("bulk_write failed: %s\n", usb_strerror());
return ret;
} else if(ret != len) {
- ERR("usb: bulk_write short write (%d)\n", ret);
+ ERR("bulk_write short write: %s\n", usb_strerror());
return -EFAULT;
}
- ret = usb_bulk_read(handle, MY_EP_IN, buf, sizeof(buf), TIMEOUT);
+ ret = usb_bulk_read(mydev->handle, MY_EP_IN, buf, sizeof(buf), TIMEOUT);
if(ret < 0) {
- ERR("usb: bulk_read failed (%d)\n", ret);
+ ERR("bulk_read failed: %s\n", usb_strerror());
return ret;
} else if(ret == 0)
return 0;
phead = (struct fpga_packet_header *)buf;
if(phead->header.op == BAD_COMMAND) {
- ERR("BAD_COMMAND\n");
+ ERR("Firmware rejected EEPROM_SET command\n");
return -EINVAL;
} else if(phead->header.op != EEPROM_SET) {
ERR("Got unexpected reply op=%d\n", phead->header.op);
return -EINVAL;
}
- if(verbose >= LOG_INFO) {
+ if(verbose >= LOG_DEBUG) {
INFO("%s read %d bytes\n", __FUNCTION__, ret);
dump_packet(buf, ret);
}
@@ -246,33 +269,35 @@ int eeprom_set(struct usb_dev_handle *handle, const struct myeeprom *eeprom)
}
#endif
-int eeprom_get(struct usb_dev_handle *handle, struct myeeprom *eeprom)
+int eeprom_get(struct my_usb_device *mydev)
{
int ret;
int len;
char buf[PACKET_SIZE];
struct fpga_packet_header *phead = (struct fpga_packet_header *)buf;
+ struct myeeprom *eeprom;
- assert(handle != NULL);
- if(verbose >= LOG_INFO)
+ assert(mydev != NULL);
+ eeprom = &mydev->eeprom;
+ if(verbose >= LOG_DEBUG)
INFO("%s Start...\n", __FUNCTION__);
phead->header.op = EEPROM_GET;
len = sizeof(phead->header.op); /* warning: sending small packet */
- if(verbose >= LOG_INFO) {
+ if(verbose >= LOG_DEBUG) {
INFO("%s write %d bytes\n", __FUNCTION__, len);
dump_packet(buf, len);
}
- ret = usb_bulk_write(handle, MY_EP_OUT, (char *)phead, len, TIMEOUT);
+ ret = usb_bulk_write(mydev->handle, MY_EP_OUT, (char *)phead, len, TIMEOUT);
if(ret < 0) {
- ERR("usb: bulk_write failed (%d)\n", ret);
+ ERR("bulk_write failed: %s\n", usb_strerror());
return ret;
} else if(ret != len) {
- ERR("usb: bulk_write short write (%d)\n", ret);
+ ERR("bulk_write short write: %s\n", usb_strerror());
return -EFAULT;
}
- ret = usb_bulk_read(handle, MY_EP_IN, buf, sizeof(buf), TIMEOUT);
+ ret = usb_bulk_read(mydev->handle, MY_EP_IN, buf, sizeof(buf), TIMEOUT);
if(ret < 0) {
- ERR("usb: bulk_read failed (%d)\n", ret);
+ ERR("bulk_read failed: %s\n", usb_strerror());
return ret;
} else if(ret == 0)
return 0;
@@ -284,7 +309,7 @@ int eeprom_get(struct usb_dev_handle *handle, struct myeeprom *eeprom)
ERR("Got unexpected reply op=%d\n", phead->header.op);
return -EINVAL;
}
- if(verbose >= LOG_INFO) {
+ if(verbose >= LOG_DEBUG) {
INFO("%s read %d bytes\n", __FUNCTION__, ret);
dump_packet(buf, ret);
}
@@ -292,7 +317,7 @@ int eeprom_get(struct usb_dev_handle *handle, struct myeeprom *eeprom)
return 0;
}
-int send_hexline(struct usb_dev_handle *handle, struct hexline *hexline, int seq)
+int send_hexline(struct my_usb_device *mydev, struct hexline *hexline, int seq)
{
int ret;
int len;
@@ -301,7 +326,7 @@ int send_hexline(struct usb_dev_handle *handle, struct hexline *hexline, int seq
struct fpga_packet_header *phead = (struct fpga_packet_header *)buf;
enum fpga_load_status status;
- assert(handle != NULL);
+ assert(mydev != NULL);
assert(hexline != NULL);
len = hexline->d.content.header.ll; /* don't send checksum */
data = hexline->d.content.tt_data.data;
@@ -314,21 +339,21 @@ int send_hexline(struct usb_dev_handle *handle, struct hexline *hexline, int seq
phead->d.data_packet.reserved = 0x00;
memcpy(phead->d.data_packet.data, data, len);
len += sizeof(hexline->d.content.header);
- if(verbose >= LOG_INFO)
+ if(verbose >= LOG_DEBUG)
INFO("%04d+\r", seq);
- ret = usb_bulk_write(handle, MY_EP_OUT, (char *)phead, len, TIMEOUT);
+ ret = usb_bulk_write(mydev->handle, MY_EP_OUT, (char *)phead, len, TIMEOUT);
if(ret < 0) {
- ERR("usb: bulk_write failed (%d)\n", ret);
+ ERR("bulk_write failed: %s\n", usb_strerror());
return ret;
} else if(ret != len) {
- ERR("usb: bulk_write short write (%d)\n", ret);
+ ERR("bulk_write short write: %s\n", usb_strerror());
return -EFAULT;
}
if (verbose >= LOG_DEBUG)
dump_packet((char*)phead, len);
- ret = usb_bulk_read(handle, MY_EP_IN, buf, sizeof(buf), TIMEOUT);
+ ret = usb_bulk_read(mydev->handle, MY_EP_IN, buf, sizeof(buf), TIMEOUT);
if(ret < 0) {
- ERR("usb: bulk_read failed (%d)\n", ret);
+ ERR("bulk_read failed: %s\n", usb_strerror());
return ret;
} else if(ret == 0)
return 0;
@@ -361,7 +386,7 @@ int send_hexline(struct usb_dev_handle *handle, struct hexline *hexline, int seq
//. returns > 0 - ok, the number of lines sent
//. returns < 0 - error number
-int send_splited_hexline(struct usb_dev_handle *handle, struct hexline *hexline, int seq, uint8_t maxwidth)
+int send_splited_hexline(struct my_usb_device *mydev, struct hexline *hexline, int seq, uint8_t maxwidth)
{
struct hexline *extraline;
int linessent = 0;
@@ -370,6 +395,7 @@ int send_splited_hexline(struct usb_dev_handle *handle, struct hexline *hexline,
unsigned int this_line = 0;
uint8_t bytesleft = 0;
+ assert(mydev != NULL);
if(!hexline) {
ERR("Bad record %d type = %d\n", seq, hexline->d.content.header.tt);
return -EINVAL;
@@ -390,7 +416,7 @@ int send_splited_hexline(struct usb_dev_handle *handle, struct hexline *hexline,
extraline->d.content.header.offset = hexline->d.content.header.offset + extra_offset;
extraline->d.content.header.tt = hexline->d.content.header.tt;
memcpy( extraline->d.content.tt_data.data, hexline->d.content.tt_data.data+extra_offset, this_line);
- status = send_hexline( handle, extraline, seq+linessent );
+ status = send_hexline(mydev, extraline, seq+linessent );
// cleanups
free(extraline);
extra_offset += this_line;
@@ -402,21 +428,44 @@ int send_splited_hexline(struct usb_dev_handle *handle, struct hexline *hexline,
return linessent;
}
-int my_usb_device(struct usb_device *dev, usb_dev_handle *handle)
+int my_usb_device_init(const char devpath[], struct my_usb_device *mydev)
{
struct usb_device_descriptor *dev_desc;
struct usb_config_descriptor *config_desc;
struct usb_interface *interface;
struct usb_interface_descriptor *iface_desc;
struct usb_endpoint_descriptor *endpoint;
- char iManufacturer[BUFSIZ];
- char iProduct[BUFSIZ];
int ret;
int i;
- assert(dev != NULL);
- dev_desc = &dev->descriptor;
- config_desc = dev->config;
+ assert(mydev != NULL);
+ usb_init();
+ usb_find_busses();
+ usb_find_devices();
+ mydev->dev = dev_of_path(devpath);
+ if(!mydev->dev) {
+ ERR("Bailing out\n");
+ return 0;
+ }
+ mydev->handle = usb_open(mydev->dev);
+ if(!mydev->handle) {
+ ERR("Failed to open usb device '%s/%s': %s\n", mydev->dev->bus->dirname, mydev->dev->filename, usb_strerror());
+ return 0;
+ }
+ if(usb_reset(mydev->handle) != 0) {
+ ERR("Reseting device: usb: %s\n", usb_strerror());
+ return 0;
+ }
+ if(usb_set_configuration(mydev->handle, MY_CONFIG) != 0) {
+ ERR("usb: %s\n", usb_strerror());
+ return 0;
+ }
+ if(usb_claim_interface(mydev->handle, MY_INTERFACE) != 0) {
+ ERR("usb: %s\n", usb_strerror());
+ return 0;
+ }
+ dev_desc = &mydev->dev->descriptor;
+ config_desc = mydev->dev->config;
interface = config_desc->interface;
iface_desc = interface->altsetting;
if(verbose >= LOG_INFO)
@@ -424,127 +473,86 @@ int my_usb_device(struct usb_device *dev, usb_dev_handle *handle)
dev_desc->idVendor, dev_desc->idProduct, dev_desc->bDeviceClass, iface_desc->bNumEndpoints);
if(iface_desc->bInterfaceClass != 0xFF) {
ERR("Wrong Interface class %d\n", iface_desc->bInterfaceClass);
- return -EINVAL;
+ return 0;
}
if(iface_desc->bInterfaceNumber != MY_INTERFACE) {
ERR("Wrong Interface number %d\n", iface_desc->bInterfaceNumber);
- return -EINVAL;
+ return 0;
}
if(iface_desc->bNumEndpoints != MY_ENDPOINTS) {
ERR("Wrong number of endpoints: %d\n", iface_desc->bNumEndpoints);
- return -EINVAL;
+ return 0;
}
endpoint = iface_desc->endpoint;
+ mydev->is_usb2 = (endpoint->wMaxPacketSize == 512);
for(i = 0; i < iface_desc->bNumEndpoints; i++, endpoint++) {
if(endpoint->bEndpointAddress != my_endpoints[i]) {
ERR("Wrong endpoint %d: address = 0x%X\n", i, endpoint->bEndpointAddress);
- return -EINVAL;
+ return 0;
}
if(endpoint->bEndpointAddress == MY_EP_OUT || endpoint->bEndpointAddress == MY_EP_IN) {
if(endpoint->wMaxPacketSize > PACKET_SIZE) {
ERR("Endpoint #%d wMaxPacketSize too large (%d)\n", i, endpoint->wMaxPacketSize);
- return -EINVAL;
+ return 0;
}
}
}
- if(usb_reset(handle) != 0) {
- ERR("Reseting device: usb: %s\n", usb_strerror());
- }
- if(usb_set_configuration(handle, MY_CONFIG) != 0) {
- ERR("usb: %s\n", usb_strerror());
- return -EINVAL;
- }
- if(usb_claim_interface(handle, MY_INTERFACE) != 0) {
- ERR("usb: %s\n", usb_strerror());
- return -EINVAL;
- }
- if(usb_resetep(handle, MY_EP_OUT) != 0) {
- ERR("usb: %s\n", usb_strerror());
- return -EINVAL;
+ if(usb_resetep(mydev->handle, MY_EP_OUT) != 0) {
+ ERR("Failed to reset usb output endpoint: %s\n", usb_strerror());
+ return 0;
}
- if(usb_resetep(handle, MY_EP_IN) != 0) {
- ERR("usb: %s\n", usb_strerror());
- return -EINVAL;
+ if(usb_resetep(mydev->handle, MY_EP_IN) != 0) {
+ ERR("Failed to reset usb input endpoint: %s\n", usb_strerror());
+ return 0;
}
- ret = get_usb_string(iManufacturer, BUFSIZ, dev_desc->iManufacturer, handle);
- ret = get_usb_string(iProduct, BUFSIZ, dev_desc->iProduct, handle);
- if(verbose >= LOG_INFO)
- INFO("iManufacturer=%s iProduct=%s\n", iManufacturer, iProduct);
- return 0;
+ ret = get_usb_string(mydev->iManufacturer, BUFSIZ, dev_desc->iManufacturer, mydev->handle);
+ ret = get_usb_string(mydev->iProduct, BUFSIZ, dev_desc->iProduct, mydev->handle);
+ ret = get_usb_string(mydev->iSerialNumber, BUFSIZ, dev_desc->iSerialNumber, mydev->handle);
+ return 1;
}
-int renumerate_device(struct usb_dev_handle *handle)
+int renumerate_device(struct my_usb_device *mydev)
{
char buf[PACKET_SIZE];
struct fpga_packet_header *phead = (struct fpga_packet_header *)buf;
int ret;
- assert(handle != NULL);
+ assert(mydev != NULL);
if(verbose >= LOG_INFO)
INFO("Renumerating\n");
phead->header.op = RENUMERATE;
- ret = usb_bulk_write(handle, MY_EP_OUT, (char *)phead, 1, TIMEOUT);
+ ret = usb_bulk_write(mydev->handle, MY_EP_OUT, (char *)phead, 1, TIMEOUT);
if(ret < 0) {
- ERR("usb: bulk_write failed (%d)\n", ret);
+ ERR("bulk_write failed: %s\n", usb_strerror());
return ret;
} else if(ret != 1) {
- ERR("usb: bulk_write short write (%d)\n", ret);
+ ERR("bulk_write short write: %s\n", usb_strerror());
return -EFAULT;
}
return 0;
}
-int fpga_load(struct usb_dev_handle *handle, const struct hexdata *hexdata)
+/*
+ * Returns: true on success, false on failure
+ */
+int fpga_load(struct my_usb_device *mydev, const struct hexdata *hexdata)
{
unsigned int i;
+ unsigned int j = 0;
int ret;
int finished = 0;
- assert(handle != NULL);
+ assert(mydev != NULL);
if(verbose >= LOG_INFO)
INFO("Start...\n");
-
- for(i = 0; i < hexdata->maxlines; i++) {
- struct hexline *hexline = hexdata->lines[i];
-
- if(!hexline)
- break;
- if(finished) {
- ERR("Extra data after End Of Data Record (line %d)\n", i);
- return 0;
- }
- if(hexline->d.content.header.tt == TT_EOF) {
- INFO("End of data\n");
- finished = 1;
- continue;
- }
- if((ret = send_hexline(handle, hexline, i)) != 0) {
- perror("Failed sending hexline");
- return 0;
- }
- }
- if(verbose >= LOG_INFO)
- INFO("Finished...\n");
- return 1;
-}
-
-int fpga_load_usb1(struct usb_dev_handle *handle, const struct hexdata *hexdata)
-{
- unsigned int i,j=0;
- int ret;
- int finished = 0;
-
- assert(handle != NULL);
- if(verbose >= LOG_INFO)
- INFO("Start...\n");
-
- // i - is the line number
- // j - is the sequence number, on USB 2, i=j, but on
- // USB 1 send_splited_hexline may increase the sequence
- // number, as it needs
+ /*
+ * i - is the line number
+ * j - is the sequence number, on USB 2, i=j, but on
+ * USB 1 send_splited_hexline may increase the sequence
+ * number, as it needs
+ */
for(i = 0; i < hexdata->maxlines; i++) {
struct hexline *hexline = hexdata->lines[i];
-
if(!hexline)
break;
@@ -553,16 +561,23 @@ int fpga_load_usb1(struct usb_dev_handle *handle, const struct hexdata *hexdata)
return 0;
}
if(hexline->d.content.header.tt == TT_EOF) {
- INFO("End of data\n");
+ if(verbose >= LOG_INFO)
+ INFO("End of data\n");
finished = 1;
continue;
}
-
- if((ret = send_splited_hexline(handle, hexline, j, 60)) < 0) {
- perror("Failed sending hexline (splitting did not help)");
- return 0;
+ if(mydev->is_usb2) {
+ if((ret = send_hexline(mydev, hexline, i)) != 0) {
+ perror("Failed sending hexline");
+ return 0;
+ }
+ } else {
+ if((ret = send_splited_hexline(mydev, hexline, j, 60)) < 0) {
+ perror("Failed sending hexline (splitting did not help)");
+ return 0;
+ }
+ j += ret;
}
- j += ret;
}
if(verbose >= LOG_INFO)
INFO("Finished...\n");
@@ -573,10 +588,9 @@ int fpga_load_usb1(struct usb_dev_handle *handle, const struct hexdata *hexdata)
void usage()
{
- fprintf(stderr, "Usage: %s -D /proc/bus/usb/<bus>/<dev> [options...]\n", progname);
+ fprintf(stderr, "Usage: %s -D {/proc/bus/usb|/dev/bus/usb}/<bus>/<dev> [options...]\n", progname);
fprintf(stderr, "\tOptions:\n");
fprintf(stderr, "\t\t[-b <binfile>] # output to <binfile>\n");
- fprintf(stderr, "\t\t[-d] # Get device version from eeprom\n");
fprintf(stderr, "\t\t[-I <hexfile>] # Input from <hexfile>\n");
fprintf(stderr, "\t\t[-g] # Get eeprom from device\n");
#ifdef XORCOM_INTERNAL
@@ -599,27 +613,14 @@ static void parse_report_func(int level, const char *msg, ...)
va_end(ap);
}
-int hasUSB2( struct usb_device *dev )
-{
- if (dev->config->interface->altsetting->endpoint->wMaxPacketSize != 512)
- return 0;
- else
- return 1;
-}
-
-// usb_interface_descriptor->usb_endpoint_descriptor.wMaxPacketSize
-
int main(int argc, char *argv[])
{
- struct usb_device *dev;
- usb_dev_handle *handle;
+ struct my_usb_device mydev;
const char *devpath = NULL;
const char *binfile = NULL;
const char *hexfile = NULL;
struct hexdata *hexdata = NULL;
- struct myeeprom eeprom_buf;
int opt_read_eeprom = 0;
- int opt_print_bcdver_only = 0;
#ifdef XORCOM_INTERNAL
int opt_write_eeprom = 0;
char *vendor = NULL;
@@ -629,9 +630,9 @@ int main(int argc, char *argv[])
char *release = NULL;
char *serial = NULL;
uint8_t serial_buf[SERIAL_SIZE];
- const char options[] = "b:C:dD:ghI:vV:P:R:S:";
+ const char options[] = "b:C:D:ghI:vV:P:R:S:";
#else
- const char options[] = "b:dD:ghI:v";
+ const char options[] = "b:D:ghI:v";
#endif
int ret = 0;
@@ -652,10 +653,6 @@ int main(int argc, char *argv[])
case 'b':
binfile = optarg;
break;
- case 'd':
- opt_print_bcdver_only = 1;
- opt_read_eeprom = 1;
- break;
case 'g':
opt_read_eeprom = 1;
break;
@@ -730,97 +727,74 @@ int main(int argc, char *argv[])
ERR("Missing device path\n");
usage();
}
- if(verbose)
+#ifdef XORCOM_INTERNAL
+ if(vendor || product || release || serial || source )
+ opt_read_eeprom = opt_write_eeprom = 1;
+#endif
+ if(verbose >= LOG_INFO)
INFO("Startup %s\n", devpath);
- usb_init();
- usb_find_busses();
- usb_find_devices();
- dev = dev_of_path(devpath);
- if(!dev) {
- ERR("Bailing out\n");
- exit(1);
- }
- handle = usb_open(dev);
- if(!handle) {
- ERR("Failed to open usb device '%s/%s': %s\n", dev->bus->dirname, dev->filename, usb_strerror());
- return -ENODEV;
- }
- if(my_usb_device(dev, handle)) {
- ERR("Foreign usb device '%s/%s'\n", dev->bus->dirname, dev->filename);
+ if(!my_usb_device_init(devpath, &mydev)) {
+ ERR("Failed to initialize USB device '%s'\n", devpath);
ret = -ENODEV;
goto dev_err;
}
-
+ ret = eeprom_get(&mydev);
+ if(ret < 0) {
+ ERR("Failed reading eeprom\n");
+ goto dev_err;
+ }
+ if(opt_read_eeprom) {
+ show_device_info(&mydev);
+ }
if(hexdata) {
- int status;
-
- if (hasUSB2(dev))
- status = fpga_load(handle, hexdata);
- else {
+ if (!mydev.is_usb2)
INFO("Warning: working on a low end USB1 backend\n");
- status = fpga_load_usb1(handle, hexdata);
- }
-
- if(!status) {
+ if(!fpga_load(&mydev, hexdata)) {
ERR("FPGA loading failed\n");
ret = -ENODEV;
goto dev_err;
}
- ret = renumerate_device(handle);
+ ret = renumerate_device(&mydev);
if(ret < 0) {
ERR("Renumeration failed: errno=%d\n", ret);
goto dev_err;
}
}
-#ifdef XORCOM_INTERNAL
- if(vendor || product || release || serial || source )
- opt_read_eeprom = opt_write_eeprom = 1;
-#endif
- if(opt_read_eeprom) {
- ret = eeprom_get(handle, &eeprom_buf);
- if(ret < 0) {
- ERR("Failed reading eeprom: %d\n", ret);
- goto dev_err;
- }
- if (opt_print_bcdver_only)
- print_bcd_ver(&eeprom_buf);
- else
- dump_eeprom(&eeprom_buf);
- }
#ifdef XORCOM_INTERNAL
if(opt_write_eeprom) {
// FF: address source is from device. C0: from eeprom
if (is_source_given)
- eeprom_buf.source = strtoul(source, NULL, 0);
+ mydev.eeprom.source = strtoul(source, NULL, 0);
else
- eeprom_buf.source = 0xC0;
+ mydev.eeprom.source = 0xC0;
if(vendor)
- eeprom_buf.vendor = strtoul(vendor, NULL, 0);
+ mydev.eeprom.vendor = strtoul(vendor, NULL, 0);
if(product)
- eeprom_buf.product = strtoul(product, NULL, 0);
+ mydev.eeprom.product = strtoul(product, NULL, 0);
if(release) {
int release_major = 0;
int release_minor = 0;
sscanf(release, "%d.%d", &release_major, &release_minor);
- eeprom_buf.release_major = release_major;
- eeprom_buf.release_minor = release_minor;
+ mydev.eeprom.release_major = release_major;
+ mydev.eeprom.release_minor = release_minor;
}
if(serial) {
- memcpy(eeprom_buf.serial, serial_buf, SERIAL_SIZE);
+ memcpy(&mydev.eeprom.serial, serial_buf, SERIAL_SIZE);
}
- dump_eeprom(&eeprom_buf);
- ret = eeprom_set(handle, &eeprom_buf);
+ ret = eeprom_set(&mydev, &mydev.eeprom);
if(ret < 0) {
- ERR("Failed writing eeprom: %d\n", ret);
+ ERR("Failed writing eeprom: %s\n", strerror(-ret));
goto dev_err;
}
+ printf("------- RESULTS -------\n");
+ show_device_info(&mydev);
}
#endif
- if(verbose)
+ if(verbose >= LOG_INFO)
INFO("Exiting\n");
dev_err:
- usb_cleanup(handle);
+ my_usb_device_cleanup(&mydev);
return ret;
}
diff --git a/xpp/utils/genzaptelconf b/xpp/utils/genzaptelconf
index 3e89915..47d7dd1 100755
--- a/xpp/utils/genzaptelconf
+++ b/xpp/utils/genzaptelconf
@@ -215,7 +215,9 @@ zap_reg_xpp() {
# Get a list of connected Astribank devices, sorted by the name of
# the USB connector. That order is rather arbitrary, but will not
# change without changes to the cabling.
- xbusses=`sort -k 2 /proc/xpp/xbuses | awk -F: '/STATUS=connected/ {print $1}'`
+ xbusses=`sed -e '/STATUS=connected/!d' -e 's/ *STATUS=.*//' -e 's/ *CONNECTOR=//' /proc/xpp/xbuses | sort -t: -k 2 | cut -d: -f1`
+ echo 1>&2 "Zaptel registration order:"
+ echo 1>&2 "$xbusses"
# get a list of XPDs that were not yet registered as zaptel spans.
# this will be the case if you set the parameter zap_autoreg=0 to
@@ -290,7 +292,12 @@ print_pattern() {
;;
esac
case "$mode" in
- list) echo $chan $sig $astbanktype;;
+ list)
+ case "$sig" in
+ fxs) sig_name=FXO;;
+ fxo) sig_name=FXS;;
+ esac
+ echo $chan $sig_name $astbank_type;;
files)
# sadly, both input ports and output ports go into the same span as
# the FXS ports. Thus we need to separate between them. See also
@@ -670,10 +677,15 @@ EOF
# the second line is empty
title=`head -n 1 $procfile`
# stuff that needs to be remembered accross lines (for PRI/BRI support)
- echo "" >>$zaptel_file
- echo "# $title" >>$zaptel_file
- echo "" >>$zapata_file
- echo "; $title" >>$zapata_file
+ case "$mode" in
+ list) echo "### $title";;
+ files)
+ echo "" >>$zaptel_file
+ echo "# $title" >>$zaptel_file
+ echo "" >>$zapata_file
+ echo "; $title" >>$zapata_file
+ ;;
+ esac
echo '-1' >$tmp_dir/span_begin
echo '-1' >$tmp_dir/span_end
echo '0' >$tmp_dir/span_timing
@@ -911,7 +923,10 @@ EOF
reset_zapata_entry $zapata_file $reset_values
;;
list)
- echo BRI/PRI: chans: $bchans, control: $dchan
+ echo "### BRI/PRI: $span_termtype"
+ echo "$bchans Data"
+ echo "$dchan Control"
+ #echo BRI/PRI: chans: $bchans, control: $dchan
;;
esac
fi
@@ -928,12 +943,12 @@ defaultzone = $defaultzone
EOF
fi
- mv ${ZAPCONF_FILE} ${ZAPCONF_FILE}.bak
- mv $zaptel_file ${ZAPCONF_FILE}
- mv ${ZAPATA_FILE} ${ZAPATA_FILE}.bak
- mv $zapata_file ${ZAPATA_FILE}
- # cleaning up the temp dir
- if [ -d "$tmp_dir" ]; then rm -rf "$tmp_dir"; fi
+ if [ "$mode" = 'files' ]; then
+ mv ${ZAPCONF_FILE} ${ZAPCONF_FILE}.bak
+ mv $zaptel_file ${ZAPCONF_FILE}
+ mv ${ZAPATA_FILE} ${ZAPATA_FILE}.bak
+ mv $zapata_file ${ZAPATA_FILE}
+ fi
}
while getopts 'c:de:Fhlm:MRsuv' arg
diff --git a/xpp/utils/xpp_fxloader b/xpp/utils/xpp_fxloader
index b14f746..5fd4ad5 100644
--- a/xpp/utils/xpp_fxloader
+++ b/xpp/utils/xpp_fxloader
@@ -1,8 +1,8 @@
#!/bin/sh
-# xpp_fxload: load XPP firmware
+# xpp_fxloader: load Xorcom Astribank (XPP) firmware
#
-# This script can be run manually or from hotplug.
+# This script can be run manually or from hotplug/udev.
#
# Firmware files should be located in $FIRMWARE_DIR which defaults:
# 1. /usr/share/zaptel
@@ -12,28 +12,21 @@
# Manual Run
# ##########
#
-# path/to/xpp_fxloader xppdetect
+# path/to/xpp_fxloader load
#
# Make sure the firmware files are in $FIRMWARE_DIR
#
+# UDEV Installation
+# #################
#
-# Hotplg Run
-# ##########
+# Copy xpp.rules to /etc/udev/udev.d and xpp_fxloader to /etc/hotplug/usb/ .
#
-# 1. Copy this file and the file xpp_fxloader.usermap to /etc/hotplug/usb/
-# 2. tail -f /var/log/messages...
+# Hotplug Installation
+# ####################
#
-#
-# Suggested udev configuration: I used the following file as
-# /etc/udev/rules.d/z60_zaptel.rules :
+# Copy this file and the file xpp_fxloader.usermap to /etc/hotplug/usb/ .
#
-# BUS!="usb", ACTION!="add", GOTO="zaptel_usb_add_end"
#
-# SYSFS{idVendor}=="e4e4", SYSFS{idProduct}=="11[345][01]", \
-# RUN+="/etc/hotplug/usb/xpp_fxloader udev $sysfs{idVendor}/$sysfs{idProduct}/$sysfs{bcdDevice}"
-#
-# LABEL="zaptel_usb_add_end"
-#
# Written by Tzafrir Cohen <tzafrir.cohen@xorcom.com>
# Copyright (C) 2006, Xorcom
#
@@ -64,16 +57,28 @@ else
LOGGER="logger -i -t '$me'"
fi
-if [ -r "$DEFAULTS" ]; then
- . "$DEFAULTS"
-fi
+USBFS_PREFIX=/proc/bus/usb
+DEVUSB_PREFIX=/dev/bus/usb
+USB_PREFIX=
FIRMWARE_DIR="${FIRMWARE_DIR:-/usr/share/zaptel}"
FIRM_FXS=$FIRMWARE_DIR/FPGA_FXS.hex
REENUM_SLEEP_TIME=3 # only used on manual runs
-FPGA_LOAD="/usr/sbin/fpga_load"
+FPGA_LOAD=${FPGA_LOAD:-/usr/sbin/fpga_load}
+
+if [ -r "$DEFAULTS" ]; then
+ . "$DEFAULTS"
+fi
+
+if [ "$USB_PREFIX" = '' ]; then
+ if [ -d "$DEVUSB_PREFIX" ]; then
+ USB_PREFIX=$DEVUSB_PREFIX
+ elif [ -r "$USBFS_PREFIX/devices" ]; then
+ USB_PREFIX=$USBFS_PREFIX
+ fi
+fi
# With Kernels older that 2.6.10 it seems to be possible
# to trigger a race condition by running fxload or fpga_load
@@ -90,7 +95,7 @@ find_dev() {
v_id=$1
p_id=$2
- lsusb | tr -d : | awk "/ ID $v_id$p_id/{printf \"/proc/bus/usb/%s/%s \",\$2,\$4}"
+ lsusb | tr -d : | awk "/ ID $v_id$p_id/{printf \"$USB_PREFIX/%s/%s \",\$2,\$4}"
}
do_fxload() {
@@ -128,7 +133,7 @@ load_fpga() {
devices=`find_dev $v_id $p_id`
for dev in $devices
do
- card_ver=`$FPGA_LOAD -d -D $dev`
+ card_ver=`$FPGA_LOAD -g -D $dev | sed -n 's/^.*Release: *//'`
firm_ver=`hexfile_version $FIRMWARE_DIR/$fw`
$LOGGER "FPGA Firmware $FIRMWARE_DIR/$fw into $dev"
@@ -151,7 +156,7 @@ load_fpga() {
case "$1" in
udev)
# the following emulate hotplug's environment from udev's environment:
- DEVICE=`echo $DEVNAME | sed -e 's|^/dev/|/proc/|'`
+ DEVICE="$DEVNAME"
PRODUCT="$2"
# skip on to the rest of the script. Don't exit.
;;
diff --git a/xpp/xbus-core.c b/xpp/xbus-core.c
index 59db079..d39c10c 100644
--- a/xpp/xbus-core.c
+++ b/xpp/xbus-core.c
@@ -37,6 +37,9 @@
#include "xpd.h"
#include "xpp_zap.h"
#include "xbus-core.h"
+#ifdef XPP_DEBUGFS
+#include "xpp_log.h"
+#endif
#include "zap_debug.h"
static const char rcsid[] = "$Id$";
@@ -84,53 +87,270 @@ static struct proc_dir_entry *proc_xbuses = NULL;
static DEVICE_ATTR(connector, S_IRUGO, connector_show, NULL);
static DEVICE_ATTR(status, S_IRUGO, status_show, NULL);
-/*------------------------- Packet Handling ------------------------*/
-static kmem_cache_t *packet_cache = NULL;
-static atomic_t xpacket_count = ATOMIC_INIT(0);
-
-/**
- * Allocates a new XPP packet.
- * @xbus The XPP bus in which the packet will flow (for counters
- * maintenance)
- * @flags Flags for kernel memory allocation.
- * @returns A pointer to the new packet, or NULL in case of failure.
- *
- *
- * Packet allocation/deallocation:
- * Sent packets:
- * - Allocated by protocol commands
- * - Deallocated by xmus_xmitter
- * Receive packets:
- * - Allocated/deallocated by xbus_xmiter
+/*------------------------- Debugfs Handling -----------------------*/
+#ifdef XPP_DEBUGFS
+
+#define DEBUGFS_BUFSIZ 4096 /* must be power of two, otherwise POS_IN_BUF will have to use '%' instead of '&' */
+#define POS_IN_BUF(x) ((x) & (DEBUGFS_BUFSIZ-1))
+
+struct debugfs_data {
+ spinlock_t lock;
+ xbus_t *xbus;
+ char buffer[DEBUGFS_BUFSIZ];
+ unsigned long head, tail; /* reading and writing are performed at position (head % BUF_SIZ) and (tail % BUF_SIZ) */
+ wait_queue_head_t queue;
+};
+
+static unsigned long add_to_buf(struct debugfs_data *d, unsigned long tail, const void *buf, unsigned long len)
+{
+ unsigned long count = min(len, (unsigned long)(DEBUGFS_BUFSIZ - POS_IN_BUF(tail)));
+ memcpy(d->buffer + POS_IN_BUF(tail), buf, count); /* fill starting at position tail */
+ memcpy(d->buffer, (u_char *)buf + count, len - count); /* fill leftover */
+ return len;
+}
+
+int xbus_log(xbus_t *xbus, xpd_t *xpd, int direction, const void *buf, unsigned long len)
+{
+ unsigned long tail;
+ unsigned long flags;
+ struct debugfs_data *d;
+ struct log_header header;
+ int ret = 0;
+
+ BUG_ON(!xbus);
+ BUG_ON(!xpd);
+ BUG_ON(sizeof(struct log_header) + len > DEBUGFS_BUFSIZ);
+ d = xbus->debugfs_data;
+ if (!d) /* no consumer process */
+ return ret;
+ spin_lock_irqsave(&d->lock, flags);
+ if (sizeof(struct log_header) + len > DEBUGFS_BUFSIZ - (d->tail - d->head)) {
+ ret = -ENOSPC;
+ DBG("Dropping debugfs data of len %lu, free space is %lu\n", sizeof(struct log_header) + len,
+ DEBUGFS_BUFSIZ - (d->tail - d->head));
+ goto out;
+ }
+ header.len = sizeof(struct log_header) + len;
+ header.time = jiffies_to_msecs(jiffies);
+ header.xpd_num = xpd->id;
+ header.direction = (char)direction;
+ tail = d->tail;
+ tail += add_to_buf(d, tail, &header, sizeof(header));
+ tail += add_to_buf(d, tail, buf, len);
+ d->tail = tail;
+ wake_up_interruptible(&d->queue);
+out:
+ spin_unlock_irqrestore(&d->lock, flags);
+ return ret;
+}
+
+static struct dentry *debugfs_root = NULL;
+static int debugfs_open(struct inode *inode, struct file *file);
+static ssize_t debugfs_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos);
+static int debugfs_release(struct inode *inode, struct file *file);
+
+struct file_operations debugfs_operations = {
+ .open = debugfs_open,
+ .read = debugfs_read,
+ .release = debugfs_release,
+};
+
+/*
+ * As part of the "inode diet" the private data member of struct inode
+ * has changed in 2.6.19. However, Fedore Core 6 adopted this change
+ * a bit earlier (2.6.18). If you use vanila kernel (or Debian Etch)
+ * Change the following test from 2,6,18 to 2,6,19.
*/
-xpacket_t *xbus_packet_new(xbus_t *xbus, gfp_t flags)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
+#define I_PRIVATE(inode) ((inode)->u.generic_ip)
+#else
+#define I_PRIVATE(inode) ((inode)->i_private)
+#endif
+
+static int debugfs_open(struct inode *inode, struct file *file)
{
- xpacket_t *pack;
+ xbus_t *xbus = I_PRIVATE(inode);
+ struct debugfs_data *d;
+ struct log_global_header gheader;
- /* To avoid races we increament counter in advance and decrement it later
- * in case of failure */
- atomic_inc(&xbus->packet_counter);
- //DBG("Incremented packet_counter of bus %s (new packet) to %d\n",
- // xbus->busname, atomic_read(&xbus->packet_counter));
- pack = kmem_cache_alloc(packet_cache, flags);
- if (pack) {
- memset(pack, 0, sizeof(xpacket_t));
- atomic_inc(&xpacket_count);
- } else {
- atomic_dec(&xbus->packet_counter);
- //DBG("Decremented packet_counter of bus %s (failed new packet) to %d\n",
- // xbus->busname, atomic_read(&xbus->packet_counter));
+ BUG_ON(!xbus);
+ DBG("%s\n", xbus->busname);
+ if (xbus->debugfs_data)
+ return -EBUSY;
+ d = kmalloc(sizeof(struct debugfs_data), GFP_KERNEL);
+ if (!d)
+ return -ENOMEM;
+ try_module_get(THIS_MODULE);
+ memset(d, 0, sizeof(struct debugfs_data));
+ spin_lock_init(&d->lock);
+ d->xbus = xbus;
+ d->head = d->tail = 0;
+ init_waitqueue_head(&d->queue);
+ file->private_data = d;
+
+ gheader.magic = XPP_LOG_MAGIC;
+ gheader.version = 1;
+ d->tail += add_to_buf(d, d->tail, &gheader, sizeof(gheader));
+
+ xbus->debugfs_data = d;
+ return 0;
+}
+
+static ssize_t debugfs_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos)
+{
+ struct debugfs_data *d = file->private_data;
+ size_t len;
+
+ BUG_ON(!d);
+ BUG_ON(!d->xbus);
+ DBG("%s\n", d->xbus->busname);
+ while (d->head == d->tail) {
+ if (wait_event_interruptible(d->queue, d->head != d->tail))
+ return -EAGAIN;
+ }
+ len = min(nbytes, (size_t)(d->tail - d->head));
+ if (copy_to_user(buf, d->buffer + POS_IN_BUF(d->head), len))
+ return -EFAULT;
+ d->head += len;
+ /* optimization to avoid future buffer wraparound */
+ if (d->head == d->tail) {
+ unsigned long flags;
+ spin_lock_irqsave(&d->lock, flags);
+ if (d->head == d->tail)
+ d->head = d->tail = 0;
+ spin_unlock_irqrestore(&d->lock, flags);
}
- return pack;
+ return len;
}
-void xbus_packet_free(xbus_t *xbus, xpacket_t *p)
+static int debugfs_release(struct inode *inode, struct file *file)
{
- kmem_cache_free(packet_cache, p);
- atomic_dec(&xpacket_count);
- atomic_dec(&xbus->packet_counter);
- //DBG("Decremented packet_counter of bus %s (freed packet) to %d\n",
- // xbus->busname, atomic_read(&xbus->packet_counter));
+ struct debugfs_data *d = file->private_data;
+
+ BUG_ON(!d);
+ BUG_ON(!d->xbus);
+ DBG("%s\n", d->xbus->busname);
+ d->xbus->debugfs_data = NULL;
+ kfree(d);
+ module_put(THIS_MODULE);
+ return 0;
+}
+#endif
+
+/*------------------------- Frame Handling ------------------------*/
+
+static kmem_cache_t *xframes_cache = NULL;
+xframe_t *xbus_xframe_new(xbus_t *xbus, gfp_t flags)
+{
+ xframe_t *frm;
+
+ frm = kmem_cache_alloc(xframes_cache, flags);
+ if(!frm)
+ return NULL;
+ memset(frm, 0, sizeof(xframe_t) + XFRAME_DATASIZE);
+ atomic_set(&frm->frame_len, 0);
+ frm->packets = (byte *)frm + sizeof(xframe_t);
+ return frm;
+}
+
+void xbus_xframe_free(xbus_t *xbus, xframe_t *p)
+{
+ kmem_cache_free(xframes_cache, p);
+}
+
+/*
+ * Return pointer to next packet slot in the frame
+ * or NULL if the frame is full.
+ */
+xpacket_t *xframe_next_packet(xframe_t *frm, int len)
+{
+ int newlen = atomic_add_return(len, &frm->frame_len);
+// DBG("len=%d, newlen=%d, frm->frame_len=%d\n", len, newlen, XFRAME_LEN(frm));
+ if (newlen > XFRAME_DATASIZE) {
+ atomic_sub(len, &frm->frame_len);
+ return NULL;
+ }
+ return (xpacket_t *)(frm->packets + newlen - len);
+}
+
+static spinlock_t serialize_dump_xframe = SPIN_LOCK_UNLOCKED;
+
+static void do_hexdump(const char msg[], byte *data, uint16_t len)
+{
+ int i;
+
+ for(i = 0; i < len; i++)
+ DBG("%s: %3d> %02X\n", msg, i, data[i]);
+}
+
+void dump_xframe(const char msg[], const xbus_t *xbus, const xframe_t *xframe)
+{
+ const uint16_t frame_len = XFRAME_LEN(xframe);
+ xpacket_t *pack;
+ uint16_t pos = 0;
+ uint16_t nextpos;
+ int num = 1;
+ bool do_print;
+ static int rate_limit;
+ unsigned long flags;
+
+ spin_lock_irqsave(&serialize_dump_xframe, flags);
+ do {
+ if(pos >= XFRAME_DATASIZE) {
+ if(printk_ratelimit()) {
+ ERR("%s: xframe overflow (%d bytes)\n",
+ msg, frame_len);
+ do_hexdump(msg, xframe->packets, frame_len);
+ }
+ break;
+ }
+ if(pos > frame_len) {
+ if(printk_ratelimit()) {
+ ERR("%s: packet overflow pos=%d frame_len=%d\n",
+ msg, pos, frame_len);
+ do_hexdump(msg, xframe->packets, frame_len);
+ }
+ break;
+ }
+ pack = (xpacket_t *)&xframe->packets[pos];
+ if(pack->datalen <= 0) {
+ if(printk_ratelimit()) {
+ ERR("%s: xframe -- bad datalen=%d pos=%d frame_len=%d\n",
+ msg, pack->datalen, pos, frame_len);
+ do_hexdump(msg, xframe->packets, frame_len);
+ }
+ break;
+ }
+ nextpos = pos + pack->datalen;
+ if(nextpos > frame_len) {
+ if(printk_ratelimit()) {
+ ERR("%s: packet overflow nextpos=%d frame_len=%d\n",
+ msg, nextpos, frame_len);
+ do_hexdump(msg, xframe->packets, frame_len);
+ }
+ break;
+ }
+ do_print = 0;
+ if(pack->opcode != XPROTO_NAME(GLOBAL,PCM_READ) &&
+ pack->opcode != XPROTO_NAME(GLOBAL,PCM_WRITE))
+ do_print = 1;
+ if((print_dbg & DBG_PCM) && ((rate_limit % 1003) == 0))
+ do_print = 1;
+ if(do_print) {
+ if(num == 1)
+ DBG("%s: %s: frame_len=%d.\n",
+ msg, xbus->busname, frame_len);
+ DBG(" %3d. DATALEN=%d OP=0x%02X XPD-%d-%d (pos=%d)\n",
+ num, pack->datalen, pack->opcode,
+ pack->addr.unit, pack->addr.subunit, pos);
+ dump_packet(" ", pack, print_dbg);
+ }
+ num++;
+ pos = nextpos;
+ if(pos >= frame_len)
+ break;
+ } while(1);
+ spin_unlock_irqrestore(&serialize_dump_xframe, flags);
}
@@ -142,7 +362,7 @@ xbus_t *xbus_of(int xbus_num)
return xbuses_array[xbus_num];
}
-xpd_t *xpd_of(xbus_t *xbus, int xpd_num)
+xpd_t *xpd_of(const xbus_t *xbus, int xpd_num)
{
if(!VALID_XPD_NUM(xpd_num))
return NULL;
@@ -220,7 +440,6 @@ static int xbus_poll(void *data)
struct list_head additions_list;
int count_removed;
int count_added;
- int xpd_num;
xbus_t *xbus = data;
if(!down_read_trylock(&xbus->in_use)) {
@@ -277,8 +496,7 @@ static int xbus_poll(void *data)
xpd_t *xpd;
BUG_ON(card_desc->magic != CARD_DESC_MAGIC);
- xpd_num = xpd_addr2num(&card_desc->xpd_addr);
- xpd = xpd_of(xbus, xpd_num);
+ xpd = xpd_by_addr(xbus, card_desc->xpd_addr.unit, card_desc->xpd_addr.subunit);
if(xpd && type == XPD_TYPE_NOMODULE) { /* card removal */
list_move_tail(card, &removal_list);
@@ -306,8 +524,7 @@ static int xbus_poll(void *data)
xpd_t *xpd;
list_del(card);
- xpd_num = xpd_addr2num(&card_desc->xpd_addr);
- xpd = xpd_of(xbus, xpd_num);
+ xpd = xpd_by_addr(xbus, card_desc->xpd_addr.unit, card_desc->xpd_addr.subunit);
if(xpd)
xpd_disconnect(xpd);
kfree(card);
@@ -338,8 +555,8 @@ void xbus_activate(xbus_t *xbus)
ops = xbus->ops;
BUG_ON(!ops);
/* Sanity checks */
- BUG_ON(!ops->packet_send);
- BUG_ON(!ops->packet_new || !ops->packet_free);
+ BUG_ON(!ops->xframe_send);
+ BUG_ON(!ops->xframe_new || !ops->xframe_free);
xbus->hardware_exists = 1;
DBG("Activating: %s\n", xbus->busname);
/* Poll it */
@@ -415,6 +632,16 @@ static void xbus_free(xbus_t *xbus)
xbuses_array[xbus->num] = NULL;
bus_count--;
spin_unlock_irqrestore(&xbuses_lock, flags);
+#ifdef XPP_DEBUGFS
+ if(xbus->debugfs_dir) {
+ if(xbus->debugfs_file) {
+ DBG("Removing debugfs file for %s\n", xbus->busname);
+ debugfs_remove(xbus->debugfs_file);
+ }
+ DBG("Removing debugfs directory for %s\n", xbus->busname);
+ debugfs_remove(xbus->debugfs_dir);
+ }
+#endif
#ifdef CONFIG_PROC_FS
if(xbus->proc_xbus_dir) {
if(xbus->proc_xbus_summary) {
@@ -467,7 +694,7 @@ xbus_t *xbus_new(xbus_ops_t *ops)
/* Init data structures */
spin_lock_init(&xbus->lock);
- snprintf(xbus->busname, XBUS_NAMELEN, "XBUS-%d", xbus->num);
+ snprintf(xbus->busname, XBUS_NAMELEN, "XBUS-%02d", xbus->num);
INFO("New xbus: %s\n", xbus->busname);
init_waitqueue_head(&xbus->packet_cache_empty);
atomic_set(&xbus->packet_counter, 0);
@@ -541,15 +768,27 @@ xbus_t *xbus_new(xbus_ops_t *ops)
xbus->proc_xbus_command->owner = THIS_MODULE;
#endif
#endif
+#ifdef XPP_DEBUGFS
+ xbus->debugfs_dir = debugfs_create_dir(xbus->busname, debugfs_root);
+ if(!xbus->debugfs_dir) {
+ ERR("Failed to create debugfs directory for %s\n", xbus->busname);
+ goto nobus;
+ }
+ xbus->debugfs_file = debugfs_create_file("dchannel", S_IFREG|S_IRUGO|S_IWUSR, xbus->debugfs_dir, xbus, &debugfs_operations);
+ if(!xbus->debugfs_file) {
+ ERR("Failed to create dchannel file for %s\n", xbus->busname);
+ goto nobus;
+ }
+#endif
/* Sanity checks */
- if(!ops->packet_send) {
- ERR("%s: missing mandatory handler: packet_send\n", __FUNCTION__);
+ if(!ops->xframe_send) {
+ ERR("%s: missing mandatory handler: xframe_send\n", __FUNCTION__);
goto nobus;
}
- if(!ops->packet_new || !ops->packet_free) {
+ if(!ops->xframe_new || !ops->xframe_free) {
NOTICE("%s: Using default packet allocators\n", __FUNCTION__);
- ops->packet_new = xbus_packet_new;
- ops->packet_free = xbus_packet_free;
+ ops->xframe_new = xbus_xframe_new;
+ ops->xframe_free = xbus_xframe_free;
}
xbus->ops = ops;
@@ -685,7 +924,8 @@ static int xbus_read_waitfor_xpds(char *page, char **start, off_t off, int count
}
DBG("%s: Finished initialization of %d XPD's in %d seconds.\n", xbus->busname, MAX_XPDS, (INITIALIZATION_TIMEOUT - ret)/HZ);
spin_lock_irqsave(&xbus->lock, flags);
- len += sprintf(page + len, "XPDS_READY: %d/%d\n",
+ len += sprintf(page + len, "XPDS_READY: %s: %d/%d\n",
+ xbus->busname,
atomic_read(&xbus->count_xpds_initialized),
atomic_read(&xbus->count_xpds_to_initialize));
spin_unlock_irqrestore(&xbus->lock, flags);
@@ -709,8 +949,9 @@ static int proc_xbus_command_write(struct file *file, const char __user *buffer,
xbus_t *xbus = data;
xpacket_t *pack;
char *p;
- byte *pack_contents;
+ byte *pack_start;
byte *q;
+ xframe_t *xframe;
if(count >= MAX_PROC_WRITE) {
ERR("%s: line too long\n", __FUNCTION__);
@@ -719,10 +960,7 @@ static int proc_xbus_command_write(struct file *file, const char __user *buffer,
if(copy_from_user(buf, buffer, count))
return -EINVAL;
buf[count] = '\0';
- pack = xbus->ops->packet_new(xbus, GFP_KERNEL);
- if(!pack)
- return -ENOMEM;
- q = pack_contents = (byte *)&pack->content;
+ q = pack_start = buf;
for(p = buf; *p;) {
int val;
char hexdigit[3];
@@ -734,7 +972,7 @@ static int proc_xbus_command_write(struct file *file, const char __user *buffer,
if(!isxdigit(*p)) {
ERR("%s: %s: bad hex value ASCII='0x%X' at position %d\n",
__FUNCTION__, xbus->busname, *p, p - buf);
- goto err;
+ return -EINVAL;
}
hexdigit[0] = *p++;
hexdigit[1] = '\0';
@@ -744,18 +982,22 @@ static int proc_xbus_command_write(struct file *file, const char __user *buffer,
if(sscanf(hexdigit, "%2X", &val) != 1) {
ERR("%s: %s: bad hex value '%s' at position %d\n",
__FUNCTION__, xbus->busname, hexdigit, p - buf);
- goto err;
+ return -EINVAL;
}
*q++ = val;
// DBG("%s: %s: '%s' val=%d\n", __FUNCTION__, xbus->busname, hexdigit, val);
}
- pack->datalen = q - pack_contents -
- sizeof(pack->content.opcode) - sizeof(pack->content.addr);
- packet_send(xbus, pack);
+ xframe = xbus->ops->xframe_new(xbus, GFP_KERNEL);
+ if(!xframe)
+ return -ENOMEM;
+ pack = xframe_next_packet(xframe, q - pack_start);
+ if(!pack) {
+ xbus->ops->xframe_free(xbus, xframe);
+ return -ENOMEM;
+ }
+ memcpy(pack, pack_start, q - pack_start); /* FRAMES: checksum? */
+ xframe_send(xbus, xframe);
return count;
-err:
- xbus->ops->packet_free(xbus, pack);
- return -EINVAL;
}
#endif
@@ -852,6 +1094,12 @@ static void xbus_core_cleanup(void)
destroy_workqueue(xpp_worker);
xpp_worker = NULL;
}
+#ifdef XPP_DEBUGFS
+ if(debugfs_root) {
+ DBG("Removing xpp from debugfs\n");
+ debugfs_remove(debugfs_root);
+ }
+#endif
#ifdef CONFIG_PROC_FS
if(proc_xbuses) {
DBG("Removing " PROC_XBUSES " from proc\n");
@@ -859,8 +1107,8 @@ static void xbus_core_cleanup(void)
proc_xbuses = NULL;
}
#endif
- if(packet_cache)
- kmem_cache_destroy(packet_cache);
+ if(xframes_cache)
+ kmem_cache_destroy(xframes_cache);
}
int __init xbus_core_init(void)
@@ -870,35 +1118,45 @@ int __init xbus_core_init(void)
#ifdef PROTOCOL_DEBUG
INFO("FEATURE: %s with PROTOCOL_DEBUG\n", THIS_MODULE->name);
#endif
- packet_cache = kmem_cache_create("xpp_packets",
- sizeof(xpacket_t),
+ xframes_cache = kmem_cache_create("xpp_frames",
+ sizeof(xframe_t) + XFRAME_DATASIZE,
0, 0,
NULL, NULL);
- if(!packet_cache) {
+ if(!xframes_cache) {
return -ENOMEM;
}
xpp_worker = create_singlethread_workqueue("xppworker");
if(!xpp_worker) {
ERR("Failed to create card detector workqueue.\n");
- xbus_core_cleanup();
- return -ENOMEM;
+ ret = -ENOMEM;
+ goto err;
}
#ifdef CONFIG_PROC_FS
proc_xbuses = create_proc_read_entry(PROC_XBUSES, 0444, xpp_proc_toplevel, read_proc_xbuses, NULL);
if (!proc_xbuses) {
ERR("Failed to create proc file %s\n", PROC_XBUSES);
- xbus_core_cleanup();
- return -EFAULT;
+ ret = -EFAULT;
+ goto err;
}
proc_xbuses->owner = THIS_MODULE;
#endif
+#ifdef XPP_DEBUGFS
+ DBG("Creating debugfs xpp root\n");
+ debugfs_root = debugfs_create_dir("xpp", NULL);
+ if(!debugfs_root) {
+ ret = -EFAULT;
+ goto err;
+ }
+#endif
ret = bus_register(&xbus_bus_type);
if(ret) {
ERR("%s: bus_register failed. Error number %d", __FUNCTION__, ret);
- xbus_core_cleanup();
- return ret;
+ goto err;
}
return 0;
+err:
+ xbus_core_cleanup();
+ return ret;
}
@@ -922,3 +1180,8 @@ EXPORT_SYMBOL(xbus_remove);
EXPORT_SYMBOL(xbus_activate);
EXPORT_SYMBOL(xbus_disconnect);
EXPORT_SYMBOL(xbus_reset_counters);
+EXPORT_SYMBOL(xframe_next_packet);
+EXPORT_SYMBOL(dump_xframe);
+#ifdef XPP_DEBUGFS
+EXPORT_SYMBOL(xbus_log);
+#endif
diff --git a/xpp/xbus-core.h b/xpp/xbus-core.h
index f2bac8c..1c1e98e 100644
--- a/xpp/xbus-core.h
+++ b/xpp/xbus-core.h
@@ -24,18 +24,38 @@
#include "xpd.h"
-#define MAX_BUSES 16
+#define MAX_BUSES 32
+#define XFRAME_DATASIZE 512
+
+struct xframe {
+ atomic_t frame_len;
+ byte *packets; /* max XFRAME_DATASIZE */
+};
+
+#define XFRAME_LEN(frame) atomic_read(&(frame)->frame_len)
int xbus_core_init(void); /* Initializer */
void xbus_core_shutdown(void); /* Terminator */
-/* Packet handling */
-xpacket_t *xbus_packet_new(xbus_t *xbus, gfp_t flags);
-void xbus_packet_free(xbus_t *xbus, xpacket_t *p);
+#ifdef XPP_DEBUGFS
+/* Debugfs handling */
+int xbus_log(xbus_t *xbus, xpd_t *xpd, int direction, const void *buf, unsigned long len);
+#endif
+
+/* Frame handling */
+xframe_t *xbus_frame_new(xbus_t *xbus, gfp_t flags);
+void xbus_frame_free(xbus_t *xbus, xframe_t *p);
+void dump_xframe(const char msg[], const xbus_t *xbus, const xframe_t *xframe);
+
+/*
+ * Return pointer to next packet slot in the frame
+ * or NULL if the frame is full.
+ */
+xpacket_t *xframe_next_packet(xframe_t *xframe, int len);
/* XBUS handling */
xbus_t *xbus_of(int xbus_num);
-xpd_t *xpd_of(xbus_t *xbus, int xpd_num);
+xpd_t *xpd_of(const xbus_t *xbus, int xpd_num);
xbus_t *xbus_new(xbus_ops_t *ops);
void xbus_remove(xbus_t *xbus);
void xbus_activate(xbus_t *xbus);
diff --git a/xpp/xdefs.h b/xpp/xdefs.h
index d4d0573..fccec23 100644
--- a/xpp/xdefs.h
+++ b/xpp/xdefs.h
@@ -22,20 +22,21 @@
*
*/
+#ifndef XPP_VERSION
+#define XPP_VERSION "external-compile"
+#endif
+
#ifdef __KERNEL__
#include <linux/kernel.h>
#include <linux/version.h>
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
-#define LINUX26
-#endif
-
#else
/* This is to enable user-space programs to include this. */
#include <stdint.h>
+typedef uint8_t __u8;
typedef uint32_t __u32;
#include <stdio.h>
@@ -77,6 +78,7 @@ struct list_head { struct list_head *next; struct list_head *prev; };
#define MAX_UNIT BIT(UNIT_BITS) /* 1 FXS + 3 FXS/FXO | 1 BRI + 3 FXS/FXO */
#define MAX_SUBUNIT BIT(SUBUNIT_BITS) /* 8 port BRI */
+#define SUBUNIT_PCM_SHIFT 4 /* shift in PCM highway */
/*
* Compile time sanity checks
@@ -100,12 +102,16 @@ struct list_head { struct list_head *next; struct list_head *prev; };
typedef char *charp;
typedef unsigned char byte;
+#ifdef __KERNEL__
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
typedef int bool;
#endif
+#else
+typedef int bool;
+#endif
typedef struct xbus xbus_t;
typedef struct xpd xpd_t;
-typedef struct xpacket_raw xpacket_raw_t;
+typedef struct xframe xframe_t;
typedef struct xpacket xpacket_t;
typedef struct xops xops_t;
typedef __u32 xpp_line_t; /* at most 31 lines for E1 */
diff --git a/xpp/xpd.h b/xpp/xpd.h
index 6debd03..fcdbf8a 100644
--- a/xpp/xpd.h
+++ b/xpp/xpd.h
@@ -32,7 +32,15 @@
#include <asm/atomic.h>
#include <asm/semaphore.h>
#include <linux/moduleparam.h>
+#ifdef XPP_DEBUGFS
+#ifndef CONFIG_DEBUG_FS
+#warning kernel does not include CONFIG_DEBUG_FS, canceling XPP_DEBUGFS support
+#undef XPP_DEBUGFS
+#else
+#include <linux/debugfs.h>
+#endif
#endif
+#endif /* __KERNEL__ */
#include <zaptel.h>
@@ -92,9 +100,9 @@ typedef struct packet_queue {
} packet_queue_t;
struct xbus_ops {
- int (*packet_send)(xbus_t *xbus, xpacket_t *packet);
- xpacket_t *(*packet_new)(xbus_t *xbus, gfp_t flags);
- void (*packet_free)(xbus_t *xbus, xpacket_t *p);
+ int (*xframe_send)(xbus_t *xbus, xframe_t *xframe);
+ xframe_t *(*xframe_new)(xbus_t *xbus, gfp_t flags);
+ void (*xframe_free)(xbus_t *xbus, xframe_t *p);
};
/*
@@ -104,7 +112,7 @@ enum {
XBUS_N_DESC_REQ,
XBUS_N_DEV_DESC_FULL,
XBUS_N_DEV_DESC_EMPTY,
- XBUS_N_PCM_WRITE,
+ XBUS_N_SEND_PCM,
XBUS_N_PCM_READ,
XBUS_N_TX_BYTES,
XBUS_N_RX_BYTES,
@@ -121,7 +129,7 @@ static struct xbus_counters {
C_(DESC_REQ),
C_(DEV_DESC_FULL),
C_(DEV_DESC_EMPTY),
- C_(PCM_WRITE),
+ C_(SEND_PCM),
C_(PCM_READ),
C_(TX_BYTES),
C_(RX_BYTES),
@@ -142,6 +150,11 @@ struct card_desc_struct {
xpd_addr_t xpd_addr;
};
+#ifdef XPP_DEBUGFS
+/* definition in xbus-core.c */
+struct debugfs_data;
+#endif
+
/*
* An xbus is a transport layer for Xorcom Protocol commands
*/
@@ -183,6 +196,11 @@ struct xbus {
int num_xpds;
void *priv; /* Pointer to transport level data structures */
+#ifdef XPP_DEBUGFS
+ struct dentry *debugfs_dir;
+ struct dentry *debugfs_file;
+ struct debugfs_data *debugfs_data;
+#endif
#ifdef CONFIG_PROC_FS
struct proc_dir_entry *proc_xbus_dir;
struct proc_dir_entry *proc_xbus_summary;
@@ -281,11 +299,13 @@ struct xpd {
atomic_t open_counter; /* Number of open channels */
int flags;
+ bool blink_mode; /* for visual identification */
#ifdef CONFIG_PROC_FS
struct proc_dir_entry *proc_xpd_dir;
struct proc_dir_entry *proc_xpd_summary;
struct proc_dir_entry *proc_xpd_ztregister;
+ struct proc_dir_entry *proc_xpd_blink;
#endif
int counters[XPD_COUNTER_MAX];
@@ -302,7 +322,6 @@ struct xpd {
xpd_addr_t addr;
struct list_head xpd_list;
unsigned int timer_count;
- volatile u_char *writechunk; /* Double-word aligned write memory */
volatile u_char *readchunk; /* Double-word aligned read memory */
/* Echo cancelation */
u_char ec_chunk1[CHANNELS_PERXPD][ZT_CHUNKSIZE];
diff --git a/xpp/xpp_log.h b/xpp/xpp_log.h
new file mode 100644
index 0000000..322b7f0
--- /dev/null
+++ b/xpp/xpp_log.h
@@ -0,0 +1,52 @@
+#ifndef XPP_LOG_H
+#define XPP_LOG_H
+/*
+ * Written by Alexander Landau <landau.alex@gmail.com>
+ * Copyright (C) 2004-2007, Xorcom
+ *
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#ifdef __KERNEL__
+
+#include <linux/kernel.h>
+#include <linux/version.h>
+
+#else
+
+/* This is to enable user-space programs to include this. */
+
+#include "xdefs.h"
+
+#endif
+
+#define XPP_LOG_MAGIC 0x10583ADE
+
+struct log_global_header {
+ __u32 magic;
+ __u32 version;
+} __attribute__((packed));
+
+struct log_header {
+ __u32 len;
+ __u32 time;
+ __u8 xpd_num;
+ __u8 direction;
+} __attribute__((packed));
+
+#endif
diff --git a/xpp/xpp_usb.c b/xpp/xpp_usb.c
index c9e83a6..5e9d7d1 100644
--- a/xpp/xpp_usb.c
+++ b/xpp/xpp_usb.c
@@ -57,7 +57,6 @@ DEF_PARM(int, print_dbg, 0, "Print DBG statements"); /* must be before zap_debug
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)
# define URB_ASYNC_UNLINK 0
#endif
-#define USBDEV_MAX 10
/* Get a minor range for your devices from the usb maintainer */
#define USB_SKEL_MINOR_BASE 192
@@ -78,21 +77,19 @@ struct xusb_endpoint {
usb_complete_t callback;
};
-static int xusb_packet_send(xbus_t *xbus, xpacket_t *pack);
+static int xusb_xframe_send(xbus_t *xbus, xframe_t *xframe);
xbus_ops_t xusb_ops = {
- .packet_send = xusb_packet_send,
- .packet_new = NULL, // Default allocator
- .packet_free = NULL, // Default deallocator
+ .xframe_send = xusb_xframe_send,
+ .xframe_new = NULL, // Default allocator
+ .xframe_free = NULL, // Default deallocator
};
enum {
- XUSB_N_RX_PACKETS,
- XUSB_N_TX_PACKETS,
+ XUSB_N_RX_FRAMES,
+ XUSB_N_TX_FRAMES,
XUSB_N_RX_ERRORS,
XUSB_N_TX_ERRORS,
- XUSB_N_PCM_READS,
- XUSB_N_PCM_WRITES,
};
#define XUSB_COUNTER(xusb, counter) ((xusb)->counters[XUSB_N_ ## counter])
@@ -102,12 +99,10 @@ enum {
static struct xusb_counters {
char *name;
} xusb_counters[] = {
- C_(RX_PACKETS),
- C_(TX_PACKETS),
+ C_(RX_FRAMES),
+ C_(TX_FRAMES),
C_(RX_ERRORS),
C_(TX_ERRORS),
- C_(PCM_READS),
- C_(PCM_WRITES),
};
#undef C_
@@ -145,7 +140,7 @@ typedef struct xpp_usb_bus {
} xusb_t;
static spinlock_t xusb_lock = SPIN_LOCK_UNLOCKED;
-static xusb_t *xusb_array[USBDEV_MAX] = {};
+static xusb_t *xusb_array[MAX_BUSES] = {};
static unsigned bus_count = 0;
@@ -173,55 +168,7 @@ static void xusb_disconnect (struct usb_interface *interface);
static int xusb_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data);
/*------------------------------------------------------------------*/
-
#if 0
-/**
- * Allocates a new XPP packet.
- * @xbus The XPP bus in which the packet will flow (for counters
- * maintenance)
- * @flags Flags for kernel memory allocation.
- * @returns A pointer to the new packet, or NULL in case of failure.
- *
- *
- * Packet allocation/deallocation:
- * Sent packets:
- * - Allocated by protocol commands
- * - Deallocated by xmus_xmitter
- * Receive packets:
- * - Allocated/deallocated by xbus_xmiter
- */
-xpacket_t *xusb_packet_new(xbus_t *xbus, int flags)
-{
- xpacket_t *pack;
-
- /* To avoid races we increament counter in advance and decrement it later
- * in case of failure */
- atomic_inc(&xbus->packet_counter);
- //DBG("Incremented packet_counter of bus %s (new packet) to %d\n",
- // xbus->busname, atomic_read(&xbus->packet_counter));
- pack = kmem_cache_alloc(packet_cache, flags);
- if (pack) {
- memset(pack, 0, sizeof(xpacket_t));
- atomic_inc(&xpacket_count);
- } else {
- atomic_dec(&xbus->packet_counter);
- //DBG("Decremented packet_counter of bus %s (failed new packet) to %d\n",
- // xbus->busname, atomic_read(&xbus->packet_counter));
- }
- return pack;
-}
-
-void xusb_packet_free(xbus_t *xbus, xpacket_t *p)
-{
- kmem_cache_free(packet_cache, p);
- atomic_dec(&xpacket_count);
- atomic_dec(&xbus->packet_counter);
- //DBG("Decremented packet_counter of bus %s (freed packet) to %d\n",
- // xbus->busname, atomic_read(&xbus->packet_counter));
-}
-
-#endif
-
#ifndef DEBUG
#define packet_debug(m, x, p)
@@ -233,7 +180,7 @@ static void packet_debug(const char msg[], xusb_t *xusb, xpacket_t *pack)
{
char title[XBUS_DESCLEN];
- if(pack->content.opcode == XPROTO_NAME(GLOBAL,PCM_READ)) {
+ if(pack->opcode == XPROTO_NAME(GLOBAL,PCM_READ)) {
#ifdef DEBUG_PCM_TIMING
/*
* DEBUG: high-res timing of PCM_READ to PCM_WRITE
@@ -247,7 +194,7 @@ static void packet_debug(const char msg[], xusb_t *xusb, xpacket_t *pack)
dump_packet("USB RECEIVE PCM", pack, print_dbg);
#endif
return;
- } else if(pack->content.opcode == XPROTO_NAME(GLOBAL,PCM_WRITE)) {
+ } else if(pack->opcode == XPROTO_NAME(GLOBAL,PCM_WRITE)) {
#ifdef DEBUG_PCM_TIMING
/*
* DEBUG: high-res timing of PCM_READ to PCM_WRITE
@@ -261,7 +208,7 @@ static void packet_debug(const char msg[], xusb_t *xusb, xpacket_t *pack)
dump_packet("USB SEND PCM", pack, print_dbg);
#endif
return;
- } else if(pack->content.opcode == XPROTO_NAME(GLOBAL, REGISTER_REQUEST)) {
+ } else if(pack->opcode == XPROTO_NAME(GLOBAL, REGISTER_REQUEST)) {
reg_cmd_t *regcmd;
regcmd = &RPACKET_FIELD(pack, GLOBAL, REGISTER_REQUEST, reg_cmd);
@@ -278,16 +225,18 @@ static void packet_debug(const char msg[], xusb_t *xusb, xpacket_t *pack)
return;
}
#if 0
- } else if(pack->content.opcode == XPROTO_NAME(FXS, REGISTER_REPLY)) {
+ } else if(pack->opcode == XPROTO_NAME(FXS, REGISTER_REPLY)) {
return;
#endif
}
snprintf(title, XBUS_DESCLEN, "%s: %s", msg, xusb->xbus->busname);
dump_packet(title, pack, print_dbg);
}
+
+#endif
#endif
-static int xusb_packet_send(xbus_t *xbus, xpacket_t *pack)
+static int xusb_xframe_send(xbus_t *xbus, xframe_t *xframe)
{
xusb_t *xusb;
struct urb *urb;
@@ -295,7 +244,7 @@ static int xusb_packet_send(xbus_t *xbus, xpacket_t *pack)
size_t size;
struct xusb_endpoint *xusb_ep;
- BUG_ON(!pack);
+ BUG_ON(!xframe);
BUG_ON(!xbus);
xusb = xbus->priv;
BUG_ON(!xusb);
@@ -315,7 +264,9 @@ static int xusb_packet_send(xbus_t *xbus, xpacket_t *pack)
ret = -ENODEV;
goto freepack;
}
- size = PACKET_LEN(pack);
+ if (print_dbg)
+ dump_xframe("USB_FRAME_SEND", xbus, xframe);
+ size = XFRAME_LEN(xframe);
xusb_ep = &xusb->endpoints[XUSB_SEND];
urb = xpp_urb_new(xusb, XUSB_SEND, size);
if (!urb) {
@@ -323,10 +274,10 @@ static int xusb_packet_send(xbus_t *xbus, xpacket_t *pack)
ret = -ENOMEM;
goto freepack;
}
- packet_debug("USB_PACKET_SEND", xusb, pack);
/* FIXME: FIXME: FIXME: we use copy+free until low-level drivers allocate memory themselves */
- memcpy(urb->transfer_buffer, &pack->content, size);
+
+ memcpy(urb->transfer_buffer, xframe->packets, size);
ret = usb_submit_urb(urb, GFP_ATOMIC);
if(ret < 0) {
@@ -339,10 +290,8 @@ static int xusb_packet_send(xbus_t *xbus, xpacket_t *pack)
goto freepack;
}
atomic_inc(&xusb->pending_writes);
- if(pack->content.opcode == XPROTO_NAME(GLOBAL,PCM_WRITE))
- XUSB_COUNTER(xusb, PCM_WRITES)++;
freepack:
- xbus->ops->packet_free(xbus, pack); // FIXME: eventually will be done in the urb callback
+ xbus->ops->xframe_free(xbus, xframe); // FIXME: eventually will be done in the urb callback
if(ret < 0)
XUSB_COUNTER(xusb, TX_ERRORS)++;
return ret;
@@ -509,7 +458,7 @@ static int set_endpoints(xusb_t *xusb, struct usb_interface *interface, struct x
}
if(usb_pipein(ep_addr)) { // Input
if(ep_addr == model_info->in.ep_addr) {
- if(endpoint->wMaxPacketSize < sizeof(xpacket_raw_t)) {
+ if(endpoint->wMaxPacketSize < sizeof(xframe_t)) {
NOTICE("USB input endpoint 0x%X support only wMaxPacketSize=%d (need USB-2)\n", ep_addr, endpoint->wMaxPacketSize);
}
xusb_ep = &xusb->endpoints[XUSB_RECV];
@@ -519,7 +468,7 @@ static int set_endpoints(xusb_t *xusb, struct usb_interface *interface, struct x
}
} else { // Output
if(ep_addr == model_info->out.ep_addr) {
- if(endpoint->wMaxPacketSize < sizeof(xpacket_raw_t)) {
+ if(endpoint->wMaxPacketSize < sizeof(xframe_t)) {
NOTICE("USB output endpoint 0x%X support only wMaxPacketSize=%d (need USB-2)\n", ep_addr, endpoint->wMaxPacketSize);
}
xusb_ep = &xusb->endpoints[XUSB_SEND];
@@ -629,12 +578,12 @@ static int xusb_probe(struct usb_interface *interface, const struct usb_device_i
xbus->max_packet_size = min(xusb->endpoints[XUSB_SEND].max_size , xusb->endpoints[XUSB_RECV].max_size);
spin_lock_irqsave(&xusb_lock, flags);
- for(i = 0; i < USBDEV_MAX; i++) {
+ for(i = 0; i < MAX_BUSES; i++) {
if(xusb_array[i] == NULL)
break;
}
spin_unlock_irqrestore(&xusb_lock, flags);
- if(i >= USBDEV_MAX) {
+ if(i >= MAX_BUSES) {
ERR("xpp_usb: Too many XPP USB buses\n");
retval = -ENOMEM;
goto probe_failed;
@@ -720,11 +669,11 @@ static void xusb_disconnect(struct usb_interface *interface)
xbus = xusb->xbus;
/* find our xusb */
- for(i = 0; i < USBDEV_MAX; i++) {
+ for(i = 0; i < MAX_BUSES; i++) {
if(xusb_array[i] == xusb)
break;
}
- BUG_ON(i >= USBDEV_MAX);
+ BUG_ON(i >= MAX_BUSES);
xusb_array[i] = NULL;
#ifdef CONFIG_PROC_FS
@@ -779,7 +728,7 @@ static void xpp_send_callback(struct urb *urb, struct pt_regs *regs)
return;
}
/* allow device read, write and ioctl */
- XUSB_COUNTER(xusb, TX_PACKETS)++;
+ XUSB_COUNTER(xusb, TX_FRAMES)++;
}
static void xpp_receive_callback(struct urb *urb, struct pt_regs *regs)
@@ -787,6 +736,7 @@ static void xpp_receive_callback(struct urb *urb, struct pt_regs *regs)
xusb_t *xusb = (xusb_t *)urb->context;
xbus_t *xbus;
xpacket_t *pack;
+ xframe_t *xframe;
size_t size;
int retval;
bool do_resubmit = 1;
@@ -822,25 +772,22 @@ static void xpp_receive_callback(struct urb *urb, struct pt_regs *regs)
do_resubmit = 0;
goto end;
}
- pack = xbus->ops->packet_new(xbus, GFP_ATOMIC);
- if(!pack) {
+ xframe = xbus->ops->xframe_new(xbus, GFP_ATOMIC);
+ if(!xframe) {
ERR("%s: Not enough memory for packets. Dropping\n", __FUNCTION__);
goto end;
}
-
size = urb->actual_length;
- memcpy(&pack->content, urb->transfer_buffer, size);
-
- pack->datalen = size - sizeof(xpd_addr_t) - 1; // opcode size
- // DBG("datalen of new packet: %d\n", pack->datalen);
+ atomic_set(&xframe->frame_len, size);
+ pack = (xpacket_t *)xframe->packets;
+ memcpy(xframe->packets, urb->transfer_buffer, size);
- packet_debug("USB_PACKET_RECEIVE", xusb, pack);
- XUSB_COUNTER(xusb, RX_PACKETS)++;
- if(pack->content.opcode == XPROTO_NAME(GLOBAL,PCM_READ))
- XUSB_COUNTER(xusb, PCM_READS)++;
+ if (print_dbg)
+ dump_xframe("USB_FRAME_RECEIVE", xbus, xframe);
+ XUSB_COUNTER(xusb, RX_FRAMES)++;
// Send UP
- packet_receive(xbus, pack);
-end:
+ xframe_receive(xbus, xframe);
+end:
if(is_inuse)
up_read(&xbus->in_use);
if(do_resubmit) {
@@ -860,7 +807,7 @@ int __init xpp_usb_init(void)
int result;
//xusb_t *xusb;
- INFO("%s\n", THIS_MODULE->name);
+ INFO("%s revision %s\n", THIS_MODULE->name, XPP_VERSION);
/* register this driver with the USB subsystem */
result = usb_register(&xusb_driver);
@@ -941,6 +888,7 @@ out:
MODULE_DESCRIPTION("XPP USB Driver");
MODULE_AUTHOR("Oron Peled <oron@actcom.co.il>");
MODULE_LICENSE("GPL");
+MODULE_VERSION(XPP_VERSION);
module_init(xpp_usb_init);
module_exit(xpp_usb_cleanup);
diff --git a/xpp/xpp_zap.c b/xpp/xpp_zap.c
index 2ca0500..cd10ff4 100644
--- a/xpp/xpp_zap.c
+++ b/xpp/xpp_zap.c
@@ -36,7 +36,7 @@
#include <linux/device.h>
#include <linux/init.h>
#include <linux/delay.h> /* for udelay */
-#include <linux/workqueue.h>
+#include <linux/interrupt.h>
#include <linux/proc_fs.h>
#include <zaptel.h>
#include "xbus-core.h"
@@ -50,6 +50,7 @@ struct proc_dir_entry *xpp_proc_toplevel = NULL;
#define PROC_DIR "xpp"
#define PROC_SYNC "sync"
#define PROC_XPD_ZTREGISTER "zt_registration"
+#define PROC_XPD_BLINK "blink"
#define PROC_XPD_SUMMARY "summary"
#endif
@@ -62,11 +63,14 @@ static xpd_t *sync_master = NULL; // Start with host based sync
static unsigned int xpp_timer_count = 0;
static unsigned int xpp_last_jiffies = 0;
+
+DEF_PARM(bool, pcm_tasklet, 0, "Handle PCM in a tasklet (lower interrupt load)");
+DEF_PARM(int, disable_pcm, 0, "Disable all PCM transmissions");
DEF_PARM(int, print_dbg, 0, "Print DBG statements");
DEF_PARM(bool, zap_autoreg, 1, "Register spans automatically (1) or not (0)");
DEF_PARM(bool, prefmaster, 1, "Do we want to be zaptel preferred sync master");
#ifdef XPP_EC_CHUNK
-DEF_PARM_RO(bool, xpp_ec, 0, "Do we use our own (1) or Zaptel's (0) echo canceller");
+DEF_PARM_RO(bool, xpp_ec, 1, "Do we use our own (1) or Zaptel's (0) echo canceller");
#else
static int xpp_ec = 0;
#endif
@@ -78,14 +82,19 @@ static int xpp_ec = 0;
#endif
+static void xpp_tick(unsigned long param);
static int zaptel_register_xpd(xpd_t *xpd);
static int zaptel_unregister_xpd(xpd_t *xpd);
-static void xpp_transmitprep(xpd_t *xpd);
+static void xpp_transmitprep(xpd_t *xpd, xpp_line_t lines, xpacket_t *pack);
static void xpp_receiveprep(xpd_t *xpd);
static int xpd_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data);
static int proc_xpd_ztregister_read(char *page, char **start, off_t off, int count, int *eof, void *data);
static int proc_xpd_ztregister_write(struct file *file, const char __user *buffer, unsigned long count, void *data);
+static int proc_xpd_blink_read(char *page, char **start, off_t off, int count, int *eof, void *data);
+static int proc_xpd_blink_write(struct file *file, const char __user *buffer, unsigned long count, void *data);
static void xpd_free(xpd_t *xpd);
+static DECLARE_TASKLET(tasklet_tick, xpp_tick, 0L);
+static atomic_t missed_ticks = ATOMIC_INIT(0); /* In pcm_tasklet mode */
static void external_sync(xpd_t *the_xpd)
{
@@ -110,15 +119,23 @@ static void external_sync(xpd_t *the_xpd)
CALL_XMETHOD(SYNC_SOURCE, the_xpd->xbus, the_xpd, 1, 1);
}
+/*
+ * Change sync_master. May block. Cannot be called from atomic context
+ */
void sync_master_is(xpd_t *xpd)
{
DBG("SYNC MASTER CHANGED: %s => %s\n",
(sync_master) ? sync_master->xpdname : "HOST",
(xpd) ? xpd->xpdname : "HOST");
- sync_master = xpd;
- if(xpd) { // XPD
+ /* First stop all generators */
+ if(sync_master) {
+ tasklet_kill(&tasklet_tick);
+ } else
del_timer_sync(&xpp_timer);
- xpp_tick((unsigned long)xpd);
+ /* Now set a new master */
+ sync_master = xpd;
+ if(sync_master) { // XPD
+ external_sync(xpd);
} else { // HOST
external_sync(NULL);
if(!timer_pending(&xpp_timer)) {
@@ -130,23 +147,148 @@ void sync_master_is(xpd_t *xpd)
}
}
+static inline void send_pcm_frame(xbus_t *xbus, xframe_t *xframe)
+{
+ static int rate_limit;
+
+ if(disable_pcm)
+ xbus->ops->xframe_free(xbus, xframe);
+ else {
+ if(print_dbg && ((rate_limit++ % 1003) == 0))
+ dump_xframe("SEND_PCM", xbus, xframe);
+ xframe_send(xbus, xframe);
+ XBUS_COUNTER(xbus, SEND_PCM)++;
+ }
+}
+
+/*
+ * Calculate PCM line_count and lines from a xbus+unit number:
+ * - Takes into account BRI subunits
+ * - Returns an XPD pointer if we should transmit, NULL otherwise
+ */
+static xpd_t *unit_pcm_calc(const xbus_t *xbus, int unit, int *pline_count, xpp_line_t *plines)
+{
+ bool is_bri;
+ bool digital_telephony;
+ int line_count = 0;
+ xpp_line_t lines;
+ xpd_t *xpd;
+
+ xpd = xpd_by_addr(xbus, unit, 0);
+ if(!xpd || !xpd->card_present)
+ return NULL;
+ is_bri = (xpd->type == XPD_TYPE_BRI_NT) || (xpd->type == XPD_TYPE_BRI_TE);
+ digital_telephony = is_bri;
+ if(digital_telephony) {
+ xpd_t *tmp_xpd;
+ int subunit;
+
+ lines = xpd->offhook & ~xpd->digital_signalling;
+ line_count = xpd->channels - 1; /* without D-Channel */
+ if(is_bri) {
+ for(subunit = 1; subunit < MAX_SUBUNIT; subunit++) {
+ tmp_xpd = xpd_by_addr(xbus, unit, subunit);
+ if(!tmp_xpd || !tmp_xpd->card_present)
+ continue;
+ lines <<= SUBUNIT_PCM_SHIFT; /* B1, B2, D, E */
+ lines |= tmp_xpd->offhook;
+ lines &= ~(tmp_xpd->digital_signalling);
+ line_count += tmp_xpd->channels - 1; /* Without D-channel */
+ }
+ }
+ } else {
+ int i;
+
+ lines = (xpd->offhook | xpd->cid_on);
+ for_each_line(xpd, i) {
+ if(IS_SET(lines, i))
+ line_count++;
+ }
+ }
+ /*
+ * FIXME: Workaround a bug in sync code of the Astribank.
+ * Send dummy PCM for sync.
+ */
+ if(unit == 0 && lines == 0) {
+ lines = BIT(0);
+ line_count = 1;
+ }
+ *pline_count = line_count;
+ *plines = lines;
+ return xpd;
+}
+
+static void xbus_tick(xbus_t *xbus)
+{
+ int unit;
+ int i;
+ xpp_line_t lines;
+ int line_count;
+ xpd_t *xpd;
+ xframe_t *xframe = NULL;
+ xpacket_t *pack = NULL;
+
+ for(unit = 0; unit < MAX_UNIT; unit++) {
+ if((xpd = unit_pcm_calc(xbus, unit, &line_count, &lines)) == NULL)
+ continue;
+ if(lines && SPAN_REGISTERED(xpd)) {
+ int pcm_len = RPACKET_HEADERSIZE + sizeof(xpp_line_t) + line_count * ZT_CHUNKSIZE;
+ do {
+ // pack = NULL; /* FORCE single packet frames */
+ if(xframe && !pack) { /* FULL frame */
+ send_pcm_frame(xbus, xframe);
+ xframe = NULL;
+ }
+ if(!xframe) { /* Alloc frame */
+ xframe = xbus->ops->xframe_new(xbus, GFP_ATOMIC);
+ if (!xframe) {
+ ERR("%s: failed to allocate new xframe\n", __FUNCTION__);
+ return;
+ }
+ }
+ pack = xframe_next_packet(xframe, pcm_len);
+ } while(!pack);
+ XPACKET_INIT(pack, GLOBAL, PCM_WRITE);
+ xpd_set_addr(&pack->addr, xpd->id);
+ pack->datalen = pcm_len;
+ RPACKET_FIELD(pack, GLOBAL, PCM_WRITE, lines) = lines;
+ xpp_transmitprep(xpd, lines, pack);
+ }
+
+ }
+ if(xframe) /* clean any leftovers */
+ send_pcm_frame(xbus, xframe);
+
+ for(i = 0; i < MAX_XPDS; i++) {
+ xpd = xpd_of(xbus, i);
+ if(!xpd || !xpd->card_present)
+ continue;
+
+ if(SPAN_REGISTERED(xpd))
+ xpp_receiveprep(xpd);
+ xpd->timer_count++;
+ /*
+ * Must be called *after* tx/rx so
+ * D-Chan counters may be cleared
+ */
+ CALL_XMETHOD(card_tick, xbus, xpd);
+ }
+}
+
void xpp_tick(unsigned long param)
{
- xbus_t *xbus;
- xpd_t *the_xpd = (xpd_t *)param;
- int i;
- int j;
+ xbus_t *xbus;
+ int i, j;
- if(!the_xpd) { /* Called from timer */
+ if(!sync_master) { /* Called from timer */
#if 0
static int rate_limit = 0;
if(rate_limit++ % 1000 == 0)
DBG("FROM_TIMER\n");
#endif
mod_timer(&xpp_timer, jiffies + 1); /* Must be 1KHz rate */
- }
- else if(the_xpd != sync_master)
- return;
+ } else
+ atomic_dec(&missed_ticks);
/* Statistics */
if((xpp_timer_count % SAMPLE_TICKS) == 0) {
xpp_last_jiffies = jiffies;
@@ -163,32 +305,34 @@ void xpp_tick(unsigned long param)
DBG("Dropped packet. %s is in_use\n", xbus->busname);
continue;
}
-#if 0
- if(xbus->open_counter == 0)
- continue; // optimize, but zttool loopback won't function
-#endif
+ /*
+ * calls to zt_transmit should be out of spinlocks, as it may call back
+ * our hook setting methods.
+ */
for(j = 0; j < MAX_XPDS; j++) {
xpd_t *xpd = xpd_of(xbus, j);
- if(!xpd)
- continue;
- if(!xpd->card_present)
- continue;
- xpd->timer_count++;
- if(SPAN_REGISTERED(xpd))
- xpp_transmitprep(xpd);
- if(SPAN_REGISTERED(xpd))
- xpp_receiveprep(xpd);
- /*
- * Must be called *after* tx/rx so
- * D-Chan counters may be cleared
- */
- CALL_XMETHOD(card_tick, xbus, xpd);
+ if(xpd && SPAN_REGISTERED(xpd)) {
+ zt_transmit(&xpd->span);
+ }
}
+ xbus_tick(xbus);
up_read(&xbus->in_use);
}
}
+void got_pcm_from(xpd_t *xpd)
+{
+ if(xpd != sync_master)
+ return;
+ atomic_inc(&missed_ticks);
+ if(!pcm_tasklet) {
+ xpp_tick(0L);
+ return;
+ }
+ tasklet_schedule(&tasklet_tick);
+}
+
#if HZ != 1000
#warning "xpp_timer must be sampled EXACTLY 1000/per second"
#endif
@@ -216,14 +360,19 @@ static void xpd_free(xpd_t *xpd)
remove_proc_entry(PROC_XPD_ZTREGISTER, xpd->proc_xpd_dir);
xpd->proc_xpd_ztregister = NULL;
}
+ if(xpd->proc_xpd_blink) {
+ DBG("Removing proc '%s' for %s/%s\n", PROC_XPD_BLINK, xbus->busname, xpd->xpdname);
+ remove_proc_entry(PROC_XPD_BLINK, xpd->proc_xpd_dir);
+ xpd->proc_xpd_blink = NULL;
+ }
DBG("Removing proc directory for %s/%s\n", xbus->busname, xpd->xpdname);
remove_proc_entry(xpd->xpdname, xbus->proc_xbus_dir);
xpd->proc_xpd_dir = NULL;
}
#endif
- if(xpd->writechunk)
- kfree((void *)xpd->writechunk);
- xpd->writechunk = NULL;
+ if(xpd->readchunk)
+ kfree((void *)xpd->readchunk);
+ xpd->readchunk = NULL;
if(xpd->xproto)
xproto_put(xpd->xproto);
xpd->xproto = NULL;
@@ -235,7 +384,7 @@ static void xpd_free(xpd_t *xpd)
#define REV(x,y) (10 * (x) + (y))
static byte good_revs[] = {
- REV(2,3),
+ REV(2,4),
};
#undef REV
@@ -268,7 +417,7 @@ void card_detected(struct card_desc_struct *card_desc)
BUG_ON(!card_desc);
BUG_ON(card_desc->magic != CARD_DESC_MAGIC);
xbus = card_desc->xbus;
- xpd_num = xpd_addr2num(&card_desc->xpd_addr);
+ xpd_num = XPD_NUM(card_desc->xpd_addr);
type = card_desc->type;
rev = card_desc->rev;
BUG_ON(!xbus);
@@ -341,6 +490,15 @@ void card_detected(struct card_desc_struct *card_desc)
xpd->proc_xpd_ztregister->data = xpd;
xpd->proc_xpd_ztregister->read_proc = proc_xpd_ztregister_read;
xpd->proc_xpd_ztregister->write_proc = proc_xpd_ztregister_write;
+ xpd->proc_xpd_blink = create_proc_entry(PROC_XPD_BLINK, 0644, xpd->proc_xpd_dir);
+ if (!xpd->proc_xpd_blink) {
+ ERR("Failed to create proc '%s' for %s/%s\n", PROC_XPD_BLINK, xbus->busname, xpd->xpdname);
+ goto err;
+ }
+ xpd->proc_xpd_blink->owner = THIS_MODULE;
+ xpd->proc_xpd_blink->data = xpd;
+ xpd->proc_xpd_blink->read_proc = proc_xpd_blink_read;
+ xpd->proc_xpd_blink->write_proc = proc_xpd_blink_write;
#endif
xbus_register_xpd(xbus, xpd);
if(CALL_XMETHOD(card_init, xbus, xpd) < 0)
@@ -432,9 +590,7 @@ static int xpd_read_proc(char *page, char **start, off_t off, int count, int *eo
if(SPAN_REGISTERED(xpd)) {
len += sprintf(page + len, "\nPCM:\n | [readchunk] | [writechunk] | delay");
for_each_line(xpd, i) {
-#if 0
struct zt_chan *chans = xpd->span.chans;
-#endif
byte rchunk[ZT_CHUNKSIZE];
byte wchunk[ZT_CHUNKSIZE];
byte *rp;
@@ -449,11 +605,10 @@ static int xpd_read_proc(char *page, char **start, off_t off, int count, int *eo
continue;
#if 0
rp = chans[i].readchunk;
- wp = chans[i].writechunk;
#else
rp = (byte *)xpd->readchunk + (ZT_CHUNKSIZE * i);
- wp = (byte *)xpd->writechunk + (ZT_CHUNKSIZE * i);
#endif
+ wp = chans[i].writechunk;
memcpy(rchunk, rp, ZT_CHUNKSIZE);
memcpy(wchunk, wp, ZT_CHUNKSIZE);
len += sprintf(page + len, "\n port %2d> | ", i);
@@ -505,7 +660,6 @@ out:
xpd_t *xpd_alloc(size_t privsize, xbus_t *xbus, int xpd_num, const xproto_table_t *proto_table, int channels, byte revision)
{
xpd_t *xpd = NULL;
- size_t pcm_size;
size_t alloc_size = sizeof(xpd_t) + privsize;
int i;
@@ -532,7 +686,7 @@ xpd_t *xpd_alloc(size_t privsize, xbus_t *xbus, int xpd_num, const xproto_table_
xpd->channels = channels;
xpd->chans = NULL;
xpd->card_present = 0;
- snprintf(xpd->xpdname, XPD_NAMELEN, "XPD-%d", xpd_num);
+ snprintf(xpd->xpdname, XPD_NAMELEN, "XPD-%02x", xpd_num);
xpd->offhook = 0x0; /* ONHOOK */
xpd->type = proto_table->type;
xpd->xproto = proto_table;
@@ -552,23 +706,20 @@ xpd_t *xpd_alloc(size_t privsize, xbus_t *xbus, int xpd_num, const xproto_table_
ERR("%s: Unable to allocate channels\n", __FUNCTION__);
goto err;
}
- pcm_size = ZT_MAX_CHUNKSIZE * CHANNELS_PERXPD * 2; /* Double Buffer */
- alloc_size = pcm_size * 2; /* Read/Write */
- if((xpd->writechunk = kmalloc(alloc_size, GFP_KERNEL)) == NULL) {
- ERR("%s: Unable to allocate memory for writechunks\n", __FUNCTION__);
+ alloc_size = ZT_MAX_CHUNKSIZE * CHANNELS_PERXPD * 2; /* Double Buffer */
+ if((xpd->readchunk = kmalloc(alloc_size, GFP_KERNEL)) == NULL) {
+ ERR("%s: Unable to allocate memory for readchunk\n", __FUNCTION__);
goto err;
}
- /* Initialize Write/Buffers to all blank data */
- memset((void *)xpd->writechunk, 0x00, alloc_size);
- xpd->readchunk = xpd->writechunk + pcm_size;
-
+ /* Initialize read buffers to all blank data */
+ memset((void *)xpd->readchunk, 0, alloc_size);
return xpd;
err:
if(xpd) {
if(xpd->chans)
kfree((void *)xpd->chans);
- if(xpd->writechunk)
- kfree((void *)xpd->writechunk);
+ if(xpd->readchunk)
+ kfree((void *)xpd->readchunk);
kfree(xpd);
}
return NULL;
@@ -714,6 +865,8 @@ int proc_sync_read(char *page, char **start, off_t off, int count, int *eof, voi
xpp_timer_rate = (xpp_timer_count % SAMPLE_TICKS) * HZ / delta;
len += sprintf(page + len, "tick rate: %4d/second (SAMPLE_TICKS=%d)\n", xpp_timer_rate, SAMPLE_TICKS);
}
+ if(pcm_tasklet)
+ len += sprintf(page + len, "TASKLETS: missed_ticks: %d\n", atomic_read(&missed_ticks));
if (len <= off+count)
*eof = 1;
*start = page + off;
@@ -772,8 +925,9 @@ static int proc_sync_write(struct file *file, const char __user *buffer, unsigne
return -ENXIO;
}
DBG("%s: %d/%d %s\n", __FUNCTION__, xbus_num, xpd_num, (setit)?"SET":"QUERY");
- if(setit)
- external_sync(xpd);
+ if(setit) {
+ sync_master_is(xpd);
+ }
out:
return count;
}
@@ -825,66 +979,87 @@ static int proc_xpd_ztregister_write(struct file *file, const char __user *buffe
return (ret < 0) ? ret : count;
}
+int proc_xpd_blink_read(char *page, char **start, off_t off, int count, int *eof, void *data)
+{
+ int len = 0;
+ unsigned long flags;
+ xpd_t *xpd = data;
+
+ BUG_ON(!xpd);
+ spin_lock_irqsave(&xpd->lock, flags);
+
+ len += sprintf(page + len, "%d\n", xpd->blink_mode);
+ spin_unlock_irqrestore(&xpd->lock, flags);
+ if (len <= off+count)
+ *eof = 1;
+ *start = page + off;
+ len -= off;
+ if (len > count)
+ len = count;
+ if (len < 0)
+ len = 0;
+ return len;
+}
+
+static int proc_xpd_blink_write(struct file *file, const char __user *buffer, unsigned long count, void *data)
+{
+ xpd_t *xpd = data;
+ char buf[MAX_PROC_WRITE];
+ bool blink;
+ int ret;
+
+ BUG_ON(!xpd);
+ if(count >= MAX_PROC_WRITE)
+ return -EINVAL;
+ if(copy_from_user(buf, buffer, count))
+ return -EFAULT;
+ buf[count] = '\0';
+ ret = sscanf(buf, "%d", &blink);
+ if(ret != 1)
+ return -EINVAL;
+ DBG("%s: %s/%s %s\n", __FUNCTION__,
+ xpd->xbus->busname, xpd->xpdname, (blink) ? "blink" : "unblink");
+ xpd->blink_mode = blink;
+ return count;
+}
+
#endif
/**
*
- * Packet is freed:
+ * Frame is freed:
* - In case of error, by this function.
* - Otherwise, by the underlying sending mechanism
*/
-int packet_send(xbus_t *xbus, xpacket_t *pack_tx)
+int xframe_send(xbus_t *xbus, xframe_t *xframe)
{
int ret = -ENODEV;
- int toxpd;
- if(!pack_tx) {
- DBG("null pack\n");
+ if(!xframe) {
+ DBG("null xframe\n");
return -EINVAL;
}
- toxpd = XPD_NUM(pack_tx->content.addr);
if(!xbus) {
DBG("null xbus\n");
ret = -EINVAL;
goto error;
}
if (!xbus->hardware_exists) {
- DBG("xbus %s Dropped a packet -- NO HARDWARE.", xbus->busname);
+ DBG("xbus %s Dropped a xframe -- NO HARDWARE.", xbus->busname);
ret = -ENODEV;
goto error;
}
- if(!VALID_XPD_NUM(toxpd)) {
- ERR("%s: toxpd=%d > MAX_XPDS\n", __FUNCTION__, toxpd);
- ret = -EINVAL;
- goto error;
- }
-#if 0
- // DEBUG: For Dima
- if(pack_tx->content.opcode == XPP_PCM_WRITE) {
- static int rate_limit;
- static int count;
-
- if(sync_master == NULL)
- count = 0;
- if(count++ > 5) {
- ret = 0;
- goto error;
- }
- if(rate_limit++ % 1000 == 0)
- INFO("DEBUG: TRANSMIT (PCM_WRITE)\n");
- }
-#endif
if(down_read_trylock(&xbus->in_use)) {
- ret = xbus->ops->packet_send(xbus, pack_tx);
- XBUS_COUNTER(xbus, TX_BYTES) += pack_tx->datalen;
+ ret = xbus->ops->xframe_send(xbus, xframe);
+ XBUS_COUNTER(xbus, TX_BYTES) += XFRAME_LEN(xframe);
up_read(&xbus->in_use);
} else {
- DBG("Dropped packet. %s is in_use\n", xbus->busname);
+ DBG("Dropped xframe. %s is in_use\n", xbus->busname);
}
return ret;
error:
- xbus->ops->packet_free(xbus, pack_tx);
+ xbus->ops->xframe_free(xbus, xframe);
return ret;
}
@@ -895,64 +1070,50 @@ error:
#define PREP_REPORT_RATE 1000
-static void xpp_transmitprep(xpd_t *xpd)
+static void xpp_transmitprep(xpd_t *xpd, xpp_line_t lines, xpacket_t *pack)
{
- volatile u_char *writechunk;
- volatile u_char *w;
- int ret;
- int i;
- int channels = xpd->channels;
- struct zt_chan *chans = xpd->span.chans;
+ byte *pcm;
+ int channels;
+ struct zt_chan *chans;
unsigned long flags;
- bool digital_telephony;
+ int i;
+ int subunit;
+ xpd_t *tmp_xpd;
- spin_lock_irqsave(&xpd->lock, flags);
- digital_telephony = (xpd->type == XPD_TYPE_BRI_NT) || (xpd->type == XPD_TYPE_BRI_TE);
-// if((xpd->timer_count % PREP_REPORT_RATE) < 10)
-// DBG("%d\n", xpd->timer_count);
- if (xpd->timer_count & 1) {
- /* First part */
- w = writechunk = xpd->writechunk /* + 1 */;
- } else {
- w = writechunk = xpd->writechunk + ZT_CHUNKSIZE * CHANNELS_PERXPD /* + 1 */;
- }
- spin_unlock_irqrestore(&xpd->lock, flags);
- /*
- * This should be out of spinlocks, as it may call back our hook setting
- * methods
- */
- zt_transmit(&xpd->span);
- spin_lock_irqsave(&xpd->lock, flags);
-
- for (i = 0; i < channels; i++, w += ZT_CHUNKSIZE) {
- /*
- * We don't copy signalling buffers (they may be
- * longer than ZT_CHUNKSIZE).
- */
- if(IS_SET(xpd->digital_signalling, i))
+ BUG_ON(!xpd);
+ BUG_ON(!pack);
+ pcm = RPACKET_FIELD(pack, GLOBAL, PCM_WRITE, pcm);
+ for(subunit = 0; subunit < MAX_SUBUNIT; subunit++) {
+ tmp_xpd = xpd_by_addr(xpd->xbus, xpd->addr.unit, subunit);
+ if(!tmp_xpd)
continue;
- if (xpd->delay_until_dialtone[i] > 0) {
- xpd->delay_until_dialtone[i]--;
- if (xpd->delay_until_dialtone[i] <= 0) {
- xpd->delay_until_dialtone[i] = 0;
- wake_up_interruptible(&xpd->txstateq[i]);
- }
- }
- if(IS_SET(xpd->offhook, i) || IS_SET(xpd->cid_on, i) || digital_telephony) {
+ spin_lock_irqsave(&tmp_xpd->lock, flags);
- memcpy((u_char *)w, chans[i].writechunk, ZT_CHUNKSIZE);
- // fill_beep((u_char *)w, xpd->addr.subunit, 2);
- // memset((u_char *)w, pcmtx[xpd->addr.subunit % 4], ZT_CHUNKSIZE);
+ channels = tmp_xpd->channels;
+ chans = tmp_xpd->span.chans;
+ for (i = 0; i < channels; i++) {
+ if (tmp_xpd->delay_until_dialtone[i] > 0) {
+ tmp_xpd->delay_until_dialtone[i]--;
+ if (tmp_xpd->delay_until_dialtone[i] <= 0) {
+ tmp_xpd->delay_until_dialtone[i] = 0;
+ wake_up_interruptible(&tmp_xpd->txstateq[i]);
+ }
+ }
+ if(IS_SET(lines, i)) {
+ if(SPAN_REGISTERED(tmp_xpd)) {
+ memcpy((u_char *)pcm, chans[i].writechunk, ZT_CHUNKSIZE);
+ // fill_beep((u_char *)pcm, tmp_xpd->addr.subunit, 2);
+ // memset((u_char *)pcm, pcmtx[tmp_xpd->addr.subunit % 4], ZT_CHUNKSIZE);
+ } else
+ memset((u_char *)pcm, 0x7F, ZT_CHUNKSIZE);
+ pcm += ZT_CHUNKSIZE;
+ }
}
+ XPD_COUNTER(tmp_xpd, PCM_WRITE)++;
+ spin_unlock_irqrestore(&tmp_xpd->lock, flags);
+ lines >>= SUBUNIT_PCM_SHIFT;
}
-// if(xpd->offhook != 0 || sync_master != xpd) {
- ret = CALL_XMETHOD(PCM_WRITE, xpd->xbus, xpd, xpd->offhook | xpd->cid_on, writechunk);
- if(ret < 0) {
- DBG("failed to write PCM %d\n", ret);
- }
-// }
- spin_unlock_irqrestore(&xpd->lock, flags);
}
void fill_beep(u_char *buf, int num, int duration)
@@ -1066,10 +1227,21 @@ static void xpp_receiveprep(xpd_t *xpd)
zt_receive(&xpd->span);
}
+/*
+ * Called only for 'span' keyword in /etc/zaptel.conf
+ */
static int xpp_startup(struct zt_span *span)
{
- DBG("\n");
- return 0;
+ xpd_t *xpd = span->pvt;
+
+ BUG_ON(!xpd);
+ // Turn on all channels
+ CALL_XMETHOD(XPD_STATE, xpd->xbus, xpd, 1);
+ if(!xpd->xops->span_startup) {
+ NOTICE("%s/%s: %s called\n", xpd->xbus->busname, xpd->xpdname, __FUNCTION__);
+ return 0;
+ }
+ return xpd->xops->span_startup(xpd);
}
/*
@@ -1088,10 +1260,16 @@ static int xpp_spanconfig(struct zt_span *span, struct zt_lineconfig *lc)
*/
static int xpp_shutdown(struct zt_span *span)
{
- xpd_t *xpd = span->pvt;
+ xpd_t *xpd = span->pvt;
- DBG("%s\n", xpd->xpdname);
- return 0;
+ BUG_ON(!xpd);
+ // Turn off all channels
+ CALL_XMETHOD(XPD_STATE, xpd->xbus, xpd, 0);
+ if(!xpd->xops->span_shutdown) {
+ NOTICE("%s/%s: %s called\n", xpd->xbus->busname, xpd->xpdname, __FUNCTION__);
+ return 0;
+ }
+ return xpd->xops->span_shutdown(xpd);
}
int xpp_open(struct zt_chan *chan)
@@ -1148,21 +1326,19 @@ int xpp_close(struct zt_chan *chan)
int xpp_ioctl(struct zt_chan *chan, unsigned int cmd, unsigned long arg)
{
xpd_t *xpd = chan->pvt;
- int pos = chan->chanpos - 1;
- int x;
+ int pos = chan->chanpos - 1;
+ int x;
+ int ret = 0;
switch (cmd) {
case ZT_ONHOOKTRANSFER:
if (get_user(x, (int __user *)arg))
return -EFAULT;
- xpd->ohttimer[pos] = x << 3;
- xpd->idletxhookstate[pos] = FXS_LINE_CID; /* OHT mode when idle */
- if (xpd->lasttxhook[pos] == FXS_LINE_ENABLED) {
- /* Apply the change if appropriate */
- CALL_XMETHOD(CHAN_CID, xpd->xbus, xpd, pos); // CALLER ID
- }
- DBG("xpd=%d: ZT_ONHOOKTRANSFER (%d millis) chan=%d\n", xpd->id, x, pos);
- return -ENOTTY;
+ DBG("%s/%s/%d: ZT_ONHOOKTRANSFER (%d millis)\n",
+ xpd->xbus->busname, xpd->xpdname, pos, x);
+ if(xpd->xops->chan_onhooktransfer)
+ ret = CALL_XMETHOD(chan_onhooktransfer, xpd->xbus, xpd, pos, x);
+ return ret;
case ZT_TONEDETECT:
if (get_user(x, (int __user *)arg))
return -EFAULT;
@@ -1172,11 +1348,10 @@ int xpp_ioctl(struct zt_chan *chan, unsigned int cmd, unsigned long arg)
default:
/* Some span-specific commands before we give up: */
if (xpd->xops->card_ioctl != NULL) {
- x = xpd->xops->card_ioctl(xpd, pos, cmd, arg);
- if (x != -ENOTTY)
- return x;
+ ret = xpd->xops->card_ioctl(xpd, pos, cmd, arg);
+ if (ret != -ENOTTY)
+ return ret;
}
-
DBG("ENOTTY: chan=%d cmd=0x%x\n", pos, cmd);
DBG(" IOC_TYPE=0x%02X\n", _IOC_TYPE(cmd));
DBG(" IOC_DIR=0x%02X\n", _IOC_DIR(cmd));
@@ -1432,6 +1607,7 @@ static void do_cleanup(void)
{
if(timer_pending(&xpp_timer))
del_timer_sync(&xpp_timer);
+ tasklet_kill(&tasklet_tick);
#ifdef CONFIG_PROC_FS
DBG("Removing '%s' from proc\n", PROC_SYNC);
remove_proc_entry(PROC_SYNC, xpp_proc_toplevel);
@@ -1448,9 +1624,9 @@ int __init xpp_zap_init(void)
int ret = 0;
struct proc_dir_entry *ent;
- INFO("%s MAX_XPDS=%d (%d*%d)\n", THIS_MODULE->name,
+ INFO("%s revision %s MAX_XPDS=%d (%d*%d)\n", THIS_MODULE->name, XPP_VERSION,
MAX_XPDS, MAX_UNIT, MAX_SUBUNIT);
-#if WITH_ECHO_SUPPRESSION
+#if WITH_ECHO_SUPPRESSION
INFO("FEATURE: %s (with ECHO_SUPPRESSION)\n", THIS_MODULE->name);
#else
INFO("FEATURE: %s (without ECHO_SUPPRESSION)\n", THIS_MODULE->name);
@@ -1506,12 +1682,11 @@ EXPORT_SYMBOL(print_dbg);
EXPORT_SYMBOL(card_detected);
EXPORT_SYMBOL(xpd_alloc);
EXPORT_SYMBOL(xpd_disconnect);
-EXPORT_SYMBOL(packet_send);
+EXPORT_SYMBOL(xframe_send);
EXPORT_SYMBOL(update_xpd_status);
EXPORT_SYMBOL(update_zap_ring);
EXPORT_SYMBOL(update_line_status);
EXPORT_SYMBOL(fill_beep);
-EXPORT_SYMBOL(xpp_tick);
EXPORT_SYMBOL(xpp_open);
EXPORT_SYMBOL(xpp_close);
EXPORT_SYMBOL(xpp_ioctl);
@@ -1520,6 +1695,7 @@ EXPORT_SYMBOL(xpp_maint);
MODULE_DESCRIPTION("XPP Zaptel Driver");
MODULE_AUTHOR("Oron Peled <oron@actcom.co.il>");
MODULE_LICENSE("GPL");
+MODULE_VERSION(XPP_VERSION);
module_init(xpp_zap_init);
module_exit(xpp_zap_cleanup);
diff --git a/xpp/xpp_zap.h b/xpp/xpp_zap.h
index 4cd3a8b..8294e36 100644
--- a/xpp/xpp_zap.h
+++ b/xpp/xpp_zap.h
@@ -27,7 +27,7 @@
#include "xproto.h"
void xpd_disconnect(xpd_t *xpd);
-int packet_send(xbus_t *xbus, xpacket_t *pack_tx);
+int xframe_send(xbus_t *xbus, xframe_t *xframe);
void card_detected(struct card_desc_struct *card_desc);
xpd_t *xpd_alloc(size_t privsize, xbus_t *xbus, int xpd_num, const xproto_table_t *proto_table, int channels, byte revision);
void xpd_remove(xpd_t *xpd);
@@ -35,7 +35,7 @@ void update_xpd_status(xpd_t *xpd, int alarm_flag);
void update_zap_ring(xpd_t *xpd, int pos, bool on);
void update_line_status(xpd_t *xpd, int pos, bool good);
void fill_beep(u_char *buf, int num, int duration);
-void xpp_tick(unsigned long param);
+void got_pcm_from(xpd_t *xpd);
int xpp_open(struct zt_chan *chan);
int xpp_close(struct zt_chan *chan);
int xpp_ioctl(struct zt_chan *chan, unsigned int cmd, unsigned long arg);
diff --git a/xpp/xproto.c b/xpp/xproto.c
index 4c72d3f..5b62494 100644
--- a/xpp/xproto.c
+++ b/xpp/xproto.c
@@ -55,6 +55,16 @@ void xpd_set_addr(xpd_addr_t *addr, int xpd_num)
addr->subunit = (xpd_num >> UNIT_BITS) & BITMASK(SUBUNIT_BITS);
}
+xpd_t *xpd_by_addr(const xbus_t *xbus, int unit, int subunit)
+{
+ xpd_addr_t addr;
+ int xpd_num;
+
+ addr.unit = unit;
+ addr.subunit = subunit;
+ xpd_num = xpd_addr2num(&addr);
+ return xpd_of(xbus, xpd_num);
+}
/*---------------- General Protocol Management ----------------------------*/
@@ -153,43 +163,45 @@ static const xproto_entry_t *find_xproto_entry(xpd_t *xpd, byte opcode)
return xe;
}
-int packet_receive(xbus_t *xbus, xpacket_t *pack)
+int packet_process(xbus_t *xbus, xpacket_t *pack)
{
byte op;
const xproto_entry_t *xe;
xproto_handler_t handler;
xproto_table_t *table;
xpd_t *xpd;
- int xpd_num;
int ret = 0;
BUG_ON(!pack);
- if(!valid_xpd_addr(&pack->content.addr)) {
- static int rate_limit = 0;
-
- if((rate_limit++ % 5003) < 3)
- dump_packet("packet_receive -- bad address", pack, print_dbg);
+ if(!valid_xpd_addr(&pack->addr)) {
+ if(printk_ratelimit())
+ dump_packet("packet_process -- bad address", pack, print_dbg);
ret = -EPROTO;
goto out;
}
- op = pack->content.opcode;
- xpd_num = XPD_NUM(pack->content.addr);
- xpd = xpd_of(xbus, xpd_num);
+ op = pack->opcode;
+ xpd = xpd_by_addr(xbus, pack->addr.unit, pack->addr.subunit);
+ /* XPD may be NULL (e.g: during bus polling */
xe = find_xproto_entry(xpd, op);
/*-------- Validations -----------*/
if(!xe) {
- ERR("xpp: %s: %s unit #%d: bad command op=0x%02X\n",
- __FUNCTION__, xbus->busname, xpd_num, op);
- dump_packet("packet_receive -- bad command", pack, print_dbg);
+ if(printk_ratelimit()) {
+ ERR("xpp: %s: %s/%d-%d: bad command op=0x%02X\n",
+ __FUNCTION__, xbus->busname,
+ pack->addr.unit, pack->addr.subunit, op);
+ dump_packet("packet_process -- bad command", pack, print_dbg);
+ }
ret = -EPROTO;
goto out;
}
table = xe->table;
BUG_ON(!table);
if(!table->packet_is_valid(pack)) {
- ERR("xpp: %s: wrong size %d for op=0x%02X\n",
+ if(printk_ratelimit()) {
+ ERR("xpp: %s: wrong size %d for op=0x%02X\n",
__FUNCTION__, pack->datalen, op);
- dump_packet("packet_receive -- wrong size", pack, print_dbg);
+ dump_packet("packet_process -- wrong size", pack, print_dbg);
+ }
ret = -EPROTO;
goto out;
}
@@ -198,7 +210,35 @@ int packet_receive(xbus_t *xbus, xpacket_t *pack)
XBUS_COUNTER(xbus, RX_BYTES) += pack->datalen;
handler(xbus, xpd, xe, pack);
out:
- xbus->ops->packet_free(xbus, pack);
+ return ret;
+}
+
+int xframe_receive(xbus_t *xbus, xframe_t *xframe)
+{
+ byte *p;
+ byte *xpacket_start;
+ byte *xframe_end;
+ int ret = 0;
+ static int rate_limit;
+
+ if(print_dbg == 2 && ((rate_limit++ % 1003) == 0))
+ dump_xframe("RCV_PCM", xbus, xframe);
+ p = xpacket_start = xframe->packets;
+ xframe_end = xpacket_start + XFRAME_LEN(xframe);
+ do {
+ xpacket_t *pack = (xpacket_t *)p;
+ int len = pack->datalen;
+
+ p += len;
+ if(p > xframe_end) {
+ ERR("%s: Invalid packet length %d\n", __FUNCTION__, len);
+ ret = -EPROTO;
+ goto out;
+ }
+ packet_process(xbus, pack);
+ } while(p < xframe_end);
+out:
+ xbus->ops->xframe_free(xbus, xframe);
return ret;
}
@@ -207,41 +247,45 @@ out:
void dump_packet(const char *msg, xpacket_t *packet, bool print_dbg)
{
- byte op = packet->content.opcode;
- byte *addr = (byte *)&packet->content.addr;
+ byte op = packet->opcode;
+ byte *addr = (byte *)&packet->addr;
if(!print_dbg)
return;
- DBG("%s: XPD=%1X-%1X (0x%X) OP=0x%02X LEN=%d\n",
+ DBG("%s: XPD=%1X-%1X (0x%X) OP=0x%02X LEN=%d",
msg,
- packet->content.addr.unit,
- packet->content.addr.subunit,
+ packet->addr.unit,
+ packet->addr.subunit,
*addr,
op,
(byte)packet->datalen);
#if VERBOSE_DEBUG
{
int i;
- byte *p = packet->content.data;
+ byte *p = (byte *)packet;
+ if (print_dbg)
+ printk(" BYTES: ");
for(i = 0; i < packet->datalen; i++) {
static int limiter = 0;
- if(i >= sizeof(xpacket_raw_t)) {
+ if(i >= sizeof(xpacket_t)) {
if(limiter < ERR_REPORT_LIMIT) {
- ERR("%s: length overflow i=%d > sizeof(xpacket_raw_t)=%d\n",
- __FUNCTION__, i+1, sizeof(xpacket_raw_t));
+ ERR("%s: length overflow i=%d > sizeof(xpacket_t)=%d\n",
+ __FUNCTION__, i+1, sizeof(xpacket_t));
} else if(limiter == ERR_REPORT_LIMIT) {
ERR("%s: error packet #%d... squelsh reports.\n",
- __FUNCTION__, limiter);
+ __FUNCTION__, limiter);
}
limiter++;
break;
}
- DBG(" %2d> %02X\n", i+1, p[i]);
+ if (print_dbg)
+ printk("%02X ", p[i]);
}
}
#endif
+ printk("\n");
}
void dump_reg_cmd(const char msg[], reg_cmd_t *regcmd)
@@ -317,9 +361,7 @@ int xproto_register(const xproto_table_t *proto_table)
CHECK_XOP(card_hooksig);
// CHECK_XOP(card_ioctl); // optional method -- call after testing
CHECK_XOP(SYNC_SOURCE);
- CHECK_XOP(PCM_WRITE);
CHECK_XOP(XPD_STATE);
- CHECK_XOP(CHAN_CID);
CHECK_XOP(RING);
CHECK_XOP(RELAY_OUT);
@@ -347,7 +389,7 @@ void xproto_unregister(const xproto_table_t *proto_table)
EXPORT_SYMBOL(dump_packet);
EXPORT_SYMBOL(dump_reg_cmd);
-EXPORT_SYMBOL(packet_receive);
+EXPORT_SYMBOL(xframe_receive);
EXPORT_SYMBOL(valid_xpd_addr);
EXPORT_SYMBOL(xpd_addr2num);
EXPORT_SYMBOL(xpd_set_addr);
diff --git a/xpp/xproto.h b/xpp/xproto.h
index 383ce4b..f567119 100644
--- a/xpp/xproto.h
+++ b/xpp/xproto.h
@@ -28,7 +28,6 @@
#include <linux/list.h>
#include <linux/proc_fs.h>
#include <zaptel.h>
-#endif
#define PROTO_TABLE(n) n ## _protocol_table
@@ -61,6 +60,7 @@ typedef struct xpd_addr {
bool valid_xpd_addr(const xpd_addr_t *addr);
int xpd_addr2num(const xpd_addr_t *addr);
void xpd_set_addr(xpd_addr_t *addr, int xpd_num);
+xpd_t *xpd_by_addr(const xbus_t *xbus, int unit, int subunit);
#define XPD_NUM(x) xpd_addr2num(&x)
@@ -90,23 +90,20 @@ void xpd_set_addr(xpd_addr_t *addr, int xpd_num);
#define DEF_RPACKET_DATA(card,op, ...) \
RPACKET_TYPE(card,op) { \
+ uint16_t datalen;\
byte opcode; \
xpd_addr_t addr; \
__VA_ARGS__ \
} PACKED
-
+#define RPACKET_HEADERSIZE (sizeof(uint16_t) + sizeof(xpd_addr_t) + 1)
#define RPACKET_CAST(p,card,op) ((RPACKET_TYPE(card,op) *)p)
#define RPACKET_FIELD(p,card,op,field) (RPACKET_CAST(p,card,op)->field)
#define RPACKET_SIZE(card,op) sizeof(RPACKET_TYPE(card,op))
-#define RPACKET_DATALEN(card,op) (RPACKET_SIZE(card,op) - sizeof(xpd_addr_t) - 1)
-
-#define PACKET_LEN(p) \
- ((p)->datalen + sizeof(xpd_addr_t) + 1)
#define XENTRY(prototab,module,op) \
[ XPROTO_NAME(module,op) ] = { \
.handler = XPROTO_HANDLER(module,op), \
- .datalen = RPACKET_DATALEN(module,op), \
+ .datalen = RPACKET_SIZE(module,op), \
.name = #op, \
.table = &PROTO_TABLE(prototab) \
}
@@ -115,18 +112,25 @@ void xpd_set_addr(xpd_addr_t *addr, int xpd_num);
#define XPACKET_INIT(p, card, op) \
do { \
- p->content.opcode = XPROTO_NAME(card,op); \
- p->datalen = RPACKET_DATALEN(card,op); \
+ p->opcode = XPROTO_NAME(card,op); \
+ p->datalen = RPACKET_SIZE(card,op); \
} while(0)
-#define XPACKET_NEW(p, xbus, card, op, to) \
+#define XFRAME_NEW(frm, p, xbus, card, op, to) \
do { \
- p = xbus->ops->packet_new(xbus, GFP_ATOMIC); \
+ int len = RPACKET_SIZE(card,op); \
+ \
+ frm = xbus->ops->xframe_new(xbus, GFP_ATOMIC); \
+ if(!frm) \
+ return -ENOMEM; \
+ p = xframe_next_packet(frm, len); \
if(!p) \
return -ENOMEM; \
XPACKET_INIT(p, card, op); \
- xpd_set_addr(&p->content.addr, to); \
- } while(0);
+ xpd_set_addr(&p->addr, to); \
+ } while(0)
+
+#endif
/*--------------------------- register handling --------------------------------*/
/*
@@ -177,6 +181,7 @@ typedef struct reg_cmd {
#define REG_FIELD(regptr,member) ((regptr)->alt.r.member)
#define REG_XDATA(regptr) ((regptr)->alt.d.xdata)
+#ifdef __KERNEL__
/*--------------------------- protocol tables ----------------------------------*/
typedef struct xproto_entry xproto_entry_t;
@@ -208,12 +213,13 @@ struct xops {
int (*card_zaptel_postregistration)(xpd_t *xpd, bool on);
int (*card_hooksig)(xbus_t *xbus, xpd_t *xpd, int pos, zt_txsig_t txsig);
int (*card_ioctl)(xpd_t *xpd, int pos, unsigned int cmd, unsigned long arg);
+ int (*span_startup)(xpd_t *xpd);
+ int (*span_shutdown)(xpd_t *xpd);
+ int (*chan_onhooktransfer)(xbus_t *xbus, xpd_t *xpd, lineno_t chan, int millies);
int (*SYNC_SOURCE)(xbus_t *xbus, xpd_t *xpd, bool setit, bool is_master);
- int (*PCM_WRITE)(xbus_t *xbus, xpd_t *xpd, xpp_line_t offhook, volatile byte *buf);
int (*XPD_STATE)(xbus_t *xbus, xpd_t *xpd, bool on);
- int (*CHAN_CID)(xbus_t *xbus, xpd_t *xpd, lineno_t chan);
int (*RING)(xbus_t *xbus, xpd_t *xpd, lineno_t chan, bool on);
int (*RELAY_OUT)(xbus_t *xbus, xpd_t *xpd, byte which, bool on);
};
@@ -257,7 +263,8 @@ enum opcodes {
#define MEMBER(card,op) RPACKET_TYPE(card,op) RPACKET_NAME(card,op)
-struct xpacket_raw {
+struct xpacket {
+ uint16_t datalen;
byte opcode;
xpd_addr_t addr;
union {
@@ -277,21 +284,17 @@ struct xpacket_raw {
byte data[0];
};
+ /* Last byte is chksum */
} PACKED;
-struct xpacket {
- xpacket_raw_t content;
- int datalen;
- struct list_head list;
- void *packet_priv;
-};
-
void dump_packet(const char *msg, xpacket_t *packet, bool print_dbg);
void dump_reg_cmd(const char msg[], reg_cmd_t *regcmd);
-int packet_receive(xbus_t *xbus, xpacket_t *pack);
+int xframe_receive(xbus_t *xbus, xframe_t *xframe);
int xproto_register(const xproto_table_t *proto_table);
void xproto_unregister(const xproto_table_t *proto_table);
const xproto_entry_t *xproto_global_entry(byte opcode);
const char *xproto_name(xpd_type_t xpd_type);
+#endif /* __KERNEL__ */
+
#endif /* XPROTO_H */
diff --git a/xpp/zap_debug.c b/xpp/zap_debug.c
index f20e14d..59eb0a8 100644
--- a/xpp/zap_debug.c
+++ b/xpp/zap_debug.c
@@ -28,7 +28,7 @@
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/module.h>
-#include "zaptel.h"
+#include <zaptel.h>
#include "zap_debug.h"
static const char rcsid[] = "$Id$";
diff --git a/xpp/zap_debug.h b/xpp/zap_debug.h
index 6d8ac36..29403a8 100644
--- a/xpp/zap_debug.h
+++ b/xpp/zap_debug.h
@@ -31,6 +31,12 @@
#define WARN(fmt, ...) printk(KERN_WARNING "WARN-%s: %s: " fmt, THIS_MODULE->name, __FUNCTION__, ## __VA_ARGS__)
#define ERR(fmt, ...) printk(KERN_ERR "ERR-%s: " fmt, THIS_MODULE->name, ## __VA_ARGS__)
+/*
+ * Bits for print_dbg
+ */
+#define DBG_DEFAULT 0x01
+#define DBG_PCM 0x02
+
void dump_poll(int print_dbg, const char *msg, int poll);
static inline char *rxsig2str(zt_rxsig_t sig)