From 801f8c4f29054b3be7e9df20648abdf6c878be70 Mon Sep 17 00:00:00 2001 From: cvs2svn Date: Sun, 30 Apr 2006 16:44:42 +0000 Subject: This commit was manufactured by cvs2svn to create branch 'RELENG_6'. --- sys/dev/rr232x/LICENSE | 30 + sys/dev/rr232x/README | 202 ++ sys/dev/rr232x/amd64-elf.rr232x_lib.o.uu | 4567 ++++++++++++++++++++++++++++++ sys/dev/rr232x/array.h | 179 ++ sys/dev/rr232x/him.h | 440 +++ sys/dev/rr232x/himfuncs.h | 100 + sys/dev/rr232x/hptintf.h | 1647 +++++++++++ sys/dev/rr232x/i386-elf.rr232x_lib.o.uu | 3068 ++++++++++++++++++++ sys/dev/rr232x/ldm.h | 484 ++++ sys/dev/rr232x/list.h | 121 + sys/dev/rr232x/os_bsd.c | 297 ++ sys/dev/rr232x/os_bsd.h | 254 ++ sys/dev/rr232x/osm.h | 199 ++ sys/dev/rr232x/osm_bsd.c | 1351 +++++++++ sys/dev/rr232x/rr232x_config.c | 31 + sys/dev/rr232x/rr232x_config.h | 107 + sys/dev/sk/xmaciireg.h | 406 +++ sys/dev/sk/yukonreg.h | 190 ++ 18 files changed, 13673 insertions(+) create mode 100644 sys/dev/rr232x/LICENSE create mode 100644 sys/dev/rr232x/README create mode 100644 sys/dev/rr232x/amd64-elf.rr232x_lib.o.uu create mode 100644 sys/dev/rr232x/array.h create mode 100644 sys/dev/rr232x/him.h create mode 100644 sys/dev/rr232x/himfuncs.h create mode 100644 sys/dev/rr232x/hptintf.h create mode 100644 sys/dev/rr232x/i386-elf.rr232x_lib.o.uu create mode 100644 sys/dev/rr232x/ldm.h create mode 100644 sys/dev/rr232x/list.h create mode 100644 sys/dev/rr232x/os_bsd.c create mode 100644 sys/dev/rr232x/os_bsd.h create mode 100644 sys/dev/rr232x/osm.h create mode 100644 sys/dev/rr232x/osm_bsd.c create mode 100644 sys/dev/rr232x/rr232x_config.c create mode 100644 sys/dev/rr232x/rr232x_config.h create mode 100644 sys/dev/sk/xmaciireg.h create mode 100644 sys/dev/sk/yukonreg.h (limited to 'sys/dev') diff --git a/sys/dev/rr232x/LICENSE b/sys/dev/rr232x/LICENSE new file mode 100644 index 000000000000..ac2b218fa22f --- /dev/null +++ b/sys/dev/rr232x/LICENSE @@ -0,0 +1,30 @@ +$FreeBSD$ + +Unless otherwise noted, all program source, header, and binary data files +in this directory are governed by the following copyright and license: + +/* + * Copyright (C) 2005 HighPoint Technologies, Inc. All Rights Reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + diff --git a/sys/dev/rr232x/README b/sys/dev/rr232x/README new file mode 100644 index 000000000000..a73b631e1e5a --- /dev/null +++ b/sys/dev/rr232x/README @@ -0,0 +1,202 @@ +RocketRAID 232x Controller Driver for FreeBSD +Copyright (C) 2005 HighPoint Technologies, Inc. All rights reserved. + +############################################################################# +Revision History: + + v1.02 02/20/2006 + Add RR2322 support + + v1.01 2005-8-30 + First source code release + +$FreeBSD$ + +############################################################################# + +1. Overview +--------------------- + This package contains FreeBSD driver source code for HighPoint RocketRAID + 232x SATA controller. + + NO WARRANTY + + THE DRIVER SOURCE CODE HIGHPOINT PROVIDED IS FREE OF CHARGE, AND THERE IS + NO WARRANTY FOR THE PROGRAM. THERE ARE NO RESTRICTIONS ON THE USE OF THIS + FREE SOURCE CODE. HIGHPOINT DOES NOT PROVIDE ANY TECHNICAL SUPPORT IF THE + CODE HAS BEEN CHANGED FROM ORIGINAL SOURCE CODE. + + LIMITATION OF LIABILITY + + IN NO EVENT WILL HIGHPOINT BE LIABLE FOR DIRECT, INDIRECT, SPECIAL, + INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF OR + INABILITY TO USE THIS PRODUCT OR DOCUMENTATION, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGES. IN PARTICULAR, HIGHPOINT SHALL NOT HAVE + LIABILITY FOR ANY HARDWARE, SOFTWARE, OR DATA STORED USED WITH THE + PRODUCT, INCLUDING THE COSTS OF REPAIRING, REPLACING, OR RECOVERING + SUCH HARDWARE, OR DATA. + + +2. Rebuild the kernel with RR232x support +-------------------------------------------- + + 1) Install kernel source package and building tools. + + 2) Extract the driver files under the kernel source tree: + + # cd /usr/src/sys/ + # tar xvzf /your/path/to/rr232x-freebsd-src.tgz + + 3) Update the kernel configuration file to include the HighPoint source. + Assume the configure file is GENERIC, and new kernel configure file is + MYKERNEL: + + # cd i386/conf (or amd64/conf for AMD64) + # cp GENERIC MYKERNEL + + 4) Edit MYKERNEL, and add the following line under "RAID controllers + interfaced to the SCSI subsystem": + + device "rr232x" #HighPoint RocketRAID 232x + + 5) For i386 system, edit /usr/src/sys/conf/files.i386 and append the lines + shown below: + + rr232x_lib.o optional rr232x \ + dependency "$S/dev/rr232x/i386-elf.rr232x_lib.o.uu" \ + compile-with "uudecode < $S/dev/rr232x/i386-elf.rr232x_lib.o.uu" \ + no-implicit-rule + + dev/rr232x/os_bsd.c optional rr232x + dev/rr232x/osm_bsd.c optional rr232x + dev/rr232x/rr232x_config.c optional rr232x + + For amd64 system, edit /usr/src/sys/conf/files.amd64 and append the lines + shown below: + + rr232x_lib.o optional rr232x \ + dependency "$S/dev/rr232x/amd64-elf.rr232x_lib.o.uu" \ + compile-with "uudecode < $S/dev/rr232x/amd64-elf.rr232x_lib.o.uu" \ + no-implicit-rule + + dev/rr232x/os_bsd.c optional rr232x + dev/rr232x/osm_bsd.c optional rr232x + dev/rr232x/rr232x_config.c optional rr232x + + Note FreeBSD 5.3/5.4 i386 already have a built-in RR232x driver, you should + replace the old configuration lines with the lines listed above. + + + 6) Rebuild and install the kernel: + + a) for FreeBSD 5.x-i386: + + # cd /usr/src/sys/i386/conf/ + # /usr/sbin/config MYKERNEL + # cd ../compile/MYKERNEL/ + # make depend + # make + # make install + + b) for FreeBSD 5.x-amd64: + + # cd /usr/src/sys/amd64/conf/ + # /usr/sbin/config MYKERNEL + # cd ../compile/MYKERNEL/ + # make depend + # make + # make install + + c) for FreeBSD 4.x: + + # cd /usr/src/sys/i386/conf/ + # /usr/sbin/config MYKERNEL + # cd ../../compile/MYKERNEL/ + # make depend + # make + # make install + + If the driver was previously configured as an auto-loaded module by + /boot/defaults/loader.conf, please remove the entry rr232x_load="YES" + from loader.conf to prevent the driver from being loaded twice. + + 7) Reboot from the new kernel. + + +3. Build/Load the driver as a kernel module +------------------------------------------------ + + 1) Install kernel source package and building tools. + + 2) Extract the driver files under the kernel source tree: + + # cd /usr/src/sys/ + # tar xvzf /your/path/to/rr232x-opensource-v1.12-bsd.tgz + + + 4) Build the driver module: + + # cd modules/rr232x + # make + + 5) Copy the driver module to the kernel module directory + + For FreeBSD 4.x: + + # cp rr232x.ko /modules/ + + For FreeBSD 5.x: + + # cp rr232x.ko /boot/kernel/ + + 6) Reboot and load the driver under loader prompt. e.g: + + BTX loader 1.00 BTX version is 1.01 + Console: internal video/keyboard + BIOS driver A: is disk0 + BIOS driver C: is disk2 + BIOS 636kB/74512kB available memory + + FreeBSD/i386 bootstrap loader, Revision 0.8 + (mailto:jkh@narf.osd.bsdi.com, Sat Apr 21 08:46:19 GMT 2001) + Loading /boot/defaults/loader.conf + /kernel text=0x24f1db data=0x3007ec+0x2062c - + + Hit [Enter] to boot immediagely, or any other key for command prompt. + Booting [kernel] in 9 secondsĄ­ + + <-- press SPACE key here + Type '?' for a list of commands, 'help' for more detailed help. + ok load rr232x + /modules/rr232x.ko text=0xf571 data=0x2c8+0x254 + ok boot + + For FreeBSD 5.x, you can select 6 on the boot menu to get a loader prompt. + + 7) You can add a below line into /boot/defaults/loader.conf to load the + driver automatically: + + rr232x_load="YES" + + Please refer to the installation guide in HighPoint FreeBSD driver release + package for more information. + + +############################################################################# +Technical support and service + + If you have questions about installing or using your HighPoint product, + check the user's guide or readme file first, and you will find answers to + most of your questions here. If you need further assistance, please + contact us. We offer the following support and information services: + + 1) The HighPoint Web Site provides information on software upgrades, + answers to common questions, and other topics. The Web Site is + available from Internet 24 hours a day, 7 days a week, at + http://www.highpoint-tech.com. + + 2) For technical support, send e-mail to support@highpoint-tech.com + + NOTE: Before you send an e-mail, please visit our Web Site + (http://www.highpoint-tech.com) to check if there is a new or + updated device driver for your system. diff --git a/sys/dev/rr232x/amd64-elf.rr232x_lib.o.uu b/sys/dev/rr232x/amd64-elf.rr232x_lib.o.uu new file mode 100644 index 000000000000..42bea385a41d --- /dev/null +++ b/sys/dev/rr232x/amd64-elf.rr232x_lib.o.uu @@ -0,0 +1,4567 @@ +$FreeBSD$ +begin 644 rr232x_lib.o +M?T5,1@(!`0D```````````$`/@`!`````````````````````````/`V`@`` +M`````````$```````$``$``-`//#9F9FD&9F9I!F9I!F9I!(@^PH2(D<)$R) +M9"0(3(EL)!!,B70D&$R)?"0@2(G[28GT2(M'$$2+N&0=``!$B3T`````2(M' +M$$2+L&@=``!$B34`````2(M&$$2+J/`$`0!$B2T`````2(M'$,>`9!T``/__ +M__](BT<0QX!H'0```@```$B+1A#'@/`$`0!B````OQ0```#H`````$F+1"00 +MBY``_@H`B14`````2(M#$$2)N&0=``!(BT,01(FP:!T``$F+1"001(FH\`0! +M`/;""`^4P`^VP$B+'"1,BV0D"$R+;"003(MT)!A,BWPD($B#Q"C#9F9FD&9F +M9I!F9I!(@^P82(D<)$B);"0(3(ED)!!(B?N)]4B+1Q!$BZ#P!`$`1(DE```` +M`$B+1Q#'@/`$`0!B````OQ0```#H`````$B+4Q!`A.T/E<"(@@#\"@"_%``` +M`.@`````2(M#$$2)H/`$`0!(BQPD2(ML)`A,BV0D$$B#Q!C#9F9FD&9FD+@` +M````.ST`````?3=(8\=(Q\$`````2(T$@$C!X`(/MQ0(9HD6#[=4"`)FB58" +M#[94"`B(5@@/MD0("8A&";@!````\\-F9F:09F:09F:0055!5%530;P````` +M0;K__P``1(LM`````+L`````1(GM0;D`````08GK9F:09F:0O@````!$.=Y] +M/4C'QP````!%B=A(8\9(C02`2(T,A0`````/MT0Y`L'@$`^W%#D)T$0YT'4* +M_T0Y#&9FD&9FD/_&1#G&?,U!_\%!@/D'=K#_PX#['W::0?_$08#\_W6)6UU! +M7$%=PV9FD&9FD&9FD%532(G]2(GS@ST``````'4/QP4``````0```.A`____ +M2(7;=`/&`P"Y`````#L-`````'U'2,?&`````&9F9I!(8\%(C02`2(T4A0`` +M``"+10`Y!#)U&TB%VW0(BX(`````B`-(8\%(C02`#[9$A@SK#__!.PT````` +M?,2X`````%M=PV9F9I!F9F:09F9FD+C`=```PV9F9I!F9I!F9I"X:````,-F +M9F:09F:09F:04TB)^TB#OX``````=1)(BW\0Z`````"(0P1F9I!F9I"`>P0" +M=!=(@[N``````'0B2(N#@````(!X!`)U%;X`````2(G?Z`````!(B=_H```` +M`+@`````2(.[@`````!U!H![!`!T!;@!````6\-FD$%505154TB#[`A(B?U! +MB?5)B=1(B<](B=.Y`````+K`=```3(G@B`A(_\!(_\IU]HL5`````(U"`8D% +M`````(D32(E["`^W10(]`",``'1J/0`C``!_*STD(@``=%0])"(``'\-/2`B +M``!T1F9F9I#K4#U`(@``=#EF9F:09F:0ZT`](",``'0I/2`C``!FD'\0/1`C +M``!T(69F9I!F9I#K(#TB(P``=`D]0",``&:0=1!FQT,&@6#K$&;'0P9"<.L( +M#[=%`F:)0P8/MD4(B$,%9H%[!D)P=0G&@[@````#ZQ%F@7L&@6`/E,#_P(B# +MN````&:!>P:!8+D```@`N```$``/1,BZ`````+X`````Z`````!(B4,018FL +M)`!T``!(BT4`28F$)`1T``"+10A!B80D#'0``+D`````.PT`````?35)Q\`` +M````2,?&`````(L]`````$ACP4B-!(!(C12%`````(M%`$(Y!`)U`_\$,O_! +M.?E\W[X`````3(GGZ.G[__^X`0```$B#Q`A;74%<05W#9F:09F:09F:04TB) +M^TB#?Q``=`U(BW<02(M_".@`````2(.[F'0```!T'DB+DZ!T``!(B[.8=``` +M2(V[$'0``.@`````9F9FD$B#NZAT````=!I(BY.P=```2(NSJ'0``$B-NS!T +M``#H`````$B#NY!T````=!-(B[.0=```2(V[<'0``.@`````6\-F9F:09F:0 +M9F:09F:005132(/L"$F)_$B)\\9&$`@/MH=Q<0``B$85QD82`<9&%PA(@[^` +M``````^41A-(C7X\2,?&`````.@`````QT,82&EG:,=#'%!O:6['0R!T(%1E +MQT,D8VAN;\=#*&QO9VG'0RQE@@B4$@B?#!X`A(F$B)PD@#EZAT``!(B5$82`.'L'0``(3`=0J) +M02Q(P>@@B4$H\\-F9I!F9I!F9I!54TB#[`A(B?WH`````$B)A6AQ``!(C;6@ +M=```2(V]$'0``.@`````2(F%F'0``$B-M;!T``!(C;TP=```Z`````!(B86H +M=```2(V]<'0``.@`````2(F%D'0``$B+?0B^$````.@`````B85X<0``2(M] +M"+X4````Z`````")A7QQ``!(BWT(OCP```#H`````(B%<7$``+L`````#[;# +MQT2%&`$```#'1(4@`0```/_#@/L!=N;'173F?]<`QT5XYG_7`,=%<''C!P%( +MQT4H`````$B)[^@`````N@````"%P`^$G0```$B)[^@`````NP`````/MO-( +MB>_H;_[____#@/L'=NY(BWT(OA````#H`````(F%>'$``$B+?0B^%````.@` +M````B85\<0``2(M]"+X$````Z`````!FB85T<0``2(M]"+X,````Z`````"( +MA7)Q``!(BWT(O@T```#H`````(B%!L````+H&````J$!U*[H%````J"!U(KH$````J!!U&;H# +M````J`AU$+H"````J`1U!XG"T>J#X@&)T(/(0(@&N`$```#SPV9FD&9FD&9F +MD%-(B?M(BT?H```` +M`+H`````A<`/A,4#``!F9I!FD/:%Y````"!T:\=#!`$```!!@'\%`'4'QT,( +M`0````^WA>H```#!Z`6#X`$Y0PAT1(-["`$9TH'B@````(/"`D$/MO7'!"0` +M````0;D`````0;@`````N0````!,B>?H`````(7`=0V#>P@`#Y3`#[;`B4,( +M]H7D````0'1KQT,,`0```$&`?P4`=0?'0Q`!````#[>%Z@```,'H!H/@`3E# +M$'1$@WL0`1G2@^*K@<*J````00^V]<<$)`````!!N0````!!N`````"Y```` +M`$R)Y^@`````A?H`````+H`````A<`/A*("```/MDL!00^V]<<$ +M)`````!!N0````!!N`````"Z`P```$R)Y^@`````N@````"%P`^$;0(``+H! +M````@#O_#X1?`@``10^V]0^V"\<$)`````!!N0````!!N`````"Z`P```$2) +M]DR)Y^@`````A?H`````$2)]DR)Y^@`````A<`/A,?H`````(7`#X3"`0``_@OIQ@`=5J`^2"X'P````]%P8A#'.M*]H7F`````G0M@WL4`'4GN@`````/MHW6 +M````@^$?_\&#>Q@`=22`^2"X'P````]%P8A#'.L4N@$```"Y`````(-[&`!U +M!,9#'`(/MLE!#[;U3(GGZ`````"Z`````(7`#X0/`0``00^V]4R)Y^@````` +MN@````"%P`^$]@```$$/MO6Z`````$R)Y^@`````2(M4)!#V@OX````!=07V +M`H!T!$&`#PA(BT0D$/:`K0````1T#(N0R````$F)5PCK-4B+1"00]D!J`70> +M2(G"BT!R.T)X#X)^#R"!! +MB`?K&;H`````ZQ=F9F:09F:0N@````#K"4&`)Y^Z`0```(G02(M<)!A(BVPD +M($R+9"0H3(ML)#!,BW0D.$R+?"1`2(/$2,-F9F:09F9FD&9FD$B#[!A(B1PD +M2(EL)`A,B60D$$B)_4B+1Q!,BV`P#[80@"?]#[;"0L:$(/AP````]@<0=4P/ +MMMJ)VD&+-"1(Q\<`````N`````#H`````$B)ZDR)YK\!````Z`````!!_H0D +M<'$``$R)Y^@`````N@$```")WDR)Y^@`````9F:02(L<)$B+;"0(3(MD)!!( +M@\08PV9F9I!F9I!F9I!F9I!(@^QX2(E<)$A(B6PD4$R)9"183(EL)&!,B70D +M:$R)?"1P28G^2(M',$B)1"1`1`^V+TF)Q$2)Z@^VTDB)T$C!X`5*C80@`',` +M`$B)1"0X2HVL(OAP``!-B[S4N'```)`/MD4`@_@3=_>)P/\DQ0````!$B>D/ +MMME)@[S<*'$```!T5.@`````B<%!*XS<*'$``('Y?Y:8`'<]2(T46TC!X@1, +M`>)(C;*`<0``N("6F``IR(F"@'$``$C'1A``````3(EV&$F+O"1H<0``Z``` +M``#I^@<``$$/MO5(BWPD0.@`````A2(M\)$#H`````(7`=0G&10`.Z3?____& +M10`"3(GWZ!OY__^`?0`"#Y7`@\`$B$4`1(GJ#[;"0<>$A`AQ``!`2TP`2(T$ +M0$C!X`1,`>!(C;"`<0``QX"`<0``H(8!`$C'1A``````3(EV&$F+O"1H<0`` +MZ`````#I0P<``$R)]^@:^?__A,`/B94```!$B>D/ML%!@;R$"'$``)^&`0!W +M-4$/MM5(BT0D0(LP2,?'`````+@`````Z`````"`?0`%N`<```"Z#@````]$ +MPHA%`.EY_O__1(GJ#[;"08&LA`AQ``"@A@$`2(T$0$C!X`1,`>!(C;"`<0`` +MQX"`<0``H(8!`$C'1A``````3(EV&$F+O"1H<0``Z`````#IG@8``,9%``9, +MB??H`````(!]``D/ML%!QX2$"'$``$!+3`!(C01`2,'@ +M!$P!X$B-L(!Q``#'@(!Q``!`#0,`2,=&$`````!,B78828N\)&AQ``#H```` +M`.DY!@``3(GWZ!#X__\EP````(/X0`^$H@```$2)Z@^VPD&!O(0(<0``/PT# +M`'<]3(GWZ`````!!#[;52(M,)$"+,4C'QP````"X`````.@`````@'T`";@. +M````N@,````/1,*(10#I8?W__T2)Z@^VPD&!K(0(<0``0`T#`$B-!$!(P>`$ +M3`'@2(VP@'$``,>`@'$``$`-`P!(QT80`````$R)=AA)B[PD:'$``.@````` +MZ88%``!F9I!FD$R)]^@`````@'T`"69F9I!U"<9%``/I]?S__T&`?P4!&<"# +MX/B#P!*(10#IX/S__T$/MO7'1"0P[````,=$)"@`````QT0D(`````#'1"08 +M`````,=$)!``````QT0D"`````#'!"0`````0;D``0``38U&0+D`````N@$` +M``!(BWPD0.@`````AOS__T'V1D`$9F:09I!T$X!]``UU#<9% +M``YF9F:0Z5O\__]!#[=&1&8]R#`$3`'@2(VP +M@'$``,>`@'$``$!"#P!(QT80`````$R)=AA)B[PD:'$``.@`````Z?<#``!F +M9I!F9I!!#[;=QT0D,.4```#'1"0H`````,=$)"``````QT0D&`````#'1"00 +M`````,=$)`@`````QP0D`````$&Y`````$&X`````+D`````N@````")WDB+ +M?"1`Z`````"%P`^$VP```$&+1CQ(BTPD0$B+41`/MH0""`$``(@%`````(3` +M#X6X````QT0D,$````#'1"0H0````,=$)"``````QT0D&`````#'1"00```` +M`,=$)`@!````QP0D`````$&Y`````$&X`0```+D`````N@````")WDB+?"1` +MZ`````"%P'4)QD4`#NF2^O__QD4`#$2)Z@^VPD''A(0(<0``@,/)`4B-!$!( +MP>`$3`'@2(VP@'$``,>`@'$``$!"#P!(QT80`````$R)=AA)B[PD:'$``.@` +M````Z;,"``!FD,9%``M(BW0D.$R)]^@?\___A,!U"<9%``[I(OK__TR)]^B* +M]/__AH/ML))QX3$*'$```````!!@'\%`'020<9'!0!)BW]@0?]76.DQ +M`@``00^VU4F+?V!,B?Y!_U=0D.D<`@``00^VU4B+3"1`BS%(Q\<`````N``` +M``#H`````,9%``!$B>H/ML))QX3$*'$```````!!@'\%`'0:0<9'!0!,B?_H +M9?C__TF+?V!!_U=8ZD/ML%)QX3$N'````````!)BW]@NO____], +MB?Y!_U=0Z:(!``!,B??H>?/__X3`>6E$B>H/ML)!@;R$"'$``#]"#P!W"<9% +M``[I"/G__T2)Z0^VP4&!K(0(<0``0$(/`$B-!$!(P>`$3`'@2(VP@'$``,>` +M@'$``$!"#P!(QT80`````$R)=AA)B[PD:'$``.@`````Z2T!``"H`70-QD4` +M#F9F9I#IJ_C__T$/MT9`P>@"@^`!@_@!&<"#X/Z#P`V(10#IC?C__T$/MO7' +M1"0P$````,=$)"@`````QT0D(`````#'1"08`````,=$)!``````QT0D"``` +M``#'!"0`````0;D`````0;@!````N0````"Z`````$B+?"1`Z`````"%P'4) +MQD4`#NDE^/__QD4`$T2)Z@^VPD''A(0(<0``@):8`.D*^/__3(GWZ%+R__^$ +MP'EF1(GI#[;!08&\A`AQ```_#0,`=PG&10`.Z>'W__]$B>H/ML)!@:R$"'$` +M`$`-`P!(C01`2,'@!$P!X$B-L(!Q``#'@(!Q``!`#0,`2,=&$`````!,B788 +M28N\)&AQ``#H`````.L)QD4`$.F/]___2(M<)$A(BVPD4$R+9"183(ML)&!, +MBW0D:$R+?"1P2(/$>,-F9F:09F9FD&9F9I!(@^P(28G2B?*^`````(#Z!W=Z +M#[;"O@````"`O#CX<````'5H0;D`````OF@```!,B=!$B`A(_\!(_\YU]0^V +MPDC!X`5!N0````"^(````$B-A#@`X<```QH0X^'````%(BWS',.@`````O@$```")\$B#Q`C#9F9FD&9F +M9I!F9F:02&/&N@````"`O#CX<```#W4+2&/&2(N4Q[AP``!(B=##9F9FD&9F +M9I!F9F:09F:04TB+5Q`/MAI,BUHP1`^VRTR)R4R)R$C!X`5.C8P8`',``$B# +MPD!-BU3+,$&X`````+DP````2(GP9F9FD&9FD$2(`$C_P$C_R77U2(E6&$B+ +M1PA(B0:(7@S&1@T`00^V01R(1@X/MD<#B$82#[9'`HA&$0^V!\#H!8/@`XA& +M#P^W@I@```"#X`6#^`1U!L9&$A#K.0^W@I@```"#X`.#^`)U!L9&$@_K)$B- +M0C9F@7HV5%-U&&:!>`A3070,@'@(074*@'@+4W4$QD82#TV%T@^$J0```$$/ +MMD$,@^`!P>`&#[9."(/AOPG!B$X(00^V002#X`$/ME8)@^+^"<*(5@E!BT$0 +MP>`'@^%_"<&(3@A!#[9!"(/@`0'`@^+]"<*(5@E!#[>"Y@```-'H@^`!P>`$ +M@^+O"<*(5@E!@[I$`@````^4P,'@!8/BWPG"B%8)00^V@MD```"#X`'!X`:# +MXK\)PHA6"4&#ND0"```"#Y3`#[;`P>`'@^)_"<*(5@D/M@?`Z`*#X`$/ME8( +M@^+^"<*(5@@/M@?`Z`*#X`*#XOT)PH/*$(A6"$V%TG0.#[;#28M$PS"#>`@` +M=0AFQT84``'K!F;'1A0`$5O#9F:09I"X.````,-F9F:09F:09F:0\\-F9F:0 +M9F9FD&9FD&9FD$%455-(@\2`2(M'$$R+8#`/MA#&!"0`QD0D`0&)T,#H`@^V +MP$(/MH0@N'0``(A$)`+&1"0#`,9$)`0`QD0D!0"#X@.#?T@`=!&-1!(*B$0D +M`\='2`````#K#XU$$@*(1"0#QT=(`0```+L`````2(GEQT0D*##_``!(QT0D +M2`````!(B6PD.,=$)"P&````2,=$)$``````QT0D,`````!(QT0D6`````#' +M1"1@`````$B-="003(GGZ`````"#?"1@`'0'_\.#^PE^I4B#[(!;74%3(GGZ`````"Z`````(G>3(GGZ`````#^10&`?0$#=A-( +MB>_H._+__TR)]T'_U^LG9F:03(E]6$R)=6#&104!1(GJ#[;"0L:$(/AP```1 +M2(M]$.@`````2(M<)`A(BVPD$$R+9"083(ML)"!,BW0D*$R+?"0P2(/$.,-F +M9I!F9I!F9I!32(GX2(M72$B+6AC&AYH````-_Y"P````2(M#$$B+<#!(B=J_ +M!````.@`````6\-(@^PX2(E<)`A(B6PD$$R)9"083(EL)"!,B70D*$R)?"0P +MB?!!B=1,BWPD0$6)QDB)S0^VP$R+K,>X<```2(M92$B#.P!T&DB+4PA(@<=0 +M=```2(LSZ`````!(QP,`````]H69````!G4)@WL0`'0#_TL008/\`70W08/\ +M`69FD'(.08/\`G08ZV9F9I!F9I!!QD4!`,:%F@````'K66:0QH6:````#>M. +M9F9FD&9FD&9$B7,400^V1PN(0Q9!#[8'B$,73(EK&$C'0R``````2(EK*$C' +M0S``````2(US($B+?0#H`````+@!````ZR^X`````.LH]H69````!F:0=0:# +M>Q``=`GVA9D````&=`E(B>__E;````"X`0```$B+7"0(2(ML)!!,BV0D&$R+ +M;"0@3(MT)"A,BWPD,$B#Q#C#9F9FD&9F9I!F9I!F9I!(@>R8````2(E<)&A( +MB6PD<$R)9"1X3(FL)(````!,B;0DB````$R)O"20````2(G]28GT3(MN2$R+ +MOH````!$#[>VB````$B+1Q!(B40D&$B+4#!(B50D"$B)%"0/M@"(1"07]@<" +M=1?&AIH````"2(GW_Y:P````Z28'``!FD("^F`````1U+`^V="073(GB2(M\ +M)`CH`````(-]2``/A/\&``!(B>_H$_S__V9FD.GO!@``#[9$)!?`Z`(/ML!( +MBQ0D@+P0N'0```!T=(-_2`!U+^CG^___QT48(*$'`$C'12@`````2(EM,$B+ +M/"3H`````$B)QTB-=1CH`````.L_2(L\).@`````2(G'2(U=&$B)WN@````` +MQT48(*$'`$C'12@`````2(EM,$B+/"3H`````$B)QTB)WN@`````08"\))@` +M```#=1=!_Y0DL````.D:!@``9F:09F:02(M$)!B+0`B)1"0000^VA"29 +M````J`8/A$,$``!(BQ0D2(N:D'0``(!]`@=V0DF#O"2@`````'01J`%T#4F+ +MG"2@````Z<\!``!)@[PDJ`````!T&[H`````2(G>3(GG0?^4)*@```"%P`^% +MJ0$``$F#O"2@`````'050?:$))D````!=0I)BYPDH````.LP28.\)*@````` +M=!>Z`0```$B)WDR)YT'_E"2H````AEH`P``QT0D(`$` +M``#'1"1``````+X`````2&/&2,'@!&;W!!C_`0^%+`,``$B)PHM$)$`#!!J) +M1"1`_\:#?!H$`'360?:$))D````"=`K'1"0H`0```.L30?:$))D````$=`C' +M1"0H`@```(M$)!")1"0LQT0D,`$```!(B5PD.(M$)$")PM'JB50D0&;'1"1$ +M``#!Z`EFB40D1D$/MM>)T(-\)!``=`Y,B?A(P>@0)0#_```)T&:)1"1(3(GX +M2,'H"&8E_P!FB40D2DR)^$C!Z!!F)?\`9HE$)$R#?"00`'0800^VA"29```` +M@^`"/`$9P(/@$(/`).L600^VA"29````@^`"/`$9P(/@$(/`((A$)$^X0``` +M`(-\)!``=0I,B?A(P>@8@\A`B$0D3DC'1"10`````$R)9"182(U4)"`/MG0D +M%TB+?"0(Z`````"%P`^%GP$``.G[`P``QT0D(`````"+5"00B50D+&9$B70D +M-D2)?"0P3(GX2,'H(&:)1"0T2,=$)$``````3(ED)$A!]H0DF0````(/E,`/ +MML")1"0H28UU"$B+/"1(@<=0=```Z`````!)B44`O@````!(AI2&/628M- +M`$C!X@2+`V:)1`H$28M-`$B+0PB)!`I)BTT`BT,,B40*"$F+30"#>P0!&<#W +MT&8E`(!FB40*!DACQDF+50!(P>`$QT00#`````#_QDB-0P1(@\,0@S@`#X0T +M____28M%"(E$)#A!BT4,B40D/&:!?"0V``%U$DB+1"08@W@(`'4'9L=$)#8` +M`$B-5"0@#[9T)!=(BWPD".@`````A<`/A&$"``"#^`)T1H/X`F9FD&:0=P># +M^`%T'>M6@_@#9F9FD'0'@_@$=#+K1D'&A"2:````".M$#[9T)!=(BWPD".@` +M````0<:$))H````(ZRI!QH0DF@````7K'T'&A"2:````".L40<:$))H````& +MZPE!QH0DF@````A)@WT``'0A28M5"$B+/"1(@<=0=```28MU`.@`````2<=% +M``````"03(GG0?^4)+````#IM`$``,=$)"`!````2,=$)#@`````2,=$)%`` +M````3(ED)%C'1"1``````&;'1"1$``#'1"0H`````(-\)!``#X2&````2(M4 +M)!B#>@@!=7M!QT40`0```,9$)$]"QT0D+`$```!,B?@E``#_`$C!Z!!FB40D +M3$R)^"4`_P``2,'H"&:)1"1*3(GZ@>(```#_2,'J$$$/ML<)T&:)1"1(9D2) +M="1&QD0D3D!(C50D(`^V="072(M\)`CH`````(7`#X61_O__Z>T```!$B?`E +M`/\``#T!`@``N``"``!$#TWP00^WQ@7_````B<7![0A`#[;=08E=$`^V="07 +M2(M\)`CH``````^VP+H@````*<*X`@```#G:#XPZ_O__QD0D3T#'1"0L```` +M`$"$[0^$A0````^V7"073(GX)0``_P!(P>@09HE$)$Q,B?@E`/\``$C!Z`AF +MB40D2D$/ML=FB40D2$$/ML9FB40D1DR)^"4````/2,'H&(/(0(A$)$Y)@<<` +M`0``9D&![@`!0/[-=0E(QT0D4`````!(C50D((G>2(M\)`CH`````(7`#X6D +M_?__0(3M=8!(BUPD:$B+;"1P3(MD)'A,BZPD@````$R+M"2(````3(N\))`` +M``!(@<28````PV9F9I!F9I!F9I!F9I!(@^P(Z`````"#^`$/E,`/ML!(@\0( +MPV9FD&9FD&9FD$B#[`A`A/9T"N@`````#[;`ZPCH``````^VP$B#Q`B0PV9F +M9I!F9F:09F9FD&9FD$B#[`A(BT<02(M0,$@/MC!(QX3RN'````````#&A!;X +M<````$B--'9(P>8$2(VT%H!Q``!(B[IH<0``Z`````!(@\0(PV9F9I!F9F:0 +M9F:0#[8'@^#]@\@0B`?#9F9FD$B#[`A(BT<02(MP,$B)^K\$````Z`````!( +M@\0(PV:02(/L&$B)7"0(2(EL)!!(B?N#_@$/A:8```")S8/Z`75/@+]P<0`` +M`'04_H]P<0``@+]P<0```'4%Z`````")Z`^VZ("\'?AP````=7/H`````$B) +MA.LH<0``2(GJ2(G>OP(```#H`````.M49F9FD`^VP8"\./AP```/=4-(BY3' +MN'```$B-!$!(P>`$2`'X2(VP@'$``,>`@'$``""A!P!(QT80`````$B)5AA( +MB[]H<0``Z`````!F9F:09F:0N`$```!(BUPD"$B+;"002(/$&,-F9F:09F9F +MD&9F9I#'0@0`````QP(`````N`````##9F9FD&9FD&9FD&9FD$B![(@```!( +MB5PD6$B);"1@3(ED)&A,B6PD<$R)="1X3(F\)(````!)B?5(B4PD2&:)5"16 +M1(G%2(M'$$R+<#!$#[8XQT0D1`````!$BV`(N/_____V!P(/A.D```!!#[;? +MB=Y,B??H`````+H`````B=Y,B??H``````^W1"1608G!0<'A"$"`_0$9TO?2 +M@\("B=Y%A>1T#D"`_0$9P(/@$(/`).L,0(#]`1G`@^`0@\`@B40D,+A````` +M187D=0E$B>C!Z!B#R$")1"0H3(GH2,'H$`^W^$`/ML>)1"0@3(GH2,'H"`^V +MP(E$)!A!#[;-#[?!187D=`F)^"4`_P``"9(B=_H`````$`/MLW'!"0`````0;D`````0;@`````N@,```!$ +MB>9(B=_H`````$2)YDB)W^@`````2(M<)!!(BVPD&$R+9"0@2(/$*,-(@^PX +M2(E<)`A(B6PD$$R)9"083(EL)"!,B70D*$R)?"0P08GW2(MO$$R+;3!$#[9U +M`$2)\$0/MN!,B>!(P>`%3HVD*`!S``"+A6`-``")1"0$QP0D_____X7`="-! +M#[;>B=Y,B>_H`````+H`````B=Y,B>_H`````&9FD&9FD$6%_W1+@[U$`@`` +M`75R]H7F`````G1I#[:-U@```(/A'__!@/D@N!\````/1<%!B$0D'`^VR4$/ +MMO:Z`````$R)[^@`````QP0D`````.LP@[U$`@```70G0<9$)!P"00^V]KD` +M````N@$```!,B>_H`````,<$)`````!F9F:0@WPD!`!T#$$/MO9,B>_H```` +M`(L$)$B+7"0(2(ML)!!,BV0D&$R+;"0@3(MT)"A,BWPD,$B#Q#C#9F9FD&9F +MD$B#[#A(B5PD"$B);"003(ED)!A,B6PD($R)="0H3(E\)#!!B?=(BV\03(MM +M,$0/MG4`1(GP1`^VX$R)X$C!X`5.C:0H`',``(N%8`T``(E$)`3'!"3_____ +MA0````@#X2#````187_=$!!#[;VQP0D`````$&Y`````$&X`````+D````` +MN@(```!,B>_H`````(7`=%%!QT0D"`$```#'1"00`````.L^00^V]L<$)``` +M``!!N0````!!N`````"Y`````+J"````3(GOZ`````"%P'010<=$)`@````` +MQT0D$`````"#?"04`'0,00^V]DR)[^@`````BT0D$$B+7"082(ML)"!,BV0D +M*$R+;"0P3(MT)#A,BWPD0$B#Q$C#9F:09F:02(/L2$B)7"082(EL)"!,B60D +M*$R);"0P3(ET)#A,B7PD0$&)]TB+;Q!,BVTP1`^V=0!$B?!$#[;@3(G@2,'@ +M!4Z-I"@`0```!`#X2#````187_=$!!#[;VQP0D +M`````$&Y`````$&X`````+D`````NJH```!,B>_H`````(7`=%%!QT0D$`$` +M``#'1"00`````.L^00^V]L<$)`````!!N0````!!N`````"Y`````+I5```` +M3(GOZ`````"%P'010<=$)!``````QT0D$`````"#?"04`'0,00^V]DR)[^@` +M````BT0D$$B+7"082(ML)"!,BV0D*$R+;"0P3(MT)#A,BWPD0$B#Q$C#9F:0 +M9F:02(/L2$B)7"082(EL)"!,B60D*$R);"0P3(ET)#A,B7PD0$F)_4&)]TB+ +M1Q!(BV@P1`^V($2+L&`-``#'1"04_____T6%]G0=00^VW(G>2(GOZ`````"Z +M`````(G>2(GOZ`````!!@/\"NH8```"X!@````]$T$$/MO3'!"0`````0;D` +M````0;@`````N0````!(B>_H`````(/X`74A1(GZ@^(#P>(%00^V10"#X)\) +MT$&(10#'1"04`````&:0187V=`Q!#[;T2(GOZ`````"+1"042(M<)!A(BVPD +M($R+9"0H3(ML)#!,BW0D.$R+?"1`2(/$2,-F9F:09F9FD$B#[`@/M@:#^`7='$``$B+?PB^!````.@`````#[:3 +MPB^#````.@`````#[:3PB^#0```.@`````#[:3<7$` +M`$B+>PB^/````.@`````BY-X<0``2(M["+X0````Z`````"+DWQQ``!(BWL( +MOA0```#H`````$B)W^@`````2(G?Z`````!(B=_H`````+H`````9F:0B=!( +MBX3#N'```$B%P'0$QD`!`/_"@_H'=N9;PV9F9I!(@^P(2,?'`````.@````` +MN`````!(@\0(PY"0D)"0D(GX@^`#P>`-!0`@``!`]L<$=`T%```#`,-F9F:0 +M9F:0!0```@##9F9FD&9FD&9FD$%455-)B?R)];\@H0<`Z`````"[(*$'`$`/ +MMOWHK____XG%28M$)!`/MH0H'`$``(@%`````(3`>`>X`0```.L=OQ`G``#H +M`````('#$"<``('[/TM,`';*N`````!;74%`#9B7X`(#,$F9! +MB0!)@\`"9@^V00N`S!-F08D`28/``F8/MD$(@,P39D&)`$F#P`)F#[9!#(#, +M%&9!B0!)@\`"9@^V00F`S!1F08D`28/``F8/MD$-@,P59D&)`$F#P`)F#[9! +M"H#,%69!B0!)@\`"9D''`$`628/``H,Y`'49@[Y$`@```KHF````N&`````/ +M1<+IH`$``(.^1`(```*Z-@```+AA````#T7"Z8`#9B7X`(#,$F9!B0!)@\`"9@^V00B`S!-F08D`28/` +M`F8/MD$)@,P49D&)`$F#P`)F#[9!"H#,%69!B0!)@\`"BT$()0````_!Z!AF +M#4`69D&)`$F#P`*#.0$9P(/@^X/H-.D%`0``9I"#>00!#X67````9@^V00^` +MS!)F08D`28/``F8/MD$.@,P29D&)`$F#P`)F#[9!"X#,$V9!B0!)@\`"9@^V +M00B`S!-F08D`28/``F8/MD$,@,P49D&)`$F#P`)F#[9!"8#,%&9!B0!)@\`" +M9@^V00V`S!5F08D`28/``F8/MD$*@,P59D&)`$F#P`)F0<<`0!9)@\`"@SD! +M&<"#X/"#P#7K8F8/MD$.@,P29D&)`$F#P`)F#[9!"(#,$V9!B0!)@\`"9@^V +M00F`S!1F08D`28/``F8/MD$*@,P59D&)`$F#P`*+00@E````#\'H&&8-0!9F +M08D`28/``H,Y`1G`@^#^@^@V9@^VP&8-`)=F08D`PXGP2(MW$`^VP$B+1,

`(9@E!`@^VA#<,`0``B`4`````P>`( +M9@E!!`^VA#<0`0``B`4`````P>`(9@E!!@^VA#<4`0``B`4`````P>`(9@E! +M"(B4-R`!``!$B<`/MI0P&`$``(@5`````(A1"@^VA#`<`0``B`4`````B$$+ +MPV9FD$B#[%A(B5PD*$B);"0P3(ED)#A,B6PD0$R)="1(3(E\)%")\4&)UP^V +MP4R+=,Z`0```$2)[O]3&$B)[DR)]^CI$```2(M<)"A(BVPD +M,$R+9"0X3(ML)$!,BW0D2$R+?"102(/$6,-F9I!F9I!(@^QH2(E<)#A(B6PD +M0$R)9"1(3(EL)%!,B70D6$R)?"1@28G_08GUQT0D%`````")\0^VP4B+;,

%0`(```````!,C6,@2(U$)!@/MT`"J`1T'4B-3"0@08M4)`1!#[;U +M3(G_Z$?]__]F9F:09F:0@SL!#X27````_HUE#0``2(U$)!A$BT@$28M,)"!% +M#[;M2(M],$B-1"0@2(D$)$4/M\:+5"041(GN0?]4)!A(B=Y(B>_HIP\``(.] +M8`T```!T3DB#O5`-````=$1(BX50#0``@W@8`74W1(GN3(G_Z.P1``!(B[50 +M#0``2(GOZ$T3``"%P'492(NU4`T``+H`````2(GOZ(4%``!F9I!FD$B+7"0X +M2(ML)$!,BV0D2$R+;"103(MT)%A,BWPD8$B#Q&C#9F9FD&9FD&9FD&9FD$B# +M[$A(B5PD&$B);"0@3(ED)"A,B6PD,$R)="0X3(E\)$!)B?]!B-T(T4/MNZ) +MVDB+11A(C1301(GN3(G_Z,/]____PX/C'T0YXW7A@[U@#0```+@!````#T5$ +M)`2)1"0$B9WP#0``@WPD%``/E<*#?"0$``^5P`G0J`$/A/0```!!#[;^Z,OW +M__^)P$B+7"0(BU08"(D5`````(G6#[?*B%0`(```````!!#[;>B=Y,B?_H,0D``(G>3(G_Z"<8``")WDR) +M_^@`````A<`/A84```")V;H`````O@$```!,B?]!_U +MB=Y,B?_HK`<``(G9N@$```"^`0```$R)_T'_5RCK1P^WUO?"@````'0\@[U` +M`@```74@QX5@#0```````,>%0`(```````!!#[;V3(G_Z-/[__^#/0`````! +M=0I(B>_HHA```&:02(M<)!A(BVPD($R+9"0H3(ML)#!,BW0D.$R+?"1`2(/$ +M2,-F9F:09F:09F:09F:02(/L"$F)^(T,M0`````)T0^VP4B+?,Y(B=_H +M30(``.G8````BT4@@_@!=#"#^`%R$(/X`@^$?````&:0Z;L```"Z`````$B) +M[DB)W^@;`@``Z:8```!F9I!F9I!!]L!`=$)(C74@2(G?9F:0Z)L```"#^`%U +M'(-].``/A7P```"Z`````$B)[DB)W^C<`0``ZVJZ`0```$B)[DB)W^C*`0`` +MZUBZ`0```$B)[DB)W^BX`0``ZT9!#[;`J$!T/J@@=3J#?3@`=1*Z`````$B) +M[DB)W^B4`0``ZR)(C74@2(G?Z"8```"%P'42N@$```!(B>Y(B=_H<@$``&:0 +M2(/$"%M=PV9FD&9FD&9FD%-)B?"X`````(%^&/\````/AC\!``"#?@@`#X2[ +M````3(M>$$&+&T&#>P0`=0Y)@\,000,;08-[!`!T\DV+6!!!BT`8`<")VBG" +M08L#B<,ITTF+$$``! +M``!FB04`````9HD!28-`$`)!_\%!@?G_````=LY!@6@8``$``+@!````6\-F +M9I!F9I!F9I!(@^Q(2(E<)"!(B6PD*$R)9"0P3(EL)#A,B70D0$B)_4F)]$&) +MU4&^`````$B-7B#'1P0`````2(U,)!"+4P0/MC=(BW\PZ-7V__]!@_T!=0]! +MM@''A6`-````````9I!(BTLP#[9U`$B+?3!(C40D$$B)!"1!N0````!!N``` +M``!$B?+_4RA,B>9(B>_H/@D``$&#_0%U&(,]``````%U#TB)[^AW#```9F9F +MD&9FD$B#O5`-````#X2E````2(NU4`T``(-^&`%U)DB)[^C=#```A<`/A8@` +M``!(B[50#0``N@````!(B>_H$?___^MR@[U$`@```'4L#[9U`$B+?3#H*0H` +M`$B+13"+53Q(BT`0BT00*(D%`````+\!````Z``````/MG4`2(M],.A="@`` +M2(N=4`T``$B%VW0D@WL8`'4>2(U3($B)WDB)[^AL"P``2(M;"$B%VW0&@WL8 +M`'3B2(M<)"!(BVPD*$R+9"0P3(ML)#A,BW0D0$B#Q$C#9F9FD&9F9I!F9F:0 +M9F:005154TB)^TB+1S!(BV@01(MG/$2)XHM$*BB)!0````"H!'0JQT0J*`(` +M``"+1"HHB04`````O]`'``#H``````^V,TB+>S#H]`$``.L+1(G@QT0H*`(` +M``#&@T@"````QH-D#0```,:#90T```#'@^P-````````QX/P#0```````,># +M0`(```````#'0P0`````QX/H#0``(````+H`````2&/"B92#:`T``/_"@_H? +M?N^Z`````$ACPDAKP%C'A!A0`@```0```/_"@_H??N=(QX-0#0```````$C' +M@U@-````````QX-@#0```````$2)XL=$*@@`````QT0J#)@```"+0R")1"H0 +MBT,D)0#\__^)1"H42(M#,+D`````@[BP`````'0#BTLDB4PJ&$2)X(M3*(E4 +M*!Q(B<)(BT,PN0````"#N+``````=`.+2R2)3"H@1(GBBT,LL`")1"HDN`$` +M``!;74%&+ +M5"0<0?_5_\6#_1\/CG;___](@\0X6UU!7$%=05Y!7\-F9F:09F:02(/L($B) +M'"1(B6PD"$R)9"003(EL)!A(B?M!B?1`#[;^Z&KO__^)Q8'%,`,``(.[I``` +M``%U'HV0+`,``$B+0Q#'!!"@`D5`2(M#$(L$$(D%`````(.[J`````%T$H.[ +MK`````%T"8.[M`````%U94$/MOSH%^___XG&@<84`P``C;@0`P``B?)(BT,0 +MBP00B04`````B<&#N[0`````=1*)^$B+4Q"+!`*)!0````!!B<6#R0&#X?V) +M\DB+0Q")#!"#N[0`````=0J)^DB+0Q!$B2P0B>Y(BT,0BQ0PB14`````1(G@ +M#[;(#[:$&<(```#!X`@E``<``('B'_C__PG"#[:$&+___[_2(M#$(D4,$B+'"1(BVPD"$R+9"003(ML)!A(@\0@PV9F9I!F9I!( +M@^PH2(E<)`A,B60D$$R);"083(ET)"!(B?M$#[;V1(GWZ"GN__]!B<1%C6PD +M*$2)]DB)W^CV[O__18GM2(M#$$+'!"@$````2(M#$$*+!"B)!0````!%B>1( +MBT,00HM$(%")!0````"`S!!(BU,00HE$(E"_&0```.@`````2(M#$$+'!"@` +M````2(M#$$*+!"B)!0````!$B?9(B=_H'/[__T2)]DB)W^A![O__2(M<)`A, +MBV0D$$R+;"083(MT)"!(@\0HPV9F9I!F9F:005=!5D%505154TB#[`A(B?U! +MOP````!!O0````!!#[;'1(TTA0````!F9F:09F:00XU$-0!$#[;@1(GGZ#_M +M__^)PTB+11#'1!@H`@```$B+11"+1!@HB04`````1(GF2(GOZ,C^__](BT40 +MQT08*`````!(BT40QP08'P$``$B+11#'1!@$`````$B+11#'1!@(`````$B+ +M11#'1!@,`````$B+11#'1!@0`````$B+11#'1!@4`````$B+11#'1!@8```` +M`$B+11#'1!@<`````$B+11#'1!@D`````$B+11#'1!@@`````$B+11#'1!@L +M`````$B+11#'1!@TO````$'_Q4&`_0,/AB#___]!@/\!&05_#9F9FD$B+1Q#'@&P$`0#__\\/PY"+1P2P`#T` +M`(!0=!](BT<0BX`L#0``B04`````B<*#R@%(BT<0B9`L#0``2(M'$(N```T` +M`(D%`````(G"@>+__P#_2(M'$(F0``T``$B+1Q#'@`0-````````2(M'$,>` +M.`P```````!(BT<0QX`$'0``_P`!`$B+1Q#'@&0=````````2(M'$,>`*`P` +M``````!(BT<0QX!8'0```````$B+1Q#'@%P=````````2(M'$,>`0!T````` +M``!(BT<0QX!$'0```````$B+1Q#'@$@=````````2(M'$,>`4!T```````## +M9F9FD&9F9I!(QT8(`````$B+AU@-``!(B4802(._6`T```!T"TB+AU@-``!( +MB7`(2(FW6`T``$B#OU`-````=0=(B;=0#0``\\-F9F:09F9FD&9FD&9FD$B# +M?@@`=1I(BT802(F'6`T``$B%P'062,=`"`````#K#$B+5@A(BT802(E"$$B# +M?A``=1Q(BT8(2(F'4`T``$B%P'082,=`$`````#K#F:02(M6$$B+1@A(B4(( +M2,=&"`````!(QT80`````,-F9I!54TB)_4B)\X,Z`'4J2(M""$B)1B!(BT(0 +M2(E&*$B+0AA(B48P2(M"($B)1CA(BT(H2(E&0.L^2(M""$B)1B!(BT(02(E& +M*$B+0AA(B48P2(M"($B)1CA(BT(H2(E&0$B+0C!(B49(2(M".$B)1E#^AV0- +M``"+`HE#&$B)WDB)[^B[_O__QP,`````_H5(`@``6UW#9F9FD&9F9I!F9F:0 +M2(/L$$B)'"1(B6PD"$B)^TB)]8-^&`!T!OZ/9`T``$B)[DB)W^C&_O__BX/H +M#0``B<$/ME4$B92+:`T``/_`B8/H#0``QT4``0```/Z+2`(``$B+'"1(BVPD +M"$B#Q!##0(#_`W810`^VSXU,"0*X`0```$C3X,-`#[;/C4P)`;@!````2-/@ +MPV9F9I!F9F:02(/L($B)'"1(B6PD"$R)9"003(EL)!A(B?U!B?5$BZ>,```` +M0`^VWHG?Z*'___]$">")A8P```")W^C!Z/__B%0`(` +M``$```!)C80D%``#`$F-E"04``(`0/;&!$@/1=")V8/A`[@!`0``T^#WT(D" +M08M%/$+'1"`(`````$`/MO;H+O___T6)]D,/MH0F'`$``(@%`````$''A4P" +M```!````0\=$)B@!````2(L<)$R+9"0(3(ML)!!,BW0D&$B#Q"##059!54%4 +M55-)B?U!B?:[`````$R+9Q")\@^VPDB+1,Z';G__^+D^P-``#_PH/B'XF3[`T` +M`/Z#90T``(M+/(M#)"4`_/__P>(%"=!"B40A%%M!7,-F9I!F9I!32(G[N0`` +M``"Z`@```+X`````Z,CU__](B=_H4/3__TB)W^@`````@_@!=1;'@V`-```! +M````#[8S2(M[,.C]_/__6\-F9F:09F9FD&9FD$B+1Q"+@&@=``")!0````!( +MBU<0@\@"B8)H'0``PV:02(M'$(N`:!T``(D%`````$B+5Q"#X/V)@F@=``## +M9I!(@^PH2(D<)$B);"0(3(ED)!!,B6PD&$R)="0@28G]2(UN($B+1S!(BU@0 +M1(MW/$2)\`^VA!@<`0``B`4`````)<$```"Z`````(/X0`^%U`$``(-]!`%U +M/$2)\@^V11V(A!H$`0``#[9%'XB$&@@!```/MD4AB(0:#`$```^V12.(A!H0 +M`0``#[9%)8B$&A0!``#K,+@`____9H5%''489H5%'G429H5%('4,9H5%(G4& +M9H5%)'0-N@````!F9I#I8@$``$6)]`^W11Q!B(0`B-!#:)P$F+53!!BTT\2(M2$`^W!#AFB80*``$``/_& +M@?[_````=ME!@3@``@``=3!)C4`02(E%$.LF9F:09I!(BT402(U0`DB)51`/ +MMP!FB809``$``/_&@?[_````=M^!;1@``0``28M],(._I`````%U#4''100! +M````Z`````"Z`0```(G02(L<)$B+;"0(3(MD)!!,BVPD&$R+="0@2(/$*,-F +M9F:09F:09F:0055!5%532(/L"$B)_<>'C`````````!(BT<0QX!D'0`````` +M`,>'E`````````#'AY@`````````QX><`````````,>'H`````````#'AZ0` +M````````QX>H`````````,>'K`````````#&A[@````!N`````!(@W\H``^$ +M?@(``+@`````9H%_!H%@#X5M`@``QH>X`````@^V1P6%P'0'@_@!=`[K&,>' +MI`````$```#K%L>'J`````$```#K"L>'K`````$```!!O0````"#O:0````! +M=1A$B>H/ML+&A"C"````!\:$*,H````"ZW^#O:@````!=1A$B>H/ML+&A"C" +M````!<:$*,H````#ZUY!#[;]Z$3B__^)P4B+51#'1`HH`@```$B+51"+5`HH +MB14`````!3`#``!(BU40BQ0"B14`````1(GH#[;(B=`E``<``,'H"(B$*<(` +M``"!XN````#!Z@6(E"G*````0?_%08#]!P^&4____TB)[^A:]/__2(GOZ.+U +M__](B>_HZO7__TB+11#'@/`$`0!@``(`@[V\`````'4S2(M%$(N```T``(D% +M`````*@P=!2+17"IX`,`@'05)1_\_W^)17#K"X-E<,]F9F:09F:00;T````` +M00^V_>AQX?__B%C````%6K!@"#O:0````!=1#'A8P```!5 +MJX8`9F:09F:00;T`````00^V]4B)[^@>X?__0?_%08#]!W;KOU##``#H```` +M`+@!````9F:09F:02(/$"%M=05Q!7<-F9I!FD$B+1Q#'@&0=````````N`$` +M``##9F9FD&9F9I!F9F:0QP4``````0```,-F9I!FD,<%``````````##9F:0 +M9I!(@^P82(E<)`A(B6PD$$B)_8GR#[;"2(M#8`T```````#'@T`"````````2(G?Z._M__](BUPD"$B+ +M;"002(/$&,-(@^P02(D<)$B);"0(2(G]B?-`#[;^Z)7?__\%``,```^VV[H` +M````@[R=U`````!T&XG"2(M%$(L$$(D%`````(/@#X/X`P^4P`^VT(G02(L< +M)$B+;"0(2(/$$,-F9I!!5T%6055!5%532(/L"$B)_4&)]D`/MMZ)WN@1X/__ +MB=_H*M___XG"0;\`````1(VH"`,``$2-H@`#``!(BT400L<$*`$#``"_Z`,` +M`.@`````2(M%$$+'!"@``P``OR!.``#H`````+L`````9F:02(M%$$*+#"") +M#0````"%R0^4PH'Y$P$```^4P`G0J`%U)8'Y(P$``'0=O^@#``#H`````/_# +M@?O'````?L)!_\=!@_\$?H5!#[;V2(GOZ"W?__](@\0(6UU!7$%=05Y!7\-F +M9F:09F9FD&9FD&9FD$B#["A(B1PD2(EL)`A,B60D$$R);"083(ET)"!(B?U! +MB?2)\@^VPDB+1,Z,7O__^)WDB)[^CKWO__B=Y(B>_HL?[__XG>2(GOZ`````"Z +M`````(7`=$!$B>A"#[:$,!P!``"(!0`````EP````(/X0'0300^V]$B)[^AF +MWO__N@````#K$4$/MO1(B>_H4][__[H!````B=!(BQPD2(ML)`A,BV0D$$R+ +M;"083(MT)"!(@\0HPV9F9I!F9F:09F9FD&9FD(GP#[;`3(M$QS!!NP````!- +MA<`/A,L```!,BU<018M(/$&[`````$&#N&`-```!#X2O````1(G(0HL$$(D% +M`````(G&@_H"=4>-0?]!NP`````\'P^'B@```$''@$0"```"````@^;@#[;! +M_\@)QH/.((._K`````%U5D2)R$+'1!!`2P```.M(9F9FD&9FD(72=2R-0?]! +MNP`````\'W=#0<>`1`(```````"#YL`/ML'_R`G&@;`_?__@((@>(`!P``@>$?^/__"=&)ZL'B!8'B +MX`````G1@>'___[_28M4)!")#`*X`0```$B+'"1(BVPD"$R+9"002(/$&,-F +M9F:09F:09F:04TB)^T`/MO[HX]K__XG`2(M3$(M4`E")%0````"`SA)(BTL0 +MB50!4+@!````6\.02(/L$$B)'"1,B60D"$F)_$`/MMZ)W^BEVO__B +M3(GWZ![P__^)WDR)]^AT\/__9F9FD$R)ZDR)YDB)[^@"[O__28U5"$R)YDB) +M[^B#\?__ZV&03(GJ3(GF2(GOZ.+M__]FD.M.3(GF2(GOZ-/M__^`O4@"```! +M=3J#O4`"```!=0L/MO-,B??HQO#__TR)YDB)[^@K\O__A__52A!]\0``(``=$*[`````&9FD&9F +MD`^VPTB#?,4P`'0E2(M$Q3"#>`0!=1J)V,#H`HG&B=J#X@.#Y@%(B>_HX]__ +M_V9FD/_#@/L'=LG&1"0C`$B+11#'@`B``0``````0??$_P$```^$^0```(!\ +M)",!&=)FN@``@<(4``,`2(M,)!C'!`KO____BP0*B04`````08G']]"#R!") +M!`I(B_H"]W__X7;="J+7"00 +MC02=`````$0)\`^V^.AQ[/__A40D)'0.00^VUHG>2(GOZ-W>__]!P>P"0<'M +M"$'_QD&`_@,/AGK____K"F9FD&9FD$'![`A!T>S^1"0C@'PD(P$/AM;^__^[ +M`````&9FD&:0#[;#2(-\Q3``=`](BT3%,(-X!`$/A#/^____PX#[!W;?@/L( +M=0I(B>_H`````&:0N`$```!(@\0H6UU!7$%=05Y!7\-F9F:09F9FD&9F9I!( +MBT<0QX!D'0```````+@!````PV9F9I!F9F:09F9FD$B+5Q"+AXP```")@F0= +M``"X`0```,-F9F:09F:09F:005154TF)_+T`````9F9FD$`/MMV)WDR)Y^B" +MU?__B=_HF]3__P4(`P``28M4)!#'!`(!`P``_\5`@/T'=M*_($X``.@````` +MO0````!F9I!`#[;]Z&?4__\%"`,``$F+5"00QP0"``,``/_%0(#]!W;>OR"A +M!P#H`````+T`````0`^V]4R)Y^C3U/___\5`@/T'=NQ;74%H/ML+'A(/4`````0```/_%0(#] +M!W:+N`$```!(@\0(6UU!7$%=PV9F9I!(@^P82(D<)$R)9"0(3(EL)!!)B?V) +M\T0/MN9$B>;H#?3__T2)Y^A5T___B$G-0`````````N`$```!(BQPD3(MD)`A( +M@\00PV:055-(B?V[`````&9FD&9FD`^V\TB)[^@`````_\.`^P=V[K@!```` +M6UW#9F:09F:02(/L*$B)7"0(3(ED)!!,B6PD&$R)="0@3(MO,$V+91"+7SQ$ +M#[8W1(GV3(GOZ"[3__^)VT+'1",H!````$*+1",HB04`````OQD```#H```` +M`$+'1",H`````$*+1",HB04`````1(GV3(GOZ'_B__]"QX0C"`,```$#``"_ +MZ`,``.@`````0L>$(P@#`````P``2(M<)`A,BV0D$$R+;"083(MT)"!(@\0H +MPV9F9I!(BTT/A/T```!) +MC5U`9F:09I!`#[;UQT0D,.P```#'1"0H`````,=$)"``````QT0D&`````#' +M1"00`````,=$)`@`````QP0D`````$&Y``$``$V-14"Y`````+H!````3(GG +MZ`````"%P`^$E0```/8#!'1/#[=#!&8]R#N`$```"`N_X!``"E=2*Z``````^W +MP@(,,/_"9H'Z_P%V\;@`````A,EU!;@!````2(/$.%M=05Q!7<.02(/L"(GP +M#[;`2(M\QS"X`````$B%_W03N`````"#OV`-```!=`7H`````$B#Q`C#2(/L +M.$`/MO;'1"0P[P```,=$)"@`````#[9$)$")1"0@10^VR42)3"0810^VP$2) +M1"00#[;)B4PD"`^VTHD4)$&Y`````$&X`````+D`````N@````#H`````$B# +MQ#C#2(/L:$B)7"0X2(EL)$!,B60D2$R);"103(ET)%A,B7PD8$B)^T&)UT&) +MSDV)Q46)S(GRBVPD<$2+3"1X1(N$)(````"+O"2(````BXPDD````$0/MIPD +MF````$0/MI0DH`````^VPKX`````2(-\PS``=$T/MO)!#[;"B40D,$$/ML.) +M1"0H#[?!B40D(`^WQXE$)!A!#[?`B40D$$$/M\&)1"0(#[?%B00D18GA38GH +M1(GQ1(GZ2(G?Z`````")QHGP2(M<)#A(BVPD0$R+9"1(3(ML)%!,BW0D6$R+ +M?"1@2(/$:,-F9F:09F:09F:02(/L.$B)7"0(2(EL)!!,B60D&$R);"0@3(ET +M)"A,B7PD,$B)_8ET)`1!B_H&/K__[H`````A<`/ +MA-L#``"Z`````(.]8`T```$/A,D#``"#^P%U5(M4)`A,B>D/ML5"B(0B!`$` +M`$R)\0^VQ4*(A"((`0``3(GY#[;%0HB$(@P!``"+3"0@#[;%0HB$(A`!``"+ +M3"00#[;%0HB$(A0!``#K2&9FD&9FD+@`____9D2%Z'4E9D2%\'4?9D2%^'49 +M9H5$)"!F9F:0=0YFA40D$'099F9FD&9FD$B)[^@`````N@````#I+@,``(M< +M)`A&B*PC!`$``$:(M",(`0``1HB\(PP!```/MD0D($*(A",0`0``#[94)!!" +MB)0C%`$```^V3"0/0HB,(Q@!``!(B>_H``````^V1"0.0HB$(QP!``"#?"1` +M`'56N@$```!(@WPD.``/A;X"``!!N!`G``"Y'`P``+H!````O@````!(B>_H +M`````(7`=1)(B>_H`````+H`````Z8L"``!(B>_H`````+H!````Z7D"``!! +MN!`G``"Y'`P``+H!````O@````!(B>_H`````(7`=1)(B>_H`````+H````` +MZ48"``"+1"0(0@^VA"`<`0``B`4`````0;@0)P``N?0!``"Z`0```+X(```` +M2(GOZ`````"%P'422(GOZ`````"Z`````.D``@``0;T`````1#ML)#0/@ST! +M``"+7"0(#[94)$>)5"0$#[9,)$?`Z0*(3"0##[9$)$>#X`.(1"0"0@^VA",< +M`0``B`4`````183M#X6X````187M=#)!N&0```"Y4,,``(M4)`2+="0(3(GG +MZ`````"%P'5O2(GOZ`````"Z`````)#I>P$``$0/MG0D`T0/MGPD`D&X9``` +M`+E0PP``N@$```"^`````$B)[^@`````A<`/A!H!``!)C90D%``#`$F-A"04 +M``(`183V2`]%PD$/ML^#P0BZ`0```-/BB='WT8D(0;AD````N5##``"Z`0`` +M`+X(````2(GOZ`````"%P`^$V0```(-\)$`!=1Y$B>I"#[>$(P`!``!FB04` +M````2(M,)#AFB011ZQ5$B>A(BU0D.`^W!$)F0HF$(P`!``!!_\5$.VPD-`^" +MZ/[__T&X9````+E0PP``N@$```"^`````$B)[^@`````0;T`````BUPD"(7` +M=0](B>_H`````+H`````ZWA(BTPD2$B+01`/MH08'`$``(@%`````(3`>`2H +M"'1'OV0```#H`````$'_Q4&!_4_#``!VRTB)[^@`````N@````#K-&9F9I!( +MB>_H`````+H`````ZR%(B>_H`````+H`````ZQ)(B>_H`````+H!````9F:0 +M9I")T$B+7"182(ML)&!,BV0D:$R+;"1P3(MT)'A,B[PD@````$B!Q(@```## +M9F:09I!!5%532(G[2(M',$B+:!!$BV<\1(G@QH0H(`$```:+1SP/MH0H(`$` +M`(@%`````+\*````Z`````!(B=_H`````+_T`0``Z`````"_]`$``.@````` +MO_0!``#H`````+_T`0``Z`````"[`````$6)Y$$/MH0L'`$``(@%`````(3` +M>`RX`0```.L>9F:09I"_]`$``.@`````_\.!^P\G``!VS;@`````6UU!7,-F +MD%-(B?OH1____[H!````@_@!=!2_]`$``.@`````2(G?Z"O___^)PHG06\.0 +MD)"0D$B+!0````"+0!C&A#@```0`H+H`````2(L-`````&:0BT$0#[:$.``` +M!`"(!0````#_PH/Z!'[HN@````!F9I"+010/MH0X```$`(@%`````/_"@_H% +M?NBZ`````$B+#0````"+01`/MH0X```$`(@%`````/_"@_H$?NCSPV:02(L% +M`````(M`#,:$.```!`"`2(L%`````(M`&,:$.```!`"PPV9F9I!F9F:09F:0 +M2(/L$$B)'"1(B6PD"$B)^^@[____2(L%`````(M`",:$&```!```2(L%```` +M`(L`#[:L&```!`!`B"T`````2(G?Z(G___]`#[;%2(L<)$B+;"0(2(/$$,-F +M9F:09F:055-(B?N+A_`$`0")!0````")Q8/@8H/X8G00B>B#R&)F#[;`9HF' +M\`0!`(N#```$`(D%`````$B)W^BQ_O__2(L%`````(M`",:$&```!``'2(L% +M`````(L`QH08```$`!%(BP4`````BT`(QH08```$``5(BP4`````BP#&A!@` +M``0`$4B)W^CC_O__B:OP!`$`BX/P!`$`B04`````6UW#9F9FD&9F9I!F9I!F +M9I!54TB)^XN'\`0!`(D%`````(G%@^!B@_AB=!")Z(/(8F8/ML!FB8?P!`$` +MBX,```0`B04`````2(G?Z`'^__](BP4`````BT`(QH08```$``=(BP4````` +MBP#&A!@```0``$B+!0````"+0`C&A!@```0`!4B+!0````"+`,:$&```!``` +M2(G?Z#/^__^)J_`$`0"+@_`$`0")!0````!;7<-F9F:09F9FD&9FD&9FD("_ +MP0````!U)4B#OX``````=!)(BX>`````2(MX$.@`````\\-(BW\0Z`````#S +MPTB#OX``````=!9(BX>`````2(MX$.@`````\\-F9F:02(M_$.@`````\\-F +M9I!FD%-(B?OH)_W__TB+!0````"+0`C&A!@```0`"DB+!0````"+`,:$&``` +M!```2(G?Z'S]__\/MH,!``0`B`4`````NO____^H`G5"2(G?Z-[\__](BP4` +M````BP#&A!@```0``4B)W^A%_?__OV0```#H``````^V@P$`!`"(!0````#1 +MZ(/@`8/X`1G2B=!;PTB#OX``````=`U(BX>`````2(M0$.L$2(M7$$B#OX`` +M````=!M(BP4`````1(M`!$&!P```!`#K&69F9I!F9I!(BP4`````1(M`'$&! +MP```!`"+@O`$`0")!0````")P8/@8H/X8G00B_H+?___X3` +M=0K_PX'[YP,``'[?#[;`2(/$"%M=PV9FD&:055-(@^P(2(G]NP````!FD`^V +MA0@0`0"(!0````"H"'0/QH4($`$`1+@`````ZQJ0OP$```#H`````/_#@?L/ +M)P``=LRX_P```$B#Q`A;7<-(@^P(QH<($`$`9.B@____2(/$",-F9F:09F9F +MD&9FD$B#[`A`B+<$$`$`Z(#___\/ML!(@\0(PV9F9I!F9F:04TB)^^AG____ +MN@````"%P'47#[:#!!`!`(@%`````,:#"!`!`$0/MM")T%O#9F:02(/L2$B) +M7"082(EL)"!,B60D*$R);"0P3(ET)#A,B7PD0$F)]DR+9Q!,BWXH2?_'BT8< +M_\B)1"04QT0D$`````!(BU8P2(E4)`A!@'\!`74?00^V1P*(A[AT``!!#[9' +M`XB'N70``.GZ`0``9F9FD$&`?P$"=2E!@'\"`74000^V1P.(A\$```#IV`$` +M`,=&4/[____IS`$``&9FD&9FD$'&A"0`$`$`!$'&A"0($`$`1$R)_4&`?P$` +M#X30````#[9%`$C_Q4&)Q0^V10!(_\6)PTR)Y^BU_O__#[;S3(GGZ,K^__^$ +MP`^%30$``/;#`70]NP````!%A.T/A'\```!%#[;MBTPD$$$Y3B!V&$R)Y^@` +M````BU0D$$B+3"0(B`0*_T0D$/_#03G==]?K4$2)Z@^VPD@!Z$PI^$B#P`)( +M8U0D%$@YT`^/]@```+L`````183M="A%#[;M9F9FD`^V=0!,B>?H1/[__X3` +M#X6\````_\-(_\5!.=UWXF:0@'T!``^%-O___V9FD&9FD$'&A"0($`$`5(!] +M```/A*D```!,B>?HE?W__X7`#X61````00^VA"0,$`$`B`4`````/&!U?D'& +MA"0($`$`1(M,)!!!.4X@=G-,B>?H7_W__X7`=5]!#[:$)`P0`0"(!0`````\ +MH'14/(!U2(M4)!!!#[:$)`00`0"(!0````!(BTPD"(@$"O]$)!!!QH0D"!`! +M`$2+1"0003E&('>KZQQ!QH0D"!`!`%3K"4'&A"0($`$`5$''1E#_____0<:$ +M)`@0`0!028-^.`!T"DF+1CB+5"00B1!,B?=!_U9(2(M<)!A(BVPD($R+9"0H +M3(ML)#!,BW0D.$R+?"1`2(/$2,-,BU<028G108N"\`0!`(D%`````$&)PX/@ +M8H/X8G021(G8@\AB9@^VP&9!B8+P!`$`08N"```$`(D%`````$6$P'0QOP`` +M```YSWU4B?!*C1002&/'2(T$`@^V@```!`"(!0````!!B`'_QTG_P3G/?.#K +M++\`````.<]](XGP2HTT$$ACQTB-!`9!#[81B)````0`_\=)_\$YSWSF9F:0 +M18F:\`0!`$&+@O`$`0")!0````"X`0```,.0D)"0D)!(@^P(B==(BW0D$+@` +M````2(7)=&0/MD8+B(&&````#[=&!(B!@@````^W1@:(@8,````/MT8(B(&$ +M````#[9&"HB!A0````^V!HB!@`````^W1@*(@8$```"#_P$9P(/@^8/`"(B! +MF@```$B)S_^1L````+@!````2(/$",-FD%-(@^Q`2(G3N0````"Z0````$B) +MX(@(2/_`2/_*=?;'!"0!````QT0D#`````#V@YD````"=`K'1"0(`0```.L7 +M#[:#F0```(/@!#P!&<#WT(/@`HE$)`C'1"00`````$B+@X@```!(B40D&`^V +M@X<```#!X`B)1"0@9@^V@X````!FB40D)&8/MH.!````9HE$)"9F#[:#@@`` +M`&:)1"0H9@^V@X,```!FB40D*F8/MH.$````9HE$)"S&1"0N0`^V@X8```"( +M1"0O2,=$)#``````2(E<)#A(B>)`#[;VZ`````"Z`0```(7`=!7&@YH````( +M2(G?_Y.P````N@````")T$B#Q$!;PV9FD&:02(/L"(G6N`````!(AQ``=1I(B5T8 +M2,=%``````!(B6L0N`$```#IC0```$B+0Q!(BU4(2#M0"'5N2(MP$$B+?1#_ +M4DB$P'1?3(UC$$B#>Q``=#U(BU4(2(.Z``$```!T%$F+!"1(BW`02(M]$/^2 +M``$``.L,28LT)$B)[^@`````AT"Z*``` +M`$B)[N@`````2(L;2(7;=:ZZ`````$B+'0````!(A=MT$#E3%'8#BU,42(L; +M2(7;=?"!PE@"``!#C5SM`$F-?"1PB=E(B>[H`````$F-O"30````N0$```"Z +M0````$B)[N@`````28V\)+````")V;JH````2(GNZ`````!!QX0D^`````$` +M``!!QX0D!`$````0``!!QX0D_``````0``#H`````(G"28V\))````"Y@@@` +M`$B)[N@`````2(L=`````$B%VW0A9F:09F:02(-[(`!T#$2)ZDB)[DR)Y_]3 +M($B+&TB%VW7E2(/$:%M=05Q!7<-F9F:09F:09F:005154TF)_$`/MO[H```` +M`$B)Q;@`````2(7M#X0,`0``28U\)'#H`````$B)P[D`````NE@"``"("$C_ +MP$C_RG7VBP4`````_\")!0````")@U`"``!(C8,P`@``2(F#,`(``$B)@S@" +M``"`B]@!```!2(FK\`$``$R)(X-]%`!T(DB-@U@"``!(B4,0N0````"+511( +MA=)T"H@(2/_`2/_*=?9(C8/X`0``2(F#^`$``$B)@P`"``!(C8,(`@``2(F# +M"`(``$B)@Q`"``#&@]L!``#_QT,D0@```,=#(/____](@WU(`'0>2(G?_U5( +MAZ`````"X`````.LE2(V#X`$``$F-5"082(M*"$B)0@A( +MB9/@`0``2(E("$B)`4B)V%M=05S#9F9FD&9F9I!F9I!F9I!32(G[2(N'\`$` +M`$B#>%``=`/_4%!(BX/H`0``2(N3X`$``$B)0@A(B1!(BSM(@\=P2(G>Z``` +M``!;PV9FD&:005154TF)_$B+7QA(C4<82#G8#X3,````2(VK(/[___9#^`$/ +MA*H```!(@[LH_O__``^%G````$B+A?`!``"`>`@$=AQ(@[OX_O__`'0E2(N# +M^/[__T@Y:`AT&&9FD&:02(N%\`$``(!X"`%U9O9%0P)T8(-](`!Y#TR)YV9F +M9I#H&_S__XE%(/:%V`$```)T0KX`````3(GGZ`````!(B<%(A<`/ED/ +ME<(/ML"%PG0?]H'8`0```G0)@*78`0``_>L-BT4@B4$@QT4@`````$B+&TF- +M1"082#G8#X4T____6UU!7,-F9F:09F:02(/L&$B)'"1(B6PD"$R)9"002(G[ +M28GT2(MO&/^-V!$``(72>"KH`````$B%P'4P2(M#"$R)Y_^0@````$B->R!, +MB>;H`````.L59F:09I!(C7\@Z`````!F9F:09F:0@[W8$0```'4(2(GOZ!\` +M``!(BQPD2(ML)`A,BV0D$$B#Q!C#9F9FD&9F9I!F9F:005154TF)_$B+7QA( +MC4<82#G8=#1(B<5(C;L@_O__2(N'\`$``(!X"`%U%?:#8_[__T!T#.@````` +M9F9FD&9FD$B+&T@YW77/28M<)"A)C40D*$@YV'0:2(G%9F:09F:02(U[Z.@` +M````2(L;2#G==>])BUPD&$F-1"082#G8="Y(B<5(C;L@_O__2(N'\`$``(!X +M"`1V#TB#NRC^__\`=07H`````$B+&T@YW7753(GGZ,K]__])@[PDT!$```!T +M#TF+?"0(0?^4)-`1``!FD%M=05S#9F9FD&9F9I!F9I!!5T%6055!5%532(/L +M>$B)^TR+9QA!OP````!(A?\/A/D```!(BT,(2(M[$$B-="00_U`X#[9$)"`[ +M!0`````/CL(```!(C4,@2(E$)`AFD`^V!0````!$.?AU.0^V!0````!IP$!" +M#P")!0````!(QP4``````````$B)'0````!(Q\8`````3(GGZ`````#IHP`` +M`$2+K_4&B$P'452(GN3(GOZ`````!!_XPDV!$``.L(1#ES*$&# +MUP#_!0`````/MD0D(#L%``````^/2?___\<%``````````!(BQM(A=L/A0?_ +M__]!_XPDV!$``$&#O"38$0```'4(3(GGZ.C]__](@\1X6UU!7$%=05Y!7\-F +M9I!F9I!F9I!!54%455-(@^P(2(G]28GT28G52(F5T!$``$B+7Q!(A=MT)DB+ +M0PA(BWL0_Y#P````A,!U#,:%Q!$```'IA0```$B+&TB%VW7:2(L=`````$B% +MVW052(-[.`!T!DB)[_]3.$B+&TB%VW7K387D9F:0=!A)BT0D"$F+?"00O@$` +M``#_4%!!QD0D8`''A=@1```!````2(M]$.@`````387M=22#O=@1````=!N_ +MH(8!`.@`````2(GOZ`````"#O=@1````=>5(@\0(6UU!7$%=PV9F9I!F9F:0 +M9F9FD&9FD%532(/L"$B)_4@Y/0````!U#DB+!TB)!0````#K+&:02(L5```` +M`$B%TG0>2#DZ=`U(BQ)(A=)T$4@Y*G7S2(72=`=(BT4`2(D"2(U%&$@Y11AT +M&4B)PTB+?1A(@>_@`0``Z`````!(.5T8=>I(C44H2#E%*'0Q2(G#9F:09F:0 +M2(M%*$B-<.A(BU`(2(L`2(E0"$B)`DB-O;````#H`````$@Y72AUV$B+'0`` +M``!(A=MT%4B#>T``=`9(B>__4T!(BQM(A=MUZTB+71!(A=MT%DB+0PA(BWL0 +M_Y#H````2(L;2(7;=>I(@\0(6UW#D$B+5QA(C4<82#G0=!I(B<%(C8(@_O__ +M.;)`_O__=`U(BQ)(.=%UZ;@`````\\-FD%-(B?OH`````$B)P4B-@+@```!( +MB4%(BT,,+;@```")04!(C4$82(E!&$B)02"^`````(M10$B-05!(@\)H=`M` +MB#!(_\!(_\IU]4B)R%O#2(/L&$B)'"1(B6PD"$R)9"0028G\2(GSB=6X```` +M`#E6"'(;2(GWZ`````!,B2!(B5@(B6@0C57_B5`4*5,(2(L<)$B+;"0(3(MD +M)!!(@\08PV9F9I!F9F:09F:09F:02(/L"(M'"`-&%(E'".@`````2(/$",-F +M9I!F9I!F9I!(@^P(B?!(C;>0````B<+H`````$B#Q`C#9F9FD&9FD$B#[`A( +MB?A(BS](@<>0````2(G&Z`````!(@\0(PV:005154TF)_+T`````N`````"` +MO\01````=3)(BU\02(7;=!A(BT,(2(M[$/^0J`````G%2(L;2(7;=>A`A.UT +M"$R)Y^@`````0`^VQ5M=05S#9F9FD&9F9I!F9F:09F:04TB+7Q!(A=MT'&9F +MD&9FD$B+0PA(BWL0_Y#8````2(L;2(7;=>I;PV9F9I!F9F:055-(@^P(2(G] +M2(M?$$B%VW0L2(M#"$B+>Q#_D.````"`>V``=!!(BT,(2(M[$+X!````_U!0 +M2(L;2(7;==1(BUT82(U%&$@YV'0M2(G%9I!(C;L@_O__2(N'\`$``(!X"`%U +M#$B#>%@`=`7_4%AFD$B+&T@YW7782(/$"%M=9I##9F9FD&9F9I!F9F:09F:0 +M4TB+7Q!(A=MT,F9FD&9FD(![8`!T$$B+0PA(BWL0O@````#_4%!(BT,(2(M[ +M$/^0T````$B+&TB%VW746\-FD$%455.)^TB)U8/_`@^$H@```(/_`G<.@_\! +M=!MF9F:0Z0L!``"#_P,/A/8```"#_P0/A?D```!(B??H`````+\`````2(M0 +M&$B-0!A(.=!T*$B)P4B-NB#^__](BX?P`0``@'@(`74)2#FJ@/[__W0(2(L2 +M2#G1==M(A?\/A*X```"#^P%T#H/[!'0<9F9FD.F;````2(N'\`$``&9F9I#_ +M4##IB````$B+A_`!``#_4%CK?$&)U$B++0````!(A>UT;4B#?1``=$Y(BUT0 +M=$A(.7,0=3I(C7M`Z`````!(A`@! +M=7Y$.:)P_O__=75(.:IX_O__=6RY`````/9"^`$/A;,```!,BVLH387M=$A) +MBWT02(7_=#9(BT\(2(7)="BZ`````(!Y,`!T'0^V<3!(8\)(.7S!.'4)2,=$ +MP3@`````_\(YUG_GZ`````!-BVT`387M=;A(B=_H`````&:0ZQ1(BQ)(BT48 +M2(/`&$@YT`^%6O___TB-?2#H`````$B)PTB%P'0L2(M%"$B+?1!-B?!,B?E( +MB=I$B>;_4&BY`0```(3`=1%(C7T@2(G>Z`````"Y`````(G(2(/$"%M=05Q! +M74%>05_#9F9FD&9FD$%455-(B?WH`````$B+71A(C4482#G8="])B<1F9F:0 +M2(V[(/[__X![^@!T$TB+A_`!``!(@WA8`'0%_U!89I!(BQM).=QUV$B)[V9F +MD&:0Z`````!(BUT82(U%&$@YV'06@'OY`'0(N`$```#K#I!(BQM(.=AUZK@` +M````6UU!7,-F9F:09F9FD&9FD&9FD%-(B?M(BS_H=/'__XE#(%O#9F9FD&9F +M9I!F9F:09F:0@W\@`'@'QT<@______/#D+H`````_\Z#_O]T$V9F9I`/M@A!T%4B+$DB%TG7R2(L`2(7`=>&X`````//#9F9FD&9F9I!F9I!F +M9I!(@WX@`'0F2(-^*`!T#$B+5BA(BT8@2(E"($B+5B!(BT8H2(D"2,=&(``` +M``#SPY!54TB#[`A(B?U(B?/H`````$B)P4B#>R``="9(@WLH`'0,2(M3*$B+ +M0R!(B4(@2(M3($B+0RA(B0)(QT,@`````(L#2`'(2(E#"$B+E?````!(C8WP +M````2(72=!Q(B<9(BT((2"GP2(7`?PU(C4HH2(M2*$B%TG7G2(E3*$B)2R!( +MA=)T"$B-0RA(B4(@2(D92#F=\````'4+2(M]"(LSZ`````!(@\0(6UW#9F9F +MD$%505154TB#[`A(B?OH`````$F)Q$B+J_````!(B>I(A>UT6$R-J_````!F +M9I!FD$B+0@A,*>!(AB@`=`A(BT(H3(EH($B+0BA(B8/P````2(G% +M2,="(`````!(QT(H`````$B+>AC_4A!(BY/P````2(72=;1(B=_H`````$B% +M[7092#FK\````'402(MU"$0IYDB+>PCH`````$B#Q`A;74%<05W#D)"00515 +M4TB)_4B+/TC'Q@````#H`````$F)Q/9%0PAU'$B+=2A(A?9T$TB+'DR)Y^@` +M````2(G>2(7;=>U(BT5(2(M]8/^0@````$B+=6!(BWU82(/'(.@`````6UU! +M7,.055-(@^P(2(G]2(U?*("GV`$``/Y(B?Z_`0```.@`````]D,;`G0+2(GO +MZ`````"0ZU)(BQM(A=MT2F9FD&9FD$B+4Q!(A=)T,X"BV`$``/Y(BX+P`0`` +M2(M`,$B)0D!(B5)(2,="4`````!(C7)`2(M]`$B#QTCH`````$B+&TB%VW6\ +M2(/$"%M=PV9FD&:02(/L&$B)7"0(2(EL)!!(B?M(B?6%TG@GZ`````!(AT!(B<;H`````$B)V4C'P@````!$B>9(B=_H`````$B+7"0(3(MD)!!(@\08 +MPV9F9I!F9I"+!0````!(`T=(2(/H",.04TB)^^CG____2(L02(F3L````$C' +M``````!(B=_H`````%O#9F9FD&9F9I!F9F:02(/L&$B)7"0(2(EL)!!(B?M( +MBV]0Z*;___](BY.P````2(D0@+N8`````'43#[>#B`````.#@````(E%/.LC +MD`^W@Y@```!F)?\P9H/X!'41QH.:`````4B)W^@`````ZQQ(QX.P```````` +M`$B+14A(BWU@2(G>_Y"8````2(M<)`A(BVPD$$B#Q!C#9F:0@*?8`0``]\-F +M9F:09F9FD$B#[`A(B?H/MH?8`0``J`AU'H/("(B'V`$``$B+1TA(BW]@2,?& +M`````/^0B````$B#Q`C#9F9FD&9F9I!F9I!32(G[2(M#*$B%P'1-9F:02(MX +M$$B%_W0Y2(M7"$B%TG0PN0````"`>C``=!T/MG(P2&/!2#E\PCAU"4C'1,(X +M`````/_!.```/[_ +M0?_`2(MW*$B%]G0BOP$```!(BU802(72=`R+2C!$*<&)^M/B"=!(BS9(A?9U +MX[D`````#[;09F:0B=#3^*@!=0A!C00(PV9FD/_!@_D'=NFX`````&9F9I## +M9F9FD&9F9I!F9F:09F:0O@````"Y`````,='-`````#V1T-`=`G'1S`````` +MPY!(BU#^02X``````],QHE',,-F9F:09F9FD$%7059!54%4 +M55-(@^P(28G]B?5!B==(BU\HN@````!(A=MT$$B#>Q`!@]K_2(L;2(7;=?"Y +M`````(/Z`P^/(P,``.L_2(G9Z1D#``!,BR-!BT0D"(E#"$F+!"1(B0-(Q\8` +M````28M]`.@`````2(G'3(GFZ`````"Y`````.GB`@``28M=*$B%VP^$T`(` +M`$:-=#T`2(-[$``/A6`!```Y:P@/ATH!``"+0P@#0PQ!.<8/ASL!```Y:PAU +M:40Y>PQT@3EK"'5>2,?&`````$F+?0#H`````$B)Q^@`````28G$N0````!( +MA<`/A'0"``"Z&````(@(2/_`2/_*=?:+0PQ$*?A!B40D#$6)="0(2(L#28D$ +M)$R)(T2)>PQ(B=GI/P(``#EK"`^#Q````$C'Q@````!)BWT`Z`````!(BPQV7$C'Q@````!)BWT`Z``` +M``!(B1T)DF#?"00`'0503EL)`AU +M#D&+1"0,.T,,20]'W/_"38LD)$V%Y'7:N0````"#^@$/CQL!``!$.7L,05_#9F:09F:09F:055-(@^P(2(GU2(M? +M*$@YWG5&2(L#2(E'*$C'Q@````!(BS_H`````$B)QTB)WN@`````ZSA(BT4` +M2(D#2,?&`````$B+/^@`````2(G'2(GNZ`````#K%4B%VW009F:02#DK=-!( +MBQM(A=MU\TB#Q`A;7<-F9F:09F9FD&9F9I!!5%532(G]2(GSO@````!(BT\H +M2(7)=!=(.=ET"HM!"#M#"$@/1/%(BPE(A2(GOZ`````#I]P```$B+32A(A1``=2*+0P@#0PPY00A,#T3A2(-Y$`!U#HM! +M"`-!##M#"$@/1/&02(L)2(7)=<](QT,0`````$B%]G07BT8(B4,(BT,,`T8, +MB4,,2(GOZ`````!-A>1T%HM##$$#1"0,B4,,3(GF2(GOZ`````"`34,06UU! +M7,-!54%455-(@^P(28G\08GU2(G6O0````"_`````$&X`````$B%TG40N``` +M``!%.6PD,`^".@$``$F+3"0H2(7)#X1]````2(-Y$`!U&$0Y:0QR$DB%[70* +MBT$,.T4,9I!S`TB)S4B%]G0K2#EQ$'4E0;@!````2(7M=0E$.6D,D',0ZQ%$ +M.6D,<@N+00P[10QS`TB)S4B#>1``#Y3`2(7V#Y7"#[;`A<)T$4B+5CB+0@@# +M0@PY00A(#T3Y2(L)2(7)=8-(A?9T,+@`````183`#X2<````2(7M=0=(BVXX +MD.L62(7_=!%(BU8XBT<,`T(,.T4,2`]'ZK@`````2(7M='"^!````$F+/"3H +M`````$B)P[@`````2(7;=%5,B6,H3(GGZ)?X__^)0S"%P'0:1(GH2(E#&(MU +M"$2)ZDR)Y^AK^?__2(7`=0](B=_H`````+@`````ZQE(B5@02(E#.$&`3"1# +M$$R)Y^@`````2(G82(/$"%M=05Q!7<-F9I!(@^P82(E<)`A,B60D$$B)^TR+ +M9RA(BW6-G;$$/MH0DV`$``-#H@^`!#[;`2,'@)4BZ_____]____]( +M(Q0D2`G"2(D4)(3)>0V`3"0$$`^V0QJ(1"0%#[9#'*@!="6`30`C2+K_____]____T@C50!("<)(B54`#[9#'*@$=":`30<"P.@#@^`! +M#[;`2,'@(DBZ______O___]((U4`2`G"2(E5``^V0QRH$'0F@$T'",#H!8/@ +M`0^VP$C!X"%(NO_____]____2"-5`$@)PDB)50`/MD,FZ`0```+X)````3(GGZ`````#I-`$``$B)Y0^V0QN)PH/B +M]XA3&\<$)%]W85))BU0D&$B)5"0$A,!Y#8!,)`P0#[9#&HA$)`T/MD,`30\"B<+0ZH/B +M!`^V10R#X/L)T(A%#`^V0QRH$'08@$T/"(G"P.H$@^("#[9%#(/@_0G0B$4, +M#[9#'*A`=!6`30\$B<+`Z@@A(B7@0BWH,2(EX&(M),$B) +M2"#_QDB+$DB%TG7,O@`"``!(B>_H`````/?8B(4``0``BW,02('N```"`$B! +MY@``_O]!N`````!(B>FZ`0```$R)Y^@`````2('$``(``%M=05S#9F9FD&9F +M9I!F9F:02('L"`(``+D`````N@`"``!(B>"("$C_P$C_RG7V2(GA0;@````` +MN@$```"^`````.@`````2('$"`(``,-FD%-(B?M(BX?P`0``NO____^`>`@! +M=3B+1SA(+0```@!()0``_O](B4<8Z&+\__^`8T/TQT,@_____TB)W^@````` +M2(G?Z'?___^Z`````(G06\-F9F:09F9FD&9FD&9FD%532('L"`(``$B)^TB) +MY?:'V`$```%T>4B+A_`!``"`>`@!=6R`I]@!``#[N0````"Z``(``$B)X&9F +M9I!F9I"("$C_P$C_RG7V0;@!````2(GIN@$```"^`````$B)W^@`````9H&] +M_@$``%6J=2&Z`````$ACPDC!X`2#O"C*`0```'0$@$M#`O_"@_H#?N1(@<0( +M`@``6UW#9F:09I!54TB#[`A(B?V`9T._2(M?*$B%VW1&2(-[$`!T"4B+>Q#H +M`````$B+&TB%VW7H2(M=*$B%VW0E2(-[$`!T%DB+>Q!(@W\(`'4+Z`````!( +MBUTHZP-(BQM(A=MUVTB)[^@`````2(/$"%M=PV9FD&:02('L2`(``$B)G"08 +M`@``2(FL)"`"``!,B:0D*`(``$R)K"0P`@``3(FT)#@"``!,B;PD0`(``$B) +M_4R-9"002(U?*$V)Y8MW.$B![@```@!(@>8``/[_0;@!````3(GAN@$```#H +M`````(7`="*`I=@!``#^2(GNOP$```#H`````(!+&P'IQ0,``&9FD&:008$\ +M)%]W85(/A;(!``"^``(``$R)Y^@`````A,`/A9T!``!!@'PD#@`/E<#!X`(/ +MME,;@^+["<*(4QN+13A(+0```@!()0``_O](B4482(GOZ#KZ__]!]D0D#!!T +M#8!+&X!!#[9$)`V(0QI!]D0D#P%T&P^V4QR#R@%!#[9$)`S`Z`*#X`*#XOT) +MPHA3'$'V1"0/`G0:#[93'(/*!$$/MD0D#`'`@^`(@^+W"<*(4QQ!]D0D#PAT +M&P^V4QR#RA!!#[9$)`S!X`2#X""#XM\)PHA3'$'V1"0/!'0;#[93'(/*0$$/ +MMD0D#(/@`<'@!X/B?PG"B%,<2,<$)`````#'1"0,`````$AC1"0,2(T$0$V- +M/,1-C7<028-^"`!T9[X$````2(M]`.@`````2(D$)$B%P`^$AP(``$F+5@A) +MBW<02(GOZ#?R__](B<%(A_HE/S___9%0P(/A`H!``"`2QL!@&5#^T&X`0```$B-3"00N@$```"^"0`` +M`$B)[^@`````A<`/A=O]__^!?"00>6-G;`^%SP```+X``@``2(U\)!#H```` +M`(3`#X6X````#[9,)!2)RL#J!(/B`@^VA=@!``"#X/T)T(B%V`$``/;!$'0, +M@$L;@`^V1"05B$,:]D0D%P%T&@^V4QR#R@$/MD0D%,#H`H/@`H/B_0G"B%,< +M]D0D%P)T&0^V4QR#R@0/MD0D%`'`@^`(@^+W"<*(4QSV1"07"'0:#[93'(/* +M$`^V1"04P>`$@^`@@^+?"<*(4QSV1"07!'0?#[93'(/*0`^V1"04@^`!P>`' +M@^)_"<*(4QQF9I!FD/9#&P%T!XMS$$B)=1B`>QL`>1Y!QD4```^V0QI!B$4( +M2(M#($B+>SA,B>[_D,`````/MD,SA,B>[_D,`````/MD,?H```` +M`(7`>!^%P'4+1#FSPV9FD$B#[!A(B5PD"$R)9"0028GTB=-(Q\8`````Z``` +M``!(B<>-#-NZ&````$R)YN@`````2(M<)`A,BV0D$$B#Q!C#9F9FD&9F9I!F +M9F:09F:04\<%``````````!(BQT`````2(7;="/_DY`````Y!0````!S#/^3 +MD````(D%`````$B+6PA(A=MUW8,%``````A(Q\<`````Z`````"X`````%O# +MD)"0D)"0D)"0D)"02(L-`````$B%R70S2(M1&$B-01A(.=!T'DB)QF9F9I!( +MC8(@_O__.;A0`@``=!5(BQ)(.=9UZ4B+"4B%R77-N`````#SPV9F9I!F9I!F +M9I!!54%455-(@^P(2(G]08GUB;6,$0``0;P`````03GT-(P>,$2`'K +M2(VSB`$``$B)[^@`````2(F#@`$``$'_Q$4Y['+8QH60$0``$DB+%0````!( +MA=)T(V9F9I`/MH60$0``.D(0=@H/MD(0B(60$0``2(M2"$B%TG7A2(/$"%M= +M05Q!7<-F9I!F9I!54TB#[`A(B?N]`````(._C!$```!V*8GH2,'@!$@!V$B+ +MD(@!``!(B["``0``2(G?Z`````#_Q3FKC!$``'?7QX.,$0```````$B)W^@` +M````2(/$"%M=PV9F9I!F9I!!5D%505154TB#[&!!B?U)B?9!O`````!(BRT` +M````2(7M#X2/````2(M=$$B%VW1Y2(M#"$B+>Q!(B>;_4#B`?"03`'1<1(G@ +M0?_$1#GH=5%-A?9T1P^V1"0703D&?#U(BQM(A=MU"+@`````ZTV02(M#"$B+ +M>Q!(B>;_4#B`?"03`'0+N`````#K,&9F9I`/MD0D%T$I!D$Y!GW#2(G8ZQI( +MBQM(A=MUATB+;0!(A>T/A7'___^X`````$B#Q&!;74%<05U!7L-F9F:09F:0 +M05=!5D%505154TB#[&A)B?Y)B?=(B=5!O?_____'`@````!,BR4`````387D +M=%J028M<)!!(A=MT1F9FD&9FD$B+0PA(BWL02(GF_U`X@'PD$P!T"D'_Q<=% +M``````!,.?-U#$6)+^L@9F9FD&9FD`^V1"07`44`2(L;2(7;=1UR8GH2(/$8%M=05S#9F9FD&9F9I!F9I!F +M9I!54TB#[&A(B?.^`````.@-_O__2(G%N/____](A>T/A.@```"Y`````+I, +M````2(G8B`A(_\!(_\IU]KD`````NF````!(B>"("$C_P$C_RG7V2(M%"$B) +MYDB+?1#_4#@/MD0D%HA#`P^V1"04B`,/MD0D%8A#`4B+1"0\2(E#!$B+1"1$ +M2(E##$B+1"1,2(E#%$B+1"142(E#'(M$)%R)0R1(BT0D&$B)0RA(BT0D($B) +M0S!(BT0D*$B)0SA(BT0D,$B)0T"+1"0XB4-(#[9$)!>(0P)(@WT``'0K2(MM +M`$B+10A(BWT02(GF_U`X@'PD$P!U$@^V0P("1"07B$,"2(-]``!UU;@````` +M2(/$:%M=PV9F9I!F9I!F9I!F9I!54TB#[&A(B?.^`````.CM_/__2(G%N/__ +M__](A>T/A!0!``"Y`````+I8````2(G8B`A(_\!(_\IU]KD`````NF````!( +MB>"("$C_P$C_RG7V2(M%"$B)YDB+?1#_4#@/ME0D%HA3`P^V1"04B`,/MD0D +M%8A#`4B+1"0\2(E#!$B+1"1$2(E##$B+1"1,2(E#%$B+1"142(E#'(M$)%R) +M0R1(BT0D&$B)0RA(BT0D($B)0S!(BT0D*$B)0SA(BT0D,$B)0T"+1"0XB4-( +M#[8$)(A#4`^V1"0!B$-1#[9$)`*(0U)(BT48B4-,@'U@`'0(B="#R`2(0P,/ +MMD0D%XA#`DB#?0``="M(BVT`2(M%"$B+?1!(B>;_4#B`?"03`'42#[9#`@)$ +M)!>(0P)(@WT``'75N`````!(@\1H6UW#D$%7059!54%455-(@>RH````B70D +M#$F)UDB-="0,Z)[[__])B<1!OP````"Z_____TB%P`^$Y0```$B+:!BY```` +M`+H0````3(GP9F:09F:0B`A(_\!(_\IU]DF+1"0(2(UT)$!)BWPD$/]0.$F+ +M1"0(BW0D#$F+?"002(GB_Y"X````NO____^%P`^%C@```(M$)`1!B48$BP0D +M08D&2(M=&$B-11A(.=AT;DF)Q6:02(VK(/[__TB+A?`!``"`>`@!=4U(BX-H +M_O__2(N[@/[__TB-="00_U!X3#FC>/[__W4G#[9$)!P[1"0,=1P/MD0D'3I$ +M)%)S$0^VT(N%4`(``$&)1)8(0?_'1#A\)%)T"$B+&TDYW767N@````")T$B! +MQ*@```!;74%<05U!7D%?PV9F9I!F9F:09F:09F:00;H`````N`````"%]@^. +MQ0```.L$1(G0PTR+#0````!-A`@$=BY(BX'X_O__ +M2(7`=`U(@W@(`'0&3#E`$'1"26/208N`4`(``(D$ET'_PNLG9F:028N`\`$` +M`(!X"`%U%T'V0$,"=!!)8])!BX!0`@``B0270?_"03GR#X18____2(L)23G+ +M#X5[____38L)387)#X5;____1(G0\\-F9I!F9I`/MD<(@^@%N@````"#^`1W +M+XG`_R3%`````+H!````ZQ^Z`@```.L8N@<```!F9I#K#KH#````ZP>Z!``` +M`&:0B=##9F9FD&9FD&9FD&9FD(GZN0````!FA?]T#F9F9I#_P8U"_V8APG7V +MBY````!+@!"```#T3#Z8P! +M``!F9F:09F:0B=B#R`+VA[@````"#T78B=B`S!#VA[@````!#T78B=B#R`3V +MA[@````0#T78B=B`S`'VA[@````@#T78B=B`S`+VA[@```!`#T789H-_-@!T +M(8/+"`^W?S;H4O___TB+E?`!```/ME(*B=F`S2`YT`],V8G8@\@0]H78`0`` +M!`]%V(G8@\A`]H78`0```@]%V(G8#(#VA;@````(#T78B=B`S`CVA;D````$ +M#T78B=B`S`3VA;D````(#T78N0````"`?3``#X2>````#[9U,$ACP4B+5,4X +M2(72#X1_````]H+8`0```71V2(N"\`$``(!X"`1V:8G8@\@"]H*X`````@]% +MV(G8@,P0]H*X`````0]%V(G8@\@$]H*X````$`]%V(G8@,P!]H*X````(`]% +MV(G8@,P"]H*X````0`]%V(G8@\@(9H-Z-@`/1=B)V`R`]H*X````"`]%V&9F +MD/_!.`@$=ESV@;@```!P=%-(BX'`````2,'H"VG0 +MZ`,``$B+01A)B<%)P>D+B="Z`````$'W\4&)P0^V03!KP`J#Z`I$BH+2(G1N@````!(]_%(C02`C10`Z38! +M``!(BT$(2(M0&$B+@9@```!(*=!(P>@+2&GPZ`,``$B+01!(BT`82"G02(G" +M2,'J"TB)\$B)T[H`````2/?S2(T$@(T4`.GM````@+FB`````W5V@'DH`'0[ +M2(M!"$B+4!A(B=!(*X&8````2,'H"TAIP.@#``!(P>H+2(G1N@````!(]_%( +MC02`C10`Z:8```!F9I!(BX&8````2,'H"TAIT.@#``!(BT$(2(M`&$B)P4C! +MZ0M(B="Z`````$CW\4B-!("-%`#K;H!Y*`!T-4B+01!(BU`82(G02"N!F``` +M`$C!Z`M(:<#H`P``2,'J"TB)T;H`````2/?Q2(T$@(T4`.LS2(N!F````$C! +MZ`M(:=#H`P``2(M!$$B+0!A(B<%(P>D+2(G0N@````!(]_%(C02`C10`@?H1 +M)P``N!`G```/0]")T%O#9F9FD&9F9I!F9I!54TB)_4B)\TB+A\@```!(B09( +MBX?0````2(E&"$B+O_`!``#H9_K__XA#9`^V13&(0V5(BX7`````B8.0```` +M2(GOZ+CZ__^)0VA(B>_H`````(F#C````,9#9@"Y`````(!],`!T8DACP4B# +M?,4X`'1-2(M4Q3A(BX+P`0``@'@(!'4;2`^V0V9(BU(HBY)0`@``B52#;.L= +M9F:09F:02`^V4V9(8\%(BT3%.(N`4`(``(E$DVS^0V:`>V8'=PK_P0^V13`Y +MR'^>#[9+9H/Y!W\22&/!QT2#;/______P8/Y!W[N6UW#9F9FD&9F9I!54TB) +M_4B)\TB+A\@```!(B09(BX?0````2(E&"$B+O_`!``#H=_G__XA#9`^V13&( +M0V5(BX7`````2(F#L````$B)[^C'^?__B4-H2(GOZ`````")@ZP```#&0V8` +MO@````"`?3``=%EF9F:09F:02&/&2(M,Q3A(A`@$=19( +M#[9#9DB+42B+DE`"``")5(-LZQ"02`^V4V:+@5`"``")1)-L_D-F@'MF#W<* +M_\8/MD4P.?!_K@^VS``=%=(8]9(BTS3.$B%R70P2(N!\`$` +M`(!X"`1U$TB+02B+@%`"``")1)5LZR-F9I!(8]:+@5`"``")1)5LZQ&02&/& +MQT2%;`````!F9I!FD/_&#[9#,#GP?ZD/MG5F@_X/?Q)(8\;'1(5L_______& +M@_X/?NY(@[O8`````'1A2(N3V````+C_____2(-Z"`!T"DB+0@B+@%`"``") +MA;@```"X_____TB#>A``=`I(BT(0BX!0`@``B86\````2(-Z"`!T&TB#>A`` +M=!1(B=_H`````(F%P````&9FD&9FD%M=PV9F9I!F9I!F9I!F9I!!5%532('L +MH````$F)_$B)\TB+;UA(BX?P`0``NO____^`>`@!#X6*`0``2(M'2$B-="1P +M2(M_8/]0>$B+10A(C70D$$B+?1#_4#A(C50D#$B-="0(2(GOZ!/Q__\/MD0D +M?8A#`@^V1"1\`T0D#(A#`8M$)`B(`T&`?"1#`'D+00^V1"1"B$,#ZPL/MH0D +M@@```(A#`P^V5"1XB='`Z0:#X0$/MD,&@^#\P.H'`=()R`G0#[9,)'F#X0'! +MX0*#X/,/MG0D>8T4M0````"#X@@)R`G0B?"#X,^)\H/B(`G("=")\8/A +M0(/@/XGRP.H'#[;2P>('"<@)T(A#!@^V5"1_@^(##[9#!X/@_`G0B$,'#[:$ +M)(,```"(0P5`]L8$=`;&0P0"ZQD/MD0D><#H`X/@`8/X`1G`@^#^@\`#B$,$ +M2(UT)'!,B>?HX??__XE#"$B#O"2(`````'132(NT)(@```!(C7L,NI8```#H +M`````$B-R@````28G\2(GS2(MO6$B+A_`!``"Z_____X!X"`$/ +MA>0!``!(BT=(2(UT)'!(BW]@_U!X2(M%"$B-="002(M]$/]0.$B-5"0,2(UT +M)`A(B>_H0^___P^V1"1]B$,"#[9$)'P#1"0,B$,!BT0D"(@#08!\)$,`>0M! +M#[9$)$*(0P/K"P^VA"2"````B$,##[:$)(,```"(0P4/ME0D>(G1P.D&@^$! +M#[9#!H/@_,#J!P'2"<@)T`^V3"1Y@^$!P>$"@^#S#[9T)'F-%+4`````@^(( +M"<@)T(GQ@^$0@^#/B?*#XB`)R`G0B?"#X#^)\L#J!P^VTL'B!PG("="( +M0P8/ME0D?X/B`P^V0P>#X/P)T(A#!T#VQ@1T!L9#!`+K&0^V1"1YP.@#@^`! +M@_@!&<"#X/Z#P`.(0P1(C70D<$R)Y^@1]O__B4,(2(.\)(@`````=$M(B[0D +MB````$B->PRZE@```.@`````3(U#0KX`````2(N\)(@```!(8\YF#[943S1``=!](BT$02(M`"$B% +MP'022&/6BX!0`@``B823N@```/_&@_X'?PA(BPE(ANO____^`?S`(=S/&`P%( +MC7,,Z/SW__^Z`````.L@2(N'\`$``+K_____@'@(`74.Q@,"2(US#.AG^___ +MB<*)T$B#Q`A;7<-F9F:09F9FD&9F9I!54TB#[`B)_4B)\^@`````2(G'N0`` +M``"ZV````$B)V(@(2/_`2/_*=?:%[0^4PDB%_P^4P`G0NO____^H`75A2(M' +M&$B)0P2X_____TB#?P@`=`I(BT<(BX!0`@``B4,,2(N'\`$``(!X"`1V$\8# +M`4B-`@!=0[&`P)(C7,0Z+'Z +M__^)PHG02(/$"%M=PV9FD&9FD$%455-!B?Q(B?7H`````$B)P[D`````NOH` +M``!(B>B0B`A(_\!(_\IU]D6%Y`^4PDB%VP^4P`G0NO____^H`0^%GP```$B+ +M0QA(B44$N/____](@WL(`'0*2(M#"(N`4`(``(E%#+C_____@WL@`'@$#[9# +M((A%`TB+`TB+>`CH`````(A%`@^V@]P!``"(10%(BX/P`0``@'@(!'8BQD4` +M`;K_____@'LP$'P8`@``2(G[28GU08G624AC +MQ4R+9,,X28E<)`A-.7PD&',%38M\)!A%A/8/E<`/ME0D#X/R`0^VP(7"=$%) +MBX0D\`$``(!X"`1U,X7M=`U(BX/P`0``@'@(!G4B28M$)#B+<`A)BWPD*$&X +M`````$B-3"00N@$```#H`````/_%#[9#,#GH?X=(BX/P`0``@'@(!W4LO0`` +M```/MD,PB<&#^`!^3TACQ4B+5,,X2(M#&$@#0AA(B4,8_\4YZ7_FZS-(BX/P +M`0``@'@)`'0+#[=#,O?82)A)(<`@(=0?&@]P!```!2('$&`(``%M=05Q!74%>05_#9F9FD&9F9I!!N0````"` +M?S``='U$#[97,$ECP4B+5,C``=$)$#[9",$ACP4B+1,(X2(7`=`_V@-@!```!=`9(.7`H="[_ +MP4$YR'_=ZQAF9F:09F:02#ER*'4+2(G09F9FD&9FD,-!_\%%.A`!@]G_ +M2(L22(72=?"X`````(/Y`W=UN0````!(A?9T`XM.&$B+5RA(A=)T/4B%]G0& +M2#ER$'0J387`=!9(@WH0`'4>08M`"$$#0`PY0@A,#T3*2(-Z$`!U"#E*#'8# +MBTH,2(L22(72=<--A<`/EA)BUS$.$B%VP^$.P,``$B+ +M5"00BSR"Z`````!(.4,H=!__Q4$/MD0D,#GH#Y?`1#GM#Y+"#[;`A<)UP^D2 +M`0``00^V1"0PN0````!$.>@/AQX#``#K#8M!#$@!1"0(Z80```"]`````$&` +M?"0P`'0SB>A)BUS$.$B%VP^$T`(``$B+3"00BSR!Z`````!(.4,H#X7``@`` +M_\5!#[9$)#`YZ'?-20^V1"0P28MTQ#!(BT8H28M4)!A(B50D"$B+2"A(A1``=1-(BU8XBT((`T(,.4$(#X1W____2(L)2(7)==Y!#[9L)#!$.>US +M2HGH2(M,)!"+/('H`````$B)PTB%P'0628L$)$@Y`W4-2(N#\`$``(!X"`%T +M#KD`````Z4D"``!F9F:0BT,P2`%$)`C_Q40Y[7*V2(M,)`CI+`(``&9F9I!F +M9I!(A?]U7KT`````1#GM#X._````B>A(BU0D$(L\@N@`````2(G#2(7`=`U( +MBX#P`0``@'@(`70*N0````#IY`$``(-[,``/A,A(BTPD$(L\@>@`````2(G#2(7` +M=!9)BP0D2#D#=0U(BX/P`0``@'@(`70*N0````#I?@$``$B)WDR)Y^CN^___ +M2(G&2(G?Z'/\__^)P$@!1"0(3#GX3`]"^/_%1#GM1(GJN/____]$B?'3X$B83"'X +M2(G12`^OR.D-`0``@WPD!`)^5$2)Z+H`````]W0D!(G&A=(/E,"#_@$/G\(/ +MML"Y`````(7"#X3=````N/____]$B?'3X$B83"'XBU0D!/_*2&/22`^OPDAC +MUDB)P4@/K\KIL@```+D`````08/]`0^&HP```$R)^4&#_0(/AI8```"X____ +M_T2)\=/@2)A,(?A$B>K1ZHG22(G!2`^ORNMWN0````!!@_T"=FQ!C57_N/__ +M__]$B?'3X$B83"'X2(G12`^OR.M0N0````!!@_T#=D5!C57^N/____]$B?'3 +MX$B83"'X2(G12`^OR.LIN0````#K(KD`````ZQNY`````)#K$[D`````ZPQF +M9F:09F:0N0````!(BU@`#Y7" +M@'PD#P`/E<`)T*@!=$Y!]H78`0```71$2(M#.(-X"`!U.KD`````N@`"``!( +MC40D$&9F9I"("$C_P$C_RG7V0;@`````2(U,)!"Z`0```+X`````3(GOZ``` +M``!(B=_H`````$'V14,0=!)!]H78`0```70(3(GOZ`````!!_\1$.&4P#X?O +M_O__2(GOZ`````!(@<08`@``6UU!7$%=05Y!7\.02(/L*$B)'"1(B6PD"$R) +M9"003(EL)!A,B70D($R+9UA,BS=)BZY0`0``38ML)`A)BUPD$.@`````2(M5 +M,+C_____2(7;=`:+@U`"``")`H/X_W4#B45008"-N0````2`B[D````$@*.X +M````_4R)H]@```!-B:78````28U4)!A)C48H2(M("$B)4`A)B40D&$B)2@A( +MB1%,B>_H`````$C'15@`````2(EM8$C'16@`````2(UU6$B+?1#H`````$B+ +M'"1(BVPD"$R+9"003(ML)!A,BW0D($B#Q"C#9I!!5T%6055!5%532(/L&$F) +M_4F)]D&\`````(!_,`!T.H!^`0!T-$ECQ$F+;,4X2(7M=$=!BWR&<.@````` +M2#E%*'0A0?_$00^V13!$.>!^"D$/MD8!1#G@?\RZ`0```.F?`@``00^V13"Z +M_____T$Z1@$/AXL"``#K9KK_____D.E^`@``NO____]F9I!F9I#I;@(``+K_ +M____Z60"``"+7"00C009B4(,B#!,.WPD$$P/1WPD$$ECW+H````` +M1(G^2(G'Z`````!)B43=.$B%P'5C2(,\)`!T*TD/MD4P28M\Q3#H`````$D/ +MMETPN@````"+-"1(BWPD".@`````28E$W3!!#[9M,$0YY7T=2&/=28M\W3CH +M`````$G'1-TX`````/_%1#GE?..Z_____^F,````26/$28M$Q3A,B6@(0?_$ +M00^V1@%$.>`/G\!,*7PD$`^5P@^VP(7"#X4W____00^V1@%$.>`/E,!(@WPD +M$``/E<(/ML"%P@^%4?___T6(93!)BT9H28E%&$F+1@1)B87(````28M&#$F) +MA=````!,B>_H`````$&+=2!)BT4`2(MX".@`````N@````")T$B#Q!A;74%< +M05U!7D%?PV9F9I!F9F:09F9FD//#9F9FD&9F9I!F9I!F9I!(@^P(B?)(C;=0 +M`0``2(L'2(E&$,=&&`__``!(C8?``0``2(E&*,=&'`@```#'1B``````2,=& +M.`````"+AU`"``")A\`!``!(BT8HB5`$2,=&2`````!(BWX0Z+!H``!(@\0( +MPV9F9I!F9F:09F:04TB)^P^VA[D```"H!'11J`@/A;D```"#R`B(A[D```!( +MBX?8````2(M`$("(N0````A(QX=``0```````$B)NT@!``!(C;(A[@```"H$'582(72 +M=`GV@KD````(=4H/MH.X````J&!U/X/($(B#N````$C'@T`!````````2(F; +M2`$``$B-LS@!``!(BP-(BW@(Z`````!(B=Z_!````.@`````9F9FD%O#9F9F +MD&9F9I!F9I!F9I!(@^P(2(M'0$C'@$`!````````2(F`2`$``$B-L#@!``!( +MBP!(BW@(Z`````!(@\0(PV9F9I!F9F:09F:09F:02(/L"$B)OF`!``#'AF@! +M```/_P``2(V6P`$``$B)EG@!``#'AFP!```(````BX90`@``B8;``0``QT($ +M#````$B-AM(!``!(B8:``0``QX9P`0```````$C'AH@!````````2(FVD`$` +M`$C'AI@!````````2('&4`$``.@`````2(/$",-F9F:09F:09F:02(/L"$B+ +M3T"#?U#]#X3N`0``#[:!N0```*@(=#>#?U``#X1A`0``@^#WB(&Y````2(N! +MV````$B+0!"`H+D```#W2(G.OQ0```#H`````.G1`0``#[:!N````*@0=%&# +M?U``=!N#X.^(@;@```!(B0$``&9F9I#V@;@````@='># +M?U``9F:0=!.^"@```$B)S^@1_?__D.E0`0``#[9!,/_(2)A(#Z^!P````$@[ +M01AR&8"AN````-](B&B`$```````!(B;:0`0``2,>&F`$````` +M``"+AE`"``")AL`!``#VAKD````(=!W'AF@!```J_P``QX9L`0``!````.GJ +M````9F9FD/:&N````'`/A/X````/MD8P_\A(F$@/KX;`````2#M&&'(=QX:@ +M`0```````$B-OE`!``#H%_W__^G-````9I`/MH:X````NB/_``"H$'43P.@% +M@^`!@_@!&=+WTH'")?\``(F6:`$``$B+AG@!``!(BY;`````2(E0!$B+AO`! +M``"`>`D`=!%(BY9X`0``#[=&,F:)0@SK)DB+AG@!``!(BU882"N6P````$B! +M^H$```"Y@````$@/0]%FB5`,QX9L`0``#@```/:&N````"!T%$B+AH`!``#& +M``#'AG`!```!````_X8T`0``@[XT`0``9'X*QX8T`0```````$B!QE`!``#H +M`````$B#Q`C#05=!5D%505154TB#['A(B7PD:$B)="1@28G5Z`````")1"1< +M38MU:,9$)#``2,=$)"``````QT0D'`$```#'1"08`````$$/MD4"P.@$B$0D +M0+@!````#[94)$`/1-"(5"1`08!E`@]!@'T!$'<.08!]`0%W$4&`?0`'=`JY +M_____^D1#```0;P`````08!]`0!T/4ECQ$&+?(5PZ`````!(B<5(BX#P`0`` +M@'@(`74)]H78`0```74*N?_____IU`L``$'_Q$$/MD4!1#G@?\-!#[9%`(/X +M!W=3B<#_),4`````NP<```#K3;L%````@'PD0`,9R8/A_H/!"(A,)##K-;L( +M````ZRZ["0```.LGNP8```!!@'T!`G8;NP4```#&1"0P!L9$)$`"ZPJY____ +M_^E@"P``#[;[Z`````!(B40D*+G_____2(7`#X1%"P``@'PD0`%V/V9!#[9% +M`68/MDPD0+H`````9O?QN?____]FA=(/A1P+```/MGPD,.@`````2(E$)""Y +M_____TB%P`^$_PH``$V%]@^%A````(#[!W5!0;P`````08!]`0`/A-@```!) +M8\1!BWR%<.@`````@W@P``^$@0H``(M`,$D!16A!_\1!#[9%`40YX'_5Z:@` +M``!)Q\;_____0;P`````08!]`0`/A)````!)8\1!BWR%<.@`````BT`P3#GP +M3`]"\$'_Q$$/MD4!1#G@?]SK:DB+="0H@'X)`'0G9D$/MD4!]G0D0`^VP`^V +M5@HIT$ACT$R)\$B)T;H`````2/?Q28G&2(-\)"``=#!(BW0D((!^"0!T)0^V +M1"1`#[96"BG02&/03(GP2(G1N@````!(]_%)B<9F9I!F9I!(BW0D*(!^"0!U +M$TB#?"0@`'1R2(M$)""`>`D`=&=!#[9-`KC_____T^!(F$DAQDV)=6A(BU0D +M*(!Z"0!T'F9!#[9%`?9T)$`/ML`/ME(**=!(F$D/KT5H28E%:$B#?"0@`'0A +M2(M,)""`>0D`=!8/MD0D0`^V40HIT$B820^O16A)B45H2(-\)&``#X0_`0`` +M2(MT)&!(BX;P`0``@'@(!'8M2(M$)&A(.09U(_:&V`$```%T&DB#OM@````` +M=1!F]X:X````4`)T#V9FD&:0N?_____I+@D``$$/MD4"2(M4)&`Z0C%V"@^V +MP(/X!W\0ZQA(BTPD8`^V03&#^`=^"KG_____Z?T(``!(BW0D8$B+AO`!``"` +M>`D`=!Y(BT0D*(!X"0!T$T$/MD4"N?____\Z1C$/A`@'=5%!@'T`!V9F9I!U+DR)[DB+?"1@Z-'R__^%P'402(M<)&"+BU`"``#I +M90@``+G_____A<`/B%@(``!(BW0D8$B+AO`!``"`>`@'=0:`?C`!=`C'1"08 +M`0````^V\TB+?"1HZ`````!)B<>Y_____TB%P`^$&@@``(#[!P^%U@```$F+ +M16A(B40D$$&\`````$&`?0$`#Y7`2(-\)!``#Y7"#[;`A<(/A(H```!)8\1! +MBWR%<.@`````1(MP,$P[="003`]'="0026/G__TB)PDECW$2)]DB)[^@`````28E$WSA(A<`/A#'___]!_\1!#[9%`40Y +MX'^C00^V10%!B$?^4/MEPD0(A=,$&+1RB)12A(@WPD8``/E,(/MM), +MB>Y(B>_HF^;__T2)X)E!]_Y(F$F);,,9D$/MD%_R>L72(-\)&`` +M#Y3"#[;23(GN3(G_Z.#E__](@WPD8``/A,\#``!,B?Y(BWPD8.@`````A,`/ +MA>\```!)BT<82(MT)&!(.488=3Y)BX?(````2(F&R````$F+A]````!(B8;0 +M````N@$```"^`````$R)_^A"[?__2(M4)&"+BE`"``#I&@4``$B+3"1@#[:1 +MV`$``(/B!$$/MH?8`0``@^#["=!!B(?8`0``#[:1V`$``(/B`H/@_0G008B' +MV`$``$F+A_`!``"`>`H`=1%)BT`CH`````.G,`@``D$B+?"1H2(''L````.@`````2(G#N0````"Z +MJ````&:0B`A(_\!(_\IU]N@`````B0-(BU0D8$B)4PA,B7L02(G52(N"\`$` +M`(!X"`1V6D&\`````(!],`!T.4B#?3@`=`U(BT4X]H#8`0```74E#[95,$'_ +MQ$0YXGX926/$2(-\Q3@`=.U(BT3%./:`V`$```%TWTECQ$B+;,4X2(N%\`$` +M`(!X"`1WIDF+A_`!``"Y`````(!X"`=T8T$/ME`H`=!NX`@```(-\)!P`=`>`>R@` +M#Y7`B(.B````ZP?&@Z(````#@'LH`'0A@+NB`````W4+2(M4)&!(BT(8ZP1) +MBT<82(F#F````.LPCH +M`````&:)@Z````!FA'L`````````#&AYH`````Z`````"Y`````.D2 +M`@``2(M,)&"`B;D````$08"/N0````1!@*>X````_4F)G]@```!(B9G8```` +M2(U#&$B+5"1H2(/"*$B+2@A(B4((2(E3&$B)2`A(B0'H`````$B+7"1@B4,H +M03M'*'3M2(G?Z`````!,B?_H`````$B#?"1@`'4/0?9%`P%U"$R)_^@````` +M0?9%`P&0#X2Y````@'PD0`%V!_LD&`I[@```"_Z0$!``!! +M@(^X````0$G'AT`!````````38F_2`$``$F-MS@!``!)BP=(BW@(Z`````!, +MB?Z_#0```.@`````Z<(```!!]D4#`@^$MP```(!\)$`!D'9U2(M$)""`>`H` +M=&I!O`````!!@'\P``^$DP```$ECQ$F+7,!_LNM#9I"Y_____^M!08"/N````!!)QX=``0```````$V)OT@!``!) +MC;U!P``B=C_),4`````0;X!````Z=4'``!(BXW8 +M````9O>%N````'`(#Y7"2(7)#Y3`"="H`0^%?@<``("YHP`````/A7$'``!( +MBT$(2(M1$/:`V`$```$/A%P'``#V@M@!```!#X1/!P``@*"Y````[X"BN0`` +M`.^`B+D````(@(JY````"$C'A4`!````````2(FM2`$``$B-M3@!``!(BT4` +M2(MX".@`````2(GNOQ(```#H`````.DO!P``9F9FD&9FD$B+C=@````/MX6X +M````9B5P"&8]``@/E<)(AT$```/MH6X````J!`/A*H$``#VA=@!```!#X2= +M!```@^#EB(6X````#[=%-F:)131(QX7`````_____TB)[K\&````Z`````"` +MI;@```#^2(-]"`!T3DB+;0B[`````(!],`!T/P^V33!(8\-(BU3%.$B%TG0H +M]H+8`0```70?2(N"\`$``(!X"`1V"?:"N````!)U"8"EN````/[K!O_#.=E_ +MQ4&^`0```.E!!```2(M%"$B%P&:0=`WV@+D````,#X7U`P``9O>%N````'`, +M#X7F`P``]H78`0```0^$V0,``$B+A?`!``"`>`@%#X6S````NP````"`?3`` +M#X3M`P``2&/#3(MLQ3A-A>T/A(````!)BX7P`0``@'@(!'9S0?:%N````"!U +M:0^W?31F"WTV#[?_Z,W+__](BY7P`0``#[92"CG0#XUN`P``08"-N````"!) +MQX7``````````$G'A4`!````````38FM2`$``$F-M3@!``!)BT4`2(MX".@` +M````3(GNOPD```#H`````/_##[9%,#G8#X]A____Z4D#```/MWTT9@M]-@^W +M_^A1R___2(N5\`$```^V4@HYT`^-\@(``("-N````"!(QX7``````````$C' +MA4`!````````2(FM2`$``$B-M3@!``!(BT4`2(MX".@`````2(GNOPD```#H +M`````.G<`@``9F9FD("EN````-](B>Z_"@```.@`````Z;\"```/MH6X```` +M@^#?@\@"B(6X````0;X!````2(GNOPL```#H`````.F4`@``@*6X````W^F( +M`@``]H78`0```0^$1P(``&:#?38`#X4\`@``#[>%N````&8E<0QF@_@!#X4G +M`@``2(N%\`$``(!X"`4/A9<```"[`````(!],``/A,T```!(8\-,BVS%.$V% +M[71K28N%\`$``(!X"`1V7D$/MI6X````B="#X$$\`75-B="#R$"#X/=!B(6X +M````2<>%P`````````!)QX5``0```````$V)K4@!``!)C;4X`0``28M%`$B+ +M>`CH`````$R)[K\-````Z`````#_PP^V13`YV`^/>O___^M%@(VX````0$C' +MA<``````````2,>%0`$```````!(B:U(`0``2(VU.`$``$B+10!(BW@(Z``` +M``!(B>Z_#0```.@`````@*6X````]^EB`0``2(-]"`!T#F9FD$B+;0A(@WT( +M`'7U2(N%\`$``(!X"`5U5+L`````@'TP`'1=2&/#2(MTQ3A(A?9T,$B+AO`! +M``"`>`@$=B,/MH:X````J$!T&(/@OXB&N````+\.````Z`````!F9I!FD/_# +M#[9%,#G8?[GK%("EN````+](B>Z_#@```.@`````@WT@`'D(2(GOZ`````!! +MO@$```#IOP```("EN````+Q(QX7`````_____TB)[K\0````Z`````!(@WT( +M`'1)2(MM"+L`````@'TP`'0Z#[9-,$ACPTB+5,4X2(72="/V@M@!```!=!I( +MBX+P`0``@'@(!'8-#[:"N````(/@`4$)QO_#.=E_RD6%]G4/@*6X````_DB) +M[^@`````0;X!````ZS1!QT0D4/[___])QT0D6`````!-B60D8$G'1"1H```` +M`$F-="1828M\)!#H`````.F>````187V='-(@WT(`'0.2(MM"$B#?0@`9F:0 +M=?*`C;@````$08/^`G412(GOZ`````#K1V9F9I!F9I!(@[W8`````'0H2(N% +MV````$B+>`A(BU@02(7_=`7H`````$B%VW082(G?Z`````#K#DB)[^@````` +M9F:09F:02<=$)%@`````38ED)&!)QT0D:`````!)C70D6$F+?"00Z`````!( +MBQPD2(ML)`A,BV0D$$R+;"083(MT)"!(@\0HPV9F9I!F9I!F9I!F9I!!5D%5 +M05154TB)_4&^`````$&]`````+D`````NBP```!(B?B("$C_P$C_RG7VQT4` +M+````.C6P?__B$4$2(L%`````$B#.``/E$4%QD4&!\9%!P?&10@`QD4)`<9% +M"@\/MD4+@^#^@\@(B$4+2(L=`````$B%VW179F9FD&9FD(!["`1V0D2)Z$0/ +MMN!(B=_H:\;__T*(1"4,@'L(!G4,0L9$)1P"08/.0.L91(GJ#[;"QD0%'!!$ +MB?"#R""`>P@%1`]$\$'_Q4B+&TB%VW6P08#^8'401(GJ#[;"QD0%#!+&1`4< +M$$'_Q42)Z@^VPL9$!0P3QD0%'!"X`````%M=05Q!74%>PV9FD&9FD&9FD$%4 +M55-)B?Q(BU\HO0````"#.P!V78U%`8L\@^@`````2(G"2(N`\`$``(!X"`%T +M,4''1"10_O___TG'1"18`````$V)9"1@2<=$)&@`````28M\)!!)C70D6.@` +M````ZS=(B=?H`````/_%.2MF9I!WHTG'1"18`````$V)9"1@2<=$)&@````` +M28UT)%A)BWPD$.@`````6UU!7,-F9I!54TB#[`A(B?U(BU]8BT,8/23_```/ +ME,(]&?\```^4P`G0J`%T,8"_F@````QU(4B+0S#&``%(BW=0OQ$```#H```` +M`,:%F@````'K"F9FD$B+0S#&``"`O9H````!#Y3`#[;`_\B)0U!(BW5X2(M] +M`$B!Q]````#H`````$B+?0#H"K[__TB)[^@`````2,=#6`````!(B5M@2,=# +M:`````!(C7-82(M[$.@`````2(/$"%M=PV9F9I!F9I!F9I!32(G[2(M_$$B+ +M4RB^`````.C:YO__B<)(BT,PB1"#^O]U`XE34$C'0U@`````2(E;8$C'0V@` +M````2(US6$B+>Q#H`````%O#9F9FD&9FD%-(@>RP````2(G[2(M_$$B+0R@/ +MMA"(%"0/ME`!B%0D`0^V4`*(5"0"#[90`XA4)`.+4&2)5"1D2(M0!$B)5"0$ +M2(M0#$B)5"0,2(M0%$B)5"042(M0'$B)5"0<2(M0)$B)5"0D2(M0+$B)5"0L +M2(M0-$B)5"0T2(M0/$B)5"0\2(M01$B)5"1$2(M03$B)5"1,2(M05$B)5"14 +M2(M07$B)5"1<2,=$)&@`````2(M0:$B)5"1P2(M0<$B)5"1X2(M0>$B)E"2` +M````2(N`@````$B)A"2(````2(GBO@````#HN>7__XG"2(M#,(D0@_K_=0.) +M4U!(QT-8`````$B)6V!(QT-H`````$B-Q#H`````$B#Q`A;7<-F9F:09F:09F:09F:02(/L*$B)'"1( +MB6PD"$R)9"003(EL)!A,B70D($B)_4B+1RB+.(M8!$R+=1#H`````$B)Q_;# +M`T$/E,5!O`````!(BYC8````2(7;=&-(@WL(`'0A2(M#"("XV0$```!U0DB# +MN!@"````=3A(@[A(`@```'4N2(7;=#9(@WL0`)!T+DB+0Q"`N-D!````=11( +M@[@8`@```'4*2(.X2`(```!T#4&\_____^G(````9I#VA[@```!P=`Q!O/__ +M__^0Z;$```"Y`````(!_,`!T+0^V=S!(8\%(BU3'.$B%TG062(N"\`$``(!X +M"`1V"?:"N````'!U:?_!.Z`````#K%D&\_____^L.00^V];H````` +MZ#K8__](BT4P1(D@08/\_W4$1(EE4$C'15@`````2(EM8$C'16@`````2(UU +M6$B+?1#H`````$B+'"1(BVPD"$R+9"003(ML)!A,BW0D($B#Q"C#9F9FD&9F +M9I!F9I!32(G[2(M'*(LXZ`````!(B<&!>Q@,_P``#Y3"#[9P0XGPP.@"@^`! +M.-!T&,'B`HGP@^#["="#R!"(04-(B<_H`````$C'0U@`````2(E;8$C'0V@` +M````2(US6$B+>Q#H`````%O#9F:09F:09F:02(/L&$B)'"1,B60D"$R);"00 +M2(G[2(M'*(LX1(M@!.@`````28G%1(GGZ`````!(B<9,B>_H`````(/X`1G` +M]]")0U!(QT-8`````$B)6V!(QT-H`````$B-Q#H`````.M]Z`````!(B<5!]@0D`70_Q@0D`$$/MD0D!(A$)`A(BT5(2(GF +M2(M]8/^0P````(E#4(7`=1D/MD5#@\B`B$5#00^V5"0$B%5"@\@0B$5#]D5# +M$'0(2(GOZ`````!(QT-8`````$B)6V!(QT-H`````$B-Q#HKO[__\=#4/S___](QT-8`````$B)6V!(QT-H`````$B- +MQ#H`````%O#9F:09F:02(/L*$B)'"1(B6PD"$R)9"00 +M3(EL)!A,B70D($B)^TR++TB+;UA(BT4HBSA,C7`$Z`````!)B<1(B=_H```` +M`$V%Y`^$EP```$TY+"0/A8T```!!#[9&!$&(A"3<`0``28N$)/`!``"`>`@$ +M=D*Y`````$&`?"0P`'0U00^V="0P2&/!28M4Q#A(A=)T'$B+@O`!``"`>`@$ +M=@]!#[:$)-P!``"(@MP!``#_P3G.?]%)QX5H`0```````$F)K7`!``!)QX5X +M`0```````$F-M6@!``!)C7U(Z`````#K*9#'15#^____2,=%6`````!(B6U@ +M2,=%:`````!(C7582(M]$.@`````2(L<)$B+;"0(3(MD)!!,BVPD&$R+="0@ +M2(/$*,-F9F:09F9FD&9FD$%505154TB#[%A)B?Q,BV\02(M'*(LX2(U8!(7_ +M=5;&1"0P!DB++0````!(A>T/A,D#``!(BUT02(7;="AF9I!(BT,02(E$)#A( +MBT,(2(UT)#"_`````/^0P````$B+&TB%VW7;2(MM`$B%[77&9I#IB`,``.@` +M````2(G%#[8#A\```!!@WPD +M'`D/A=H```#&1"0P`@^V0P2(1"0X2(M%2$B-="0P2(M]8/^0P````$&)1"10 +M@$U#$.FU````08-\)!P)#X6@````QD0D,`,/MD,$B$0D.$B+14A(C70D,$B+ +M?6#_D,````!!B40D4(!-0Q#K?D&#?"0<"75MQD0D,`0/MD,$B$0D.,9$)#D` +M2(M%2$B-="0P2(M]8/^0P````$&)1"10@$U#$.M&08-\)!P)=37&1"0P!0^V +M0P2(1"0XQD0D.0!(BT5(2(UT)#!(BWU@_Y#`````08E$)%"`34,0ZPYF9I!F +MD$''1"10_O____9%0Q`/A`H"``!(BT5(2(GF2(M]8/]0>`^V1"0.B(7;`0`` +M2(GOZ`````#IY`$``$B+A?`!``"`>`@$=KH/MD,!@_@!=&&#^`%_"87`=!/I +MFP$``(/X`@^$U0```.F-`0``08-\)!P8=8VY`````+H0````2(V%R````(@( +M2/_`2/_*=?9(BT,$2(F%R````$B+0PQ(B870````@(VX````!.E1`0``08-\ +M)!Q(#X5$____N0````"Z!````$B-A>0```"("$C_P$C_RG7V2(M#!$B)A>0` +M``!(BT,,2(F%[````$B+0Q1(B87T````2(M#'$B)A?P```!(BT,D2(F%!`$` +M`$B+0RQ(B84,`0``2(M#-$B)A10!``!(BT,\2(F%'`$``("-N`````3IQ@`` +M`$&#?"0<"0^%N?[__X"]W`$```)U0(![!`)T.HMU)$R)[^@`````2(G'2(EH +M4,:`F`````1,B6!82,>`L`````````#&@)H`````Z`````#IM````)`/MH7< +M`0``.D,$=&4/MD,$B(7<`0``2(N%\`$``(!X"`1V/+D`````@'TP`'0Q#[9U +M,$ACP4B+5,4X2(72=!I(BX+P`0``@'@(!'8-#[:%W`$``(B"W`$``/_!.#:`$```````!(B8-P +M`0``2,>#>`$```````!(C;-H`0``2(U[2.@`````9F:02(L<)$B+;"0(3(MD +M)!!(@\08PV9F9I!F9I!F9I!F9I!!54%455-(@^QH28G]3(MG$$R)Y^C']?__ +M0<>$)-@1```!````28M<)!!(A=MT6Y!(BT,(2(M[$$B)YO]0.`^V1"0000&$ +M)-@1``"]`````(!\)!``="M(B=E(Q\(`````B>Y(B=_H`````(3`=0A!_XPD +MV!$``/_%#[9$)!`YZ'_52(L;2(7;=:9!_XPDV!$``$&#O"38$0```'4R2<>$ +M)&@!````````38FL)'`!``!)QX0D>`$```````!)C;0D:`$``$F-?"1(Z``` +M``!(@\1H6UU!7$%=PV9FD&9FD$%505154TB#[`A)B?U,BV<028M<)!A)C40D +M&$@YV'0X2(G%2(V[(/[__TB+A_`!``"`>`@!=1GV@V/^__]`=!#V0_@!=`KH +M`````&9FD&:02(L;2#G==@`````2(L;2#G===5)BUPD&$F-1"082#G8#X0` +M`0``2(V[(/[__X.[0/[__P`/B`@/A8H```!!N`````"Y`````(!_,`!T+0^V=S!(8\%(BU3'.$B% +MTG062(N"\`$``(!X"`1V"?:"N````$!U%/_!.M>3#GU=2\/MH78`0`` +MJ`)U)(/(`HB%V`$``(-](`!^/XM%((E$)`3'12``````O@$```#K*@^VC=@! +M``#VP0(/E`H` +M=2W'15#^____2,=%6`````!(B6U@2,=%:`````!(C7582(M]$.@`````Z>4" +M``!)C;PDT````.@`````28G&2(7`=2W'15#]____2,=%6`````!(B6U@2,=% +M:`````!(C7582(M]$.@`````Z:,"``!!BW4D3(GGZ`````!(B00D2(7`=1A) +MC;PDT````$R)]N@`````ZZQF9I!F9I!)QT80`````$B+5"0(28D600^WQT@! +MT$F)1@A)QT8H`````$G'1C``````2<=&.`````!)C48828E&&$F)1B!(BP0D +M3(EP>$B):%C&@)@````!08N$),`1``"%P'X-03N%-`$```^?P`^VP$B+%"2) +M0FA)BX7P`0``@'@)``^$?0```(M,)!2!Z0O_``"#^1IW4+@!````2-/@J0$` +M``%U$:D`0``"=1JI`(``!'4CD.LP2(L<),:#B@````'I10$``$B+!"3&@(H` +M```"Z34!``!(BQ0DQH**`````^DE`0``28V\)-````!,B?;H`````$B+/"3H +M`````.ED_O__BTPD%('I"_\``(/Y&G=,N`$```!(T^"I`0```744J0!```)U +M)ZD`@``$=1-F9F:0ZRE(BP0DQH"*`````>LZ2(L4),:"B@````/K+0';2(L$ +M),:`B@````+K'DF-O"30````3(GVZ`````!(BSPDZ`````#IZ_W__TF-A"2` +M$0``2(L4)$B)@I````!(BT0D"$B)@H````!F1(FZB````$C'@J@````````` +MQH*:`````$R):E!(QX*P`````````$&)G"28$0``2<>$)+@1````````2<>$ +M)*`1````````28F4)*@1``!)QX0DL!$```````!)C;0DF!$``$R)Y^@````` +MZV]!#[9-,4B+1"0(2-/H2(L4)$B)@H````!(QX*H`````````,:"F@````!, +MB6I02,>"L`````````!)@WPD2`!U"DB)U^@`````ZR1(BP0D2(/`&$F-5"0X +M2(M*"$B)0@A(BQPD2(E3&$B)2`A(B0%(BUPD&$B+;"0@3(MD)"A,BVPD,$R+ +M="0X3(M\)$!(@\1(PV9F9I!F9I!!B=-(BT=02(N0V````$R-DH@```!,BPA) +M@<&`$0``1`^WAX@```!!P>`)@'HH`'0C]H>9````!'0:00^W2@A!#[=""BG! +M#[>'B````"G!P>$)ZPA!#[=*"L'A"8G(N@````!!]W$(B`$2(G'20,Y +MB=%%A`@$=A-,B>?HR?___X3`="JX`0```.LR2(M&.$F+5"0XBT`(.T((=1))BT0D +M*$@Y1BAU![@!````ZP__Q0^V0S`YZ'^FN`````!;74%?H0\'__X"+N`````1(B=_H +M`````$B+7"0(3(MD)!!(@\08PV9FD&:02(/L"$C'1S``````2(E_.$C'1T`` +M````2(UW,$B+1PA(BSA(@\=(Z`````!(@\0(PV9F9I!F9F:09F9FD&9FD$B# +M["A(B5PD"$R)9"003(EL)!A,B70D($B)^TR+=PA,BV\028L&3(N@4`$``$R) +M[DR)]^BX_O__2<>%V`````````!)QX;8`````````$$/MI;8`0``@^($00^V +MA=@!``"#X/L)T$&(A=@!``!!#[:6V`$``(/B`H/@_0G008B%V`$``$G'1"18 +M`````$V)9"1@2<=$)&@`````28UT)%A)BWPD$.@`````3(GNOQ4```#H```` +M`$B+4R!(BT,82(E0"$B)`DC'0S``````2(E;.$C'0T``````2(US,$F+/N@` +M````2(M<)`A,BV0D$$R+;"083(MT)"!(@\0HPY!(@^P82(E<)`A(B6PD$$B+ +M7UA(BT,(2(LHZ`````!(QT,P`````$B)6SA(QT-``````$B-@XH/__183D#Y3"08#\`P^4P`G0J`%T#4B-_H```` +M`$B)W^A(_O__ZU=F9I!F9I!(BSGH^)___T6$Y`^4PD&`_`,/E,`)T*@!=`U( +MC7-(2(M[".@`````3(GOZ`````!(QT58`````$B);6!(QT5H`````$B-=5A( +MBWT0Z`````!(BUPD"$B+;"003(MD)!A,BVPD($B#Q"C#9F:09F:02(/L",:' +MF@````#H`````$B#Q`C#9F9FD&9F9I!F9I!!5%532(G[3(MG6$B+1U!(BZC8 +M````2(L_2(VUB````("[F@````$/A/(```"`NYH````"=$K&@YH`````N0`` +M``"+4T!(BT-(2(72=`QFD(@(2/_`2/_*=?9(QT4P`````$B)73A(QT5````` +M`$B-=3!(@\=(Z`````#IL`$``,:%HP````%(BT4(@*#8`0``_DB+11"`H-@! +M``#^2(M%"("@N0```/=(BT40@*"Y````]TB+10A(BSCHL9[__P^VA:(```"$ +MP`^4PCP##Y3`"="H`70-2(UU2$B+?0CH`````$B)W^@`````0<=$)%#_____ +M2<=$)%@`````38ED)&!)QT0D:`````!)C70D6$F+?"00Z`````#I$0$```^W +M1@IF`X.(````9HE&"DB+50A(.5-0=0QF.T8(($0``P>@)#Z_0#[=&"`^W3@HIR#G"#T?09HF3B````&:!^@`!=@EFQX.( +M``````&`?2@`="WV@YD````$="1(#[=&"$@#!D@/MU8*2"G02`^WDX@```!( +M*=!(B8.`````ZP](#[=&"D@#!DB)@X````!(B=_H`````.L*2(G?Z!+\__]F +MD%M=05S#9F9FD&9F9I!F9I!!54%455-(@^P(2(G]3(VGB````$B+1PA(BQA, +MBZM0`0``B[.8$0``2(G?Z'"<__](BT402(M5"(MP)#MR)'T#BW(D2(M%"$B+ +M..@`````2(G&2(7`=5X/MH6B````A,`/E,(\`P^4P`G0J`%T#4B-=4A(BWT( +MZ`````!(BT4(2(LXZ*F<__]!QT50_____TG'15@`````38EM8$G'16@````` +M28UU6$F+?1#H`````.E?`0``BY/`$0``A=)^$$B+10@[D#0!```/G\`/MM") +M5FC&AIH`````#[:%H@```(3`#Y3"/`,/E,`)T*@!=!E(C45(2(E&<$B+10A( +MB490@(Z9`````NM<2(M%$$B)1E"`CID````$OP````"#NXP1````=C]!N``` +M``!F9F:0B?A(BY.`$0``2,'@!(N+B!$``$B+!!!(A&L`````````!(QX:H```````` +M`$B)]^@`````2(/$"%M=05Q!7<.02(/L"$B)_DB+1PA(BS@/MX:0````P>`) +M`X>($0``_\BZ`````/>WB!$``(F'F!$``$C'A[@1````````2,>'H!$````` +M``!(B;>H$0``2,>'L!$```````!(C;>8$0``Z`````!(@\0(PV9FD&9FD$F) +M\$B+A_`!``"Z`````(!X"`%U?4B%]G0L2(N&V````$B%P'0@2#EP"'462(MP +M$.L4N@````#K6;H`````9I#K4$B+<`A(BT\H2(7)=#Z02(-Y$`!T+DV%P'36 +M2(M1$$B#>@@`=`M(BU((2(-Z"`!U]4PYP@^5P$@Y\@^5P@^VP(7"=;1(BPE( +MA`@$=DBZ +M`````&;W@[@```!P"'5R0;P`````@'LP`'1A9F:09I!)8\1(BWS#.$B%_W0, +M2(GNZ%O___^$P'0\0?_$#[9#,$0YX'_;ZS5(BX/P`0``@'@(!'412(M[*$B) +M[NB0_O__#[;0ZQQ(B>Y(B=_H@/[__P^VT.L,N@````#K!;H!````B=!(BQPD +M2(ML)`A,BV0D$$B#Q!C#9F9FD&9FD&9FD$B#[`A(BX?P`0``@'@(!'8/N``` +M``!(@[_8`````'4(Z,O^__\/ML!(@\0(PV9FD$B#[#A(B5PD"$B);"003(ED +M)!A,B6PD($R)="0H3(E\)#!(BU]83(LS38NF4`$``$F+1"0H1(LX1(MO8.@` +M````2(N#\`$``(!X"`1V=DB+J]@```!(A>UT5DB#?0@`=!-(BWT(N@(```"^ +M`````.@[H`````.L@N@(```"^`````$B)W^C.M?__ZPQ( +MB=_H`````&9F9I!!_\5%.?UU*$G'1"18`````$V)9"1@2<=$)&@`````28UT +M)%A)BWPD$.@`````ZQQ$B>A)BU0D*(M\@@3H`````$2)[DB)Q^@D````2(M< +M)`A(BVPD$$R+9"083(ML)"!,BW0D*$R+?"0P2(/$.,.02(/L&$B)7"0(3(ED +M)!!(B?M!B?2+=R1(BS_H`````$B)QP^V@)D```"#X,^#R""(AYD```!(B5]0 +MQH>8````!$B)7UA%B>1,B6=@QH>:`````$C'A[``````````Z`````!(BUPD +M"$R+9"002(/$&,-F9F:09F9FD&9F9I!F9I!!54%455-(@^P(2(G]2(M'*(L0 +M]L;_#Y3`1`^VZ$0/MN)(BT,/DL!%A>T/E<(/ML"% +MPG1$B=I(BT4HBWR0!.@`````2(G'2(N`\`$``(!X"`6^`````$@/0_?HHOW_ +M_X3`=$O_PT0YXP^2P$6%[0^5P@^VP(7"=;R[`````$0YXW,>B=A(BU4HBWR" +M!.@`````2(G'Z`````#_PT0YXW+B187M=3S'15``````ZSW'15#_____2(M5 +M,(U#`8D"ZRN)V$B+52B+?(($Z`````!(B<>)WNB8_O__ZS%F9I!F9I"[```` +M`$0YXW+52,=%6`````!(B6U@2,=%:`````!(C7582(M]$.@`````2(/$"%M= +M05Q!7<-F9F:09F:09F:0@W\<`'@&@W\@`W<'QT=0_O____/#9F9FD&9F9I!F +M9I!(@^P(2(M',,<``````DC'1U@`````2(E_8$C'1V@`````2(UW6$B+?Q#H +M`````$B#Q`C#9F9FD&9F9I!F9F:0@W\<`'@&@W\@`W<'QT=0_O____/#9F9F +MD&9F9I!F9I!(@^P82(E<)`A,B60D$$B)^TR+9S#H!I?__T&)!"1(QT-8```` +M`$B)6V!(QT-H`````$B-Q#H`````%O#9F9FD&9F9I!F9F:09F:0@W\< +M!W8&@W\@#W<'QT=0_O____/#9F9FD&9F9I!F9I!32(G[2(M'*(LXBW`$2(M3 +M,.B*F/__AQP#=@F! +M>R"M````=PG'0U#^____ZQ'H`````$B%P'4'QT-0_O___UO#9F9FD&9F9I!F +M9I!32(G[2(M'*(LX2(MS,+D`````NJX```!(B?!F9I!FD(@(2/_`2/_*=?;H +M8:;__X7`=`?'0U#_____2,=#6`````!(B5M@2,=#:`````!(C7-82(M[$.@` +M````6\-F9I!32(G[2(M'*(LX@WL<`W8)@7L@UP```'<)QT-0_O___^L1Z``` +M``!(AQ#H`````%O#9F:04TB)^TB+1RB+.(-[ +M'`-V"8%[(/D```!W"<=#4/[____K$>@`````2(7`=0?'0U#^____6\-F9F:0 +M9F9FD&9FD%-(B?M(BTQT-0_O___^M5QT-0_/__ +M_^M,QT-0_O___^M#0;T`````13GE9F:0A(BU,HBVR"!(GOZ`````!( +MA5RRTB+'"1(BVPD"$R+ +M9"003(ML)!A(@\0@PY!(@^P(2(M'$$C'@&@!````````2(FX<`$``$C'@'@! +M````````2(VP:`$``$B->$CH`````$B#Q`C#9F:09F:02(/L($B)'"1(B6PD +M"$R)9"003(EL)!A(B?M,BV$CH`````$B#Q`C#9F:0 +M9F:0@W\<`W8&@W\@`W\'QT=0_O____/#9F9FD&9F9I!F9I!54TB#[&A(B?M( +MBTA#_4#B+1"0$ +M9HE%``^W1"0&9HE%`NL'QT-0_O___TC'0U@`````2(E;8$C'0V@`````2(US +M6$B+>Q#H`````$B#Q&A;7<-F9F:09F9FD&9FD$B+1RB+2`B+<`Q(8U<02(/Z#W8,A1!! +MN`$```!$B>%$B>[_D`@!``#K)V9FD&:02(M3*$B#PA!(BT`(2(MY$$&X```` +M`$2)X42)[O^0"`$``$C'0U@`````2(E;8$C'0V@`````2(US6$B+>Q#H```` +M`$B+7"0(2(ML)!!,BV0D&$R+;"0@2(/$*,-F9F:02(/L($B)'"1(B6PD"$R) +M9"003(EL)!A(B?M,BV$CH`````$B#Q`C#9F:09F:0 +M2(/L($B)'"1(B6PD"$R)9"003(EL)!A(B?M(BTH/ML)!BVR$<(GOZ`````!(A$CH`````$B#Q`C#9F:09F:02(/L&$B)7"0(2(EL)!!(B?M(BT_H`````$B%P'4,QT-0_O___^F(```` +MB>_H`````$B)PDB+0Q!(.0)T"<=#4/S____K;$B#>@@`=0U(BX+P`0``@'@( +M!'<)QT-0_O___^M/@+K9`0```'4X2(.Z&`(```!U+DB#ND@"````=21F]X*X +M````<`AU&8-Z(/]T(8MR($B+`DB+>`CH`````(7`=`['0U#_____9F9FD&9F +MD$B+7"0(2(ML)!!(@\08PY!(@^P(2(M'$$C'@&@!````````2(FX<`$``$C' +M@'@!````````2(VP:`$``$B->$CH`````$B#Q`C#9F:09F:0@W\<`'@&@W\@ +M*W<'QT=0_O____/#9F9FD&9F9I!F9I!32(G[2(M_,.CCOO__A_H`````$B%P'4)QT-0_O___^L;B>_H`````$B+4Q!(.1!T"\=#4/S___]F +M9F:02(L<)$B+;"0(2(/$$,-FD$B#[!A(B1PD2(EL)`A,B60D$$B)^TB+1RB+ +M.$2+8`0/MF@(Z`````!(B<9`#[;-1(GBBWL828G8Z!/?__](BQPD2(ML)`A, +MBV0D$$B#Q!C#2(/L$$B)'"1(B6PD"$B)^TB+1RB+*(-_'`AV!H-_(`!_#L=# +M4/[____K-69FD&:0B>_H`````$B%P'4)QT-0_O___^L;B>_H`````$B+4Q!( +M.1!T"\=#4/S___]F9F:02(L<)$B+;"0(2(/$$,-FD$B#[!A(B1PD2(EL)`A, +MB60D$$B)^TB+1RB+.$2+8`0/MF@(Z`````!(B<9`#[;-1(GBBWL828G8Z%/> +M__](BQPD2(ML)`A,BV0D$$B#Q!C#2(/L$$B)'"1(B6PD"$B)^TB+1RB+*(-_ +M'`AV!H-_(`!Y#L=#4/[____K-69FD&:0B>_H`````$B%P'4)QT-0_O___^L; +MB>_H`````$B+4Q!(.1!T"\=#4/S___]F9F:02(L<)$B+;"0(2(/$$,-FD$B# +M[!A(B1PD2(EL)`A,B60D$$B)^TB+1RB+.$2+8`0/MF@(Z`````!(B<9`#[;- +M1(GBBWL828G8Z)/=__](BQPD2(ML)`A,BV0D$$B#Q!C#2(/L$$B)'"1(B6PD +M"$B)^TB+1RB+*(-_'`UV!H-_(`!Y#L=#4/[____K-69FD&:0B>_H`````$B% +MP'4)QT-0_O___^L;B>_H`````$B+4Q!(.1!T"\=#4/S___]F9F:02(L<)$B+ +M;"0(2(/$$,-FD$B#[!A(B1PD2(EL)`A,B60D$$B)^TB+1RB+.$R+8`0/MV@, +MZ`````!(B<8/M\V+>QA)B=A,B>+HU-S__TB+'"1(BVPD"$R+9"002(/$&,.0 +M2(/L$$B)'"1(B6PD"$B)^TB+1RB+*(-_'`UV!H-_(`!_#L=#4/[____K-69F +MD&:0B>_H`````$B%P'4)QT-0_O___^L;B>_H`````$B+4Q!(.1!T"\=#4/S_ +M__]F9F:02(L<)$B+;"0(2(/$$,-FD$B#[!A(B1PD2(EL)`A,B60D$$B)^TB+ +M1RB+.$R+8`0/MV@,Z`````!(B<8/M\V+>QA)B=A,B>+H%-S__TB+'"1(BVPD +M"$R+9"002(/$&,.02(/L$$B)'"1(B6PD"$B)^TB+1RB+*(-_'`UV!H-_(`!Y +M#L=#4/[____K-69FD&:0B>_H`````$B%P'4)QT-0_O___^L;B>_H`````$B+ +M4Q!(.1!T"\=#4/S___]F9F:02(L<)$B+;"0(2(/$$,-FD$B#[!A(B1PD2(EL +M)`A,B60D$$B)^TB+1RB+.$R+8`0/MV@,Z`````!(B<8/M\V+>QA)B=A,B>+H +M5-O__TB+'"1(BVPD"$R+9"002(/$&,.02(/L$$B)'"1(B6PD"$B)^TB+1RB+ +M*(-_'`-V!H-_(`!Y#L=#4/[____K=69FD&:0B>_H`````$B%P'4)QT-0_O__ +M_^M;B>_H`````$B)PDB+0Q!(.0)T"<=#4/S____K/TB+@O`!``"`>`@$=BA( +M@[K8`````'0>2(N"V````("XHP````!U#@^V@KD```"#X!@\"'0*QT-0_O__ +M_V9FD$B+'"1(BVPD"$B#Q!##9I!32(M'*(LXZ`````!(BYC8````2(VSB``` +M`(![*``/A+P```!(BT,(2(M0&$@YDY@```!U*X"[H@````)U$DB)W^BJX?__ +MZ:`!``!F9I!FD("[H@````%U!\:#H@````!(BU,(2(M"&$@Y@Y@```!V,$@/ +MMX.@````2`-"&$@Y@Y@```!V"@^WBZ````#K.)`/MXN8````2(M#"&8K2!CK +M)D@/MX.@````2#F#F````'8.#[>+H````.L,9F:09I`/MXN8````#[?12(N# +MF````$B)QT@IU^F4````9F9FD$B+0PA(BU`82#F3F````'4F@+NB`````W4- +M2(G?Z.[@___IY````("[H@````!U!\:#H@````%(B[N8````#[:#H@```(3` +M#Y3"/`,/E,`)T*@!=`M(BT,(2(M0&.L)D$B+0Q!(BU`82`^W@Z````!(BXN8 +M````2`'(2#G0=@=F*L*#[>+H````&9FD&;'1@H``$B)/F:)3@@/MH.B +M````A,`/E,(\`P^4P`G0J`%T3TC'0U@`````2(L&2(E#2$@/MT8(2`,&2(E# +M4$C'0W``````2(E;>$C'@X``````````2(U#8$B)0V!(B4-H2(US2$B+>PCH +M`````(7`=0A(B=_HM>;__UO#9F:02(/L$$B)'"1(B6PD"$B)^TB+1RB+*(-_ +M'`-V!H-_(`!Y#L=#4/[____K1V9FD&:0B>_H`````$B%P'4)QT-0_O___^LM +MB>_H`````$B+4Q!(.1!T"<=#4/S____K%$B+@/`!``"`>`@!=`?'0U#^____ +M2(L<)$B+;"0(2(/$$,-(@^P(2(M'$$C'@&@!````````2(FX<`$``$C'@'@! +M````````2(VP:`$``$B->$CH`````$B#Q`C#9F:09F:02(/L$$B)'"1(B6PD +M"$B)^TB+1RB+*(-_'`-V!H-_(`!Y#L=#4/[____K1V9FD&:0B>_H`````$B% +MP'4)QT-0_O___^LMB>_H`````$B+4Q!(.1!T"<=#4/S____K%$B+@/`!``"` +M>`@!=`?'0U#^____2(L<)$B+;"0(2(/$$,-(@^P(2(M'$$C'@&@!```````` +M2(FX<`$``$C'@'@!````````2(VP:`$``$B->$CH`````$B#Q`C#9F:09F:0 +M2(/L&$B)'"1(B6PD"$R)9"002(G[2(M'*(LH1(M@!(-_'`=V"X-_(`!Y%69F +MD&:0QT-0_O___^FX````9F9FD(GOZ`````!(A?H```` +M`$B)PDB+0Q!(.44`=`G'0U#\____ZU9(BT,02#D"=`O'0U#\____9I#K0DB+ +MA?`!``"`>`H`="Y(BX+P`0``@'@(`74A9H-]-@!T&DB#O=@`````=!=(BX78 +M````@+BC`````'0'QT-0_O___TB+'"1(BVPD"$R+9"002(/$&,-F9I!F9I!F +M9I!(@^P(2(M'$$C'@&@!````````2(FX<`$``$C'@'@!````````2(VP:`$` +M`$B->$CH`````$B#Q`C#9F:09F:02(/L$$B)'"1(B6PD"$B)^TB+1RB+*(-_ +M'`=V!H-_(`!Y#L=#4/[____K1V9FD&:0B>_H`````$B%P'4)QT-0_O___^LM +MB>_H`````$B+4Q!(.1!T"<=#4/S____K%$B+@/`!``"`>`@$=P?'0U#^____ +M2(L<)$B+;"0(2(/$$,-(@^P(2(M'$$C'@&@!````````2(FX<`$``$C'@'@! +M````````2(VP:`$``$B->$CH`````$B#Q`C#9F:09F:02(/L$$B)'"1(B6PD +M"$B)^TB+1RB+*(-_'%=V!H-_(`!Y#L=#4/[____K569FD&:0B>_H`````$B% +MP'4)QT-0_O___^L[B>_H`````$B)PDB+0Q!(.0)T"<=#4/S____K'TB+@O`! +M``"`>`@$=@=(@WH(`'0+QT-0_O___V9F9I!(BQPD2(ML)`A(@\00PV:04TB) +M^TB+1RB+..@`````2(MS$$C'AF@!````````2(F><`$``$C'AG@!```````` +M2('&:`$``$B-N!@"``#H`````%O#9F9FD&9F9I!F9I!(@^P02(D<)$B);"0( +M2(G[2(M'*(LH@W\<0W8&@W\@`'D.QT-0_O___^M59F:09I"%[71,B>_H```` +M`$B%P&:0=0G'0U#^____ZS6)[V9FD.@`````2(M3$$@Y$'0)QT-0_/___^L9 +M2(N`\`$``(!X"`%T#,=#4/[___]F9I!FD$B+'"1(BVPD"$B#Q!##9I!(@^P( +M2(M'$$C'@&@!````````2(FX<`$``$C'@'@!````````2(VP:`$``$B->$CH +M`````$B#Q`C#9F:09F:02(/L$$B)'"1(B6PD"$B)^TB+1RB+*(-_'`AV!H-_ +M(`!Y#L=#4/[____K569FD&:0A>UT3(GOZ`````!(A]F9I#H`````$B+4Q!(.1!T"<=#4/S____K&4B+@/`!``"`>`@!=`S'0U#^ +M____9F:09I!(BQPD2(ML)`A(@\00PV:02(/L"$B+1Q!(QX!H`0```````$B) +MN'`!``!(QX!X`0```````$B-L&@!``!(C7A(Z`````!(@\0(PV9FD&9FD(-_ +M'`!X!H-_(`!Y!\='4/[____SPV9F9I!F9F:09F:02(/L"$B+1Q!(QX!H`0`` +M`````$B)N'`!``!(QX!X`0```````$B-L&@!``!(C7A(Z`````!(@\0(PV9F +MD&9FD(-_'`!X!H-_("MW!\='4/[____SPV9F9I!F9F:09F:04TB)^TB+?S#H +MX[K__X7`=`?'0U#_____2,=#6`````!(B5M@2,=#:`````!(C7-82(M[$.@` +M````6\-F9I!FD$B#[!!(B1PD2(EL)`A(B?M(BV\H#[95"\'B"4AC3QR`?0P" +M=0V)T$B#P!!(.<%R)NL&2(/Y#W8>2&-+((!]#`%U#HG02(/`$$@YP7()ZQ.0 +M2(/Y#W<,QT-0_O___V9FD.M.BWT`Z`````!(A_H`````$B%P'4)QT-0_O___^L;B>_H`````$B+4Q!( +M.1!T"\=#4/S___]F9F:02(L<)$B+;"0(2(/$$,-FD%-(BU\02(M'*(L`2,># +M:`$```````!(B;MP`0``2,>#>`$```````")Q^@`````2(VX&`(``$B-LV@! +M``#H`````%O#9F9FD&9F9I!F9F:02(/L($B)'"1(B6PD"$R)9"003(EL)!A( +MB?M(BT!(C02%!````$@YPG(&@W\@`W_H`````$B%P'2^B>_H`````$B+4Q!(.1!UNT'_Q44YY7+1 +MD$B+'"1(BVPD"$R+9"003(ML)!A(@\0@PV9F9I!F9F:0059!54%455-(B?U( +MBT`@`=2!(BX#P`0`` +M@'@(!;X`````2`]#\TB)W^@EW___A,!U$4B+53!!C40D`8D"ZU1F9F:0187V +M=3M(@WL(`'4D9O>#N````'`(=1F#>R#_=".+5S-69FD&:01(GH2(M3*(ML@@2)[^@`````2(7`=+Z)[^@`````2(M3 +M$$@Y$'6[0?_%13GE$CH`````$B#Q`C#9F:09F:02(/L$$B)'"1(B6PD"$B)^TB+1RB+*(-_ +M'`=W"<='4/[____K,(GOZ`````!(A<"0=0G'0U#^____ZQJ)[V9FD.@````` +M2(M3$$@Y$'0'QT-0_/___TB+'"1(BVPD"$B#Q!##9F9FD&9FD&9FD&9FD$B# +M[`A(BT<02,>`:`$```````!(B;AP`0``2,>`>`$```````!(C;!H`0``2(UX +M2.@`````2(/$",-F9I!F9I!(BT$F)_$B+1RB+`(E$ +M)`Q!OP````!!O0````!,BWUT669FD&:02(M=$$B% +MVW1"9F9FD&9FD$B+0PA(BWL02(UT)!#_4#B`?"0C`'0<23EL)!!U$D6)+DF# +MQ@1!_\=$.WPD#',5D$'_Q4B+&TB%VW7%2(MM`$B%[76L28M$)#!$B3A)QT0D +M6`````!-B60D8$G'1"1H`````$F-="1828M\)!#H`````$B#Q'A;74%<05U! +M7D%?PV9F9I!F9F:09F9FD&9FD%-(B?M(BT">`$```````!(QT-(`````$B+4`A( +MBW@02(G>_Y+X````6\-F9F:09F:005154TF)_$B)]4C'PP````"#/0````#_ +M=""+!0`````[1AAT$$B#PQB#._]T#(L#.T48=?"#._]U#\=%4/[___](B>__ +M54CK7\=%4`````!(B>__4PB#?5``=`E(B>^0_U5(ZT-!@+PDQ!$```!FD'7( +M28.\)%`!````=!U)C80D6`$``$B+4`A(B6@(2(E%`$B)50A(B2KK#DF)K"10 +M`0``2(GO_U,06UU!7,-F9I!32(G[2(M_$$C'AU`!````````2(V'6`$``$@Y +MAU@!``!T(4B+MU@!``!(BU8(2(L&2(E0"$B)`DB)-DB)=@CH#/___TB)W_]3 +M2%O#9F9FD%-(B?M(B7X02(-^.`!T"4B+5CB+1B")`DB)W^C@_O__2(G?Z``` +M``!;PV9FD&9FD(N'4`(``,-F9I!F9I!F9I!(@^PXN0````"Z+````$B)X(@( +M2/_`2/_*=?9`B'PD"$"`_P=U&4B#?@@`=`Y(BT8(BX!0`@``B40D#$B+=BA` +M@/\&#Y3"0(#_!`^4P`G0J`%U%$"`_P4/E,)`@/\(#Y3`"="H`708]H:X```` +M`0^V1"0,N@$````/1<*(1"0,BX90`@``B40D!$B)Y^@`````2(/$.,-F9F:0 +M9F:09F:04TB+7UA(BU,P#[:'A@```(A""@^VAX(```"(0@8/MH>#````B$(' +M#[:'A````(A""`^VAX4```"(0@D/MH>`````B$($#[:'@0```(A"!0^VAX<` +M``"(0@N`OYH````!#Y3`#[;`_\B)0U#H`````$C'0U@`````2(E;8$C'0V@` +M````2(US6$B+>Q#H`````%O#9F9FD&9FD&9FD&9FD$B#["A(B5PD"$B);"00 +M3(ED)!A,B6PD($F)_$B)]4B+7BA,BVXP2(L_08MT)"3H`````$B)PDB%P'4M +MQT50_?___TC'15@`````2(EM8$C'16@`````2(UU6$B+?1#H`````.FK```` +M2(EH6$R)8%#&@)@````#@'L,`744@(B9`````DF-11!(B8*(````ZQ^`>PP" +M=1F`B)D````$2(U#$$B)@H@```!F9F:09F:0#[9#"HB"A@````^V0P:(@H(` +M```/MD,'B(*#````#[9#"(B"A`````^V0PF(@H4````/MD,$B(*`````#[9# +M!8B"@0````^V0PN(@H<```!(QX*P`````````$B)U^@`````2(M<)`A(BVPD +M$$R+9"083(ML)"!(@\0HPV9F9I")M\`1``##D)"0D)"0D)"02(N'0`(``$B% +MP'0F9F9FD$B+5@A(.1!S#TB+%D@Y4`AV!K@!````PTB+0!!(A<"0==Y(BX_X +M`0``2(V'^`$``$@YR'1#28G`2(U1Z("ZF`````!U*T@/MX*(````2`."@``` +M`$@Y!G,72(N"@````$@Y1@AV"K@!````PV9F9I!(BPE).B`NI@`````=2=(#[>"B````$@#@H````!( +M.09S$TB+@H````!(.48(=@:X`0```,-(BPE(.<]UQ+@`````PV9F9I!F9F:0 +M9F:09F:02(/L$$B)'"1(B6PD"$B)_4B)\^CX_O__AR@`="5(B=E( +MC95(`@``2(.]2`(```!T#DB+`DB-4!!(@W@0`'7R2(D*N/_____K&)!(BX5` +M`@``2(E#$$B)G4`"``"X`````$B+'"1(BVPD"$B#Q!##9F9FD&9F9I!F9I!( +MC9=``@``2#FW0`(``'0-2(L"2(U0$$@Y$C'0"@`````2(M'>$B)>#!(BT=X2,=`.`````!(BW=X2(M_4.@`````A)(@WMP`'4K2(N52`(``$B%TG0?9F9F +MD&9FD$@Y`G,*2#E*"`^'A`$``$B+4A!(A=)UZ$B+A?`!``"`>`@$#X:)```` +M2(.]V`````!T+4B+A=@```"`N*,`````=1WV@YD````(=11(B=_HS`@``(7` +M#X5T`0``2(MK4$B+A?`!``"`>`@$=D7V@YD````$=#P/MH6Y````J"!T,8/@ +MWXB%N0```.@`````B44L@(VX````!$B+`\>`R!$```$````/MT4T9@M%-F:) +M131(C8WX`0``2#F-^`$``'4N2(L#QT!H`0```$B-0QA(BY7X`0``2(E""$B) +M4QA(B4@(2(F%^`$``.GA````D(-[:`!U4TB+C0`"``!(C7'H@WYH`'D?2(U# +M&$B+40A(B4$(2(E+&$B)4`A(B0+_1FCIJ@```$B-0QA(C97X`0``2(M*"$B) +M0@A(B5,82(E("$B)`>F'````@WMH`'YA2(U#&$B-C?@!``!(BY7X`0``2(E" +M"$B)4QA(B4@(2(F%^`$``.M:2(U#&$B#PAA(BTH(2(E""$B)4QA(B4@(2(D! +MZSU(C4,82(/"&$B+2@A(B4((2(E3&$B)2`A(B0'K($B-0QA(C97X`0``2(M* +M"$B)0@A(B5,82(E("$B)`6:02(/$"%M=PV9FD&9FD&9FD$B#[`CVA]@!```! +M=3K&AIH````"_H?:`0``2(U&&$B-EP@"``!(BTH(2(E""$B)5AA(B4@(2(D! +M2(GWZ`````"X`````.M^#[:'V@$``#J'VP$``'-JA,!T"XN'*`(``#M&:']; +M2(._&`(```!U4?:'V`$```AU2(M&:(F'*`(``/Z'V@$``$B-5AA(C8<(`@`` +M2(M("$B)4`A(B4882(E*"$B)$4B+A_`!``!(B??_4"BX`````.L,9F9FD&9F +MD+@!````2(/$",-F9I!F9I!(@S\`=0I(B7<(2(DWPV:02(M'"$B)_H[?W__X7`="!(C4,82(N5^`$``$B)0@A( +MB5,83(E@"$B)A?@!``#K,[@`````3#FE^`$``'0=28L$)$B+2`A(BQ!(B4H( +M2(D12(D`2(E`"$B#Z!A(B<-(AW@`=#E(BT-X +M2,=`*`````!(BT-X2(E8,$B+0WA(QT`X`````$B+$B)0W!,B>?H\OK__[@`````3#FM,`(``'0=28M%`$B+2`A(BQ!(B4H( +M2(D12(D`2(E`"$B#Z!A(B<-(A_H5?C__X7`=`9,C6,0ZR](BT,028D$)$B+A4`"``!( +MB4,02(F=0`(``$B-`C_$$B+$T@[4PAU$4C'0P@`````2,<#`````.L' +M2(M"$$B)`TB%TG0(2,="$`````!(B=!(A=)UQ$B+;"0(ZPA(B=_H`````+@` +M````23EN.'0=2(M%`$B+2`A(BQ!(B4H(2(D12(D`2(E`"$B#Z!A(B<-(AT@`=0?H`````.L;2(U'&$B-4SA(BTH(2(E""$B)5QA(B4@(2(D!2(G? +MZ`````!;PV9FD&9FD&9FD%532(G[2(L_2(MK4$B+@[````!(B4,H2(E;,$C' +M0S@`````2(US*$B#QUCH`````$B-0QA(BT@(2(M3&$B)2@A(B1%(B4,82(E` +M"/Z-V@$``/Z-V0$``$B#>W@`=!)(BW-X2(GOZ`````!F9I!F9I!;7<-F9F:0 +M9F:09F:09F:005=!5D%505154TB#[`A(BT]82(GU2(N9H````$&^`````$&_ +M`````$2+KX````!$*ZF`````0<'E"40/MZ>(````0<'D"4B%VW03#[:!F0`` +M`(/@`68/ML!F.=!U-TB)\TB#N:@`````=`U(B<__D:@```"%P'4=N`````#I +MKP```,=$*`0!````N`$```"0Z9P```!$B?@#`T0YZ'9[@WL$`'4/26/&2,'@ +M!,=$*`0`````13GO=R=)8]9(P>($1(GI1"GYB`$2(M3"$B)5"@(BQ.)%"A)8\9(P>`$1#DD*'($1(DD +M*$ECQDC!X`1$*R0H#X1K____0?_&@WL$`'4,1`,[2(/#$.EI____N`````!( +M@\0(6UU!7$%=05Y!7\-54TB#[`A(B?I(BU]82(MW4$B+KM@````/MX.(```` +M08G`9D0KAX@```"`OYH````!=6U(BX.`````2#F'@````'5=OP````"+2D!( +MBT)(2(7)=`M`B#A(_\!(_\EU]4@Y=0AU"TB+11#K"69FD&:02(M%"$B)0E!( +MBX68````2(F"@````&9$B8*(````QH*:`````$B)U^@`````ZU>0#[:"F@`` +M`(B#F@```/]#%$B+>PA(B=;H`````$B+0PC_2`A(BT4(_H#:`0``2(U3&$B+ +M10A(!0@"``!(BT@(2(E0"$B)0QA(B4H(2(D12(G?Z`````!(@\0(6UW#9F:0 +M2(/L*$B)7"0(2(EL)!!,B60D&$R);"0@2(G[2(M74$B+JM@```!,BZ>````` +M2`^WAX@```!,`>!!O0````"`?2@`=!1,.:68````=C-(.868````PCH```` +M`$B)QTB+`TB)!TB+0PA(B4<(BT-HB4=H187M=`9(BT4(ZP1(BT402(E'4$B) +M7UA(QX>H`````````$C'A[``````````3(FG@````$B+A9@```!F1"G@9HF' +MB````$C'AZ``````````QH>:``````^V@YD```"(AYD```!(@WMP`'0*2(M# +M<$B)1W#K"$C'1W`!````Z`````"X`0```$B+7"0(2(ML)!!,BV0D&$R+;"0@ +M2(/$*,.0D)!(BW<(9H-_-`!U'/:'N`````)T$TB+A_`!``"`>`D`=`8/MD@* +MZP6Y``````^W1S:)PF8+5S1T"O_!C4+_9B'"=?9(BX?P`0``#[9`"CG(?1Z` +MI]@!``#^ZRJX_O___]/`9B%&-DB)]^@`````\\.`C]@!```!9H-_-`!T!X"/ +MN`````+VA]@!```!#Y7`2(7V#Y7"#[;`A<)T'+D`````@'XP`'81#[;!2#E\ +MQCATJO_!.$XP=^_SPV9F9I!F9I!32(M?"+D`````9@^V0S")PF:#^`!V$0^W +MP4@Y?,,X=`?_P68YRG?ON`$```#3X&8)0S9(B=_H`````/:#V`$```%U?$B# +M>P@`=!-(BT,(2(N`\`$``$B)W_]0,.L(2(G?Z`````!(@[O8``````^$K0`` +M`$B+@]@```!(@W@(``^$FP```$B#>!``#X20````2#E8"'4+2(M`$&9FD&:0 +MZPM(BX/8````2(M`"("@V`$``/Y(BP@`=`Y(BT,(2(.XV`````!U*H-[(`!Y$4B#>P@`=!U(BT,(@W@@ +M`'@3O@````!(B=_H`````&9FD&9FD/:#N`````1T"$B)W^@`````6\-F9F:0 +M9F:09F:09F:005=!5D%505154TB![!@"``!)B?Y(C6PD$$R+/XMW,$B+?RA! +MN`$```!(B>FZ`0```.@`````@7PD$/06>%IU$;X``@``2(GOZ`````"$P'0/ +MNO_____IT`8``&9FD&:0NO____^`?2$$#X:\!@``#[=%)V:)1"0.28M7&$F- +M1QA(.=!T.4B)P4R-HB#^__])BX0D\`$``(!X"`1V&4B#NBC^__\`=0^+@DC^ +M__\[100/A%H!``!(BQ)(.=%UR@^V=2%,B?_H`````$F)Q+K_____2(7`#X10 +M!@``@*#8`0``_@^V11=!B(0DW`$``$F-7"0H#[=4)`YFB5,,BT4$08E$)"B` +MBY`````!2(M%*4B)@Y@```"+A;T```")0P0/MD4DB$,)#[;(N@$```")T-/@ +M9HE#"DB+11E)B40D&`^V12*(0PBX_____X!["`]W'P^V2PB)T-/@_\CK$TB) +ML[````#I:`$``&9F9I!F9I!FB4,.2(M%24B)@Z````!(BT512(F#J````(M% +M68F#N````$B+A9T```!(B8/\````2(N%I0```$B)@P0!``!(BT5=2(F#O``` +M`$B+165(B8/$````2(M%;4B)@\P```!(BT5U2(F#U````$B+17U(B8/<```` +M2(N%A0```$B)@^0```!(BX6-````2(F#[````$B+A94```!(B8/T````28U< +M)"@/ME4EP.H"@^(!@\K^(I.0````B).0````B='0Z68/MD4E"Z_____TB%P`^$IP(``("@V`$` +M`/X/MD47B(?<`0``@(^X`````8M%!(E'*`^W1"0.9HE'-$B+14%(B8?````` +MBX7!````B4H/ML))B7S$.$B+ +M14E(B8?(````2(M%44B)A]````"+15F)A^````!(BX6=````2(F')`$``$B+ +MA:4```!(B8'P`````````#K%$B+34%(.8_`````=@=(B8_`````N/[___]$B>G3 +MP&8A1S;H`````.LG1(GJ#[;"38ETQ#A-B68(N/[___]$B>G3P&9!(40D-DR) +MY^@`````0?:$)-@!```!=$-)@[PDV`````!T.$F+A"38````2(-X"`!T*4B# +M>!``="),.6`(=0A(BT`09I#K#$F+A"38````2(M`"$B)Q^@`````N@````") +MT$B!Q!@"``!;74%<05U!7D%?PY!(BU<(N0````"`>C``=AB0#[;!2#E\PCAU +M!@^VP<-FD/_!.$HP=^FX_P```&9F9I##9F9FD&9F9I!F9F:09F:0055!5%53 +M2('L"`(``$F)_$&]`````$B)Y4B+1RCV@-@!```!#X24`@``2(M?"$B%VW0. +M2(-["`!T!TF)W4B+6PBY`````+H``@``2(GH9I"("$C_P$C_RG7VQT4`]!9X +M6K@`````2(7;=`.+0RB)101!]H0DV`$```)T!(!-%@&X`````$B%VW0)28/] +M`1G`@\`"B$482(7;#X1P`0``2(.[V`````!T1$B+B]@```"+`8E%"$B+@9@` +M``!(B44,#[9!*(/@`0'`#[95%H/B_0G"B%462#E9$'4(B="#R`2(118/MH&B +M````B$44#[:#W`$``(A%%TB+0QA(B4492(N#\`$```^V0`B(12$/MD,PB$4B +M387M3(GG20]%_>B=_O__B$4C#[9#,8A%)`^V@[@```"#X`'!X`(/ME4E@^+[ +M"<*(527V@[@````"=`B)T(/(`8A%)0^W0S1FB44G2(N#P````$B)12F+0RR) +MA;T```!(BX/(````2(E%24B+@]````!(B451BX/@````B4592(N#)`$``$B) +MA9T```!(BX,L`0``2(F%I0```$B+@^0```!(B45=2(N#[````$B)165(BX/T +M````2(E%;4B+@_P```!(B45U2(N#!`$``$B)17U(BX,,`0``2(F%A0```$B+ +M@Q0!``!(B86-````2(N#'`$``$B)A94```!-A>UT>TF+11A(B44Q28N%\`$` +M``^V0`B(13E!#[9%,(A%.DR)Y^B&_?__B$4[00^V13&(13Q!#[:%N````(/@ +M`<'@`@^V53V#XOL)PHA5/4'VA;@````"=`B)T(/(`8A%/4$/MT4T9HE%/TF+ +MA<````!(B45!08M%+(F%P0```+X``@``2(GOZ`````#WV(A%%4&+="0P28M\ +M)"A!N`````!(B>FZ`0```.@`````2('$"`(``%M=05Q!7<-F9F:04TB)^^@G +M_?__2(M[*/9'0Q!T!>@`````6\-F9I!F9I!54TB#[`A(B?M(BX?P`0``@'@( +M!'8'@*>X````^_:#V`$```%T>DB+@_`!``"`>`@$=E\/MT,T9@M#-F:)0S2] +M`````(![,`!T5F9FD&9FD$AC]4B#?/,X`'0K2(M,\S@/MI/8`0``@^("#[:! +MV`$``(/@_0G0B('8`0``2(M\\SCH`````/_%#[9#,#GH?\#K#DB)W^A&____ +M9F:09F:02(/$"%M=PV9FD&9FD&9FD$%455-(B?M(@W\(`'0-9I!(BUL(2(-[ +M"`!U]>@`````B4,H3(NCV````$V%Y'0Y23E<)`AU"DF+;"00ZPAF9I!)BVPD +M".@`````08D$)$B%[705Z`````")12@[0RAT\TB)[^@`````2(G?Z`````!; +M74%X`0```,.0N0````"`?C``=#%$#[9&,$ACP4B+5,8X2(72 +M=!A(BX+P`0``@'@(!'8+2#GZ=0:X`0```,/_P4$YR'_42(-^"`!UK4V+"4V% +MR76.N`````##9F9FD&9F9I!F9F:09F:005=!5D%505154TB#[`A)B?P/ME

U(BQM)BP0D2(/`&$@YV'6BN`````!-A>UT14'VA"2Y`````G42N@`` +M``!$B?9,B>_H`````.LH28M%*$B%P'0/2(-X$`!U#4B+`$B%P'7Q3(GHZPNX +M`````&9FD&9FD$B#Q`A;74%<05U!7D%?PY!!5%532(G[28GTO0````"`?S`` +M#X2Q````9F9FD&9FD$ACQ4B#?,,X`'022(M$PSCV@-@!```!#X5_````3(GB +M387D=1!(B=_HH_[__TB)PDB%P'1B2(E:"$ACQ4B#?,,X`'0-2(M$PSA(QT`( +M`````$ACQ4B)5,,X@(NX````"DC'@\``````````N`$```")Z=/@9@E#-/?0 +M9B%#-DV%Y'4-2(G6OP<```#H`````("+N`````1-A>1U#O_%#[9#,#GH#X]6 +M____]H.X````"'0-2(G?Z`````!F9I!FD%M=05S#9F9FD&9F9I!F9I!(@^P8 +M2(D<)$B);"0(3(ED)!!(B?M(B?7H4_W__[K_____A,!U;P^V0S#_R$ACR$B+ +M4QA(B="Z`````$CW\?:#N0````)U'+H`````B<9(B>_H`````$F)Q+K_____ +M2(7`=#+V@[D````"2(GN20]$]$B)W^@`````]H.X````!'0.2(G?Z`````!F +M9I!F9I"Z`````(G02(L<)$B+;"0(3(MD)!!(@\08PV9FD&9FD$%455-(B?U( +MBX?P`0``#[9`"(/H!8/X!`^'9`$``(G`_R3%`````$&\`````(!_,`!T44EC +MQ$B+7,4X2(7;=#A(BX/P`0``@'@(!'8K2(G?Z`````#V@[@````$=`>`C;@` +M```$#[:#N````(/@`8/(_B"%N````$'_Q`^V13!$.>!_K_:%N`````$/A?$` +M``!!O`````"`?3``#X3A````26/$2(M`@$=ASV +M@[@````!=!,/MH.X````@^#^@\@"B(.X````0?_$#[9%,$0YX'^^Z9H```!( +M#[=',DCWV$@AA\````"#?30`=`>`I;@```#^9H-]-@!T.("-N0```"!F@WTV +M`'0J]H78`0```70A2(-]"`!T#4B+10CV@-@!```!=`V^`````$B)[^@````` +M]H78`0```70V]H6Y````!'4M]H6X`````W0D9H-]-`!T#@^W530/MT4V]]"% +MT'0/@(VX````"$B)[^@`````2(-]"`!U%_:%N`````1T#DB)[^@`````9F:0 +M9F:06UU!7,-F9F:09F9FD&9FD$B+A_`!``"`>`@$=GN^`````(!_,`!T*40/ +MMD@D`=2C_QD$Y\'_?2(N7\`$` +M`(!Z"0!T.@^V1S`/ME(**=`/MD\QT^`/M\###[9!,`^V4@HIT`^V23'3X$B+ +ME_`!```/ME(*02G000^OP`^WP,.X`````,-FD%532(/L"$B)_4B+7PA(BT\0 +M2(7;#Y3"2(7)#Y3`"="H`70A2(7;=`>`H]@!``#^2(7)=`>`H=@!``#^QH6C +M`````>ML]H/8`0```70)]H'8`0```74>@*'8`0``_H"CV`$``/['0R#_____ +MQH6C`````>L=QH>C`````(")N0````2`B[D````$2(G?Z`````!(B=_H```` +M`&:)A:````!FA`@$=A#H`````(3`=%BY`0```.ML2(N'\`$``(!X"`1W-DB+AO`!``"` +M>`@$=RE(BT8H2#E'*'482(M7.$B+3CB+0@@[00AU"(M"##M!#'85N0$```#K +M*;D!````ZR*Y`0```.L;0?_$#[9#,$0YX`^/5?___[D`````9F:09F:0B`@$=B;V@]C^__\$=!U(@[LH_O__`'0. +M9F:02(M_"$B#?P@`=?7H`````$B+&T@YW76^2(/$"%M=PY!(BX<8`0``2(E& +M$$B)MQ@!``##9F9FD&9FD&9FD&9FD$B#[`A(@[\@`0```'4HBX<``0``.P9R +M#DB+?A#_5@BX`````.LL2(FW*`$``$B)MR`!``#K$DB+AR@!``!(B7`@2(FW +M*`$``.@`````N`$```!(@\0(PV9FD&9FD&9FD$B#[`A(@T/A(\```!!BX0D``$``#M% +M`')"23FL)"@!``!U&DG'A"0H`0```````$G'A"0@`0```````.L,2(M%($F) +MA"0@`0``2,=%(`````!(BWT0_U4(ZS"028N<)!@!``!(A=MT%69FD(MU`$B+ +M._]3"$B+6Q!(A=MU[D&+A"0``0``.T4`Q;74%',`$```````!(B;LX +M`0``2,>'0`$```````!(C;PA(B=;H```` +M`$B+0PC_2`A(B=_H`````%O#9F9FD&9F9I!F9I!(@^P(2(M/6+@`````2(.Y +MJ`````!T"4B)S_^1J````$B#Q`C#9F9FD&9F9I!F9I!54TB#[`A(B?M(BV]0 +M_T\42(M'"/]`"$B+?PCH`````$B)QTB+`TB)!TB+0PA(B4<(BT-HB4=H#[:# +MF0```(B'F0```$C'A[``````````2(E?6$B+12A(B4=0#[:#F````(B'F``` +M`("[F`````!U/$B+13B+0`A(`X.`````2(F'@`````^W@X@```!FB8>(```` +M2(N#H````$B)AZ````!(QX>H`````````.@`````2(/$"%M=PV9F9I!F9I!( +M@^P(2,?'`````.@`````N`````!(@\0(PY"0D)"0D%-(B?-(Q\8`````Z``` +M``!(B<>Y`0```+H@`0``2(G>Z`````!;PV9FD&9FD&9FD%-(Q\8`````Z``` +M``!(B<-(BUT%4$/MH:9````@^`!9@^VP&9$.?AU*$B)U4F#OJ@`````=!1$ +MB?I(B>Y,B?=!_Y:H````A`A,BT4( +MBW4`D#GQB?(/1M%$..=U%(D3QT,$`````$R)0PA(@\,09F:0*=:)T$D!P"G1 +M=1C_QT$Z?3"X``````]$^$$/MT4RB<'!X0F%]G6Y@WT$`'4&2(/%$.NEQT/T +M`0```+@!````2(/$"%M=05Q!74%>05_#9I!54TB#[`A(B?I(BU]82(MK2`^V +M3V"X_O___]/`9B%%$H"_F@````%T#0^VAYH```"(@YH```#_0Q1(BWL(2(G6 +MZ`````!(BT,(_T@(9H-]$@!U&("[F@````!U!\:#F@````%(B=_H`````$B# +MQ`A;7<-F9F:09F9FD&9FD&9FD$R+3E!(BTY(3(L!#[=Q$$`X>0AU"T@/MT$. +M20'`ZP^00#AY"'8(20^W03))`0AS*4`X>0EW'NLA0#AY"&9FD&9FD',%9D$#<3)`.'D)9F:09I!V!69! +M`W$R9HFRB````$R)@H````##9F9FD&9FD&9FD%-)B?E(B[Z`````1`^WEH@` +M``!,BT9(0;L`````00^V23%(B?Y(T^YF0<=`$```0<9`%`%!#[91,(GPB=&Z +M`````/?Q00^V23'3X$F)`$$/ME$PB?")T;H`````]_%!B%`(B=%!#[=!,O_( +M(?AF08E`#D$/MU$R9BG"9D0YTG(-9D6)4`Q!N@````#K569!B5`,9D$ITD&[ +M`0```+H!````B=#3X&9!"4`2_\%!.$DP=2*Y`````$&`>!0`=`=!QD`4`.L/ +M00^W0!!F00-!,F9!B4`09D4Y43)S!V9%*U$RZ[^X`0```-/@9D$)0!)!B$@) +M9D6)4`I$B=A;PV9F9I!(@^Q(2(E<)!A(B6PD($R)9"0H3(EL)#!,B70D.$R) +M?"1`28G\3(M_4$B+1TA(B40D$("_F`````0/A=4```!FQT`2``!!O@````!! +M@'\P``^&R@$``$2)\@^VVDV+;-\X387M#X28````0?:%V`$```$/A(H```"X +M`0```$2)\=/@2(M4)!!F"4(20?],)!1)BT0D"/]`"$F+?"0(Z`````!(B<5) +MBP0D2(E%`$F+1"0(2(E%"$&+1"1HB45H3(EM4,:%F`````1!#[:4))D```"# +MXC`/MH69````@^#/"="(A9D```!(QX6P`````````$R)95A(B5U@2(GOZ``` +M``!!_\9%.'1(` +M=19!QH0DF@````),B>?H`````.G;````0;X`````08!_,``/ALH```!(BU0D +M$`^W0A)!#[;.B4PD"-/XJ`$/A)\```!$B?`/MMA-BVS?.$'_3"0428M$)`C_ +M0`A)BWPD".@`````2(G%28L$)$B)10!)BT0D"$B)10A!BT0D:(E%:$R);5!! +M#[:$))D```"(A9D```!(QX6P`````````$C'A:@`````````3(EE6$B)76!( +MB>I,B>:+?"0(Z('\__^#?"0,`'4/28N$)*````!(B86@````2(GOZ`````!F +M9I!!_\9%.'X````_H7V=`[H`````.L' +M@*.X````_EO#9F9FD&9FD$B#[!A(B1PD2(EL)`A,B60D$$B)_4B+7UA(BWM0 +M3(MC2("]F`````1U)H"]F@````$/A/P````/MH6:````B(.:````Z>H```!F +M9F:09F:0@+V:`````0^$R0```/:#F0````)T>H"[FP`````/A;,```#VA[@` +M```"#X6F````9H-_-@`/A9L```#&@YL````!2(-]8``/E,`/MLA(B4U@2(M$ +MSSA(AA$#[;P2XM<]#A(A=L/A(@```#V@]@! +M```!='^X`0```(GIT^!F00D'0?]-%$F+10C_0`A)BWT(Z`````!(B<=)BT4` +M2(D'28M%"$B)1PA!BT5HB4=H2(E?4,:'F`````1!#[:5F0```(/B,`^VAYD` +M``"#X,\)T(B'F0```$C'A[``````````3(EO6$R)=V#H`````&9FD&:0_\5! +M.&PD,`^'5____^E*`@``9D&#?"0V``^%X0```$'VA"2X`````@^%T@```/:' +MF0````(/A,4```!)BT0D./:`V`$```$/A+,```!)BU0D0/:"V`$```$/A*$` +M``!(B<%(B=9(BX#P`0``@'@(!'4$2(M)*$B+AO`!``"`>`@$=01(BW8H2(N! +M\`$``(!X"`%U5$B+AO`!``"`>`@!=4=)BX6`````#[:YV0$``$0/MH;9`0`` +MB<(K43PK1CQ(.<)]$D6%P$$/E,&#_P4/E\!!(<'K<(7_00^5P4&#^`4/EL!! +M"<'K7DF+5"00@SH`00^4P4$/ML&)`NM*9F9FD$&Y`````$&`?"0P`'8X00^W +M1"0T9D$+1"0V#[?09F:0B=!$BH/ML))BUS$.$B%VW0K]H/8`0`` +M`70B00^VE9D```#`Z@)!..D/E,`)T*@!=`N)\(GIT^!F00D'D/_%0(#]`7:^ +MO0````")Z$0/MO!+BUST.$B%VP^$GP```/:#V`$```$/A)(```!!#[<'B>G3 +M^*@!#X2"````0?]-%$F+10C_0`A)BWT(Z`````!(B<=)BT4`2(D'28M%"$B) +M1PA!BT5HB4=H2(E?4$$/MH69````B(>9````2,>'L`````````!(QX>H```` +M`````$R);UA,B7=@28N%@````$B)AX````!!#[>%B````&:)AX@```#H```` +M`&9FD/_%0(#]`0^&0?___TB+7"0(2(ML)!!,BV0D&$R+;"0@3(MT)"A,BWPD +M,$B#Q#C#D$B#[`A(Q\<`````Z`````"X`````$B#Q`C#9F:09F:008G22(M' +M6$B+4$A,BXB0````#[="`L'@";H`````0?=Q"(G`2,'@!$F)P$T#`0^WCX@` +M``#!X0ET169FD&9FD$6%TG0+B=!)`P!(B48(ZPJ)T$D#0`A(B48(08M!""G0 +M.<@/1\&)!L=&!`````"Z`````$B#QA!)@\`0*<%UP<=&]`$```"X`0```,-F +M9F:02(/L*$B)'"1(B6PD"$R)9"003(EL)!A,B70D($B)^DB+7UA,BW-02(MK +M2$R+JY`````/MD]@N/[____3P&8A10"`OYH````!=`T/MH>:````B(.:```` +M1`^WHH@```#_0Q1(BWL(2(G6Z`````!(BT,(_T@(9H-]```/A0@!``!$B>!F +M`T4"9HE%`H"[F@`````/A>@```!F.X.(````=2+&@YH````!2`^W@X@```!( +M`X.`````28F&P````.F]````9L=%``,`0;P`````_TL42(M#"/]`"$B+>PCH +M`````$B)QTB+`TB)!TB+0PA(B4<(BT-HB4=H2`^W10)(`X.`````2(F'@``` +M`$$/MDT008M%",'H"0^OR`^W@X@````/MU4"*=`YP0]'R&:)CX@```"`CYD` +M```$2(E?6$ECQ$B)1V!(QX>P`````````$C'AZ@`````````28M$QCA(B4=0 +MZ`````!!_\1!@_P!#XY8____ZP]F9F:09F:02(G?Z`````!(BQPD2(ML)`A, +MBV0D$$R+;"083(MT)"!(@\0HPV9F9I!F9F:09F:04TB)_DB+7UA,BT-02(M3 +M2$B+NY````"`OIH````!=!(/MH::````B(.:````Z6X!```/MT("9@.&B``` +M`&:)0@+VAID````"=&IF.X.(````=0UFQT("``#K669FD&:0QH:;`````,:& +MF@````!(#[="`D@#@X````!(B8:`````#[9/$(M'",'H"0^OR`^W@X@````/ +MMU("*=`YP0]'R&:)CH@```!(B??H`````.D'`0``#[="`F8[@X@```!U(L:# +MF@````%(#[>#B````$@#@X````!)B8#`````Z;T```!(#[="`D@#@X````!( +MB8:`````#[9/$(M'",'H"0^OR`^W@X@````/MU("*=`YP0]'R&:)CH@````/ +MMH:9````@^#]@\@$B(:9````QH:;`````,:&F@````!F08-X-`!T-TC'1F`` +M````20^V0#!(.49@ZPA(QT9@`0```$B+1F!)BT3`.$B)1E!(B??H`````.L@9F:09I#_0Q1( +MBWL(Z`````!(BT,(_T@(2(G?Z`````!;PV9FD$&)TDB+1UA(BU!(3(N(D``` +M``^W0@+!X`FZ`````$'W<0B)P$C!X`1)B$)2(-_8`!T +M#T&+00S1Z(G`2,'@!$D!P(7)=#]%A=)T"XG020,`2(E&".L*B=!)`T`(2(E& +M"$&+00@IT#G(#T?!B0;'1@0`````N@````!(@\8028/`$"G!=<''1O0!```` +MN`$```##9I!(@^PH2(E<)`A(B6PD$$R)9"083(EL)"!)B?E(BU]83(MC4$B+ +M4TA,BYN0````@+^:`````709#[:'F@```(B#F@```.EH`0``9F9FD&9FD`^W +M0@)F`X>(````9HE"`DB#?V``=1%F.X.(````=2IFQT("``#K$0^W0@)F.X.( +M````#X.K````28M$)$!)B4%02<=!8`$```!(#[="`D@#@X````!)B8&````` +M00^V2Q!!BT,(P>@)#Z_(#[>#B`````^W4@(IT#G!#T?(9D&)B8@```!!QH&: +M`````$'&@9L`````3(G/Z`````#IW0```,:#F@````Q!#[:$)+@```")PH/* +M"D&(E"2X````2(N3@````$F)E"3`````9D''1"0T`@"#R`Y!B(0DN````.M^ +M1`^W0@*]`````$'!X`ET4/Q%BVL(13G%10]'Z$ACS4F+,TC!X01!BT,,T>@! +MZ$C!X`1$B>I,BQ0Q2(L$,$B)T4@YTDR)UDB)Q_.F#Y?"#Y+`.,(/A6;_____ +MQ44IZ'6QQH.:`````4@/MX.(````2`.#@````$F)A"3`````_T,42(M["$R) +MSN@`````2(M#"/]("$B)W^@`````2(M<)`A(BVPD$$R+9"083(ML)"!(@\0H +MPV9F9I!F9F:02(/L*$B)'"1(B6PD"$R)9"003(EL)!A,B70D($B)^TR+=U!, +MBV](2(NOD````&9!@WXV``^%M@(``&9!QT4"```/MH>*````@_@"#X3V`0`` +M@_@"?P^#^`$/A`4!``"0Z8L"``"#^`,/A8("``!!O`````"#?0P`=C&^```` +M`)!$B>!(BU4`2,'@!(M-"$B+!!!(A@)#Z_(#[># +MB````$$/MU4"*=`YP0]'R&:)CX@```"`CYD````$2(E?6$2)X$B)1V!(QX>P +M`````````$C'AZ@`````````28M$QCA(B4=0Z`````!!_\1!@_P!#X99____ +MZ9L!``#_3Q1(BT<(_T`(2(M_".@`````2(G'2(L#2(D'2(M#"$B)1PB+0VB) +M1VA)#[=%`D@#@X````!(B8>`````#[9-$(M%",'H"0^OR`^W@X@```!!#[=5 +M`BG0.<$/1\AFB8^(````@(^9`````DB)7UA(QX>P`````````$C'AZ@````` +M````9D&#?C0`=#=(QT=@`````$D/MD8P2#E'8',L00^W1C1(BT]@T_BH`70= +M2(U!`4B)1V!)#[9&,$@Y1V!RWNL(2,='8`````!(BT=@28M$QCA(B4=0Z``` +M``#IN````&9!@WXT``^%G0```/]/%$B+1PC_0`A(BW\(Z`````!(B<=(BP-( +MB0=(BT,(2(E'"(M#:(E':$D/MT4"2`.#@````$B)AX`````/MDT0BT4(P>@) +M#Z_(#[>#B````$$/MU4"*=`YP0]'R&:)CX@```"`CYD````"2(E?6$C'1V`` +M````2,>'L`````````!(QX>H`````````$F+1CA(B4=0Z`````#K$)#&@YH` +M```&2(G?Z`````!(BQPD2(ML)`A,BV0D$$R+;"083(MT)"!(@\0HPY"0D)!! +MN`````#!Z0-!B!)C7PD2$B)[N@`````6UU!7,-F9F:09F9FD&9F +MD(LW_\Z#_O]T*+D`````2&/&N@`0``!(BT3'"&9FD&:0B`A(_\!(_\IU]O_. +M@_[_==W#9F9FD&9F9I!F9I!F9I"+#__)@_G_="Y(8\%(BT3'"+H`````2(,X +M`'0&N`````##_\)(@\`(@?K_`0``=N;_R8/Y_W72N`$```##9F:0#[?VP>8) +M08G10<'A"8GP)?\/``#![@Q!NP`0``!F9I!%B=A!*`$2(U$.%C_PHA754B).,9`"0#&0`H`QD`+`,-F +M9F:09F:005154TF)_$B)\[T`````#[964HU"_='X`<*#^@!^)9!(8\5(B[3# +MH!(``$R)Y^@]_O___\4/ME-2C4+]T?@!PCGJ?]Q)C7PD:$B)WN@`````6UU! +M7,-F9F:09F:09F:005=!5D%505154TB#[`A)B?]!B?5)B=9!B@5````````0;P`````@'PD!P!T,40/MFPD!TECQ$C!X`1(C1PH2(V[4!,` +M`.BB_O__2(V[4!0``.B6_O__0?_$13GE?]5!O``````/ME0D!XU"_='X`<*# +M^@!^,P^V5"0'C4+]T?A$C2P"26/<1(GV3(G_Z+O\__](B83=H!(``$0!M>@5 +M``!!_\1%.>5_VTB)Z$B#Q`A;74%<05U!7D%?PV:005154TB)]4B)TXG.2(M5 +M$`^V33&)V-/H)?\!``!(BQ),C23"38L$)$V%P'1N9F:023E82'5<08"XY!4` +M``%U'T'&@.05````28M0"$F+`$B)4`A(B0)-B0!-B4`(ZR=!@+CD%0```W4= +M0<:`Y!4```!)BU`(28L`2(E0"$B)`DV)`$V)0`A!_H#E%0``3(G`ZW9-BT`8 +M387`=94/M\X/MG4P2(G:Z#;^__])B$B)?"1H2(ET)&!(B50D6$C'Q@````#H`````$B)1"102(M$)&`/MI"9```` +MB=#0Z(/P`8G!@^$!B4PD3$C'1"0X`````$B+1"1@2(.XH`````!T!?;"`70P +M2(M\)%!(@<>H````Z`````!(B40D.$B)1"1`N@$```!(B<9(BWPD8/^7J``` +M`.L12(M4)&!(BY*@````2(E4)$!(BTPD0$2+*4&^`````,=$)#0`````2(M4 +M)&!(BT)(2(G"@+BH``````^$>P$``$AC1"0T2,'@!4B+1!!(2(E$)"@/MHC@ +M%0``B$PD,SB(X14```^",P$```^V1"0S2(M4)"@X0E,/A`8!```/ML!(B=$/ +MMY2"H!4```^WA(&B%0``9HE$)!")T&;!Z`,/M\")1"0,08G708/G!T$/M\>) +MQL'F";@(````9D0I^$&)QV9$.WPD$(M$)!!$#T?X00^WQXG%P>4)2`^V1"0S +M2(M4)"A(BXS"H!(``(M4)`R)\$F)Q$P#9-$(13GN=1M(@T0D0!!(BTPD0$2+ +M*4&^`````&9F9I!F9I!$B>M$*?,YZP]'W4B+5"1`2(M""(-\)$P`=!6)VD2) +M]D@!QDR)Y^@`````ZQ-F9I!$B?>)VD@!QTR)YN@`````00'>*=UT!XG820'$ +MZY)F1"E\)!!T%/]$)`R^`````$&_"````.D^_____D0D,P^V3"0S2(M$)"@X +MB.$5```/@\W^____1"0T2(M,)&!(BU%(#[:"J````#M$)#0/CX7^__](@WPD +M.`!T%DB+?"102(''J````$B+="0XZ`````"Z`````$B+="1@2(M\)&C_5"18 +M2(/$>%M=05Q!74%>05_#9F9FD&9F9I!F9I!F9I!(@^P82(D<)$B);"0(3(ED +M)!!(B?I(BV]82(M=2("_F@````%T#0^VAYH```"(A9H```#_111(BWT(2(G6 +MZ`````!(BT4(_T@(#[:#L0```/_`B(.Q````.H.P````=4"`O9H`````=0?& +MA9H````!1`^VI9H```!(A>UT(V9FD$B+14A(BU@H1(BEF@```$B)[^@````` +M2(G=2(7;=>&02(L<)$B+;"0(3(MD)!!(@\08PV9F9I!F9I!F9I!F9I!!5D%5 +M05154TF)_$B+1Q!(BV@02,=`$`````!,BW5(0;T`````@'\P``^$E@```)!$ +MB>A)BUS$.$B%VW1V]H/8`0```71M_TT42(M%"/]`"$B+?0CH`````$B)QTB+ +M10!(B0=(BT4(2(E'"(M%:(E':$B)7U#&AY@````$#[:5F0```(/B,`^VAYD` +M``"#X,\)T(B'F0```$C'A[``````````2(EO6$'^AK````#H`````$'_Q4$/ +MMD0D,$0YZ`^':____UM=05Q!74%>PV:005154TF)_$B)\\:&Y!4```!(BU8( +M2(L&2(E0"$B)`DB),TB)#F!4```````#K +M%TB+A9@5``!(BU!(2(M!2$B+0"A(B4(H2(G/Z+%6``"%P`^$"0$``$B#NY@5 +M````=:J`N^45````#X7R````2(G?N0````"`>U(`=D9F9F:0#[;!2,'@!$@! +M^$B-D%`3``"^`````(.X4!,```!U$X-Z!`!U#8-Z"`!U!X-Z#`"0=`6^`0`` +M`(7V=3[_P3A/4G>^N`````"%P'0UQH/D%0```TB+4PA(BP-(B5`(2(D"28U$ +M)!A(BU`(2(E8"$B)`TB)4PA(B1KK,[@!````Z\?&@^05```!2(M3"$B+`TB) +M4`A(B0))C40D"$B+4`A(B5@(2(D#2(E3"$B)&DB+>T!(BT<02(-X$`!T)>B` +M/@``A?HL#<``.L.2(M[0.B5_?__9F:09I!;74%'\!4```````!(B;_X%0``2,>'`!8```````!(C;?P%0``2(M_..@` +M````2(/$",-F9F:09F:09F:02(/L.$B)7"0(2(EL)!!,B60D&$R);"0@3(ET +M)"A,B7PD,$B)^TR+?SA(Q\8`````3(G_Z`````!(B00D2(M#0$B+0!!,BZN0 +M%0``_T@(387M#X1Q`@``38ME2$&`O9@````!#X4O`0``28MM4$@/MT-028G& +M3`-S2("[XA4```%U5T&`O8H````"=41(#[9#4TB+O,.@$@``Z#+U__^%P'4N +MQH/B%0``#("-N`````H/MT4R]]A(F$@C0TA(.87`````=@M(B87`````9F9F +MD("[XA4```%T)P^V@^(5``!!B(6:````2(G>2(L\).B=_/__3(GOZ.4]``#I +M)P(``$B)WDB+/"3HA/S__T@/MT4R28N5@````$C_PD@/K\),.?!V3TG'1"1( +M`````$V)="103(GA3(GJ2(GN2(L\).AL4```A<`/A-L!``!)QT0D"`````!- +MB6PD$$G'1"08`````$R)YDR)_^@`````Z;0!``!(#[=%,D@#A<````!,.?!U +M!TR)M<````!,B>_H33T``.F/`0``00^VA"2I````_\!!B(0DJ0```$$ZA"2H +M````#X5N`0``0?:%F0````0/A(T```!!O@````!!@+PDJ`````!V;T2)\@^V +MPDC!X`5*BUP@2("[XA4```%U,$F)W[T`````@'M2`'8P9I")Z`^V^$C!YP1* +MC;P_4!,``.AJ]/___\5!.&]2=^+K#@^V@^(5``!!B(6:````2(G>2(L\).A6 +M^___0?_&13BT)*@```!WD4R)[^B1/```Z=,```!!O@````!!@+PDJ`````!V +M,T2)\@^VPDC!X`5*BUP@2("[XA4```%T#@^V@^(5``!!B(6:````0?_&13BT +M)*@```!WS4&`O9H`````=11(Q\(`````3(GN3(G_Z*SV___K<;H`````3(GN +M3(G_Z'K\___K7X"[XA4```%U,$F)W+T`````@'M2`'8TD(GH#[;X2,'G!$J- +MO"=0$P``Z(KS____Q4$X;"12=^'K$H"[XA4```)U"4B+>T#H754``$B)WDB+ +M/"3H`````*T)(P>`)#[>_B````,'G"4&)P$&!X/\/``!!B<%! +MP>D,NP`0``")V40IP3GY#T?/187;=!%)8]%$B0:X`````,/^1Q(/MD\2@_D?=Q.)\-/@A4<4#Y7`#[;`ZU1F9F:0 +M@_D_=Q*#Z2")\-/@A4($#Y7`#[;`ZSF#^5]W%(/I0(GPT^"%0@@/E<`/ML#K +M(F:0N`````"#^7]W%H/I8(GPT^"%0@P/E<`/ML!F9I!F9I"%P'2!QD<3`4R- +M1Q0/ME<2O@$```#K`_Y'$P^V1Q.-#`*#^1]W#XGPT^"%1Q0/E<`/ML#K3H/Y +M/W<6@^D@B?#3X$&%0`0/E<`/ML#K-F9FD(/Y7W<3@^E`B?#3X$&%0`@/E<`/ +MML#K&[@`````@_E_=Q&#Z6")\-/@085`#`^5P`^VP(7`=9"P`<-F9I!F9I!( +M@^PH2(D<)$B);"0(3(ED)!!,B6PD&$R)="0@2(G[3(LW2,?&`````$R)]^@` +M````28G%2(MK6$R+90`/MH.:````B$4*28.\))`5````=#!)BX0DD!4``/]` +M%$F+A"20%0``2(MX"$B)WN@`````28N$))`5``!(BT`(_T@(ZRM)BX48`0`` +M_T`428N%&`$``$B+>`A(B=[H`````$F+A1@!``!(BT`(_T@(@'T*`75N2(GO +MZ";^__^%P'02QD4*`$B)[DR)[^C#````ZV"0@'T(`75*#[9%$$$X1"13D'0^ +M.$41=3D/MO!(B?!(P>`$2HVT(%`4``!(C4T4BP8+112)!HM&!`M!!(E&!(M& +M"`M!"(E&"(M&#`M!#(E&#)#&10D"2(GN3(GWZ,'\__](BQPD2(ML)`A,BV0D +M$$R+;"083(MT)"!(@\0HPV9F9I!(@^P82(E<)`A,B60D$$F)_$B)\\9&$P#& +M1A(`2(GWZ&S]__](B=Y,B>?H$0```$B+7"0(3(MD)!!(@\08PV:02(/L*$B) +M7"0(2(EL)!!,B60D&$R);"0@2(G]28GT2(L>2(M30$@/MD803(MLPCA(@[N0 +M%0```'172(N#D!4``/](%$B+@Y`5``!(BT`(_T`(2(N#D!4``$B+>`CH```` +M`$B)QTB+@Y`5``!(BP!(B0=(BX.0%0``2(M`"$B)1PA(BX.0%0``BT!HB4=H +MZU602(N'&`$``/](%$B+AQ@!``!(BT`(_T`(2(N'&`$``$B+>`CH`````$B) +MQTB+A1@!``!(BP!(B0=(BX48`0``2(M`"$B)1PA(BX48`0``BT!HB4=H3(EO +M4$&`?"0(`740@(^9`````NL.9F9FD&9FD("/F0````1)#[9$)!)(`T-(2(F' +M@````&9!#[9$)!-FB8>(````2,>'J`````````!,B6=82,>'L`````````#H +M`````$B+7"0(2(ML)!!,BV0D&$R+;"0@2(/$*,-FD$%455-!N0````!!NP`` +M``!(B?U!O`$```#K&$&#^W]V#T2)R.E>`0``9F9FD&9FD$'_PT2)VD&#^Q]W +M$D2)X$2)V=/@A0#3X(5%"`^5P`^VP.L@N`````!!@_M_=Q6-2J!$B>/3XX5= +M#`^5P`^VP&9F9I"%P`^$<____T&X`0```$B)^D&Z`0```.L*9F9FD&9FD$'_ +MP$.-#`.#^1]W%$2)T-/@A0(/E<`/ML#K569FD&:0@_D_=Q.#Z2!$B=#3X(5" +M!`^5P`^VP.LX@_E?=Q.#Z4!$B=/3XX5:"`^5P`^VP.L@N`````"#^7]W%H/I +M8$2)T-/@A4(,#Y7`#[;`9F:09I"%P'6,1(G910'#0;H(````1(G*BQ8`0``2(F<)"@!``!(B:PD +M,`$``$R)I"0X`0``3(FL)$`!``!,B;0D2`$``$R)O"10`0``2(E\)`A)B?5( +MBRY(BUX0@'L9``^$X0```$B#>Q``=0E(B7,0Z6(!``#&0QD`2(UT)"!(B=_H +M__W__T&)QD@/MD,83(NDQ:`2``!(BT,02`^V0!A,B[S%H!(``$D/MD482(NL +MQ:`2``"[`````$0Y\P^-`P$``&9FD$ACTP^V1)0AB<'!X0D/MD24(D&)P$'! +MX`E$#[9,E"!$B<@/MM")R$B)QTD#?-<(2(E\)!!(B<9(`W35"$B)="0820-$ +MU`A(.<=U"D2)PNC-Z?__ZR!(BU0D&$B+="001(G(1`^VR(G/2P-\S`A$B<'H +M>^G____#1#GS?(3I?P```$B-="0@2(G?Z#+]__]!B<9(#[9#&$R+I,6@$@`` +M20^V11A,B[S%H!(``+L`````1#GS?4M(8],/MD24(8G!P>$)#[9$E")!B`)2`^V1)0@B-]/4ACPP^V=(01P>8)#[94A!+!X@E( +M#[9$A!")]DB)]TD#?,8(2(D\)$D#=,4(2(ET)`CH)>C____#1#GC?,.Z```` +M`$B)[DR)_^@^`@``2(N<)!@!``!(BZPD(`$``$R+I"0H`0``3(NL)#`!``!, +MB[0D.`$``$R+O"1``0``2('$2`$``,-F9I!F9I!!5T%6055!5%532('L*`(` +M`$B)?"082(GU3(LF2(M>$$B-M"0@`0``2(G?Z$#[__^)1"0$2`^V0QA)BX3$ +MH!(``$B)1"00N0````"`?2@`=B0/MG4H#[;!2`^V5"@828N4U*`2``!(B93$ +MH````/_!0#C.=^#'1"0(`````(M$)`0Y1"0(#XU+`0``9F:09I!(8T0D"`^V +ME(0A`0``P>()B50D#`^VE(0B`0``08G70<'G"40/MJ2$(`$``+D`````@'TH +M`'8O1(GB1`^VPHM\)`P/MG4H#[;!2(N4Q*````!*BUS""$B-%!](B53$(/_! +M0#C.=^"`?2@!=29$B>(/ML*+?"0,1(GZ2(MT)"!(BTPD$$@#?,$(Z`````#I +MH@```$2)XP^VTXM$)`Q(B<=(BTPD$$@#?-$(2#E\)"!U$$B+="0H1(GZZ(/F +M___K)Y!(BU0D*$B+="0@1(GC#[;#BWPD#$B+3"002`-\P0A$B?GH*N;__X!] +M*`)V2+L"````#[9%*(/X`GXZ3&-T)`A$B>!$#[;H1(MD)`QF9I!FD$J+=/0@ +M3(GG2(M4)!!*`WSJ"$2)^N@6YO___\,/MD4H.=A_W/]$)`B+3"0$.4PD"`^, +MNO[__[H`````2(GN2(M\)!CH&````$B!Q"@"``!;74%<05U!7D%?PV9FD&9F +MD$B#[!A(B1PD2(EL)`A,B60D$$F)_$B)\XG5QD8)`H/Z`1G`@^#U@\`,B$8* +MZ#_T__^`>P@#=2](BT,02(MP$$B%]G0B2,=`$`````#&1@D"@_T!&<"#X/6# +MP`R(1@I,B>?H"O3__TB+'"1(BVPD"$R+9"002(/$&,-F9F:09F:0#[96"X72 +M=$V)T$@/MH1'.!$``$B-!$!(P>`$2(U$.%B`>`D"=`JX`````,-F9F:0@'@* +M`701QD8)`@^V0`J(1@JX`````,.)T`^VE$PD!=3N`>P@#=2Q(BT,0@'@9`'0B2(-X$`!F9I!T&$C'0!`````` +MQD,)`@^VA>(5``"(0PKK"<9%5@'I&P(``$'_Q$B#PS`/MD551#G@?Z](B>_H +M=>___^G^`0``#[9#"HB%XA4``,:%XQ4```'I?/___\=$)!0`````0;\!```` +M0;P`````2(U=6(!]50`/A*$!``"`>PD`#X6N````2(G>2(GOZ,/^__^%P`^$ +MBP```,9#"0%(B6PD"$F)W4R+=3A(Q\8`````3(GWZ`````!(B<(/MD,(@_@& +M=V")P/\DQ0````!(B=Y(B=?HS/7__^M*2(G>3(GWZ._X___K/4B)WDR)]^CB +M^O__9I#K+DB)WDR)]^C3^___9F:0ZQY(BT0D",9`5P%!QD4)`D'&10H!3(GN +M3(GWZ"#R__^`>PD"=1#_1"049F:09F:0@'L)`G0+0;\`````Z<0```"`>PH! +M#X2Z````@'U7`)`/A.K^__](BT5`2`^V4Q!(BT30./:`V`$```$/A)````!! +MOP````#&0PD!QD,*`$B)+"1)B=U,BW4X2,?&`````$R)]^@`````2(G"#[9# +M"(/X!G=@B<#_),4`````2(G>2(G7Z.?T___K2DB)WDR)]^@*^/__ZSU(B=Y, +MB??H_?G__^LP2(G>3(GWZ/#Z___K(TB+!"3&0%`/CU_^__^#?"04``^%,O[__T6% +M_W01QH7B%0```4B)[^AX[?__ZP3&158!2(/$&%M=05Q!74%>05_#9F:005=! +M5D%505154TB![(@```!)B?Y(BU]`3(NGD!4``$B+?SA(Q\8`````Z`````!, +MC:C8`0``2`78`@``2(E$)%C&1"0@`$B+0Q#_0`@/MU,V28M&2$@Y@\````!W +M)&:#>S0`=`9F"U,TZQ?V@[@````"=`Y!#[9.4[@!````T^`)PF:%TG0@O0`` +M```/M\*)PJ@!=0S_Q8G0B>G3^*@!=/1!B&Y4ZP5!QD94$$'&1E4`0<:&.!$` +M``!!QD97`$'&AN(5````0<:&XQ4```!-A>0/A-X0``!!@+PDF`````$/A3H( +M``!!#[:$)(H```"#^`(/A,($``"#^`)_#H/X`0^$!P$``.E%(P``@_@#9I`/ +MA3HC``!(C5PD<$B)W^C]XO__28G:OP````!!#[=V4+L`````0;D@````0;L! +M````@_\?=S\/ML-)C12"1(G)*?DY\0]'SH/Y('4(QP+_____ZPU$B=C3X/_( +MB?G3X`D"1(G(*?@Y\',5C70^X+\`````ZP.#[R#_PX#[`W:R28N^H!(``.B5 +MX?__0;\`````08!^4@`/AJ0B``!$B?L/ML-(P>`$2HT<,$B-NU`3``#H6N+_ +M_TB-NU`4``#H3N+__TR)]^AFXO__QD`(`D2(>!#&0!$`2(M4)'!(B5`42(M4 +M)'A(B5`<0?_'13A^4G>KZ4HB``"X`0```.M:3(GWN0````!!@'Y2`'9&#[;! +M2,'@!$@!^$B-D%`3``"^`````(.X4!,```!U%X-Z!`!U$8-Z"`!U"X-Z#`!F +M9I!FD'0%O@$```"%]G6K_\$X3U)WNK@`````A$F)AE@5``!)QX9@%0`` +M`````$R)]^BMX/__QD`(`HA8$(A8$4B+5"1P2(E0%$B+5"1X2(E0'$B)Q4&` +M?E("#X?^````28V>4!4``$R)]^ATX/__QD`(!4B)6!#&0"@`28G%2(M-`/Z! +M.!$```^VL3@1``")]T@IR$B#Z%A(P?@$2+JKJJJJJJJJJD@/K\*(A'DX$0`` +M#[9%"XB$>3D1``!`B'4+0;\`````08!^4@`/AB(@``!(B=-%.'Y4='),B??H +M`>#__\9`"`%$B'@01(AX$4B+5"1P2(E0%$B+5"1X2(E0'$$/ME4H#[;*1HA\ +M*1C_PD&(52A)BU4`_H(X$0``#[:R.!$``(GQ2"G02(/H6$C!^`1(#Z_#B(1* +M.!$``$$/MD4+B(1*.1$``$&(=0M!_\=%.'Y2#X=[____Z94?``!!OP````!! +M@'Y2``^&A!\``$F-GE`5``!)O*NJJJJJJJJJ13A^5`^$N@```$R)]^A1W___ +MQD`(`42(>!!$B'@12(M4)'!(B5`42(M4)'A(B5`<2(E$)%!,B??H)M___\9` +M"`-(B5@01(AX&$F)Q4B+$/Z".!$```^VLC@1``")\4B+1"102"G02(/H6$C! +M^`1)#Z_$B(1*.!$``$$/MD4+B(1*.1$``$&(=0M(BU4`_H(X$0``#[:R.!$` +M`(GQ3(GH2"G02(/H6$C!^`1)#Z_$B(1*.!$```^V10N(A$HY$0``0(AU"T'_ +MQT4X?E(/AR_____IG1X``+@!````ZU5,B?>Y`````$&`?E(`=D$/ML%(P>`$ +M2`'X2(V04!,``+X`````@[A0$P```'42@WH$`'4,@WH(`'4&@WH,`'0%O@$` +M``"%]G6P_\$X3U)WO[@`````A!!$B'@12(M4)'!(B5`42(M4)'A(B5`<2(E$)%!,B??HS-O_ +M_\9`"`-(B5@01(AX&$F)Q4B+$/Z".!$```^VLC@1``")\4B+1"102"G02(/H +M6$C!^`1(#Z_%B(1*.!$``$$/MD4+B(1*.1$``$&(=0M)BU4`_H(X$0``#[:R +M.!$``(GQ2(M$)$A(*=!(@^A82,'X!$@/K\6(A$HX$0``00^V10N(A$HY$0`` +M08AU"T'_QT4X?E(/ARS____I0!L``+@!````Z7T```!F9I!F9I!-A>0/A(P( +M``!!#[:$))D```"H`@^$>P@``*@(#X2Y````3(GWN0````!!@'Y2`'9!#[;! +M2,'@!$@!^$B-D%`3``"^`````(.X4!,```!U$H-Z!`!U#(-Z"`!U!H-Z#`!T +M!;X!````A?9UA?_!.$]2=[^X`````(7`=&!)QX:0%0```````$R)]DR)X4F# +MOI@5````="E)BU0D2$F+AI@5``!(BT!(2(M`*$B)0BA)BX:8%0``2(M`2$R) +M8"CK"4F+1"1(3(E@*$B)CI@5``!!_H;E%0``Z;H'``!%#[:^X!4``$4XON$5 +M```/@E(!``!%.'Y3#X0X`0``1(G[1`^VXTR)XTC!XP1,`>M(B=_H[=G__TF) +MV4,/MY2FH!4``$,/M[RFHA4``+L`````0;H@````0;L!````9F9FD&9FD(/Z +M'W<_#[;#28TT@42)T2G1.?D/1\^#^2!U",<&_____^L-1(G8T^#_R(G1T^`) +M!D2)T"G0.?AS%8U\%^"Z`````.L#@^H@_\.`^P-VLD2)^P^VTTC!X@1*C00R +M2(VP4!0``(N(4!0``/?1B4PD<(M&!/?0B40D=(M&"/?0B40D>(M&#/?0B40D +M?$B+?"182(TT.DP!ZB,*B0Z+0@0C1"1TB48$BT(((T0D>(E&"(M"#"-$)'R) +M1@Q%.'Y4=32X`````(,^`'42@WX$`'4,@WX(`'4&@WX,`'0%N`$```"%P+@! +M````#[94)"`/1="(5"0@0?_'13B^X14```^#KO[__X!\)"``#X2S!0``2(U\ +M)'#HJ=C__T&_`````$&`?E(`=EI%.'Y4=$M%.'Y39I!T0T2)^0^VT4C!X@1, +M`?)(C8I0$P``BT0D<`N"4!,``(E$)'"+1"1T"T$$B40D=(M$)'@+00B)1"1X +MBT0D?`M!#(E$)'Q!_\=%.'Y2=Z9-#[9&5$R)P$C!X`1(BUPD6$R-!!B+="1P +M02,PB70D8(M,)'1!(T@$B4PD9(M4)'A!(U`(B50D:(M$)'Q!(T`,B40D;/?6 +MB70D/?0B40D?$$C,(ET)'!!(T@$B4PD=$$C4`B)5"1X +M02-`#(E$)'Q,B??HW]?__\9`"`!(B40D0+@`````@WPD<`!U%8-\)'0`=0Z# +M?"1X`'4'@WPD?`!T!;@!````A<`/A*H!``!!#[9&5$&(AF@5``!(BT0D<$F) +MAE`5``!(BT0D>$F)AE@5``!!QH9I%0```4G'AF`5````````0;\`````08!^ +M4@`/A@H"``!)C:Y0%0``13A^5`^$/P$``$4XON`5``!W#T4XON$5``!R!D4X +M?E-U+4R)]^@OU___QD`(`42(>!!$B'@12(M4)'!(B5`42(M4)'A(B5`<2(E$ +M)%#K4D2)^`^VV$C!XP1(`UPD6(M$)'`)`XM$)'0)0P2+1"1X"4,(BT0D?`E# +M#$R)]^C8UO__QD`(`42(>!!$B'@12(L32(E0%$B+4PA(B5`<2(E$)%!,B??H +ML-;__\9`"`-(B6@01(AX&$F)Q4B+$/Z".!$```^VLC@1``")\4B+1"102"G0 +M2(/H6$C!^`1(OZNJJJJJJJJJ2`^OQXB$2C@1``!!#[9%"XB$2CD1``!!B'4+ +M13A^4W5$2(M,)$!(BQ'^@C@1```/MK(X$0``B?%,B>A(*=!(@^A82,'X!$@/ +MK\>(A$HX$0``2(M<)$`/MD,+B(1*.1$``$"(J_O__Z:@` +M``!!OP````!!@'Y2``^&EP```$4XON`5```/AWT```!%.+[A%0```$2`-$)%BZ`````(,X`'44@W@$`'4.@W@(`'4( +M@W@,`&:0=`6Z`0```(72=#)$B?D/MME(P>,$2`-<)%A,B??H?M7__\9`"`%$ +MB'@01(AX$4B+$TB)4!1(BU,(2(E0'$'_QT4X?E(/AVG___^X`````(-\)&`` +M=16#?"1D`'4.@WPD:`!U!X-\)&P`=`6X`0```(7`#X0X%0``10^V9E1%B*:( +M%0``2(M$)&!)B89P%0``2(M$)&A)B89X%0``0<:&B14```!)QX:`%0`````` +M`$$/MEY33(GWZ.34___&0`@!B%@01(A@$4B+5"1@2(E0%$B+5"1H2(E0'$B) +M1"1(O0````!!OP````!!@'Y2``^&O!0``$V-IG`5``!%.'Y4#X1F`0``13A^ +M4P^$7`$``$$/MEY33(GWZ(34___&0`@!1(AX$(A8$4B+5"1@2(E0%$B+5"1H +M2(E0'$B)1"102(L0_H(X$0``#[:R.!$``(GQ2(M$)$!(*=!(@^A82,'X!$B_ +MJZJJJJJJJJI(#Z_'B(1*.!$``$B+7"10#[9#"XB$2CD1``!`B',+2(7M=#I( +MBQ/^@C@1```/MK(X$0``B?%(B>A(*=!(@^A82,'X!$@/K\>(A$HX$0``#[9# +M"XB$2CD1``!`B',+00^V7E-,B??HR]/__\9`"`-,B6`0B%@828G%2(G%2(L0 +M_H(X$0``#[:R.!$``(GQ2(M$)%!(*=!(@^A82,'X!$B_JZJJJJJJJJI(#Z_' +MB(1*.!$``$$/MD4+B(1*.1$``$&(=0M)BU4`_H(X$0``#[:R.!$``(GQ2(M$ +M)$A(*=!(@^A82,'X!$@/K\>(A$HX$0``00^V10N(A$HY$0``08AU"T'_QT4X +M?E(/AX/^___I,Q,``&9FD$4/MK[@%0``13B^X14```^"&Q,``$4X?E-T:42) +M^@^VPDC!X`1(`T0D6+H`````@S@`=1*#>`0`=0R#>`@`=0:#>`P`=`6Z`0`` +M`(729F:0=#)$B?D/MME(P>,$2`-<)%A,B??HM]+__\9`"`%$B'@01(AX$4B+ +M$TB)4!1(BU,(2(E0'$'_QT4XON$5``!SA>F;$@``08!^5`\/AN()``!(C7PD +M<.A6TO__QD0D/P!!OP````!!@'Y2``^&GP```$4X?E,/A(@```!$B?L/ML-( +MP>`$3`'P2(V04!,``+D`````@[A0$P```'46@WH$`'40@WH(`'4*@WH,`&9F +M9I!T!;D!````A"-$)&B)00B+1"1\(T0D;(E!#+@`````@SD`=1*#>00`=0R#>0@`=0:# +M>0P`=`6X`0```(7`=&M$B?@/MMA(P>,$2`-<)%A,B??HM,___\9`"`%$B'@0 +M1(AX$4B+$TB)4!1(BU,(2(E0'$F+50#^@C@1```/MK(X$0``B?%(*=!(@^A8 +M2,'X!$D/K\2(A$HX$0``00^V10N(A$HY$0``08AU"T2)^@^VPDC!X`1*C80P +M4!,``+H`````@S@`=1:#>`0`=1"#>`@`=0J#>`P`9F9FD'0%N@$```"%TG1W +M1(GY#[;92(G82,'@!$J-G#!0$P``3(GWZ`C/___&0`@"1(AX$$2(>!%(BQ-( +MB5`42(M3"$B)4!Q(B<5(BQ#^@C@1```/MK(X$0``B?%(BT0D0$@IT$B#Z%A( +MP?@$20^OQ(B$2C@1```/MD4+B(1*.1$``$"(=0M!_\=%.'Y2#X8$2HT$-DB-B%`4``"+D%`4``#WTHE4)&"+ +M003WT(E$)&2+00CWT(E$)&B+00SWT(E$)&Q(BTPD6$B-'`XC5"1PB1.+1"1T +M(T0D9(E#!(M$)'@C1"1HB4,(BT0D?"-$)&R)0PQ,B??H\LW__\9`"`-(BWPD +M&$B)>!!$B'@828G%2(M$)$!(BQ#^@C@1```/MK(X$0``B?%,B>A(*=!(@^A8 +M2,'X!$D/K\2(A$HX$0``2(M\)$`/MD<+B(1*.1$``$"(=PNX`````(,[`'42 +M@WL$`'4,@WL(`'4&@WL,`'0%N`$```"%P'1R1(GX#[;82(G82,'@!$B+5"18 +M2(T<$$R)]^A7S?__QD`(`42(>!!$B'@12(L32(E0%$B+4PA(B5`<28M5`/Z" +M.!$```^VLC@1``")\4@IT$B#Z%A(P?@$20^OQ(B$2C@1``!!#[9%"XB$2CD1 +M``!!B'4+1(GY#[;!2,'@!$J-A#!0$P``N@````"#.`!U$H-X!`!U#(-X"`!U +M!H-X#`!T!;H!````A=)T?$2)^`^VV$B)V$C!X`1*C9PP4!,``$R)]^BOS/__ +MQD`(`D2(>!!$B'@12(L32(E0%$B+4PA(B5`<2(G%2(L0_H(X$0``#[:R.!$` +M`(GQ2(M$)$!(*=!(@^A82,'X!$D/K\2(A$HX$0``#[9%"XB$2CD1``!`B'4+ +M9F:09I!!_\=%.'Y2#X?3_?__Z4X,``!!#[9>4TR)]^@QS/__QD`(`8A8$(A8 +M$4B+5"1P2(E0%$B+5"1X2(E0'$B)1"1(00^V7E-,B??H`\S__\9`"`*(6!"( +M6!%(BU0D<$B)4!1(BU0D>$B)4!Q(B<5,B??HW,O__\9`"`9(B40D0$B+30#^ +M@3@1```/MKDX$0``B?Y(BT0D0$@IR$B#Z%A(P?@$2+JKJJJJJJJJJD@/K\*( +MA'$X$0``#[9%"XB$<3D1``!`B'T+0;\`````08!^4@`/AHL+``!%.'Y3#X3! +M`@``1(GZ#[;"2,'@!$P!\$B-D%`3``"Y`````(.X4!,```!U$H-Z!`!U#(-Z +M"`!U!H-Z#`!T!;D!````A(A$HX$0``00^V +M10N(A$HY$0``08AU"TF+50#^@C@1```/MK(X$0``B?%(BT0D4$@IT$B#Z%A( +MP?@$2`^OQXB$2C@1``!!#[9%"XB$2CD1``!!B'4+2(M$)$!(BQ#^@C@1```/ +MMK(X$0``B?%,B>A(*=!(@^A82,'X!$@/K\>(A$HX$0``2(M<)$`/MD,+B(1* +M.1$``$"(4TR)]^C*R?__QD`(!(A8($2(>"%)BY0D4!,``$B)4!!( +MBWPD$$B+5PA(B5`828G%2(L0_H(X$0``#[:R.!$``(GQ2(M$)$A(*=!(@^A8 +M2,'X!$B[JZJJJJJJJJI(#Z_#B(1*.!$``$$/MD4+B(1*.1$``$&(=0M(BWPD +M0$B+%_Z".!$```^VLC@1``")\4R)Z$@IT$B#Z%A(P?@$2`^OPXB$2C@1```/ +MMD<+B(1*.1$``$"(=PM,B??H%!%(BY-0$P``2(E0%$F+5"0(2(E0'$'_QT4X?E(/AW#_ +M___I^0<``$B-?"1PZ+_'__],B??HU\?__\9`"`9(B40D0$&_`````$&`?E(` +M#X8:`0``13A^4P^$`P$``$2)^@^VPDC!X`1,`?!(C9!0$P``N0````"#N%`3 +M````=1.#>@0`=0V#>@@`=0>#>@P`D'0%N0$```"%R0^$P0```$2)^0^VP4C! +MX`1*C2PP2(V=4!,``(M$)'`+A5`3``")1"1PBT0D=`M#!(E$)'2+1"1X"T,( +MB40D>(M$)'P+0PR)1"1\13A^5'1W3(GWZ!_'___&0`@"1(AX$$2(>!%(BY50 +M$P``2(E0%$B+4PA(B5`<2(G%2(L(_H$X$0``#[:Y.!$``(G^2(M$)$!(*$B)4!Q(B<5(BPC^@3@1```/MKDX$0``B?Y(BT0D0$@IR$B# +MZ%A(P?@$2+JKJJJJJJJJJD@/K\*(A'$X$0``#[9%"XB$<3D1``!`B'T+20^V +M=E1(B?=(B?!(P>`$2HVT,%`4``"+!O?0B40D8(M6!/?2B50D9(M."/?1B4PD +M:(MV#/?61(M,)'!$("'1B4PD:(M$)'PA +MQHET)&Q(P><$2HV\-U`4``!$(P]$B4PD<$0C1P1$B40D="-7"(E4)'@C1PR) +M1"1\N`````!%A!A(BUPD0$B+$_Z".!$```^VLC@1 +M``")\4@IT$B#Z%A(P?@$2`^OQ8B$2C@1```/MD,+B(1*.1$``$"( +M4TR)]^@HP___QD`(`8A8$(A8$4B+5"1@2(E0%$B+5"1H2(E0'$B)1"1(O0`` +M``!!OP````!!@'Y2``^&`0,``)!%.'Y4#X3F`@``13A^4P^$W`(``$2)^0^V +MP4C!X`1(BUPD6$B--!A,`?!(C8A0$P``BU0D8".04!,``(D6BT0D9"-!!(E& +M!(M$)&@C00B)1@B+1"1L(T$,B48,N`````"#/@!U$H-^!`!U#(-^"`!U!H-^ +M#`!T!;@!````A0@`='!(BTD(2(NYV````$&Y`````$B%_P^$D@```$@Y3P@/A8@```"`?R@` +M="),#[91,$R+GY@```!,B=BZ`````$GW\DPYP'8B@'\H`'5@2`^V23!(B[^8 +M````2(GXN@````!(]_%,.P@"#X?1````]H#8 +M`0```0^%@````,:&Y!4```!(BU8(2(L&2(E0"$B)`DB)-DB)=@A(@WX0`'0F +M2(-^&`!T#$B+5AA(BT802(E"$$B+5A!(BT882(D"2,=&$`````!,B>?H&K[_ +M_TB#>Q``=&-F9I!(BWL02(M'2$B+0"A(B4,0QH>:`````N@`````2(-[$`!U +MW>L[QH;D%0```DB+1@A(BQ9(B4((2(D028M'"$F)=PA,B3Y(B48(2(DP_H;E +M%0``2(GWZ$;9___K#69F9I!,.>T/A=K]__](@\0(6UU!7$%=05Y!7\-F9F:0 +M9F9FD$%7059!54%455-(@^P(28G\B70D!$&^`````$B+;PA(C4<(2#GH#X1' +M`0``9F9FD$B)[DB+34`/MD52_\A(F$F)P$P/KT5(2(-Y"`!T?HWKK__TB+;0!)C40D&$@YZ`^%PO[__T0[="0$@5``!(@WT0`'0F2(-]&`!T#$B+51A(BT402(E"$$B+5A!(BT88 +M2(D"2,=&$`````!,B>?H5[K__T0[="0$Y(BVT`2(M&0/:`V`$```$/A+@```!(BT`0@W@(`@^'J@```$B) +M\;L`````@'Y2`'9+9F9FD#A94W0[#[;#2,'@!$@!R$B-D%`4``"#N%`4``#_ +M=1.#>@3_=0V#>@C_=0>#>@S_D'0.N`````#K$V9F9I!F9I#_PSA94G>YN`$` +M``"%P&:0=$;&AN05```"2(M&"$B+%DB)0@A(B1!)BT4(28EU"$R)+DB)1@A( +MB3#^AN45``!(B??H"=7__\=$)`0`````3#G]#X4P____1#MT)`1S#;X````` +M3(GGZ%3Y__]$B?!(@\0(6UU!7$%=05Y!7\-FD%532(/L"$B)_4B+/TC'Q@`` +M``#H`````$F)P$B+4!A(C4`82#G0#X1^````28G!D$@Y:D!U;$B)U[L````` +M@'I2`'9!#[;#2,'@!$@!^$B-B%`3``"^`````(.X4!,```!U$H-Y!`!U#(-Y +M"`!U!H-Y#`!T!;X!````A?9U&O_#.%]2=[^X`````(7`=!2X`0```.FE```` +MN`$```!F9I#KZ$B+$DDYT76&28M0*$F-0"A(.=`/A'T```!)B:````"^@`````2(G?Z`````!;PV9F +M9I!F9F:09F9FD$%7059!54%455-(@^Q(2(E\)$!(B?6)5"0\2,?&`````$B+ +M/^@`````2(E$)#!(QT0D$`````!(BU0D0$R+`P````&:)1"0N28.^H`````!T%$$/MH:9````@^`!#[;` +M.T0D/'5?N`````!)@[ZH``````^$1@(``$B+1"0P2`6H````2(D$)$B)Q^@` +M````2(E$)!!(B<.+5"0\2(G&3(GW0?^6J````(7`=1](BW0D$$B+/"3H```` +M`+@`````Z?H!``!)BYZ@````O@````!(BU0D0$2+2F"_`````&9F9I!F9I!( +M#[=$)"Y(BU0D($R-!!!%.

D`$```=;%!#[?%B<'!X0F+$XG0*?`Y +MR'(IB?!(`T,(2(E%"(E-`,=%!`````!(@\40`$)9F:09I"+$XG0*?`YR'?FB=`I\"G!2(/#$+X`````Z^5F +M9I!FD&9%*>]T:6;'1"0N``!!_\1$.V0D&`^4P`^VP$$!Q$B+5"0(#[9",$0Y +MX'4GBT0D&/_(@WPD&``/1$0D'(E$)!B%P`^4P$0/MN!(#[=",D@!1"0@2(M$ +M)`A$#[=H,F9%.?T/AEG^__]%B?WI4?[__\=%]`$```!(@WPD$`!T%DB+?"0P +M2(''J````$B+="00Z`````"X`0```$B#Q$A;74%<05U!7D%?PV9F9I!F9F:0 +M55-(@^P(2(GZ2(M?6$B+:TB`OYH````!=`T/MH>:````B(.:````_T,42(M[ +M"$B)UN@`````2(M#"/]("`^VA;$```#_P(B%L0```#J%L````'5`@+N:```` +M`'4'QH.:`````0^V@YH````\`0^5PCP&#Y7`#[;2A=!T$("[F@````-T!\:# +MF@````M(B=_H`````$B#Q`A;7<-F9I!FD$%7059!54%455-(@^PH2(E\)"!( +MBQ](Q\8`````2(G?Z`````!(B40D&$B+1"0@3(MH2$B+4%!(B50D$/:`F0`` +M``0/A(P'``!!O@````!!@+VH``````^$!0<``$ECQDC!X`5*BVPH2$0/MJ7@ +M%0``1#BEX14```^")`$``&:01#AE4P^$"`$``$2)X0^VP4B)PDC!X@1,C8PJ +M4!,```^WE(6@%0``#[>\A:(5``"[`````$&Z(````$&[`0```(/Z'W<_#[;# +M28TT@42)T2G1.?D/1\^#^2!U",<&_____^L-1(G8T^#_R(G1T^`)!D2)T"G0 +M.?AS%8U\%^"Z`````.L#@^H@_\.`^P-VLD2)X@^VPDB)PDC!X@1,C8PJ4!0` +M``^WE(6@%0``#[>\A:(5``"[`````$&Z(````$&[`0```(/Z'W<_#[;#28TT +M@42)T2G1.?D/1\^#^2!U",<&_____^L-1(G8T^#_R(G1T^`)!D2)T"G0.?AS +M%8U\%^"Z`````.L#@^H@_\.`^P-VLD'_Q$0XI>$5```/@][^__](BT0D(/:` +MF0````@/A)H%``!(BU0D$$B+@M@```!(ATA:`5``!FA?8/A!L!``!(P>`$3(V4*%`3 +M``!!N``````/M_Z[`````$&[(````$&_`0```$&#^!]W1`^VPTF-%()$B=E$ +M*<$Y^0]'SX/Y('4(QP+_____ZPY$B?C3X/_(1(G!T^`)`D2)V$0IP#GX!$#[;03(G02,'@!$R-E"A0%``` +M0;@`````#[?^NP````!!NR````!!OP$```!!@_@?=T0/ML-)C12"1(G91"G! +M.?D/1\^#^2!U",<"_____^L.1(GXT^#_R$2)P=/@"0)$B=A$*<`Y^',80HU\ +M!^!!N`````#K!$&#Z"#_PX#[`W:K#[?61(GA#[;!2(N\Q:`2``"^`````.C\ +MK___0;P`````@+W@%0````^&)P0``$0X95,/A%`!``!$B>(/ML)(P>`$2`'H +M2(V04!0``+D`````@[A0%````'42@WH$`'4,@WH(`'4&@WH,`'0%N0$```"% +MR0^%#P$``$2)X0^VP4C!X`1,C8PH4!,``+\`````#[=U4+L`````0;H@```` +M0;L!````9I"#_Q]W/P^VPTF-%(%$B=$I^3GQ#T?.@_D@=0C'`O_____K#42) +MV-/@_\B)^=/@"0)$B=`I^#GP!$ +M#[;(3(G(2,'@!$R-C"A0%```OP`````/MW50NP````!!NB````!!NP$```!F +MD(/_'W<_#[;#28T4@42)T2GY.?$/1\Z#^2!U",<"_____^L-1(G8T^#_R(GY +MT^`)`D2)T"GX.?!S%8UT/N"_`````.L#@^\@_\.`^P-VLD2)X@^VPDB+O,6@ +M$@``Z`^N__]!_\1$.*7@%0``#X>6_O__Z;@"``!$#[:EX14``$2)X`^VR`^W +MA(V@%0``B<9F`[2-HA4``&8Y=5`/AA4!``!(B`$3(V4*%`3```/M]8/ +MMWU0*=>[`````$&[(````$&_`0```(/Z'W=!#[;#38T$@D2)V2G1.?D/1\^# +M^2!U"4''`/_____K#D2)^-/@_\B)T=/@00D`1(G8*=`Y^',5C7P7X+H````` +MZP.#ZB#_PX#[`W:P1(G@1`^VT$R)T$C!X`1,C90H4!0```^WU@^W?5`IU[L` +M````0;L@````0;\!````@_H?=T$/ML--C02"1(G9*=$Y^0]'SX/Y('4)0<<` +M_____^L.1(GXT^#_R(G1T^!!"0!$B=@IT#GX$/ML%(B[S%H!(``.@[K?__0?_$1#AE4@^&;`$` +M`$0X95,/A%4!``!$B>(/ML)(P>`$2`'H2(V04!0``+D`````@[A0%````'44 +M@WH$`'4.@WH(`'4(@WH,`&:0=`6Y`0```(7)#X42`0``1(GA#[;!2,'@!$R- +MC"A0$P``OP`````/MW50NP````!!NB````!!NP$```!F9I!FD(/_'W<_#[;# +M28T4@42)T2GY.?$/1\Z#^2!U",<"_____^L-1(G8T^#_R(GYT^`)`D2)T"GX +M.?!S%8UT/N"_`````.L#@^\@_\.`^P-VLD2)X$0/MLA,B`$3(V,*%`4 +M``"_``````^W=5"[`````$&Z(````$&[`0```&:0@_\?=S\/ML-)C12!1(G1 +M*?DY\0]'SH/Y('4(QP+_____ZPU$B=C3X/_(B?G3X`D"1(G0*?@Y\',5C70^ +MX+\`````ZP.#[R#_PX#[`W:R1(GB#[;"2(N\Q:`2``#H3ZO__T'_Q$0X95(/ +MAY3^__]!_\9!#[:%J````$0Y\`^/^_C__TB+3"00@+G<`0```G022(M$)"#V +M@)D````(#X22`P``0;X`````08"]J`````!T-$ECQDC!X`5*BVPH2$C'A9`5 +M````````2(GN2(M\)!CHVK+__T'_QD$/MH6H````1#GP?\Q(BWPD(.@0]/__ +MZ7`#``!(BU0D(/:"F0````(/A"T#``!(BTPD$(-Y-``/A1X#``!(BT0D&$@% +M.`$``$B)1"0(3(M\)!A)@<>X`0``N0````"Z(````$R)^(@(2/_`2/_*=?9! +MO@````!!@+VH``````^$"P$``$ECQDC!X`5*BVPH2$B)[[D`````@'U2`'90 +M#[;!2,'@!$@!^$B-D%`3``"^`````(.X4!,```!U$H-Z!`!U#(-Z"`!U!H-Z +M#`!T!;X!````A?:0=`ZX`0```.L39F9FD&9FD/_!.$]2=["X`````(7`9I`/ +MA5X"``!$#[:EX!4``$0XI>$5``!R;40X95-T6T2)X0^VT69!@SQ7`'4E2`^W +MA)6@%0``2`-%2$B+3"0(2(D$T0^WA)6B%0``9D&)!%?K*$2)X`^VT`^WA)6@ +M%0``9@-%2&8#A)6B%0``2(M,)`AF*P319D&)!%=!_\1$.*7A%0```5``!!B(6R````#[9%4T&(A;,```!( +M#[:%X!4```^WA(6@%0``9D&)A<````!(#[:%X!4```^WA(6B%0``9D&)A<(` +M``!!QH6P`````$'&A;$`````ZTE(BU5(23N5N````'8\2(M,)!`/MT$R]]A( +MF$@APDDCA;@```!(.<)U($@/MI7@%0``00^WA<(```!F`X25HA4``&9!B87" +M````2(GN2(M\)!CH9[#__T'_QD$/MH6H````1#GP#X\?____2(G?Z`````!! +MO`````!(BT0D$(!X,``/ANL```!$B>(/MNIF08,\;P`/A)0```!(BTPD$$B+ +M7.DX2(M$)"#_2!1(BU0D($B+0@C_0`A(BWH(Z`````!(B<=(BTPD($B+`4B) +M!TB+00A(B4<(BT%HB4=H0?Z%L````$$/MP1O9HF'B````$B+5"0(2(L$ZDB) +MAX````"`CYD````"2,>'J`````````!(QX>P`````````$B)7U!(B4]82(EO +M8.@`````0?_$2(M,)!!$.&$P#X=(____ZS%!O@````!!@+VH`````'0A26/& +M2,'@!4J+?"A(Z"O$__]!_\9!#[:%J````$0Y\'_?2(/$*%M=05Q!74%>05_# +M9F9FD&9F9I!F9F:005=!5D%505154TB#[!A(B=-(BVY(3(MV4$&Y`````$4/ +MMV8R9D&!_($`N(````!$#T/@1(GB9L'J`P^WTH72N`$````/1-!%#[9^,$&- +M1_W1^$$!QT0/K_J`OI@````!=2#&A:@````!3(U-2$B+0Q!)B4$(9D6)81!$ +MB?CIZ@$``$@/ME,B2(L#2(G1N@````!(]_%!B=-)#[96,$B+0PA(B=&Z```` +M`$CW\0^V0R(HT(A$)!=!.,-!@-O_00^W5C*-0O\/MTL8(<&)UF8ISF8YUT;D&]`````&9%.68R=BVZ``````^VA:@```!!B<*#^`!^&4ACPDC! +MX`5,C4PH2$DY>0AT.__"03G2?^`?"07`$$/E,-)#[=&,D@!0Q!!O0$` +M``#K#F9%.68RN`$```!$#T?H#[=S(&9!.W8R#X:N_O__00^W=C+II/[__XM$ +M)!!(@\086UU!7$%=05Y!7\-F9I!FD$B#[`A(B?"%TG05QH::````"TB)]^CF +M[?__ZRAF9F:02(MV2$C'1C``````2(E&.$C'1D``````2(/&,$B+..@````` +M2(/$",-F9F:09F:0059!54%455-)B?U(BS](Q\8`````Z`````!)B<9)BVU( +M0;P`````@+VH`````'0Q26/<2,'C!4@!ZP^W2UA)BW502(M34$R)]^C2IO__ +M2(E#2$'_Q`^VA:@```!$.>!_STR)[^@W`P``6UU!7$%=05[#9F9FD&9F9I!F +M9I!F9I!(@^P(28G228G)0;@`````@+FH``````^$B0```$ECP$C!X`5*C7P( +M2$B+5A!(BT<(#[9.,=/H)?\!``!(BQ)(BPS"2(7)=!U(BT<(2#E!2'0+2(M) +M&$B%R77MZPA(B0](A9F:09F:00?_(26/`2,'@!4K'1`A(```` +M`$6%P'_HN/_____II@```$'_P$$/MH&H````1#G`#X]W____0;@`````08"Y +MJ`````!T=4ECP$C!X`5*BTP(2("YY!4```%U)<:!Y!4```!(BU$(2(L!2(E0 +M"$B)`DB)"4B)20CK+&9F9I!F9I"`N>05```#=1S&@>05````2(M1"$B+`4B) +M4`A(B0)(B0E(B4D(_H'E%0``0?_`00^V@:@```!$.Y,B>_H +M`````&9F9I!(BUPD,$B+;"0X3(MD)$!,BVPD2$R+="102(/$6,-FD%532(/L +M"$B)^TB++TC'Q@````!(B>_H`````$B)PDR+2TA!N`````!!@+FH`````'1V +M26/`2,'@!4J+=`A(@+[D%0```G512(GW2(G92(.^F!4```!T*$B+4TA(BX:8 +M%0``2(M`2$B+0"A(B4(H2(N&F!4``$B+0$A(B5@HZPA(BT-(2(E8*$B)CY@5 +M``"X`0```.EH`0``0?_`00^V@:@```!$.2(GOZ+NB___K)$B+:````#>@`````2(-[$`!UW5O#9F9FD&9F9I!F +M9I!32(G[2,?&`````$B+/^@`````2(M;$$B-N(@```#H`````$B)`[C_____ +M2(,[`'0>N0````"Z`!```$B+`V:0B`A(_\!(_\IU]K@`````6\-F9F:09F9F +MD&9F9I!F9I!!54%455-(@^P(28G]2(L_2,?&`````.@`````2(G%28M%$$B# +M.``/A*D```!!O`````!)BT4026/42(L`2(LTT$B%]G1B@+[D%0```W4AQH;D +M%0```$B+5@A(BP9(B5`(2(D"2(DV2(EV".L?9F:0QH;D%0```$B+5@A(BP9( +MB5`(2(D"2(DV2(EV"$C'1A``````2(M>&$B)[^BPGO__2(G>2(7;=9Y!_\1! +M@?S_`0``#X9[____28M%$$B-O8@```!(BS#H`````$F+11!(QP``````2(/$ +M"%M=05Q!7<-F9F:09F9FD&9F9I!F9I!(@^P(N0````"^`````(!_,`!T+D&X +M`0````^V5S!FD(G(2(M$QSA(A&BY50```+H(%@``3(GF +MZ`````!(C7M(N4X'``"Z"`$``$R)YN@`````2(V[B````+D(````N@`0``!, +MB>;H`````$B-NZ@```"Y`0```+H@`0``3(GFZ`````#H`````$B-N^@```"Y +M&`,``(G"3(GFZ`````!(C;O(````0;@!````N0`0``"Z`!```$R)YN@````` +M2(/$"%M!7,-F9F:09F:005132(/L"$F)_$C'Q@````#H`````$B)PTR)($B- +M0`A(B4,(2(E#$$B-0QA(B4,82(E#($B-0RA(B4,H2(E#,$B-0SA(B4,X2(E# +M0(N3\````$B-L^@```!,B>?H`````$B)@Q@!``!(C;,0`0``2(V[R````.@` +M````2(F#"`$``$B)FR`!``!(QX,H`0```````$B-LR`!``!,B>?H`````$B# +MQ`A;05S#9F:09I!32,?&`````.@`````2(G#2(NP&`$``$B-N.@```#H```` +M`$B+DQ`!``!(B[,(`0``2(V[R````.@`````6\.02(/L"$C'QP````#H```` +M`+@`````2(/$",.0D)"0D)!32(GS2,?&`````.@`````2(G'N0$```"Z(`$` +M`$B)WN@`````6\-F9I!F9I!F9I!32,?&`````.@`````2(G#2(G'Z`````!( +MB4,@6\-FD$B#[`A(Q\8`````Z`````!(B<=(BW`@Z`````!(@\0(PV9F9I!F +M9F:09F9FD&9FD$B#[#A(B5PD"$B);"003(ED)!A,B6PD($R)="0H3(E\)#!) +MB?Q)B?:)5"0$2(MO6$R+;4A(BYV@````0;\2````2,?&`````$B+/^@````` +M2(M0($B%VW03#[:%F0```(/@`0^VP#M$)`1U-$B)TTB#O:@`````=!>+5"0$ +M2(G>2(GO_Y6H````A()BPLYRG8V9F9FD&9FD$D/MD4(23E$)&!U%$B+`TF)!DB+0PA) +MB48(28/&$&:0*P0`=`]! +MQT8$`0```+@!````ZRI!QT8$`````$F#QA!(@\,00?_/1(GZ2,'B!$B)WDR) +M]^@`````N`$```!(BUPD"$B+;"003(MD)!A,BVPD($R+="0H3(M\)#!(@\0X +MPV9F9I!54TB#[`A(B?I(BU]82(MK2`^V3V"X_O___]/`9B%%#H"_F@````%T +M#0^VAYH```"(@YH```#_0Q1(BWL(2(G6Z`````!(BT,(_T@(9H-]#@!U&("[ +MF@````!U!\:#F@````%(B=_H`````$B#Q`A;7<-F9F:09F9FD&9FD&9FD$B+ +M3DA`.'D(=18/MT$*9HF"B````$B+`4B)@H````###[=!#&:)@H@```!(QX*` +M`````````,-F9I!F9I!F9I!33(M&2$R+CH````!$#[>6B````+L`````N0`` +M``"`?S``#X2,````10^WVHG(2(M4QSA,.4H8=F=-B0A!B$@(N`$```#3X$$/ +MMW`."<9F08EP#DN-!`M(.T(8=C6[`0```(U!`4&(0`G_P8G8T^")P8GP"%J``````` +M``!,B6582(E=8$B)ZDR)YHM\)`SH%?W__TB)[^@`````0?_&13AW,`^'4O__ +M_TB+7"082(ML)"!,BV0D*$R+;"0P3(MT)#A,BWPD0$B#Q$C#9F9FD&9FD&9F +MD&9FD$B#[`A(Q\<`````Z`````"X`````$B#Q`C#```````````````````` +M`````````%)O8VME=%)!240@,C,R>"!3051!($-O;G1R;VQL97(````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M``````````````````````````````!D979I8V4@9&ES8V]N;F5C=&5D(&]N +M(&-H86YN96P@6R5D+"5D70``8VAA;FYE;"!;)60L)61=.B!F86EL960@=&\@ +M<&5R9F]R;2!3;V9T(%)E#4P.'@````````````````````` +M`````````````Q$@(P`````!`0`````````````#$2(C``````$!```````` +M``````(````````````````````````````````````````````````````B +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M`````````````````````````````````````````0`````````````````` +M`````@``(`(``$`"``!@`@``@`(``*`"``#``@``X`(`_P`````````````` +M``````````````````````````````````````$````@```````````````` +M```````````````````````````````````````````````````````````` +M````````````````````````````````````_P`````````````````````` +M```````!_P`````````````````````````````"_P`````````````````` +M```````````#_P`````````````````````````````$_P`````````````` +M```````````````%_P`````````````````````````````&_P`````````` +M```````````````````'_P`````````````````````````````*_P`````` +M```````````````````````+_P`````````````````````````````,_P`` +M```````````````````````````-_P`````````````````````````````. +M_P`````````````````````````````/_P`````````````````````````` +M```0_P`````````````````````````````1_P`````````````````````` +M```````2_P`````````````````````````````3_P`````````````````` +M```````````8_P`````````````````````````````9_P`````````````` +M```````````````:_P`````````````````````````````=_P`````````` +M```````````````````>_P`````````````````````````````?_P`````` +M```````````````````````@_P`````````````````````````````A_P`` +M```````````````````````````B_P`````````````````````````````C +M_P`````````````````````````````D_P`````````````````````````` +M```E_P`````````````````````````````I_P`````````````````````` +M```````J_P`````````````````````````````K_P`````````````````` +M```````````L_P`````````````````````````````M_P`````````````` +M```````````````N_P`````````````````````````````O_P`````````` +M``````````````````!D_P`````````````````````````````P_P`````` +M``````````````````````!F_P````````````````````````````!G_P`` +M``````````````````````````#_____```````````````````````````` +M```````````````````````````````$```````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````%`0``*``````````````` +M&``````````````````````````````````````````````````````````` +M```````````````````````````````````````````````&``$````````` +M```$````!``````````````````````````````````````````````````` +M```````````````````````````````````````````````````````(`0$! +MV`,````````8````R``````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```'````*```````````````$``````````````````````````````````` +M```````````````````````````````````````````````````````````` +M%``````````!``%X$`P'")`!````````%````!P```````````````(````` +M````)````#0``````````````.4`````````1`XP6(\"C@.-!(P%@P8``"0` +M``!<``````````````!Y`````````$0.($Z,`H8#@P0````````4````A``` +M````````````1@`````````L````G```````````````EP````````!"#A!" +M#AA!#B!!#BB#!88$C`.-`@`````D````S```````````````A`````````!! +M#A!!#AB#`X8"````````%````/0```````````````8`````````%`````P! +M``````````````8`````````'````"0!`````````````&X`````````00X0 +M@P(````L````1`$`````````````EP$```````!"#A!"#AA!#B!!#BA$#C"# +M!88$C`.-`@`<````=`$`````````````@P````````!!#A"#`@```"0```"4 +M`0````````````"I`````````$(.$$$.&$0.((,#C`(````<````O`$````` +M````````B`````````!!#A"#`@```!0```#<`0````````````"'```````` +M`"0```#T`0````````````"/`0```````$$.$$$.&$0.((,#A@(````4```` +M'`(`````````````]P`````````<````-`(`````````````8`````````!! +M#A"#`@```!0```!4`@`````````````=`````````"0```!L`@`````````` +M``"%!````````$0.4%Z/`HX#C02,!88&@P```` +M`````$0.$```````'````/P$`````````````-0`````````1`X@2H8"@P,4 +M````'`4`````````````$P`````````L````-`4`````````````<`$````` +M``!'#I`!88\"C@.-!(P%A@:#!P`````````D````9`4`````````````L``` +M``````!$#C!/C`*&`X,$````````)````(P%`````````````#D!```````` +M1`Y`7H\"C@.-!(P%A@:#!R0```"T!0`````````````Y`0```````$0.0%Z/ +M`HX#C02,!88&@PCP*.`XT$ +MC`6&!H,')`````0&`````````````$H!````````1`Y07H\"C@.-!(P%A@:# +M!R0````L!@````````````#X`````````$0.4%Z/`HX#C02,!88&@P<<```` +M5`8`````````````K`````````!$#A```````!P```!T!@`````````````. +M`````````$0.$```````'````)0&``````````````X`````````1`X0```` +M```<````M`8`````````````O`````````!!#A"#`@```!P```#4!@`````` +M```````:`````````$0.$```````%``````````!``%X$`P'")`!```````` +M%````!P``````````````"8`````````)````#0``````````````&,````` +M````0@X000X800X@@P2&`XP"`!P```!<```````````````X`````````$$. +M$(,"````'````'P``````````````!T`````````00X0@P(````4````G``` +M````````````P`(````````4````M```````````````'0$````````D```` +MS```````````````R@````````!$#F!>CP*.`XT$C`6&!H,')````/0````` +M`````````),!````````1`YP7H\"C@.-!(P%A@:#!R0````<`0`````````` +M``#S`0```````$0.4%Z/`HX#C02,!88&@P<<````1`$`````````````>@`` +M``````!$#A```````"0```!D`0````````````!G`0```````$$.$$$.&$0. +M((,#A@(````<````C`$`````````````5P$```````!!#A"#`@```"0```"L +M`0````````````"!`0```````$0.4%F.`HT#C`2&!8,&```D````U`$````` +M````````;`$```````!"#A!!#AA!#B"#!(8#C`(`/````/P!```````````` +M`,D`````````0@X00@X80@X@0@XH00XP00XX1`YP@P>&!HP%C02.`X\"```` +M`````"0````\`@`````````````Y`0```````$0.*%.-`HP#A@2#!0`````D +M````9`(`````````````R`````````!$#C!4C@*-`XP$@P4`````/````(P" +M`````````````(P!````````0@X00@X80@X@0@XH00XP00XX1`Y`@P>&!HP% +MC02.`X\"`````````!0```#,`@`````````````/`````````!0```#D`@`` +M``````````#H`````````!0```#\`@````````````!"`````````!0````4 +M`P````````````!M`````````"0````L`P````````````"4`````````$$. +M$$$.&(,#A@(````````<````5`,`````````````8`````````!$#AA)A@*# +M`Q0```!T`P`````````````H`````````"0```",`P````````````#*```` +M`````$0.*%.-`HP#A@2#!0`````<````M`,`````````````7@````````!$ +M#AA)A@*#`R0```#4`P````````````"P`````````$0.*%..`HT#C`2#!0`` +M```T````_`,`````````````>`````````!"#A!"#AA"#B!!#BA!#C"#!H8% +MC`2-`XX"`````````"0````T!`````````````!:`````````$(.$$$.&(,# +MC`(````````<````7`0`````````````10````````!!#A"#`@```!0```!\ +M!``````````````>`````````!0```"4!``````````````>`````````"0` +M``"L!`````````````!&`@```````$0.,%B.`HT#C`2&!8,&```L````U`0` +M````````````"P,```````!"#A!"#AA!#B!!#BA$#C"#!88$C`.-`@`4```` +M!`4`````````````%``````````4````'`4`````````````"P`````````4 +M````-`4`````````````"P`````````<````3`4`````````````8``````` +M``!$#B!*A@*#`QP```!L!0````````````!=`````````$0.&$F&`H,#/``` +M`(P%`````````````-(`````````0@X00@X80@X@0@XH00XP00XX1`Y`@P>& +M!HP%C02.`X\"`````````"0```#,!0````````````#A`````````$0.,%B. +M`HT#C`2&!8,&```4````]`4`````````````Z``````````4````#`8````` +M````````/``````````<````)`8`````````````/0````````!$#A`````` +M`!P```!$!@````````````!&`````````$$.$(,"````%````&0&```````` +M`````!T`````````)````'P&`````````````*8`````````1`X@3HP"A@.# +M!````````!P```"D!@`````````````O`````````$$.$(,"````'````,0& +M`````````````%@`````````1`X828P"@P,T````Y`8`````````````)P$` +M``````!"#A!"#AA"#B!"#BA!#C!!#CB#!X8&C`6-!(X#CP(``"0````CP*.`XT$C`6& +M!H,'%````#P"`````````````+H`````````%``````````!``%X$`P'")`! +M````````'````!P``````````````'X`````````1`X0```````<````/``` +M````````````"P$```````!!#A!$#E"#`AP```!<```````````````T```` +M`````$0.$```````'````'P``````````````*H`````````00X01`Y0@P(4 +M``````````$``7@0#`<(D`$````````4````'```````````````$P`````` +M```4````-```````````````#``````````L````3```````````````NP`` +M``````!"#A!"#AA!#B!!#BB#!88$C`.-`@`````4````?``````````````` +M-0`````````4````E```````````````#``````````D````K``````````` +M````CP````````!!#A!'#M`!@P(`````````)````-0``````````````,H` +M````````0@X000X800X@@P2&`XP"`!0```#\```````````````K```````` +M`!0````4`0`````````````D`````````!0````L`0````````````!````` +M`````!0```!$`0`````````````G`````````"P```!<`0````````````!F +M`0```````$(.$$(.&$$.($$.*$0.D`&#!88$C`.-`B0```",`0`````````` +M```R`0```````$(.$$$.&$$.((,$A@.,`@`<````M`$`````````````.P`` +M``````!!#A"#`@```"0```#4`0````````````#I`````````$(.$$$.&$$. +M((,$A@.,`@`D````_`$`````````````A`````````!$#B!.C`*&`X,$```` +M````)````"0"`````````````-4`````````0@X000X800X@@P2&`XP"`#P` +M``!,`@````````````!'`0```````$(.$$(.&$(.($(.*$$.,$$..$0.L`&# +M!X8&C`6-!(X#CP(````````L````C`(`````````````T0````````!"#A!" +M#AA!#B!!#BA$#C"#!88$C`.-`@`D````O`(`````````````[P````````!! +M#A!!#AA$#B"#`X8"````%````.0"`````````````"X`````````'````/P" +M`````````````%``````````00X0@P(````D````'`,`````````````4@`` +M``````!$#B!.C`*&`X,$````````'````$0#`````````````!<````````` +M1`X0```````<````9`,`````````````&0````````!$#A```````!P```"$ +M`P`````````````>`````````$0.$```````)````*0#`````````````%$` +M````````0@X000X800X@@P2&`XP"`!P```#,`P`````````````H```````` +M`$$.$(,"````)````.P#`````````````($`````````00X000X81`X@@P.& +M`@```!P````4!``````````````^`````````$$.$(,"````)````#0$```` +M`````````#4!````````0@X000X800X@@P2&`XP"`#P```!&!HP%C02.`X\" +M````````+`````0!`````````````&(`````````0@X000X800X@1`Z``8,$ +MA@.,`@``````)````#0!`````````````!,!````````00X000X81`Z``8,# +MA@(``"0```!<`0`````````````_`0```````$$.$$$.&$0.@`&#`X8"```\ +M````A`$`````````````,@$```````!"#A!"#AA"#B!"#BA!#C!!#CA'#N`! +M@P>&!HP%C02.`X\"````````%````,0!`````````````-H`````````%``` +M`-P!`````````````$,`````````%````/0!`````````````!T````````` +M)`````P"`````````````+@!````````00X000X8@P.&`@```````!0````T +M`@````````````!X`````````!0```!,`@````````````#O`````````!P` +M``!D`@````````````#%`0```````$$.$(,"````)````(0"```````````` +M`.@`````````00X000X8@P.&`@```````"0```"L`@````````````#E```` +M`````$$.$$$.&(,#A@(````````4````U`(`````````````.P`````````D +M````[`(`````````````8P$```````!!#A!!#AB#`X8"````````+````!0# +M`````````````,,!````````0@X000X800X@1P[``8,$A@.,`@``````+``` +M`$0#`````````````!T"````````0@X000X800X@1P[``8,$A@.,`@`````` +M)````'0#`````````````+0`````````00X000X81`X@@P.&`@```"0```"< +M`P````````````"J`````````$$.$$$.&$0.((,#A@(````D````Q`,````` +M````````ZP````````!"#A!!#AA!#B"#!(8#C`(`/````.P#```````````` +M`!@"````````0@X00@X80@X@0@XH00XP00XX1P[0!(,'A@:,!8T$C@./`@`` +M`````!0````L!`````````````"0`````````!0```!$!`````````````"T +M`````````#P```!&!HP%C02.`X\"```````` +M)````-P$`````````````-X`````````1`XP6(X"C0.,!(8%@P8``#P````$ +M!0`````````````4`P```````$(.$$(.&$(.($(.*$$.,$$..$0.4(,'A@:, +M!8T$C@./`@`````````4````1`4``````````````@`````````<````7`4` +M````````````90````````!$#A```````!P```!\!0````````````#2```` +M`````$$.$(,"````'````)P%`````````````#(`````````1`X0```````< +M````O`4`````````````A@````````!$#A```````!P```#&!HP%C02.`X\"````````%````%P&`````````````',````` +M````%````'0&`````````````',`````````)````(P&`````````````.,( +M````````1`XP6(X"C0.,!(8%@P8``#0```"T!@`````````````'`0`````` +M`$(.$$(.&$(.($$.*$$.,(,&A@6,!(T#C@(`````````)````.P&```````` +M`````)T`````````0@X000X800X@@P2&`XP"`"0````4!P````````````"V +M`````````$$.$$$.&$0.((,#A@(````<````/`<`````````````20`````` +M``!!#A"#`@```"0```!&!HP%C02.`X\" +M`````````!P```#\"0`````````````<`````````$$.$(,"````)````!P* +M`````````````*D#````````1`Y07H\"C@.-!(P%A@:#!Q0```!$"@`````` +M``````#/`````````"0```!<"@````````````!Y`````````$(.$$$.&$$. +M((,$A@.,`@`L````A`H`````````````9`````````!"#A!"#AA!#B!!#BB# +M!88$C`.-`@`````<````M`H`````````````6P````````!$#B!*C`*#`QP` +M``#4"@`````````````Q`````````$0.$```````)````/0*```````````` +M`/\`````````1`XP5(X"C0.,!(,%`````!P````<"P````````````!.```` +M`````$0.($J&`H,#)````#P+`````````````(<`````````1`X@3HT"C`.# +M!````````"0```!D"P````````````":`0```````$0.,%2-`HP#A@2#!0`` +M```<````C`L`````````````%0````````!$#A```````"0```"L"P`````` +M```````U`@```````$(.$$$.&$$.((,$A@.,`@`L````U`L````````````` +M'P(```````!"#A!"#AA!#B!!#BA$#C"#!88$C`.-`@`<````!`P````````` +M````:@````````!$#A```````!0````D#`````````````"5`````````"0` +M```\#``````````````&`0```````$0.($Z,`H8#@P0````````<````9`P` +M````````````+0````````!$#A```````"0```"$#``````````````_`0`` +M`````$0.0%Z/`HX#C02,!88&@P<<````K`P`````````````<0````````!$ +M#B!*C`*#`RP```#,#``````````````F`0```````$(.$$(.&$$.($$.*$0. +M,(,%A@2,`XT"`!0```#\#``````````````5`````````!P````4#0`````` +M```````T`````````$0.$```````%````#0-`````````````!4````````` +M'````$P-`````````````$X`````````1`X@2HP"@P,4````;`T````````` +M````%0`````````<````A`T`````````````00````````!!#A"#`@```!0` +M``"D#0`````````````5`````````!P```"\#0````````````!!```````` +M`$$.$(,"````%````-P-`````````````!4`````````'````/0-```````` +M`````$0`````````00X0@P(````4````%`X`````````````*``````````< +M````+`X`````````````60````````!$#B!*C`*#`QP```!,#@`````````` +M```U`````````$$.$(,"````'````&P.`````````````%T`````````00X0 +M@P(````<````C`X`````````````-0````````!!#A"#`@```!P```"L#@`` +M``````````!=`````````$$.$(,"````'````,P.`````````````#4````` +M````00X0@P(````<````[`X`````````````70````````!!#A"#`@```!P` +M```,#P````````````!^`````````$0.&$F&`H,#)````"P/```````````` +M`*$`````````1`XP5(X"C0.,!(,%`````"0```!4#P````````````"_```` +M`````$0.*%.-`HP#A@2#!0`````<````?`\`````````````.@````````!$ +M#A```````"0```"<#P````````````"I`````````$0.*%.-`HP#A@2#!0`` +M```<````Q`\`````````````.@````````!$#A```````!0```#D#P`````` +M```````5`````````"0```#\#P````````````!U`````````$$.$$$.&$0. +M@`&#`X8"```4````)!``````````````.P`````````D````/!`````````` +M````S`````````!$#C!4C0*,`X8$@P4`````)````&00`````````````*D` +M````````1`XH4XT"C`.&!(,%`````!P```",$``````````````Z```````` +M`$0.$```````)````*P0`````````````-L`````````1`XH4XT"C`.&!(,% +M`````!P```#4$``````````````Z`````````$0.$```````'````/00```` +M`````````-\`````````1`X@2H8"@P,<````%!$`````````````.@`````` +M``!$#A```````!0````T$0`````````````5`````````!P```!,$0`````` +M```````[`````````$$.$(,"````'````&P1`````````````&X````````` +M1`X8288"@P,D````C!$`````````````4`````````!$#B!.C`*&`X,$```` +M````'````+01`````````````&X`````````1`X8288"@P,D````U!$````` +M````````4`````````!$#B!.C`*&`X,$````````'````/P1```````````` +M`&X`````````1`X8288"@P,D````'!(`````````````4`````````!$#B!. +MC`*&`X,$````````'````$02`````````````&X`````````1`X8288"@P,D +M````9!(`````````````3P````````!$#B!.C`*&`X,$````````'````(P2 +M`````````````&X`````````1`X8288"@P,D````K!(`````````````3P`` +M``````!$#B!.C`*&`X,$````````'````-02`````````````&X````````` +M1`X8288"@P,D````]!(`````````````3P````````!$#B!.C`*&`X,$```` +M````'````!P3`````````````*X`````````1`X8288"@P,<````/!,````` +M````````[0$```````!!#A"#`@```!P```!<$P````````````"````````` +M`$0.&$F&`H,#'````'P3`````````````#H`````````1`X0```````<```` +MG!,`````````````@`````````!$#AA)A@*#`QP```"\$P`````````````Z +M`````````$0.$```````)````-P3``````````````&!HP%C02.`X\"```` +M````'````%07`````````````&,`````````00X0@P(````<````=!<````` +M````````.`````````!$#A```````!P```"4%P````````````!9```````` +M`$$.$(,"````)````+07`````````````*T`````````0@X000X800X@@P2& +M`XP"`!P```#<%P````````````!,`````````$$.$(,"````'````/P7```` +M`````````"H`````````00X0@P(````4````'!@`````````````!P`````` +M```<````-!@`````````````E@````````!$#D```````!P```!4&``````` +M``````"3`````````$$.$(,"````)````'08`````````````"P!```````` +M1`XP5(T"C`.&!(,%`````!0```"<&``````````````'`````````!0````` +M`````0`!>!`,!PB0`0```````!0````<``````````````#B`````````!P` +M```T``````````````!U`````````$0.&$F&`H,#%````%0````````````` +M`&D`````````'````&P``````````````%@`````````00X0@P(````D```` +MC```````````````1P(```````!!#A!!#AA$#B"#`X8"````'````+0````` +M`````````,H`````````1`X0```````4````U```````````````'0`````` +M```4````[```````````````"P`````````\````!`$`````````````/`,` +M``````!"#A!"#AA"#B!"#BA!#C!!#CA$#F"#!X8&C`6-!(X#CP(````````` +M'````$0!`````````````#<`````````00X0@P(````D````9`$````````` +M````&!HP%C02.`X\"```````` +M`"0```#,`0````````````#]`````````$$.$$$.&$0.((,#A@(````D```` +M]`$`````````````;0$```````!$#C!4C0*,`X8$@P4`````%``````````! +M``%X$`P'")`!````````%````!P``````````````+D`````````'````#0` +M`````````````",!````````00X0@P(````\````5```````````````/P<` +M``````!"#A!"#AA"#B!"#BA!#C!!#CA'#M`$@P>&!HP%C02.`X\"```````` +M%````)0``````````````#$`````````+````*P``````````````,P"```` +M````0@X00@X800X@00XH1PZP!(,%A@2,`XT"'````-P``````````````!H` +M````````00X0@P(````D````_```````````````IP````````!!#A!!#AA$ +M#B"#`X8"````)````"0!`````````````'4`````````0@X000X800X@@P2& +M`XP"`!0```!,`0````````````"!`````````#P```!D`0`````````````/ +M`0```````$(.$$(.&$(.($(.*$$.,$$..$0.0(,'A@:,!8T$C@./`@`````` +M```D````I`$`````````````Y0````````!"#A!!#AA!#B"#!(8#C`(`)``` +M`,P!`````````````*H`````````1`X@3HP"A@.#!````````"0```#T`0`` +M``````````"E`0```````$(.$$$.&$$.((,$A@.,`@`4````'`(````````` +M````C@`````````D````-`(`````````````MP````````!!#A!!#AA$#B"# +M`X8"````)````%P"`````````````"4!````````1`X@3HP"A@.#!``````` +M`"0```"$`@````````````!?`````````$$.$$$.&$0.((,#A@(````4```` +M``````$``7@0#`<(D`$````````4````'```````````````$P`````````< +M````-```````````````5P````````!$#A```````!P```!4```````````` +M```5`````````$0.$```````'````'0``````````````!4`````````1`X0 +M```````D````E```````````````Z0````````!"#A!!#AA!#B"#!(8#C`(` +M'````+P``````````````$8`````````00X0@P(````4``````````$``7@0 +M#`<(D`$````````<````'```````````````)0````````!$#A```````!P` +M```\```````````````U`````````$$.$(,"````'````%P````````````` +M`"4`````````1`X0```````D````?```````````````N0````````!!#A!! +M#AA$#B"#`X8"````'````*0``````````````!H`````````1`X0```````4 +M``````````$``7@0#`<(D`$````````<````'```````````````)P`````` +M``!!#A"#`@```!P````\```````````````>`````````$$.$(,"````'``` +M`%P``````````````"$`````````1`X0```````\````?``````````````` +M#@$```````!"#A!"#AA"#B!"#BA!#C!!#CA$#D"#!X8&C`6-!(X#CP(````` +M````)````+P``````````````'(`````````00X000X81`X@@P.&`@```!0` +M``#D``````````````"&`````````!P```#\``````````````#\```````` +M`$$.$(,"````)````!P!`````````````$,"````````1`Y07H\"C@.-!(P% +MA@:#!QP```!$`0`````````````:`````````$0.$```````%``````````! +M``%X$`P'")`!````````'````!P``````````````'L`````````1`X0```` +M```<````/```````````````5@````````!$#A```````!P```!<```````` +M``````")`````````$$.$(,"````)````'P``````````````(P!```````` +M1`X@3HP"A@.#!````````"0```"D``````````````!_`P```````$0.0%Z/ +M`HX#C02,!88&@P<<````S```````````````&@````````!$#A```````!0` +M``#L``````````````",`````````"0````$`0````````````"E`0`````` +M`$0.,%B.`HT#C`2&!8,&```<````+`$`````````````O0$```````!!#A"# +M`@```!0```!,`0````````````">`````````"0```!D`0````````````#H +M`0```````$0.,%2-`HP#A@2#!0`````D````C`$`````````````'`,````` +M``!$#C!8C@*-`XP$A@6#!@``%``````````!``%X$`P'")`!````````%``` +M`!P``````````````#``````````%````#0``````````````#`````````` +M+````$P``````````````%$`````````0@X00@X800X@00XH1`XP@P6&!(P# +MC0(`)````'P``````````````$4`````````0@X000X800X@@P2&`XP"`!0` +M``"D```````````````R`````````!0```"\```````````````]```````` +M`!0```#4``````````````!C`````````!0```#L```````````````<```` +M`````!0````$`0`````````````I`````````"0````<`0````````````!6 +M`````````$(.$$$.&$$.((,$A@.,`@`\````1`$`````````````'@$````` +M``!"#A!"#AA"#B!"#BA!#C!!#CA$#D"#!X8&C`6-!(X#CP(`````````)``` +M`(0!``````````````T!````````0@X000X800X@@P2&`XP"`#P```"L`0`` +M``````````"2`@```````$(.$$(.&$(.($(.*$$.,$$..$0.L`&#!X8&C`6- +M!(X#CP(````````D````[`$`````````````LP````````!$#B!.C`*&`X,$ +M````````-````!0"`````````````,X`````````0@X00@X80@X@00XH00XP +M@P:&!8P$C0..`@`````````D````3`(`````````````I0$```````!"#A!! +M#AA!#B"#!(8#C`(`+````'0"`````````````'0`````````0@X00@X800X@ +M00XH1`XP@P6&!(P#C0(`'````*0"`````````````#8`````````1`X0```` +M```D````Q`(`````````````2@,```````!$#D!>CP*.`XT$C`6&!H,''``` +M`.P"`````````````#4`````````1`X0```````<````#`,````````````` +MH@````````!!#A"#`@```!0````L`P`````````````:`0```````"0```!$ +M`P````````````!,`0```````$0.,%B.`HT#C`2&!8,&```<````;`,````` +M````````/@````````!$#B!*C`*#`R0```",`P````````````!>`0`````` +M`$0.,%2-`HP#A@2#!0`````D````M`,`````````````C`$```````!"#A!! +M#AA!#B"#!(8#C`(`+````-P#`````````````/H!````````1P[@`G"/`HX# +MC02,!88&@P<`````````+`````P$`````````````/H`````````1P[0`G"/ +M`HX#C02,!88&@P<`````````/````#P$`````````````/H!````````0@X0 +M0@X80@X@0@XH00XP00XX1P[@!(,'A@:,!8T$C@./`@```````"0```!\!``` +M``````````!Y`````````$0.($Z,`H8#@P0````````4````I`0````````` +M````6P`````````\````O`0`````````````G0(```````!"#A!"#AA"#B!" +M#BA!#C!!#CA$#E"#!X8&C`6-!(X#CP(`````````/````/P$```````````` +M`&HD````````0@X00@X80@X@0@XH00XP00XX1P[``8,'A@:,!8T$C@./`@`` +M`````#P````\!0````````````!H`@```````$(.$$(.&$(.($(.*$$.,$$. +M.$0.0(,'A@:,!8T$C@./`@`````````\````?`4`````````````3@0````` +M``!"#A!"#AA"#B!"#BA!#C!!#CA$#D"#!X8&C`6-!(X#CP(`````````)``` +M`+P%`````````````$0!````````00X000X81`X@@P.&`@```!P```#D!0`` +M``````````!4`````````$$.$(,"````/`````0&`````````````!@#```` +M````0@X00@X80@X@0@XH00XP00XX1`Z``8,'A@:,!8T$C@./`@```````"0` +M``!$!@````````````";`````````$$.$$$.&$0.((,#A@(````\````;`8` +M````````````5`L```````!"#A!"#AA"#B!"#BA!#C!!#CA$#F"#!X8&C`6- +M!(X#CP(`````````/````*P&`````````````'L"````````0@X00@X80@X@ +M0@XH00XP00XX1`Y0@P>&!HP%C02.`X\"`````````!P```#L!@`````````` +M``!)`````````$0.$```````-`````P'`````````````'(`````````0@X0 +M0@X80@X@00XH00XP@P:&!8P$C0..`@`````````<````1`<````````````` +M/0$```````!$#A```````"0```!D!P````````````#>`0```````$0.8%F. +M`HT#C`2&!8,&```D````C`<`````````````!P(```````!!#A!!#AA$#B"# +M`X8"````'````+0'`````````````#4`````````00X0@P(````<````U`<` +M````````````40````````!!#A"#`@```"P```#T!P````````````#A```` +M`````$(.$$(.&$$.($$.*$0.,(,%A@2,`XT"`!P````D"`````````````!6 +M`````````$0.$```````'````$0(`````````````#H`````````00X0@P(` +M```D````9`@`````````````N0````````!"#A!!#AA$#B"#`XP"````)``` +M`(P(`````````````*L`````````0@X000X81`X@@P.,`@```!P```"T"``` +M```````````_`````````$$.$(,"````'````-0(`````````````!H````` +M````1`X0```````4``````````$``7@0#`<(D`$````````<````'``````` +M````````)P````````!!#A"#`@```!P````\```````````````>```````` +M`$$.$(,"````'````%P``````````````"$`````````1`X0```````D```` +M?```````````````C`$```````!$#D!>CP*.`XT$C`6&!H,')````*0````` +M`````````'(`````````00X000X81`X@@P.&`@```!0```#,```````````` +M```W`````````!P```#D``````````````"X`````````$$.$(,"````)``` +M``0!`````````````","````````1`Y07H\"C@.-!(P%A@:#!QP````L`0`` +M```````````:`````````$0.$````````$=#0SH@*$=.52D@,RXT+C(@6T9R +M965"4T1=(#(P,#0P-S(X``!'0T,Z("A'3E4I(#,N-"XR(%M&`$```(``0`03P````````L# +M````````B@$```(``0#@6@```````(0"````````J`$```(``0#P7@`````` +M`&4`````````Q`$```(``0"P80```````"T`````````WP$```(``0``5``` +M`````.$`````````]@$```(``0`@5@```````#T`````````#@(```(``0"` +M5P```````"\`````````)P(```(``0!04@````````L`````````.@(```(` +M`0#0;0```````*(`````````0P(```(``0"`3````````!X`````````6`(` +M``(``0`06````````"00```(``0"`=@````````L!````````E00```(``0#` +M7P```````"H`````````M00```(``0#`8````````+<`````````R@0```(` +M`0"`G````````(@$````````Y`0```(``0#`0P$``````#\'````````]`0` +M``$`"P`P``````````@`````````!`4```(``0!@EP```````$`````````` +M&04```(``0#05@$``````%\`````````,04```(``0#0V@```````',````` +M````004```(``0"@50$``````"4!````````4@4```(``0"`C0```````$D` +M````````8@4```(``0#@5`$``````+<`````````=@4```(``0"@4@$````` +M`*4!````````C`4```(``0#PK0```````.\`````````H@4```$`"P`X```` +M``````0`````````L`4```$`"P`@``````````@`````````N@4```(``0!` +MB````````"D!````````S04```(``0#@K@```````,4!````````Y04```(` +M`0!0>P```````"0`````````^04```(``0`@C0```````%H`````````#@8` +M``(``0`@.@$``````#P#````````%@8```(``0!05`$``````(X````````` +M)08```(``0#@E0```````'T!````````.08```(``0`0FP```````%(````` +M````1P8```(``0`@D````````&@`````````7`8```(``0`0E````````'0` +M````````;08```(``0!PCP```````"P`````````A`8```(``0`0G``````` +M`&L`````````GP8```(``0"PH0```````#T!````````LP8```$`"P`\```` +M``````$`````````R`8```(``0#PC@```````'T`````````V`8```(``0"` +M-`$```````<`````````\08```(``0`PB@```````",`````````^@8```(` +M`0#`>0```````(\`````````%@<```(``0#P40$``````*H`````````+`<` +M``(``0``F````````,0"````````/P<```(``0`0,@$``````)8````````` +M2@<```(``0`PR````````-(`````````7`<```(``0"@HP```````$8````` +M````9P<``!``````````````````````````?P<``!`````````````````` +M````````A@<``!(``0`PW0$``````!H`````````G@<``!(``0"P5P$````` +M`!4`````````M@<``!``````````````````````````R@<``!(``0``A@`` +M`````"@`````````W0<``!(``0#P>P```````&8!````````]0<``!(``0"@ +MB@```````"\`````````#0@``!(``0!05P$``````%<`````````)P@``!(` +M`0"P>0````````P`````````/P@``!(``0"@?@```````#L`````````5P@` +M`!``````````````````````````P```````"<`````````M@@``!(``0!0,@```````!H` +M````````U`@``!(``0"`A0```````!X`````````Z0@``!(``0!@?0`````` +M`#(!``````````D``!(``0``40$``````.4`````````'@D``!(``0`P3@$` +M`````*<`````````.0D``!``````````````````````````3PD``!(``0"0 +MA````````%``````````9@D``!(``0!`HP```````%0`````````@@D``!`` +M````````````````````````EPD``!``````````````````````````J@D` +M`!``````````````````````````OPD``!(``0#@6`$``````$8````````` +MU0D``!(``0`0.@$```````L`````````[PD``!(``0!PB0```````((````` +M````!0H``!(``0!0UP$``````!H`````````'@H``!(``0``-@$``````&D` +M````````-@H``!``````````````````````````3@H``!(``0#`A@`````` +M`#X`````````8@H``!$`"P`H``````````@`````````<@H``!(``0#0B@`` +M`````*P`````````BPH``!(``0`PA@```````($`````````G0H``!(``0!` +M9P$``````!H`````````M@H``!``````````````````````````R@H``!(` +M`0``,@$```````<`````````XPH``!(``0`@>P```````"L`````````$@L` +M`!``````````````````````````*@L``!(``0#0,0$``````"H````````` +M.PL``!``````````````````````````3PL``!`````````````````````` +M````8PL``!``````````````````````````=PL``!(``0!`A0```````!<` +M````````E`L``!(``0"06@$``````!H`````````L0L``!(``0!P-@$````` +M`%@`````````QPL``!``````````````````````````W@L``!(``0#@3@$` +M`````'4`````````^@L``!(``0!@/0$``````#<`````````#PP``!`````` +M````````````````````(`P``!``````````````````````````.`P``!(` +M`0#05P$``````!4`````````4`P``!``````````````````````````9`P` +M`!(``0`@B@````````\`````````@0P``!(``0!0>@```````,H````````` +MG0P``!(``0"@>`````````P`````````M@P``!(``0"00@$``````",!```` +M````UPP``!(``0``AP```````#4!````````[PP``!(``0"P>````````+L` +M````````!@T``!(``0!@B@```````#(`````````(`T``!`````````````` +M````````````.`T``!(``0!P>0```````#4`````````40T``!`````````` +M````````````````9@T``!(``0!@A````````"X`````````?0T``!(``0`P +M5P$``````!,`````````G`T``!(``0"0@@```````-$`````````O0T``!`` +M````````````````````````T@T``!``````````````````````````\`T` +M`!(``0!@A0```````!D`````````%@X``!(``0``B@```````!$````````` +M,0X``!(``0"@8`$``````!H`````````2@X``!`````````````````````` +M````7@X``!(``0"`-0$``````'4`````````=@X``!`````````````````` +M````````D@X``!(``0"@/0$``````',`````````J`X``!$`!P"``0`````` +M``$`````````Q0X``!(``0!P@P```````.\`````````W0X``!(``0#P.0$` +M`````!T`````````\PX``!(``0#@A````````%(`````````$P\``!`````` +M````````````````````*P\``!(``0!`@0```````$````````!,`````````<0\``!(``0#000$``````+D``````````&UV +M4W1O&5C=71E3F]N541- +M04-O;6UA;F0`;793871A0V]N9FEG=7)E0VAA;FYE;`!M=E-T;W)A9V5$979! +M5$%)9&QE26UM961I871E`&UV16YA8FQE075T;T9L=7-H`&UV4V%T85-H=71D +M;W=N061A<'1E<@!"965P3V9F`'!R;V1U8W1?:60`71E`'-X +M-3`X>%]F;&%S:%]A8V-E&5C=71E3F]N541-04-O;6UA;F0`;793 +M871A1FQU0!V9&5V7V-L87-S7VQI7,`;&1M7W%U975E7V5V96YT`'1R86YS9F]R +M;5]N965D960`'5P7V%R5]B971W965N7W-P:6YU<`!U;G!L=6=?0!R%]L9&U?9V5T7V-M9%]S:7IE`')R,C,R>%]I;FET7VUO9'5L95]H:6U? +M%]L9&U?9G)E95]C;61S`')R,C,R>%]L9&U?8W)E871E +M7W9D978`6YC7V%R%]?7VQD;5]A;&QO8U]C;60`%]O%]?7V1U;6UY7W)E9P!R%]L9&U?%]O%]L9&U?%]L9&U?%]F +M%]L9&U?9G)E95]C;61S7W1O7VQI%]L9&U?=6YR96=I%]L9&U?9V5T +M7W9B=7-?0!R%]H:6U?:&%N9&QE7W1O7W9B=7,`%]O%]L9&U?9FEN9%]T87)G970`%]L9&U?:6YI=&EA;&EZ95]V8G5S7V%S +M>6YC`')R,C,R>%]O5]T:6UE`')R,C,R>%]O5]R96UO +M=F5?9&5V:6-E`')R,C,R>%]L9&U?86QL;V-?8VUD%]O%]L +M9&U?9FEN:7-H7V-M9`!R%]L9&U?%]L9&U?<75E=65?=&%S:P!R +M%]F%]L9&U?=&EM97)?<')O8F5?9&5V:6-E`')R,C,R +M>%]L9&U?@(````` +M```"````"P```/O_________@P(````````"````"P```/C_________GP(` +M```````"````!P```"0`````````J`(````````+````!P`````````````` +MS@(````````+````!P```!``````````Y@(````````"````!P```"0````` +M````,P,````````"````/P```/S_________9@,````````"````+0```/S_ +M________;@,````````"````'0```/S_________P@,````````"````"P`` +M````````````RP,````````"````"P``````````````H00````````"```` +M@````/S_________SP0````````"````!P```"0`````````V`0````````+ +M````!P``````````````WP0````````+````!P```!``````````Y00````` +M```"````!P```"0`````````1`4````````"````BP```/S_________:`4` +M```````"````O0```/S_________D`4````````"````O0```/S_________ +MK04````````"````E@```/S_________]@4````````+````'@`````````` +M````^P4````````"````;````/S_________D`8````````"````=@```/S_ +M________L`8````````"````=@```/S_________T`8````````"````=@`` +M`/S_________[08````````"````H````/S_________F@<````````"```` +MJ0```/S_________M`<````````"````J@```/S_________S@<````````" +M````J@```/S_________X0<````````"````H@```/S_________]@<````` +M```"````M0```/S_________"@@````````"````M0```/S_________'@@` +M```````"````D0```/S_________8`@````````+`````0```(`G```````` +M:`@````````"````(0```/S_________?0@````````"````-0```/S_____ +M____H@@````````"````M0```/S_________M@@````````"````M0```/S_ +M________R@@````````"````F````/S_________WP@````````"````D0`` +M`/S_________\P@````````"````D0```/S_________!PD````````"```` +MD0```/S_________1`H````````"````A````/S_________3@H````````" +M````EP```/S_________>@H````````"````A````/S_________E0H````` +M```"````A````/S_________*@L````````"````$0```/S_________GPL` +M```````"````$0```/S_________$PP````````"````$0```/S_________ +M30P````````"````$0```/S_________@@P````````"````$0```/S_____ +M____QPP````````"````$0```/S_________VPP````````"````$````/S_ +M________^0P````````"````EP```/S_________!`T````````"````)0`` +M`/S_________#PT````````"````$````/S_________(@T````````"```` +M)0```/S_________X`T````````"````/0```/S_________^0T````````" +M````-````/S_________%PX````````"````(````/S_________<`\````` +M```+````!0``````````````>@\````````"````GP```/S_________B@\` +M```````"````IP```/S_________F@\````````"````-@```/S_________ +MJ0\````````"````(````/S_________/A`````````+`````P```"`````` +M````5!`````````"````L````/S_________C1`````````+````/@`````` +M````````GA`````````"````C@```/S_________L1`````````"````-P`` +M`/S_________TA`````````+````!@``````````````W!`````````"```` +MGP```/S_________Z!`````````"````&0```/S_________1!$````````+ +M````/@``````````````51$````````"````C@```/S_________D!$````` +M```+````!0```"@`````````FA$````````"````GP```/S_________Z1$` +M```````+````/@``````````````^A$````````"````C@```/S_________ +M"Q(````````"````'P```/S_________3A(````````+````/@`````````` +M````7Q(````````"````C@```/S_________EA(````````"````$@```/S_ +M________J!(````````+````!0```%@`````````LA(````````"````GP`` +M`/S_________`1,````````+````/@``````````````$A,````````"```` +MC@```/S_________)!,````````"````$@```/S_________I1,````````" +M````0@```/S_________210````````"````0@```/S_________D!0````` +M```+````/@``````````````H10````````"````C@```/S_________"14` +M```````"````0@```/S_________+!4````````"````A````/S_________ +MC14````````"````0@```/S_________U!4````````+````/@`````````` +M````Y14````````"````C@```/S_________-Q8````````+````!0```(@` +M````````018````````"````GP```/S_________DQ8````````+````!@`` +M`!8`````````G18````````"````GP```/S_________6A<````````+```` +M/@``````````````:Q<````````"````C@```/S_________^A<````````" +M````0@```/S_________@1@````````+````/@``````````````DA@````` +M```"````C@```/S_________5!D````````"````/@```/S_________-1P` +M```````+`````0```(`;````````2AP````````"````%````/S_________ +MT1P````````"````)@```/S_________X!P````````"````0P```/S_____ +M____(!T````````"````/@```/S_________>AT````````"````IP```/S_ +M________UAT````````"````O0```/S_________3!X````````+`````0`` +M`%`=````````91X````````"````AP```/S_________9Q\````````"```` +M,0```/S_________M!\````````+`````0```'`<````````P1\````````" +M````J0```/S_________S1\````````"````C@```/S_________V!\````` +M```"````J0```/S_________YQ\````````"````<@```/S_________]A\` +M```````+`````0```'`<`````````R`````````"````J0```/S_________ +M#B`````````"````C@```/S_________*R`````````"````1````/S_____ +M____3R(````````+`````0```(`=````````:"(````````"````+@```/S_ +M________I2(````````+`````0```(`=````````T2(````````"````J@`` +M`/S_________!R0````````"````+@```/S_________3R0````````"```` +M-````/S_________HR0````````"````O0```/S_________UB0````````+ +M`````0```(`=````````=B4````````"````+@```/S_________OB4````` +M```"````.0```/S_________4B8````````+`````0```(`=````````8R8` +M```````"````+@```/S_________M28````````"````(@```/S_________ +MVB8````````"````+````/S_________Y"8````````"````,P```/S_____ +M____/"<````````"````<@```/S_________=2<````````"````IP```/S_ +M________NB<````````"````'0```/S_________SB<````````"````L``` +M`/S_________YB<````````"````IP```/S_________)2@````````+```` +M`0```&`G````````-2@````````"````C@```/S_________Z"@````````" +M````)@```/S_________]R@````````"````0P```/S_________HRD````` +M```"````0@```/S_________ORD````````"````-````/S_________1BH` +M```````"````)@```/S_________5BH````````"````0P```/S_________ +M?2H````````"````$0```/S_________B"H````````"````-````/S_____ +M____!RL````````"````)@```/S_________%BL````````"````0P```/S_ +M________8RL````````"````/0```/S_________D2L````````"````/0`` +M`/S_________KRL````````"````-````/S_________1RP````````"```` +M)@```/S_________5BP````````"````0P```/S_________HRP````````" +M````/0```/S_________T2P````````"````/0```/S_________[RP````` +M```"````-````/S_________B"T````````"````)@```/S_________ERT` +M```````"````0P```/S_________URT````````"````$0```/S_________ +M%RX````````"````$0```/S_________/RX````````"````-````/S_____ +M____V"X````````"````)@```/S_________YRX````````"````0P```/S_ +M________)R\````````"````$0```/S_________9R\````````"````$0`` +M`/S_________CR\````````"````-````/S_________$C`````````"```` +M)@```/S_________(3`````````"````0P```/S_________5C`````````" +M````$0```/S_________C3`````````"````-````/S_________U3`````` +M```+`````P```,``````````[#`````````"````'0```/S_________=3$` +M```````"````'````/S_________A3$````````"````'````/S_________ +MI3$````````"````A0```/S_________NC$````````"````@P```/S_____ +M____SS$````````"````@P```/S_________Y#$````````"````@P```/S_ +M________^#$````````"````K````/S_________##(````````"````K``` +M`/S_________%#(````````"````(0```/S_________'#(````````"```` +M-0```/S_________)#(````````"````+````/S_________5S(````````+ +M````!P```$``````````7#(````````"````OP```/S_________KS(````` +M```"````EP```/S_________TC(````````"````A````/S_________YS(` +M```````"````EP```/S_________3S8````````"````A````/S_________ +M7S8````````"````A````/S_________=38````````"````A````/S_____ +M____BS8````````"````A````/S_________H38````````"````A````/S_ +M________O#8````````"````A````/S_________UC8````````"````A``` +M`/S_________ZS8````````"````A````/S_________`#<````````"```` +MA````/S_________%3<````````"````A````/S_________-#<````````" +M````A````/S_________13<````````"````A````/S_________C3<````` +M```"````A````/S_________LCH````````"````A````/S__________SH` +M```````"````-P```/S_________?SL````````"````%0```/O_________ +M;#P````````"````A````/S_________>CP````````"````A````/S_____ +M____6SX````````"````A````/S_________X#X````````"````A````/S_ +M________JC\````````"````%0```/O_________*$`````````"````A``` +M`/S_________,D`````````"````EP```/S_________O$`````````"```` +MA````/S_________TD`````````"````A````/S_________W$`````````" +M````EP```/S_________,4,````````"````A````/S_________6D````````" +M````A````/S_________EFD````````"````1@```/S_________HFD````` +M```"````00```/S_________\6D````````"````A````/S_________&FH` +M```````"````%@```/S_________)FH````````"````00```/S_________ +M6FH````````"````1@```/S_________JFH````````"````1@```/S_____ +M____S&H````````"````A````/S_________%VL````````"````1@```/S_ +M________+6L````````"````00```/S_________2VL````````"````A``` +M`/S_________76L````````"````EP```/S_________<6L````````"```` +M00```/S_________A&L````````"````00```/S_________DVL````````" +M````00```/S_________HFL````````"````00```/S_________"VP````` +M```"````A````/S_________%6P````````"````EP```/S_________'6P` +M```````"````00```/S_________)VP````````"````EP```/S_________ +M,6P````````"````EP```/S_________.VP````````"````EP```/S_____ +M____16P````````"````EP```/S_________7&P````````"````A````/S_ +M________=FP````````"````EP```/S_________J6P````````"````EP`` +M`/S_________PVP````````"````"P````0`````````VFP````````"```` +M"P````0`````````[6P````````"````A````/S_________#6T````````" +M````A````/S_________(&T````````"````"P````0`````````,6T````` +M```"````A````/S_________0VT````````"````"P````0`````````56T` +M```````"````"P````0`````````B&T````````"````"P````0````````` +MFFT````````"````"P````0`````````JVT````````"````A````/S_____ +M____W6T````````"````A````/S_________`VX````````"````A````/S_ +M________$FX````````"````"P````0`````````)&X````````"````"P`` +M``0`````````-6X````````"````"P````0`````````1VX````````"```` +M"P````0`````````:VX````````"````A````/S_________C6X````````" +M````A````/S_________LVX````````"````A````/S_________PFX````` +M```"````"P````0`````````U&X````````"````"P````0`````````Y6X` +M```````"````"P````0`````````]VX````````"````"P````0````````` +M&V\````````"````A````/S_________3V\````````"````*0```/S_____ +M____6F\````````"````*0```/S_________=F\````````"````+P```/S_ +M________A6\````````"````+P```/S_________G&\````````"````"P`` +M``0`````````KF\````````"````"P````0`````````S6\````````"```` +MA````/S_________Y6\````````"````"P````0``````````7`````````" +M````EP```/S_________#G`````````"````A````/S_________2'`````` +M```"````"P````0`````````8W`````````"````"P````0`````````>G`` +M```````"````A````/S_________H'`````````"````A````/S_________ +MP'`````````"````A````/S_________^G`````````"````+0```/S_____ +M____(W$````````"````A````/S_________27$````````"````A````/S_ +M________G4````````"````A````/S_____ +M____HG4````````"````A````/S_________\'4````````"````A````/S_ +M________4'<````````+`````0````!V````````87<````````"````+@`` +M`/S_________/W@````````+`````0```)!W````````4'@````````"```` +M+@```/S_________@W@````````"````C0```/S_________CG@````````" +M````C0```/S_________HG@````````"````4@```/S_________OW@````` +M```"````4P```/S_________RG@````````"````I0```/S_________YG@` +M```````"````4P```/O_________\'@````````"````4P```/S_________ +M@WD````````"````4P```/S_________6GH````````"````4P```/S_____ +M____VGH````````"````90```/S_________(WL````````"````20```/S_ +M________+7L````````"````20```/S_________.7L````````"````4@`` +M`/S_________17L````````"````4@```/S_________57L````````"```` +M20```/S_________R'L````````"````20```/S_________4'P````````" +M````H````/S_________9GP````````"````H````/S_________>GP````` +M```"````20```/S_________J7P````````"````H````/S_________PWP` +M```````"````H````/S_________VGP````````"````H````/S_________ +M`WT````````"````>@```/S_________>````````"````H````/S_____ +M____(7T````````"````20```/S_________;'T````````"````5@```/S_ +M________AWT````````"````H@```/S_________I'T````````"````"P`` +M`#P`````````K'T````````"````"P```#P`````````77X````````"```` +ME@```/S_________U7X````````"````E@```/S_________>G\````````" +M````K0```/S_________]W\````````"````8````/S_________%8`````` +M```"````E@```/S_________)8`````````"````E@```/S_________E8`` +M```````"````7P```/S_________Q8`````````"````3P```/S_________ +M`H$````````"````4````/S_________>X$````````"````"P```$`````` +M````DX$````````"````N0```/S_________GX$````````"````80```/S_ +M________JX$````````"````"P```%P`````````LH$````````"````"P`` +M`&@`````````MH$````````+````O@``````````````O8$````````"```` +M"P```'0`````````Q($````````+````"P```&``````````S($````````" +M````C@```/S_________ZH$````````"````H@```/S_________]X$````` +M```"````"P```$``````````!8(````````+`````0```-!_````````&H(` +M```````"````E@```/S_________,H(````````"````"P```$`````````` +M/8(````````"````"P```$``````````28(````````"````"P```#P````` +M````W((````````"````20```/S_________*8,````````"````O@```/S_ +M________08,````````"````EP```/S_________28,````````"````>0`` +M`/S_________?(,````````"````4P```/S_________B(,````````"```` +M4P```/S_________DX,````````"````4P```/S_________TX,````````" +M````=0```/S_________#H0````````"````E@```/S_________&X0````` +M```"````20```/S_________E80````````"````H@```/S_________"(4` +M```````"````@0```/S_________3H4````````"````E@```/S_________ +M<(4````````"````O````/S_________E84````````"````F0```/S_____ +M____Y(4````````"````6````/S_________.X<````````"````J0```/S_ +M________NH<````````"````4P```/S_________VX<````````"````H@`` +M`/S_________[X<````````+````3@``````````````!X@````````"```` +MNP```/S_________*H@````````"````:````/S_________Z8@````````" +M````=0```/S_________^H@````````"````=0```/S_________&XD````` +M```"````H@```/S_________3XD````````"````E@```/S_________>(D` +M```````"````6````/S_________P8D````````"````6````/S_________ +M8XH````````"````4P```/S_________W8H````````"````L````/S_____ +M____<8L````````"````:P```/S_________CHL````````"````L````/S_ +M________`(P````````"````6````/S_________'HP````````"````:P`` +M`/S_________/8P````````+````!P```*`!````````0HP````````"```` +M=````/S_________7XP````````"````E@```/S_________AHP````````" +M````E@```/S_________K8P````````"````:````/S_________NXP````` +M```"````HP```/S_________"(T````````"````NP```/S_________.8T` +M```````"````8````/S_________2XT````````"````:````/S_________ +M9XT````````"````E@```/S_________H8T````````"````E@```/S_____ +M____JXT````````+````5P``````````````MHT````````"````5````/S_ +M________THT````````"````!P```+0!````````_HT````````"````N``` +M`/S_________;(X````````"````N````/S_________>8X````````+```` +M`0```."-````````UHX````````+`````0```*".````````.X\````````" +M````2@```/S_________48\````````"````HP```/S_________9X\````` +M```"````=0```/S_________\9`````````+````!P```*`!````````^I`` +M```````"````=````/S_________!9$````````"````E@```/S_________ +M6Y$````````+````!P```*`!````````9)$````````"````=````/S_____ +M____;)$````````"````H@```/S_________PI$````````+````!P```*`! +M````````RY$````````"````=````/S_________TY$````````"````H@`` +M`/S_________(I(````````+````!P```*`!````````*Y(````````"```` +M=````/S_________,Y(````````"````H@```/S_________XY(````````+ +M````!P```*`!````````[)(````````"````=````/S_________])(````` +M```"````H@```/S_________=),````````+````!P```*`!````````?9,` +M```````"````=````/S_________A9,````````"````H@```/S_________ +M+)0````````+````!P```*`!````````-)0````````"````=````/S_____ +M____/Y0````````"````E@```/S_________3Y0````````+````!P```*`! +M````````5Y0````````"````=````/S_________8I0````````"````E@`` +M`/S_________UY0````````"````70```/S_________+Y4````````"```` +M70```/S_________N)4````````"````70```/S_________TY4````````" +M````70```/S_________[)8````````"````?0```/S_________+I<````` +M```"````=0```/S_________2Y<````````"````7````/S_________A9<` +M```````"````=0```/S_________C9<````````"````7````/S_________ +MIY<````````+````!P```*`!````````KY<````````"````=````/S_____ +M____MY<````````"````H@```/S_________QY<````````"````=0```/S_ +M________6YD````````"````9````/S_________>YD````````"````7@`` +M`/S_________A9H````````"````9````/S_________M)H````````"```` +M7@```/S_________`IL````````"````7@```/S_________39L````````" +M````9P```/S_________T9L````````"````7@```/S_________,IP````` +M```"````2````/S_________6IP````````"````2@```/S_________<)P` +M```````"````7````/S_________YIP````````"````7@```/S_________ +M_IP````````"````:````/S_________)YT````````"````9````/S_____ +M____.)X````````"````?0```/S_________LYX````````"````7````/S_ +M________P9X````````"````=0```/S_________!Y\````````"````7@`` +M`/S_________+)\````````"````9````/S_________YZ$````````"```` +M?0```/S_________*:(````````"````90```/S_________V:(````````" +M````1P```/S_________!J,````````+````!P```*`!````````"Z,````` +M```"````=````/S_________'J,````````"````H````/S_________0Z,` +M```````"````!P```+`!````````3J,````````"````C0```/S_________ +M7Z,````````"````!P```+0!````````;:,````````"````!P```+0!```` +M````?*,````````"````!P```+,!````````A*,````````+````!P```*`! +M````````B:,````````"````DP```/S_________HZ,````````"````4P`` +M`/S_________)J0````````"````;@```/S_________0Z0````````"```` +MC0```/S_________LJ0````````"````H0```/S_________SJ0````````" +M````A@```/S_________^Z0````````"````4P```/S_________UJ4````` +M```"````4P```/S_________8*8````````"````4P```/S_________?*H` +M```````"````4P```/S_________5JL````````+`````P`````!```````` +M_[`````````"````40```/S_________\+$````````"````40```/S_____ +M____-[,````````"````40```/S_________(+0````````"````50```/S_ +M________K[4````````"````>````/S_________?[<````````"````>``` +M`/S_________/+@````````"````:@```/S__________+@````````"```` +M:@```/S_________J[D````````"````:@```/S_________(+H````````" +M````G````/S_________Y;L````````"````7@```/S_________VKX````` +M```"````:@```/S_________3+\````````"````:@```/S_________P+\` +M```````"````:@```/S_________+L`````````"````:@```/S_________ +MB\`````````"````:@```/S_________]<`````````+`````P```"@!```` +M````U,(````````"````2@```/S_________]\(````````"````8@```/S_ +M________8\,````````"````7@```/S_________:\,````````"````2@`` +M`/S_________A,,````````"````9P```/S_________F<,````````"```` +M=0```/S_________Y<,````````"````?````/S_________3,0````````" +M````G0```/S_________5,0````````+`````0```(`Q`0``````;<0````` +M```"````AP```/S_________R<0````````"````:@```/S_________8\4` +M```````"````7````/S_________D\4````````"````:@```/S_________ +M+<8````````"````70```/S_________/L8````````"````7````/S_____ +M____=,8````````"````:@```/S_________EL8````````"````6@```/S_ +M________ML8````````"````2@```/S_________S<8````````"````6@`` +M`/S_________Z<8````````"````2@```/S_________><<````````"```` +M?P```/S_________BL<````````"````MP```/S_________$\@````````+ +M`````0```+#'````````:<@````````+`````0```!#,````````@\@````` +M```"````E````/S_________T<@````````+`````0```!#,````````Z\@` +M```````"````E````/S_________^,@````````"````:````/S_________ +M'\D````````+`````0```!#,````````.=L````````"````:@```/S_ +M________E-L````````+`````P```*@!````````&-P````````+`````0`` +M`!#,````````,]P````````"````E````/S_________0-P````````"```` +M:````/S_________GMP````````"````:````/S_________5MT````````+ +M`````0```!#,````````<=T````````"````E````/S_________?MT````` +M```"````:````/S_________O-T````````+`````0```!#,````````U]T` +M```````"````E````/S_________Y-T````````"````:````/S_________ +M^]T````````"````;P```/S_________7-X````````"````:````/S_____ +M____==X````````"````:````/S_________S-X````````"````:````/S_ +M________\-\````````+`````0```!#,````````"^`````````"````E``` +M`/S_________&.`````````"````:````/S_________:^`````````+```` +M`0```!#,````````AN`````````"````E````/S_________D^`````````" +M````:````/S_________L.`````````"````:````/S_________V^`````` +M```"````:````/S_________B>$````````+`````0```!#,````````I.$` +M```````"````E````/S_________L>$````````"````:````/S_________ +MWN$````````+`````0```!#,````````^>$````````"````E````/S_____ +M____!N(````````"````:````/S_________=^(````````"````:````/S_ +M________G.(````````"````:````/S_________JN(````````"````LP`` +M`/S_________U.(````````"````:````/S_________..,````````"```` +MLP```/S_________4N,````````+`````0```(`Q`0``````;^,````````" +M````AP```/S_________H^,````````"````G0```/S_________S^,````` +M```"````?P```/S_________W.,````````"````?P```/S_________YN,` +M```````"````?P```/S_________]>,````````+`````0```(`Q`0`````` +M$N0````````"````AP```/S_________@.0````````"````4P```/S_____ +M____L.0````````"````20```/S_________;.4````````"````:@```/S_ +M________CN4````````+`````0```(`Q`0``````J^4````````"````AP`` +M`/S_________M>4````````"````6P```/S_________Q^4````````+```` +M`0```(`Q`0``````Y.4````````"````AP```/S_________,.8````````" +M````:````/S_________:>8````````"````E@```/S_________>N8````` +M```"````?````/S_________@N8````````+`````0```(`Q`0``````F^8` +M```````"````AP```/S_________VN8````````+`````0```(`Q`0`````` +M\^8````````"````AP```/S_________^^<````````+`````0```(`Q`0`` +M````%.@````````"````AP```/S_________1.@````````"````:@```/S_ +M________;^@````````+`````0```(`Q`0``````B.@````````"````AP`` +M`/S_________S>@````````"````:@```/S_________^ND````````"```` +ME@```/S_________*^H````````+`````0```(`Q`0``````1.H````````" +M````AP```/S_________>^H````````"````:@```/S_________L.H````` +M```"````9P```/S_________N.H````````+`````0```(`Q`0``````T>H` +M```````"````AP```/S_________`.L````````"````:@```/S_________ +M"^L````````"````:@```/S_________%NL````````"````9@```/S_____ +M____*.L````````+`````0```(`Q`0``````0>L````````"````AP```/S_ +M________T````````" +M````AP```/S_________&.T````````"````:@```/S_________;^T````` +M```"````9P```/S_________=^T````````+`````0```(`Q`0``````D.T` +M```````"````AP```/S_________W>T````````+`````0```(`Q`0`````` +M]NT````````"````AP```/S_________`>X````````"````:@```/S_____ +M____`_`````````"````9P```/S_________"_`````````+`````0```(`Q +M`0``````)/`````````"````AP```/S_________2_`````````"````:@`` +M`/S_________4_`````````"````G0```/S_________6_`````````+```` +M`0```(`Q`0``````=/`````````"````AP```/S_________L?`````````" +M````:@```/S_________O/`````````"````?````/S_________-_$````` +M```+`````0```$#P````````6?$````````"````NP```/S_________:_$` +M```````+`````0```(`Q`0``````A/$````````"````AP```/S_________ +MU_$````````"````4P```/S_________)O(````````"````:@```/S_____ +M____:/(````````+`````P```"`"````````P/,````````"````9P```/S_ +M________[?0````````"````L@```/S_________"O4````````+`````0`` +M`(#P````````%O4````````"````FP```/S_________GO4````````"```` +MG0```/S_________LO4````````+`````0```(`Q`0``````S_4````````" +M````AP```/S_________!_8````````"````8````/S_________)?8````` +M```"````E@```/S_________-?8````````"````E@```/S_________5_8` +M```````+`````0```(#W````````>?8````````"````NP```/S_________ +M_?8````````+`````0```.#U````````!_<````````"````5````/S_____ +M____1?<````````+`````0```(#W````````:_<````````"````NP```/S_ +M________Q_<````````"````7P```/S_________]?<````````"````3P`` +M`/S_________,O@````````"````4````/S_________^O@````````"```` +MLP```/S_________)/D````````"````LP```/S_________.OD````````" +M````HP```/S_________7?D````````+`````0```(`Q`0``````=OD````` +M```"````AP```/S_________L/D````````"````:@```/S_________=_H` +M```````"````9P```/S_________@?H````````"````;P```/S_________ +MC/H````````"````?P```/S_________#/L````````+`````0```(`Q`0`` +M````)?L````````"````AP```/S_________5OL````````"````FP```/S_ +M________W_L````````+`````0```(`Q`0``````^/L````````"````AP`` +M`/S_________"OP````````"````H@```/S_________(?P````````+```` +M`0```(`Q`0``````.OP````````"````AP```/S_________2_P````````" +M````L@```/S_________9/P````````"````E@```/S_________7OT````` +M```"````E@```/S_________9_T````````"````?````/S_________U_T` +M```````"````E@```/S_________X/T````````"````?````/S_________ +M+?X````````+`````0```/#E````````3?X````````+`````0```$#[```` +M````5H!```` +M```+`````0```*!9`0``````?EH!```````"````FP```/S_________EUH! +M```````+````!P`````&````````G%H!```````"````DP```/S_________ +MMUH!```````+````!P```&`&````````O%H!```````"````=````/S_____ +M____T5H!```````"````H````/S_________Y%H!```````+````!P```&`& +M````````Z5H!```````"````=````/S_________]%H!```````"````H@`` +M`/S_________!UL!```````+````!P```&`&````````#%L!```````"```` +M=````/S_________&%L!```````"````E@```/S_________9UL!```````+ +M````!P```&`&````````;UL!```````"````=````/S_________@5P!```` +M```"````E@```/S_________IUP!```````"````N````/S_________[EX! +M```````"````@0```/S_________/E\!```````+`````0```$!<`0`````` +M3E\!```````"````FP```/S_________C%\!```````"````N````/S_____ +M____WU\!```````"````@0```/S_________&6`!```````+`````0```$!< +M`0``````)&`!```````+`````0```#!;`0``````66`!```````"````FP`` +M`/S_________IV`!```````+````!P```&`&````````K&`!```````"```` +MDP```/S_________C6$!```````"````P````/S_________IF$!```````" +M````I@```/S_________&F(!```````"````?P```/S_________]F(!```` +M```"````FP```/S_________+6,!```````"````FP```/S_________?F,! +M```````"````E@```/S_________I6,!```````"````N````/S_________ +M7F0!```````"````@0```/S_________JF0!```````+`````0```#!B`0`` +M````MV0!```````"````FP```/S_________GF8!```````"````@0```/S_ +M________U&8!```````+`````0```#!B`0``````WV8!```````+`````0`` +M`,!@`0``````"6````/S_________ +MW'````/S_________7'@!```````"````E@```/S_____ +M____SG@!```````"````E@```/S_________(WD!```````"````N````/S_ +M________I7D!```````"````@0```/S_________[WD!```````+`````0`` +M`)!X`0``````_WD!```````"````FP```/S_________XGL!```````+```` +M!P```"`'````````YWL!```````"````=````/S_________6WP!```````+ +M`````0```)!\`0``````?7P!```````"````AP```/S_________O'P!```` +M```+````!P```"`'````````Q'P!```````"````=````/S_________X7T! +M```````+`````0```,#-`0``````^GT!```````"````````/S_________2(T!```````+````!P```"`'```````` +M4(T!```````"````=````/S_________98T!```````+`````P```'`"```` +M````+8X!```````+````!P```"`'````````-8X!```````"````=````/S_ +M________2HX!```````+`````P```*@"````````%H\!```````+````!P`` +M`"`'````````&X\!```````"````=````/S_________:+4!```````"```` +MN````/S_________+[H!```````+````!P```"`'````````-+H!```````" +M````=````/S_________MKL!```````"````N````/S_________OKL!```` +M```"````A@```/S_________[;L!```````+````!P```"`'````````];L! +M```````"````=````/S_________IKP!```````"````H@```/S_________ +MT;P!```````"````E@```/S_________T+X!```````"````E@```/S_____ +M____(K\!```````"````E@```/S_________@+\!```````"````N````/S_ +M________J;\!```````+````!P```"`'````````L;\!```````"````=``` +M`/S_________T\H!```````+ +M`````0```/"^`0``````C,H!```````"````FP```/S_________F,T!```` +M```+`````0```)"_`0``````L,T!```````"````AP```/S_________T@```/S_________ +M+M8!```````"````H````/S_________3=8!```````"````=@```/S_____ +M____;=8!```````+````!P```"`'````````````/S_________P=D!```` +M```"````E@```/S_________Y]D!```````"````N````/S_________GML! +M```````"````@0```/S_________[ML!```````+`````0```(#9`0`````` +M_ML!```````"````FP```/S_________.-P!```````"````N````/S_____ +M____B]P!```````"````@0```/S_________Q=P!```````+`````0```(#9 +M`0``````T-P!```````+`````0```/#7`0``````[]P!```````"````FP`` +M`/S_________-]T!```````+````!P```(`'````````/-T!```````"```` +MDP```/S_________(``````````!`````0```*46````````*``````````! +M`````0```$(0````````,``````````!`````0```/T0````````.``````` +M```!`````0```/T0````````0``````````!`````0```%X1````````2``` +M```````!`````0```%X1````````4``````````!`````0````<2```````` +M6``````````!`````0````<2````````8``````````!`````0```&@2```` +M````:``````````!`````0```&@2````````<``````````!`````0```%`3 +M````````>``````````!`````0```/05````````@``````````!`````0`` +M`/\6````````B``````````!`````0```%`3````````D``````````!```` +M`0```(46````````F``````````!`````0```"D6````````H``````````! +M`````0````X6````````J``````````!`````0```*<0````````L``````` +M```!`````0```*,7````````N``````````!`````0```"88````````P``` +M```````!`````0```/`$````````!`````0```+'.````````@`$````````!```` +M`0```*/.````````B`$````````!`````0```*K.````````D`$````````! +M`````0```,[.````````F`$````````!`````0```,[.````````H`$````` +M```!`````0```(3.````````J`$````````!`````0```$3C````````L`$` +M```````!`````0```*?<````````N`$````````!`````0```!#>```````` +MP`$````````!`````0```(O>````````R`$````````!`````0```#??```` +M````T`$````````!`````0```*#@````````V`$````````!`````0```.3@ +M````````X`$````````!`````0```/#@````````Z`$````````!`````0`` +M`!;B````````\`$````````!`````0```+GB````````^`$````````!```` +M`0```+G@``````````(````````!`````0```$3C````````"`(````````! +M`````0```)C;````````$`(````````!`````0```*/;````````&`(````` +M```!`````0```%#<````````(`(````````!`````0```&SR````````*`(` +M```````!`````0```*KR````````,`(````````!`````0```.3R```````` +M.`(````````!`````0```!OS````````0`(````````!`````0```%/S```` +M````2`(````````!`````0```,=2`0``````4`(````````!`````0```)=3 +M`0``````6`(````````!`````0```,=2`0``````8`(````````!`````0`` +M`(A3`0``````:`(````````!`````0```(A3`0``````<`(````````!```` +M`0```*N-`0``````>`(````````!`````0```&F-`0``````@`(````````! +M`````0```&F-`0``````B`(````````!`````0```':-`0``````D`(````` +M```!`````0```(.-`0``````F`(````````!`````0```)*-`0``````H`(` +M```````!`````0```**-`0``````J`(````````!`````0```(J.`0`````` +ML`(````````!`````0```$Z.`0``````N`(````````!`````0```$Z.`0`` +M````P`(````````!`````0```%N.`0``````R`(````````!`````0```&B. +M`0``````T`(````````!`````0```'6.`0``````V`(````````!`````0`` +M`(*.`0``````0``````````!````!@```#0`````````6``````````!```` +M`0```(`!````````8``````````!`````0```'`"````````:``````````! +M`````0`````#````````<``````````!`````0```)`#````````>``````` +M```!`````0```,`%````````@``````````!`````0```'`&````````B``` +M```````!`````0```!``````````D``````````!`````0`````!```````` +MF``````````!`````0```)`'````````H``````````!`````0```!`#```` +M````J``````````!`````0```-`8````````L``````````!`````0```'`9 +M````````N``````````!`````0```*`9````````P``````````!`````0`` +M```G````````R``````````!`````0```)`<````````T``````````!```` +M`0```'`;````````V``````````!`````0```-`>````````X``````````! +M`````0```(`H````````Z``````````!`````0```+`F````````\``````` +M```!`````0```-`F````````^``````````!`````0```&`H``````````$` +M```````!`````0```,`P````````"`$````````!`````0```%`G```````` +M$`$````````!`````0```'`Q````````&`$````````!`````0```(`Q```` +M````(`$````````!`````0```)`Q````````*`$````````!`````0```#`% +M````````,`$````````!`````0```"`#````````.`$````````!````%``` +M````````````2`$````````!````.P``````````````P`$````````!```` +M`0```/"B````````R`$````````!`````0```!".````````T`$````````! +M`````0```)",````````\`$````````!`````0```#",````````^`$````` +M```!`````0```+".````````"`(````````!`````0```+`.`0``````$`(` +M```````!`````0```-`.`0``````(`(````````!`````0```!`/`0`````` +M*`(````````!`````0```#`/`0``````.`(````````!`````0```(`/`0`` +M````0`(````````!`````0```*`/`0``````4`(````````!`````0```&`0 +M`0``````6`(````````!`````0```(`0`0``````:`(````````!`````0`` +M`-`0`0``````<`(````````!`````0`````1`0``````@`(````````!```` +M`0```&`1`0``````B`(````````!`````0```*`1`0``````F`(````````! +M`````0```'`5`0``````H`(````````!`````0```"`6`0``````L`(````` +M```!`````0```"`:`0``````N`(````````!`````0`````;`0``````R`(` +M```````!`````0```$`;`0``````T`(````````!`````0```&`;`0`````` +MX`(````````!`````0```*`;`0``````Z`(````````!`````0```!`<`0`` +M````^`(````````!`````0```,`B`0````````,````````!`````0```$`C +M`0``````$`,````````!`````0```(`C`0``````&`,````````!`````0`` +M```D`0``````*`,````````!`````0```$`D`0``````,`,````````!```` +M`0```%`E`0``````0`,````````!`````0```)`E`0``````2`,````````! +M`````0```!`F`0``````6`,````````!`````0```%`F`0``````8`,````` +M```!`````0```.`F`0``````<`,````````!`````0`````H`0``````>`,` +M```````!`````0```)`H`0``````B`,````````!`````0```-`H`0`````` +MD`,````````!`````0```/`H`0``````H`,````````!`````0```#`I`0`` +M````J`,````````!`````0```%`I`0``````N`,````````!`````0```)`I +M`0``````P`,````````!`````0```%`J`0``````T`,````````!`````0`` +M`&`<`0``````V`,````````!`````0```-`<`0``````Z`,````````!```` +M`0```"`=`0``````\`,````````!`````0```)`=`0````````0````````! +M`````0```'`J`0``````"`0````````!`````0```.`J`0``````&`0````` +M```!`````0```#`K`0``````(`0````````!`````0```/`K`0``````,`0` +M```````!`````0`````M`0``````.`0````````!`````0```,`M`0`````` +M2`0````````!`````0```!`8`0``````4`0````````!`````0```,`8`0`` +M````8`0````````!`````0`````2`0``````:`0````````!`````0```$`2 +M`0``````>`0````````!`````0```#`G`0``````@`0````````!`````0`` +M`,`G`0``````D`0````````!`````0```.`=`0``````F`0````````!```` +M`0```%`>`0``````J`0````````!`````0```*`>`0``````L`0````````! +M`````0```!`?`0``````P`0````````!`````0```&`?`0``````R`0````` +M```!`````0```-`?`0``````V`0````````!`````0`````9`0``````X`0` +M```````!`````0```.`9`0``````\`0````````!`````0```"`@`0`````` +M^`0````````!`````0```-`@`0``````"`4````````!`````0`````N`0`` +M````$`4````````!`````0```'`N`0``````(`4````````!`````0```$`3 +M`0``````*`4````````!`````0```,`3`0``````.`4````````!`````0`` +M`'`4`0``````0`4````````!`````0```#`5`0``````4`4````````!```` +M`0```*`2`0``````6`4````````!`````0```.`2`0``````:`4````````! +M`````0```/`/`0``````<`4````````!`````0```!`0`0``````@`4````` +M```!`````0```+`N`0``````B`4````````!`````0```.`N`0``````F`4` +M```````!`````0```,`O`0``````H`4````````!`````0```'`P`0`````` +ML`4````````!`````0`````7`0``````N`4````````!`````0```$`7`0`` +M````R`4````````!`````0```&`6`0``````T`4````````!`````0```(`6 +M`0``````*`8````````!`````0```-!9`0``````,`8````````!`````0`` +M`#!9`0``````@`8````````!`````0```+!:`0``````B`8````````!```` +M`0```%!>`0``````D`8````````!````I@``````````````F`8````````! +M`````0```.!:`0``````H`8````````!`````0````!;`0``````Z`8````` +M```!`````0```,!C`0``````\`8````````!`````0```*!A`0``````0`<` +M```````!`````0```*#5`0``````2`<````````!`````0```(#/`0`````` +M4`<````````!`````0````0``````6`<````````!`````0````0`` +M````8`<````````!`````0```!#7`0``````:`<````````!`````0```+#3 +M`0``````<`<````````!`````0```!#4`0``````>`<````````!`````0`` +M`'#3`0``````H`<````````!`````0```'#7`0``````J`<````````!```` +M`0````#;`0``````L`<````````!````I@``````````````N`<````````! +M`````0```*#7`0``````P`<````````!`````0```,#7`0``````(``````` +M```!`````0``````````````.``````````!`````0```!``````````8``` +M```````!`````0`````!````````B``````````!`````0```(`!```````` +MH``````````!`````0```-`!````````T``````````!`````0```'`"```` +M````^``````````!`````0`````#````````$`$````````!`````0```!`# +M````````*`$````````!`````0```"`#````````2`$````````!`````0`` +M`)`#````````>`$````````!`````0```#`%````````F`$````````!```` +M`0```,`%````````P`$````````!`````0```'`&````````X`$````````! +M`````0`````'````````^`$````````!`````0```)`'````````(`(````` +M```!`````0```"`)````````.`(````````!`````0```"`*````````6`(` +M```````!`````0```(`*````````<`(````````!`````0```*`*```````` +MF`(````````!`````0```#`/````````P`(````````!`````0```-`/```` +M````\`(````````!`````0```-`8````````$`,````````!`````0```'`9 +M````````*`,````````!`````0```*`9````````2`,````````!`````0`` +M`'`;````````8`,````````!`````0```(`;````````>`,````````!```` +M`0```)`;````````J`,````````!`````0```'`<````````R`,````````! +M`````0```)`<````````\`,````````!`````0```%`=````````$`0````` +M```!`````0```(`=````````.`0````````!`````0```-`>````````:`0` +M```````!`````0```+`F````````B`0````````!`````0```-`F```````` +MJ`0````````!`````0`````G````````R`0````````!`````0```%`G```` +M````X`0````````!`````0```&`G``````````4````````!`````0```(`G +M````````(`4````````!`````0```&`H````````.`4````````!`````0`` +M`(`H````````:`4````````!`````0```/`I````````D`4````````!```` +M`0```*`J````````N`4````````!`````0```.`K````````X`4````````! +M`````0```"`M````````"`8````````!`````0```'`N````````,`8````` +M```!`````0```,`O````````6`8````````!`````0```,`P````````>`8` +M```````!`````0```'`Q````````F`8````````!`````0```(`Q```````` +MN`8````````!`````0```)`Q````````V`8````````!`````0```%`R```` +M````$`<````````!`````0```'`R````````*`<````````!`````0```*`R +M````````4`<````````!`````0```!`S````````<`<````````!`````0`` +M`%`S````````D`<````````!`````0```'`S````````J`<````````!```` +M`0```#`V````````P`<````````!`````0```%`W````````Z`<````````! +M`````0```"`X````````$`@````````!`````0```,`Y````````.`@````` +M```!`````0```,`[````````6`@````````!`````0```$`\````````@`@` +M```````!`````0```+`]````````H`@````````!`````0```!`_```````` +MR`@````````!`````0```*!`````````\`@````````!`````0```!!"```` +M````,`D````````!`````0```.!"````````6`D````````!`````0```"!$ +M````````@`D````````!`````0```/!$````````P`D````````!`````0`` +M`(!&````````V`D````````!`````0```)!&````````\`D````````!```` +M`0```(!'````````"`H````````!`````0```-!'````````(`H````````! +M`````0```$!(````````2`H````````!`````0```.!(````````:`H````` +M```!`````0```$!)````````@`H````````!`````0```'!)````````J`H` +M```````!`````0```$!*````````R`H````````!`````0```*!*```````` +M\`H````````!`````0```%!+````````*`L````````!`````0```-!+```` +M````4`L````````!`````0```#!,````````<`L````````!`````0```(!, +M````````B`L````````!`````0```*!,````````H`L````````!`````0`` +M`,!,````````R`L````````!`````0```!!/````````^`L````````!```` +M`0```"!2````````$`P````````!`````0```$!2````````*`P````````! +M`````0```%!2````````0`P````````!`````0```&!2````````8`P````` +M```!`````0```,!2````````@`P````````!`````0```"!3````````P`P` +M```````!`````0````!4````````Z`P````````!`````0```/!4```````` +M``T````````!`````0```.!5````````&`T````````!`````0```"!6```` +M````.`T````````!`````0```&!6````````6`T````````!`````0```+!6 +M````````<`T````````!`````0```-!6````````F`T````````!`````0`` +M`(!7````````N`T````````!`````0```+!7````````V`T````````!```` +M`0```!!8````````$`X````````!`````0```$!9````````.`X````````! +M`````0```.!:````````>`X````````!`````0```'!=````````D`X````` +M```!`````0```)!=````````J`X````````!`````0```+!=````````T`X` +M```````!`````0```%!>``````````\````````!`````0```/!>```````` +M*`\````````!`````0```&!?````````2`\````````!`````0```,!?```` +M````<`\````````!`````0```/!?````````F`\````````!`````0```*!@ +M````````R`\````````!`````0```,!@````````\`\````````!`````0`` +M`(!A````````"!`````````!`````0```+!A````````(!`````````!```` +M`0```.!A````````4!`````````!`````0```,!B````````>!`````````! +M`````0```'!C````````J!`````````!`````0```*!D````````R!`````` +M```!`````0```-!D````````Z!`````````!`````0```#!E````````$!$` +M```````!`````0```"!F````````.!$````````!`````0```"!G```````` +M:!$````````!`````0```.!K````````D!$````````!`````0```)!L```` +M````R!$````````!`````0```,!L````````X!$````````!`````0```$!M +M````````^!$````````!`````0```'!M````````&!(````````!`````0`` +M`-!M````````0!(````````!`````0```(!N````````:!(````````!```` +M`0```#!O````````@!(````````!`````0```&!O````````F!(````````! +M`````0```)!O````````N!(````````!`````0```"!P````````T!(````` +M```!`````0```-!P````````Z!(````````!`````0````!Q````````$!,` +M```````!`````0```+!Q````````.!,````````!`````0```/!Q```````` +M8!,````````!`````0```$!R````````@!,````````!`````0```&!R```` +M````H!,````````!`````0```(!R````````P!,````````!`````0```+!R +M````````Z!,````````!`````0```$!U````````&!0````````!`````0`` +M``!V````````.!0````````!`````0```(!V````````6!0````````!```` +M`0```)!W````````>!0````````!`````0```-!W````````L!0````````! +M`````0```(!X````````R!0````````!`````0```*!X````````X!0````` +M```!`````0```+!X````````$!4````````!`````0```'!Y````````*!4` +M```````!`````0```+!Y````````0!4````````!`````0```,!Y```````` +M:!4````````!`````0```%!Z````````D!4````````!`````0```"![```` +M````J!4````````!`````0```%![````````P!4````````!`````0```(![ +M````````V!4````````!`````0```,![````````\!4````````!`````0`` +M`/![````````(!8````````!`````0```&!]````````2!8````````!```` +M`0```*!^````````:!8````````!`````0```.!^````````D!8````````! +M`````0```-!_````````N!8````````!`````0```&"`````````X!8````` +M```!`````0```$"!````````(!<````````!`````0```)""````````4!<` +M```````!`````0```'"#````````>!<````````!`````0```&"$```````` +MD!<````````!`````0```)"$````````L!<````````!`````0```."$```` +M````V!<````````!`````0```$"%````````^!<````````!`````0```&"% +M````````&!@````````!`````0```("%````````.!@````````!`````0`` +M`*"%````````8!@````````!`````0````"&````````@!@````````!```` +M`0```#"&````````J!@````````!`````0```,"&````````R!@````````! +M`````0````"'````````\!@````````!`````0```$"(````````,!D````` +M```!`````0```'")````````6!D````````!`````0````"*````````>!D` +M```````!`````0```""*````````D!D````````!`````0```#"*```````` +MJ!D````````!`````0```&"*````````P!D````````!`````0```*"*```` +M````V!D````````!`````0```-"*`````````!H````````!`````0```("+ +M````````2!H````````!`````0```#",````````"H````````!`````0```.`)`0``````D"H````````!```` +M`0```(`*`0``````N"H````````!`````0```)`+`0``````V"H````````! +M`````0```,`+`0```````"L````````!`````0`````-`0``````("L````` +M```!`````0```(`-`0``````4"L````````!`````0```+`.`0``````:"L` +M```````!`````0```-`.`0``````B"L````````!`````0```!`/`0`````` +MH"L````````!`````0```#`/`0``````P"L````````!`````0```(`/`0`` +M````V"L````````!`````0```*`/`0``````^"L````````!`````0```/`/ +M`0``````$"P````````!`````0```!`0`0``````,"P````````!`````0`` +M`&`0`0``````2"P````````!`````0```(`0`0``````:"P````````!```` +M`0```-`0`0``````@"P````````!`````0`````1`0``````H"P````````! +M`````0```&`1`0``````P"P````````!`````0```*`1`0``````X"P````` +M```!`````0`````2`0```````"T````````!`````0```$`2`0``````("T` +M```````!`````0```*`2`0``````0"T````````!`````0```.`2`0`````` +M8"T````````!`````0```$`3`0``````@"T````````!`````0```,`3`0`` +M````J"T````````!`````0```'`4`0``````T"T````````!`````0```#`5 +M`0``````\"T````````!`````0```'`5`0``````&"X````````!`````0`` +M`"`6`0``````."X````````!`````0```&`6`0``````4"X````````!```` +M`0```(`6`0``````>"X````````!`````0`````7`0``````D"X````````! +M`````0```$`7`0``````N"X````````!`````0```!`8`0``````X"X````` +M```!`````0```,`8`0```````"\````````!`````0`````9`0``````*"\` +M```````!`````0```.`9`0``````2"\````````!`````0```"`:`0`````` +M:"\````````!`````0`````;`0``````B"\````````!`````0```$`;`0`` +M````H"\````````!`````0```&`;`0``````P"\````````!`````0```*`; +M`0``````X"\````````!`````0```!`<`0``````"#`````````!`````0`` +M`&`<`0``````*#`````````!`````0```-`<`0``````4#`````````!```` +M`0```"`=`0``````<#`````````!`````0```)`=`0``````F#`````````! +M`````0```.`=`0``````N#`````````!`````0```%`>`0``````X#`````` +M```!`````0```*`>`0```````#$````````!`````0```!`?`0``````*#$` +M```````!`````0```&`?`0``````2#$````````!`````0```-`?`0`````` +M<#$````````!`````0```"`@`0``````D#$````````!`````0```-`@`0`` +M````L#$````````!`````0```,`B`0``````T#$````````!`````0```$`C +M`0``````\#$````````!`````0```(`C`0``````$#(````````!`````0`` +M```D`0``````,#(````````!`````0```$`D`0``````6#(````````!```` +M`0```%`E`0``````>#(````````!`````0```)`E`0``````F#(````````! +M`````0```!`F`0``````N#(````````!`````0```%`F`0``````V#(````` +M```!`````0```.`F`0``````^#(````````!`````0```#`G`0``````&#,` +M```````!`````0```,`G`0``````.#,````````!`````0`````H`0`````` +M6#,````````!`````0```)`H`0``````>#,````````!`````0```-`H`0`` +M````D#,````````!`````0```/`H`0``````L#,````````!`````0```#`I +M`0``````R#,````````!`````0```%`I`0``````Z#,````````!`````0`` +M`)`I`0``````"#0````````!`````0```%`J`0``````*#0````````!```` +M`0```'`J`0``````2#0````````!`````0```.`J`0``````:#0````````! +M`````0```#`K`0``````D#0````````!`````0```/`K`0``````R#0````` +M```!`````0`````M`0``````\#0````````!`````0```,`M`0``````$#4` +M```````!`````0`````N`0``````,#4````````!`````0```'`N`0`````` +M4#4````````!`````0```+`N`0``````:#4````````!`````0```.`N`0`` +M````J#4````````!`````0```,`O`0``````R#4````````!`````0```#`P +M`0``````Z#4````````!`````0```'`P`0``````"#8````````!`````0`` +M`-`P`0``````,#8````````!`````0```(`Q`0``````4#8````````!```` +M`0```-`Q`0``````<#8````````!`````0`````R`0``````B#8````````! +M`````0```!`R`0``````J#8````````!`````0```+`R`0``````R#8````` +M```!`````0```%`S`0``````\#8````````!`````0```(`T`0``````(#<` +M```````!`````0```)`T`0``````.#<````````!`````0```(`U`0`````` +M6#<````````!`````0`````V`0``````<#<````````!`````0```'`V`0`` +M````D#<````````!`````0```-`V`0``````N#<````````!`````0```"`Y +M`0``````V#<````````!`````0```/`Y`0``````\#<````````!`````0`` +M`!`Z`0``````"#@````````!`````0```"`Z`0``````2#@````````!```` +M`0```&`]`0``````:#@````````!`````0```*`]`0``````D#@````````! +M`````0```"`^`0``````T#@````````!`````0```&`_`0``````^#@````` +M```!`````0```&!``0``````.#D````````!`````0```-!!`0``````4#D` +M```````!`````0```)!"`0``````<#D````````!`````0```,!#`0`````` +ML#D````````!`````0````!+`0``````R#D````````!`````0```$!+`0`` +M````^#D````````!`````0```!!.`0``````&#H````````!`````0```#!. +M`0``````0#H````````!`````0```.!.`0``````:#H````````!`````0`` +M`&!/`0``````@#H````````!`````0```/!/`0``````P#H````````!```` +M`0````!1`0``````Z#H````````!`````0```/!1`0``````$#L````````! +M`````0```*!2`0``````.#L````````!`````0```%!4`0``````4#L````` +M```!`````0```.!4`0``````>#L````````!`````0```*!5`0``````H#L` +M```````!`````0```-!6`0``````X#L````````!`````0```#!7`0`````` +M^#L````````!`````0```%!7`0``````&#P````````!`````0```+!7`0`` +M````.#P````````!`````0```-!7`0``````6#P````````!`````0```/!7 +M`0``````@#P````````!`````0```.!8`0``````N#P````````!`````0`` +M`#!9`0``````V#P````````!`````0```&!9`0``````^#P````````!```` +M`0```*!9`0``````&#T````````!`````0```-!9`0``````0#T````````! +M`````0```)!:`0``````>#T````````!`````0```+!:`0``````F#T````` +M```!`````0```.!:`0``````N#T````````!`````0````!;`0``````V#T` +M```````!`````0```#!;`0``````&#X````````!`````0```$!<`0`````` +M0#X````````!`````0```,!<`0``````6#X````````!`````0```%!=`0`` +M````>#X````````!`````0```%!>`0``````H#X````````!`````0```*!@ +M`0``````V#X````````!`````0```,!@`0``````^#X````````!`````0`` +M`$!A`0``````&#\````````!`````0```*!A`0``````.#\````````!```` +M`0```#!B`0``````8#\````````!`````0```,!C`0``````B#\````````! +M`````0```$!G`0``````J#\````````!`````0```&!G`0``````P#\````` +M```!`````0```/!G`0``````Z#\````````!`````0```*!I`0``````"$`` +M```````!`````0```&!K`0``````($`````````!`````0````!L`0`````` +M2$`````````!`````0```/!M`0``````B$`````````!`````0```!!Q`0`` +M````H$`````````!`````0```$!Q`0``````N$`````````!`````0```'!Q +M`0``````Z$`````````!`````0```-!Q`0``````$$$````````!`````0`` +M`"!R`0``````*$$````````!`````0```&!R`0``````0$$````````!```` +M`0```*!R`0``````6$$````````!`````0```!!S`0``````<$$````````! +M`````0```#!S`0``````B$$````````!`````0```&!S`0``````L$$````` +M```!`````0```,!S`0``````\$$````````!`````0```.!T`0``````&$(` +M```````!`````0```/!U`0``````6$(````````!`````0```)!X`0`````` +M@$(````````!`````0```%!Y`0``````N$(````````!`````0```"!Z`0`` +M````X$(````````!`````0```-![`0``````$$,````````!`````0```%!\ +M`0``````,$,````````!`````0```)!\`0``````6$,````````!`````0`` +M`.!_`0``````>$,````````!`````0```""``0``````F$,````````!```` +M`0```-"``0``````L$,````````!`````0```/"!`0``````V$,````````! +M`````0```$"#`0``````^$,````````!`````0```("#`0``````($0````` +M```!`````0```."$`0``````2$0````````!`````0```'"&`0``````>$0` +M```````!`````0```'"(`0``````J$0````````!`````0```'")`0`````` +MZ$0````````!`````0```'"+`0``````$$4````````!`````0```/"+`0`` +M````*$4````````!`````0```%",`0``````:$4````````!`````0```/". +M`0``````J$4````````!`````0```&"S`0``````Z$4````````!`````0`` +M`-"U`0``````*$8````````!`````0```""Z`0``````4$8````````!```` +M`0```'"[`0``````<$8````````!`````0```-"[`0``````L$8````````! +M`````0```/"^`0``````V$8````````!`````0```)"_`0``````&$<````` +M```!`````0```/#*`0``````6$<````````!`````0```'#-`0``````>$<` +M```````!`````0```,#-`0``````L$<````````!`````0```$#.`0`````` +MT$<````````!`````0```(#/`0``````^$<````````!`````0````0`` +M````($@````````!`````0```'#3`0``````0$@````````!`````0```+#3 +M`0``````8$@````````!`````0```!#4`0``````D$@````````!`````0`` +M``#5`0``````L$@````````!`````0````0``````T$@````````!```` +M`0```*#5`0``````^$@````````!`````0````0``````($D````````! +M`````0```!#7`0``````0$D````````!`````0```%#7`0``````>$D````` +M```!`````0```'#7`0``````F$D````````!`````0```*#7`0``````N$D` +M```````!`````0```,#7`0``````V$D````````!`````0```/#7`0`````` +M`$H````````!`````0```(#9`0``````*$H````````!`````0````#:`0`` +M````0$H````````!`````0```$#:`0``````8$H````````!`````0````#; +>`0``````B$H````````!`````0```##=`0`````` +` +end diff --git a/sys/dev/rr232x/array.h b/sys/dev/rr232x/array.h new file mode 100644 index 000000000000..6e1fd934b226 --- /dev/null +++ b/sys/dev/rr232x/array.h @@ -0,0 +1,179 @@ +#include +/* + * $Id: array.h,v 1.37 2006/02/21 06:11:19 gmm Exp $ + * Copyright (C) 2004-2005 HighPoint Technologies, Inc. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ +#ifndef _HPT_ARRAY_H_ +#define _HPT_ARRAY_H_ + +#define VERMAGIC_ARRAY 37 + +#if defined(__cplusplus) +extern "C" { +#endif + +#define MAX_ARRAY_NAME 16 + +#ifndef MAX_MEMBERS +#define MAX_MEMBERS 16 +#endif + +#if MAX_MEMBERS<=16 +typedef HPT_U16 HPT_MMASK; +#elif MAX_MEMBERS<=32 +typedef HPT_U32 HPT_MMASK; +#elif MAX_MEMBERS<=64 +typedef HPT_U64 HPT_MMASK; +#else +#error "MAX_MEMBERS too large" +#endif + +#define HPT_MMASK_VALUE(x) ((HPT_MMASK)1<<(x)) + +#define HPT_MMASK_VALUE_SAFE(x) ((x)>=MAX_MEMBERS? (HPT_MMASK)0 : HPT_MMASK_VALUE(x)) + +#define MAX_REBUILD_SECTORS 128 + +typedef struct _RAID_FLAGS { + HPT_UINT rf_need_initialize : 1; + HPT_UINT rf_need_rebuild: 1; + HPT_UINT rf_need_sync: 1; + /* ioctl flags */ + HPT_UINT rf_auto_rebuild: 1; + HPT_UINT rf_rebuilding: 1; + HPT_UINT rf_verifying: 1; + HPT_UINT rf_initializing: 1; + HPT_UINT rf_abort_rebuild: 1; + HPT_UINT rf_raid15: 1; + HPT_UINT rf_v3_format : 1; + HPT_UINT rf_need_transform : 1; + HPT_UINT rf_transforming : 1; + HPT_UINT rf_abort_transform : 1; + HPT_UINT rf_log_write: 1; +} RAID_FLAGS; + +typedef struct transform_cmd_ext +{ + HPT_LBA lba; + HPT_U16 total_sectors; + HPT_U16 finished_sectors; +} TRANSFORM_CMD_EXT , *PTRANSFORM_CMD_EXT; + + +#define TO_MOVE_DATA 0 +#define TO_INITIALIZE 1 +#define TO_INITIALIZE_ONLY 2 +#define TO_MOVE_DATA_ONLY 3 +typedef struct hpt_transform +{ + HPT_U32 stamp; + PVDEV source; + PVDEV target; + struct list_head link; + HPT_U8 transform_from_tail; + struct tq_item task; + + struct lock_request lock; + TRANSFORM_CMD_EXT cmdext; + + HPT_U64 transform_point; + HPT_U16 transform_sectors_per_step; + HPT_U8 operation; + HPT_U8 disabled; +} HPT_TRANSFORM, *PHPT_TRANSFORM; + +typedef struct hpt_array +{ + HPT_U32 array_stamp; + HPT_U32 data_stamp; + + HPT_U8 ndisk; + HPT_U8 block_size_shift; + HPT_U16 strip_width; + + + HPT_MMASK outdated_members; + HPT_MMASK offline_members; + + PVDEV member[MAX_MEMBERS]; + + RAID_FLAGS flags; + + HPT_U64 rebuilt_sectors; + + + HPT_U8 name[MAX_ARRAY_NAME]; + PHPT_TRANSFORM transform; + + TIME_RECORD create_time; + HPT_U8 description[64]; + HPT_U8 create_manager[16]; + +#ifdef OS_SUPPORT_TASK + int floating_priority; + OSM_TASK ioctl_task; + IOCTL_ARG ioctl_arg; + + char ioctl_inbuf[sizeof(PVDEV)+sizeof(HPT_U64)+sizeof(HPT_U16)]; + char ioctl_outbuf[sizeof(HPT_UINT)]; +#endif + +} HPT_ARRAY, *PHPT_ARRAY; + +#ifdef OS_SUPPORT_TASK +void ldm_start_rebuild(struct _VDEV *pArray); +#else +#define ldm_start_rebuild(pArray) +#endif + +typedef struct _raw_partition{ + struct _raw_partition * next; + HPT_RAW_LBA start; + HPT_RAW_LBA capacity; + PVDEV vd_part; +} RAW_PARTITION, *PRAW_PARTITION; + +typedef struct hpt_partiton +{ + PVDEV raw_disk; + HPT_RAW_LBA des_location; + PRAW_PARTITION raw_part; + struct tq_item failed_task; + HPT_U8 del_mbr; + HPT_U8 reserved[3]; +} HPT_PARTITION, *PHPT_PARTITION; + +HPT_U16 get_strip_size(PVDEV vd); + +void ldm_check_array_online(PVDEV pArray); +void ldm_generic_member_failed(PVDEV member); +void ldm_sync_array_info(PVDEV pArray); +void ldm_sync_array_stamp(PVDEV pArray); +void ldm_add_spare_to_array(PVDEV pArray, PVDEV spare_partition); + +#if defined(__cplusplus) +} +#endif +#endif diff --git a/sys/dev/rr232x/him.h b/sys/dev/rr232x/him.h new file mode 100644 index 000000000000..412b988e91f8 --- /dev/null +++ b/sys/dev/rr232x/him.h @@ -0,0 +1,440 @@ +#include +/* + * $Id: him.h,v 1.34 2006/02/21 06:11:19 gmm Exp $ + * Copyright (C) 2004-2005 HighPoint Technologies, Inc. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ +#ifndef _HPT_HIM_H_ +#define _HPT_HIM_H_ + +#define VERMAGIC_HIM 34 + +#if defined(__cplusplus) +extern "C" { +#endif + +#include + +#define SECTOR_TO_BYTE_SHIFT 9 +#define SECTOR_TO_BYTE(x) ((HPT_U32)(x) << SECTOR_TO_BYTE_SHIFT) +#define BYTE_TO_SECTOR(x) ((x)>>SECTOR_TO_BYTE_SHIFT) + +typedef struct _PCI_ID +{ + HPT_U16 vid; + HPT_U16 did; + HPT_U32 subsys; + HPT_U8 rev; + HPT_U8 nbase; + HPT_U16 reserve; +} +PCI_ID; + +typedef struct _PCI_ADDRESS +{ + HPT_U8 tree; + HPT_U8 bus; + HPT_U8 device; + HPT_U8 function; +} +PCI_ADDRESS; + +typedef struct _HIM_ADAPTER_CONFIG +{ + PCI_ADDRESS pci_addr; + PCI_ID pci_id; + + HPT_U8 max_devices; + HPT_U8 max_sg_descriptors; + + HPT_U8 bDevsPerBus; + HPT_U8 first_on_slot; + + HPT_U8 bChipType; + HPT_U8 bChipIntrNum; + HPT_U8 bChipFlags; + HPT_U8 bNumBuses; + + HPT_U8 szVendorID[36]; + HPT_U8 szProductID[36]; +} +HIM_ADAPTER_CONFIG, *PHIM_ADAPTER_CONFIG; + +typedef struct _HIM_CHANNEL_CONFIG +{ + HPT_U32 io_port; + HPT_U32 ctl_port; +} HIM_CHANNEL_CONFIG, *PHIM_CHANNEL_CONFIG; + +typedef struct _HIM_DEVICE_FLAGS +{ + HPT_U32 df_atapi :1; + HPT_U32 df_removable_drive :1; + HPT_U32 df_on_line :1; + HPT_U32 df_reduce_mode :1; + HPT_U32 df_sata :1; + HPT_U32 df_with_601 :1; + HPT_U32 df_support_read_ahead :1; + HPT_U32 df_read_ahead_enabled :1; + HPT_U32 df_support_write_cache :1; + HPT_U32 df_write_cache_enabled :1; + HPT_U32 df_cdrom_device :1; + HPT_U32 df_tape_device :1; + HPT_U32 df_support_tcq :1; + HPT_U32 df_tcq_enabled :1; + HPT_U32 df_support_ncq :1; + HPT_U32 df_ncq_enabled :1; +} DEVICE_FLAGS, *PDEVICE_FLAGS; + +#pragma pack(1) +typedef struct _IDENTIFY_DATA2 { + HPT_U16 GeneralConfiguration; + HPT_U16 NumberOfCylinders; + HPT_U16 Reserved1; + HPT_U16 NumberOfHeads; + HPT_U16 UnformattedBytesPerTrack; + HPT_U16 UnformattedBytesPerSector; + HPT_U16 SectorsPerTrack; + HPT_U16 VendorUnique1[3]; + HPT_U16 SerialNumber[10]; + HPT_U16 BufferType; + HPT_U16 BufferSectorSize; + HPT_U16 NumberOfEccBytes; + HPT_U16 FirmwareRevision[4]; + HPT_U16 ModelNumber[20]; + HPT_U8 MaximumBlockTransfer; + HPT_U8 VendorUnique2; + HPT_U16 DoubleWordIo; + HPT_U16 Capabilities; + HPT_U16 Reserved2; + HPT_U8 VendorUnique3; + HPT_U8 PioCycleTimingMode; + HPT_U8 VendorUnique4; + HPT_U8 DmaCycleTimingMode; + HPT_U16 TranslationFieldsValid; + HPT_U16 NumberOfCurrentCylinders; + HPT_U16 NumberOfCurrentHeads; + HPT_U16 CurrentSectorsPerTrack; + HPT_U32 CurrentSectorCapacity; + HPT_U16 CurrentMultiSectorSetting; + HPT_U32 UserAddressableSectors; + HPT_U8 SingleWordDMASupport; + HPT_U8 SingleWordDMAActive; + HPT_U8 MultiWordDMASupport; + HPT_U8 MultiWordDMAActive; + HPT_U8 AdvancedPIOModes; + HPT_U8 Reserved4; + HPT_U16 MinimumMWXferCycleTime; + HPT_U16 RecommendedMWXferCycleTime; + HPT_U16 MinimumPIOCycleTime; + HPT_U16 MinimumPIOCycleTimeIORDY; + HPT_U16 Reserved5[2]; + HPT_U16 ReleaseTimeOverlapped; + HPT_U16 ReleaseTimeServiceCommand; + HPT_U16 MajorRevision; + HPT_U16 MinorRevision; +} +#ifdef __GNUC__ +__attribute__((packed)) +#endif +IDENTIFY_DATA2, *PIDENTIFY_DATA2; +#pragma pack() + +#define _HPT601_INFO_DEVICEID 1 +#define _HPT601_INFO_TEMPERATURE 2 +#define _HPT601_INFO_FANSTATUS 4 +#define _HPT601_INFO_BEEPERCONTROL 8 +#define _HPT601_INFO_LED1CONTROL 0x10 +#define _HPT601_INFO_LED2CONTROL 0x20 +#define _HPT601_INFO_POWERSTATUS 0x40 + +typedef struct __HPT601_INFO { + HPT_U16 ValidFields; + HPT_U16 DeviceId; + HPT_U16 Temperature; + HPT_U16 FanStatus; + HPT_U16 BeeperControl; + HPT_U16 LED1Control; + HPT_U16 LED2Control; + HPT_U16 PowerStatus; +} _HPT601_INFO, *_PHPT601_INFO; + +typedef struct _HIM_DEVICE_CONFIG +{ + HPT_U64 capacity; + + DEVICE_FLAGS flags; + + HPT_U8 path_id; + HPT_U8 target_id; + HPT_U8 max_queue_depth; + HPT_U8 spin_up_mode; + + HPT_U8 reserved; + HPT_U8 transfer_mode; + HPT_U8 bMaxShowMode; + HPT_U8 bDeUsable_Mode; + + HPT_U16 max_sectors_per_cmd; + + PIDENTIFY_DATA2 pIdentifyData; + + _HPT601_INFO chip601; +} +HIM_DEVICE_CONFIG, *PHIM_DEVICE_CONFIG; + + +#define _DIT_MODE 0 +#define _DIT_601 1 +#define _DIT_READ_AHEAD 2 +#define _DIT_WRITE_CACHE 3 +#define _DIT_TCQ 4 +#define _DIT_NCQ 5 +#define _DIT_BEEP_OFF 6 +#define _DIT_SPIN_UP_MODE 7 + +#define SPIN_UP_MODE_NOSUPPORT 0 +#define SPIN_UP_MODE_FULL 1 +#define SPIN_UP_MODE_STANDBY 2 + +struct tcq_control { + HPT_U8 enable; + HPT_U8 depth; +}; + +struct ncq_control { + HPT_U8 enable; + HPT_U8 depth; +}; + +typedef struct _HIM_ALTERABLE_DEV_INFO{ + HPT_U8 type; + union { + HPT_U8 mode; + HPT_U8 enable_read_ahead; + HPT_U8 enable_read_cache; + HPT_U8 enable_write_cache; + struct tcq_control tcq; + struct ncq_control ncq; + _HPT601_INFO chip601; + void * adapter; + HPT_U8 spin_up_mode; + }u; +} HIM_ALTERABLE_DEV_INFO, *PHIM_ALTERABLE_DEV_INFO; + +struct _COMMAND; +struct _IOCTL_ARG; + +typedef void (*PROBE_CALLBACK)(void *arg, void *dev, int index); + +typedef struct _HIM { + char *name; + struct _HIM *next; + HPT_U8 max_sg_descriptors; + #define _HIM_INTERFACE(_type, _fn, _args) _type (* _fn) _args; + #include +} +HIM, *PHIM; + + +#pragma pack(1) +#ifdef SG_FLAG_EOT +#error "don't use SG_FLAG_EOT with _SG.eot. clean the code!" +#endif + +typedef struct _SG { + HPT_U32 size; + HPT_UINT eot; + union { + HPT_U8 FAR * _logical; + BUS_ADDRESS bus; + } + addr; +} +SG, *PSG; +#pragma pack() + +typedef struct _AtaCommand +{ + HPT_U64 Lba; + HPT_U16 nSectors; + HPT_U16 pad; +} AtaComm, *PAtaComm; + +typedef struct _PassthroughCmd { + HPT_U8 bFeaturesReg; + HPT_U8 bSectorCountReg; + HPT_U8 bLbaLowReg; + HPT_U8 bLbaMidReg; + HPT_U8 bLbaHighReg; + HPT_U8 bDriveHeadReg; + HPT_U8 bCommandReg; + HPT_U8 nSectors; + HPT_U8 *pDataBuffer; +} +PassthroughCmd; + + +#define CTRL_CMD_REBUILD 1 +#define CTRL_CMD_VERIFY 2 +#define CTRL_CMD_INIT 3 + + +typedef struct _R5ControlCmd { + HPT_U64 StripeLine; + HPT_U16 Offset; + HPT_U8 Command; + HPT_U8 reserve1; +} +R5ControlCmd, *PR5ControlCmd; + +typedef struct _HPT_ADDRESS +{ + HPT_U8 * logical; + BUS_ADDRESS bus; +} +HPT_ADDRESS; + + +typedef struct ctl_pages { + HPT_ADDRESS *pages; + HPT_UINT page_size; + HPT_UINT npages; + HPT_U8 min_sg_descriptors; +} CONTROL_PAGES, *PCONTROL_PAGES; + +typedef struct _R1ControlCmd { + HPT_U64 Lba; + HPT_U16 nSectors; + HPT_U8 Command; /* CTRL_CMD_XXX */ + HPT_U8 reserve1; + PCONTROL_PAGES ctl_pages; +} +R1ControlCmd, *PR1ControlCmd; + +typedef void (*TQ_PROC)(void *arg); + +struct tq_item { + TQ_PROC proc; + void *arg; + struct tq_item *next; +}; + +#define INIT_TQ_ITEM(t, p, a) \ + do { (t)->proc = p; (t)->arg = a; (t)->next = 0; } while (0) + +typedef struct _COMMAND +{ + + struct _VBUS * vbus; + + struct freelist *grplist; + HPT_UINT grpcnt; + HPT_UINT freecnt; + + + struct list_head q_link; + struct tq_item done_dpc; + + HPT_UINT extsize; + void *ext; + + + + void *target; + void *priv; + HPT_UPTR priv2; + + int priority; + struct lock_request *owned_lock; + struct lock_request *lock_req; + + union{ + /* Ide Command */ + AtaComm Ide; + PassthroughCmd Passthrough; + /* Atapi Command */ + HPT_U8 Atapi[12]; + /* Control command */ + R5ControlCmd R5Control; + R1ControlCmd R1Control; + } uCmd; + + HPT_U8 type; /* CMD_TYPE_* */ + + struct { + HPT_U8 physical_sg: 1; + HPT_U8 data_in: 1; + HPT_U8 data_out: 1; + HPT_U8 transform : 1; + HPT_U8 hard_flush: 2; + } flags; + + /* return status */ + HPT_U8 Result; + /* retry count */ + HPT_U8 RetryCount; + + + PSG psg; + + + int (*buildsgl)(struct _COMMAND *cmd, PSG psg, int logical); + void (*done)(struct _COMMAND *cmd); +} +COMMAND, *PCOMMAND; + +/* command types */ +#define CMD_TYPE_IO 0 +#define CMD_TYPE_CONTROL 1 +#define CMD_TYPE_ATAPI 2 +#define CMD_TYPE_PASSTHROUGH 3 +#define CMD_TYPE_FLUSH 4 + +/* flush command flags */ +#define CF_HARD_FLUSH_CACHE 1 +#define CF_HARD_FLUSH_STANDBY 2 + +/* command return values */ +#define RETURN_PENDING 0 +#define RETURN_SUCCESS 1 +#define RETURN_BAD_DEVICE 2 +#define RETURN_BAD_PARAMETER 3 +#define RETURN_WRITE_NO_DRQ 4 +#define RETURN_DEVICE_BUSY 5 +#define RETURN_INVALID_REQUEST 6 +#define RETURN_SELECTION_TIMEOUT 7 +#define RETURN_IDE_ERROR 8 +#define RETURN_NEED_LOGICAL_SG 9 +#define RETURN_NEED_PHYSICAL_SG 10 +#define RETURN_RETRY 11 +#define RETURN_DATA_ERROR 12 +#define RETURN_BUS_RESET 13 +#define RETURN_BAD_TRANSFER_LENGTH 14 +#define RETURN_INSUFFICIENT_MEMORY 15 + +#if defined(__cplusplus) +} +#endif +#endif diff --git a/sys/dev/rr232x/himfuncs.h b/sys/dev/rr232x/himfuncs.h new file mode 100644 index 000000000000..528cb735bc6a --- /dev/null +++ b/sys/dev/rr232x/himfuncs.h @@ -0,0 +1,100 @@ +#include +/* $Id: himfuncs.h,v 1.14 2005/12/22 00:13:11 gmm Exp $ + * Copyright (C) 2004-2005 HighPoint Technologies, Inc. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + * + * define _HIM_INTERFACE before include this file, and + * undef it after include this file. + */ + + +#ifndef _HIM_INTERFACE +#error "you must define _HIM_INTERFACE before this file" +#endif + +_HIM_INTERFACE(HPT_BOOL, get_supported_device_id, (int index, PCI_ID *id)) + +_HIM_INTERFACE(HPT_U8, get_controller_count, (PCI_ID *id, HPT_U8 *reached)) + + +_HIM_INTERFACE(HPT_UINT, get_adapter_size, (const PCI_ID *id)) + + +_HIM_INTERFACE(HPT_BOOL, create_adapter, (const PCI_ID *id, PCI_ADDRESS pciAddress, void *adapter, void *osext)) + +_HIM_INTERFACE(void, get_adapter_config, (void *adapter, HIM_ADAPTER_CONFIG *config)) + +_HIM_INTERFACE(HPT_BOOL, get_meminfo, (void *adapter)) + + +_HIM_INTERFACE(HPT_BOOL, adapter_on_same_vbus, (void *adapter1, void *adapter2)) +_HIM_INTERFACE(void, route_irq, (void *adapter, HPT_BOOL enable)) + + +_HIM_INTERFACE(HPT_BOOL, initialize, (void *adapter)) + + +_HIM_INTERFACE(HPT_UINT, get_device_size, (void *adapter)) + + +_HIM_INTERFACE(HPT_BOOL, probe_device, (void *adapter, int index, void *devhandle, PROBE_CALLBACK done, void *arg)) +_HIM_INTERFACE(void *, get_device, (void *adapter, int index)) +_HIM_INTERFACE(void, get_device_config, (void *dev, HIM_DEVICE_CONFIG *config)) +_HIM_INTERFACE(void, remove_device, (void *dev)) + +_HIM_INTERFACE(void, reset_device, (void * dev, void (*done)(void *arg), void *arg)) + + +_HIM_INTERFACE(HPT_U32, get_cmdext_size, (void)) + +_HIM_INTERFACE(void, queue_cmd, (void *dev, struct _COMMAND *cmd)) + + +_HIM_INTERFACE(int, read_write, (void *dev,HPT_LBA lba, HPT_U16 nsector, HPT_U8 *buffer, HPT_BOOL read)) + +_HIM_INTERFACE(HPT_BOOL, intr_handler, (void *adapter)) +_HIM_INTERFACE(HPT_BOOL, intr_control, (void * adapter, HPT_BOOL enable)) + + +_HIM_INTERFACE(int, get_channel_config, (void * adapter, int index, PHIM_CHANNEL_CONFIG pInfo)) +_HIM_INTERFACE(int, set_device_info, (void * dev, PHIM_ALTERABLE_DEV_INFO pInfo)) +_HIM_INTERFACE(void, unplug_device, (void * dev)) + + +_HIM_INTERFACE(void, shutdown, (void *adapter)) +_HIM_INTERFACE(void, suspend, (void *adapter)) +_HIM_INTERFACE(void, resume, (void *adapter)) +_HIM_INTERFACE(void, release_adapter, (void *adapter)) + +/*called after ldm_register_adapter*/ +_HIM_INTERFACE(HPT_BOOL, verify_adapter, (void *adapter)) + +/* (optional) */ +_HIM_INTERFACE(void, ioctl, (void * adapter, struct _IOCTL_ARG *arg)) +_HIM_INTERFACE(int, compare_slot_seq, (void *adapter1, void *adapter2)) + + +_HIM_INTERFACE(HPT_BOOL, flash_access, (void *adapter, HPT_U32 offset, void *value, int size, HPT_BOOL reading)) + +#undef _HIM_INTERFACE diff --git a/sys/dev/rr232x/hptintf.h b/sys/dev/rr232x/hptintf.h new file mode 100644 index 000000000000..b8826f3da33f --- /dev/null +++ b/sys/dev/rr232x/hptintf.h @@ -0,0 +1,1647 @@ +#include +/* $Id: hptintf.h,v 1.38 2006/02/16 03:29:07 gmm Exp $ + * Copyright (C) 2004-2005 HighPoint Technologies, Inc. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + * + * File: hptintf.h + * Description: ioctl interface for HPT RAID driver + * Author: Gu Mingming + * History: 2001-2-15 initial code + * 2001-4-5 change based on discuss with Dahai and Robin + * v1.0.0.1 + * 2001-7-17 add option to delete_array + * v1.0.0.2 + * 2001-12-5 Add hpt_get_driver_capabilities + * v1.0.0.3 + * 2002-1-11 Add HPT601 interface + * 2002-3-7 add hpt_lock/unlock_device + * 2002-4-22 S.M.A.R.T. interface + * RAID5 rebuild/verify + * Dedicated spare disk + * 2003-3-18 RAID1.5 plus + * Don't change version until all GUI get updated. + * 2003-4-23 hotswap capbility + * v1.1.0.0 + * 2003-11-17 define HPT_INTERFACE_VERSION outside this file; + * enlarge max array members. + * 64-bit LBA support. + * v2.0.0.0 + * 2004-11-01 new functions to support OCE/ORLM + */ + +#ifndef HPT_INTF_H +#define HPT_INTF_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __GNUC__ +#define __attribute__(x) +#endif + +#pragma pack(1) + +/* + * Version of this interface. + * The user mode application must first issue a hpt_get_version() call to + * check HPT_INTERFACE_VERSION. When an utility using newer version interface + * is used with old version drivers, it must call only the functions that + * driver supported. + * A new version interface should only add ioctl functions; it should implement + * all old version functions without change their definition. + */ +#define __this_HPT_INTERFACE_VERSION 0x02000000 + +#ifndef HPT_INTERFACE_VERSION +#error "You must define HPT_INTERFACE_VERSION you implemented" +#endif + +#if HPT_INTERFACE_VERSION > __this_HPT_INTERFACE_VERSION +#error "HPT_INTERFACE_VERSION is invalid" +#endif + +/* + * DEFINITION + * Logical device --- a device that can be accessed by OS. + * Physical device --- device attached to the controller. + * A logical device can be simply a physical device. + * + * Each logical and physical device has a 32bit ID. GUI will use this ID + * to identify devices. + * 1. The ID must be unique. + * 2. The ID must be immutable. Once an ID is assigned to a device, it + * must not change when system is running and the device exists. + * 3. The ID of logical device must be NOT reusable. If a device is + * removed, other newly created logical device must not use the same ID. + * 4. The ID must not be zero or 0xFFFFFFFF. + */ +typedef HPT_U32 DEVICEID; + +/* + * logical device type. + * Identify array (logical device) and physical device. + */ +#define LDT_ARRAY 1 +#define LDT_DEVICE 2 + +/* + * Array types + * GUI will treat all array as 1-level RAID. No RAID0/1 or RAID1/0. + * A RAID0/1 device is type AT_RAID1. A RAID1/0 device is type AT_RAID0. + * Their members may be another array of type RAID0 or RAID1. + */ +#define AT_UNKNOWN 0 +#define AT_RAID0 1 +#define AT_RAID1 2 +#define AT_RAID5 3 +#define AT_RAID6 4 +#define AT_JBOD 7 + +/* + * physical device type + */ +#define PDT_UNKNOWN 0 +#define PDT_HARDDISK 1 +#define PDT_CDROM 2 +#define PDT_TAPE 3 + +/* + * Some constants. + */ +#define MAX_NAME_LENGTH 36 +#define MAX_ARRAYNAME_LEN 16 + +#define MAX_ARRAY_MEMBERS_V1 8 + +#ifndef MAX_ARRAY_MEMBERS_V2 +#define MAX_ARRAY_MEMBERS_V2 16 +#endif + +/* keep definition for source code compatiblity */ +#define MAX_ARRAY_MEMBERS MAX_ARRAY_MEMBERS_V1 + +/* + * io commands + * GUI use these commands to do IO on logical/physical devices. + */ +#define IO_COMMAND_READ 1 +#define IO_COMMAND_WRITE 2 + +/* redundant arrays (RAID1 and RAID5, RAID10) have two creation format: + * 1. forground create --- zero all data on the array, and the array should not be reported to os before end of initialization. + * if initializing aborted, turns to background initialize. + * 2. backround create --- rebuild all data on the array, and the array can be reported to os just after creation. + * + * if an array is in forground creation progress, it has the flag ARRAY_FLAG_NEEDINITIALIZING and ARRAY_FLAG_INITIALIZING, + * GUI sends the INIT ioctl, driver zero the data of the array. + * if an array is in backround creation progress, it has flag ARRAY_FLAG_NEEDINITIALIZING and ARRAY_FLAG_REBUIDING. + * GUI sends the REBUILD ioctl, driver rebuilds the array. + */ + + +/* + * array flags + */ +#define ARRAY_FLAG_DISABLED 0x00000001 /* The array is disabled */ +#define ARRAY_FLAG_NEEDBUILDING 0x00000002 /* array data need to be rebuilt */ +#define ARRAY_FLAG_REBUILDING 0x00000004 /* array is in rebuilding process */ +#define ARRAY_FLAG_BROKEN 0x00000008 /* broken but may still working */ +#define ARRAY_FLAG_BOOTDISK 0x00000010 /* array has a active partition */ + +#define ARRAY_FLAG_BOOTMARK 0x00000040 /* array has boot mark set */ +#define ARRAY_FLAG_NEED_AUTOREBUILD 0x00000080 /* auto-rebuild should start */ +#define ARRAY_FLAG_VERIFYING 0x00000100 /* is being verified */ +#define ARRAY_FLAG_INITIALIZING 0x00000200 /* is being initialized */ +#define ARRAY_FLAG_TRANSFORMING 0x00000400 /* tranform in progress */ +#define ARRAY_FLAG_NEEDTRANSFORM 0x00000800 /* array need tranform */ +#define ARRAY_FLAG_NEEDINITIALIZING 0x00001000 /* the array's initialization hasn't finished*/ +#define ARRAY_FLAG_BROKEN_REDUNDANT 0x00002000 /* broken but redundant (raid6) */ +#define ARRAY_FLAG_RAID15PLUS 0x80000000 /* display this RAID 1 as RAID 1.5 */ +/* + * device flags + */ +#define DEVICE_FLAG_DISABLED 0x00000001 /* device is disabled */ +#define DEVICE_FLAG_BOOTDISK 0x00000002 /* disk has a active partition */ +#define DEVICE_FLAG_BOOTMARK 0x00000004 /* disk has boot mark set */ +#define DEVICE_FLAG_WITH_601 0x00000008 /* has HPT601 connected */ +#define DEVICE_FLAG_SATA 0x00000010 /* S-ATA device */ + +#define DEVICE_FLAG_UNINITIALIZED 0x00010000 /* device is not initialized, can't be used to create array */ +#define DEVICE_FLAG_LEGACY 0x00020000 /* single disk & mbr contains at least one partition */ + +#define DEVICE_FLAG_IS_SPARE 0x80000000 /* is a spare disk */ + +/* + * array states used by hpt_set_array_state() + */ +/* old defines */ +#define MIRROR_REBUILD_START 1 +#define MIRROR_REBUILD_ABORT 2 +#define MIRROR_REBUILD_COMPLETE 3 +/* new defines */ +#define AS_REBUILD_START 1 +#define AS_REBUILD_ABORT 2 +#define AS_REBUILD_PAUSE AS_REBUILD_ABORT +#define AS_REBUILD_COMPLETE 3 +#define AS_VERIFY_START 4 +#define AS_VERIFY_ABORT 5 +#define AS_VERIFY_COMPLETE 6 +#define AS_INITIALIZE_START 7 +#define AS_INITIALIZE_ABORT 8 +#define AS_INITIALIZE_COMPLETE 9 +#define AS_VERIFY_FAILED 10 +#define AS_REBUILD_STOP 11 +#define AS_SAVE_STATE 12 +#define AS_TRANSFORM_START 13 +#define AS_TRANSFORM_ABORT 14 + +/************************************************************************ + * ioctl code + * It would be better if ioctl code are the same on different platforms, + * but we must not conflict with system defined ioctl code. + ************************************************************************/ +#if defined(LINUX) || defined(__FreeBSD_version) || defined(linux) +#define HPT_CTL_CODE(x) (x+0xFF00) +#define HPT_CTL_CODE_LINUX_TO_IOP(x) ((x)-0xff00) +#elif defined(_MS_WIN32_) || defined(WIN32) + +#ifndef CTL_CODE +#define CTL_CODE( DeviceType, Function, Method, Access ) \ + (((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method)) +#endif +#define HPT_CTL_CODE(x) CTL_CODE(0x370, 0x900+(x), 0, 0) +#define HPT_CTL_CODE_WIN32_TO_IOP(x) ((((x) & 0xffff)>>2)-0x900) + +#else +#define HPT_CTL_CODE(x) (x) +#endif + +#define HPT_IOCTL_GET_VERSION HPT_CTL_CODE(0) +#define HPT_IOCTL_GET_CONTROLLER_COUNT HPT_CTL_CODE(1) +#define HPT_IOCTL_GET_CONTROLLER_INFO HPT_CTL_CODE(2) +#define HPT_IOCTL_GET_CHANNEL_INFO HPT_CTL_CODE(3) +#define HPT_IOCTL_GET_LOGICAL_DEVICES HPT_CTL_CODE(4) +#define HPT_IOCTL_GET_DEVICE_INFO HPT_CTL_CODE(5) +#define HPT_IOCTL_CREATE_ARRAY HPT_CTL_CODE(6) +#define HPT_IOCTL_DELETE_ARRAY HPT_CTL_CODE(7) +#define HPT_IOCTL_ARRAY_IO HPT_CTL_CODE(8) +#define HPT_IOCTL_DEVICE_IO HPT_CTL_CODE(9) +#define HPT_IOCTL_GET_EVENT HPT_CTL_CODE(10) +#define HPT_IOCTL_REBUILD_MIRROR HPT_CTL_CODE(11) +/* use HPT_IOCTL_REBUILD_DATA_BLOCK from now on */ +#define HPT_IOCTL_REBUILD_DATA_BLOCK HPT_IOCTL_REBUILD_MIRROR +#define HPT_IOCTL_ADD_SPARE_DISK HPT_CTL_CODE(12) +#define HPT_IOCTL_REMOVE_SPARE_DISK HPT_CTL_CODE(13) +#define HPT_IOCTL_ADD_DISK_TO_ARRAY HPT_CTL_CODE(14) +#define HPT_IOCTL_SET_ARRAY_STATE HPT_CTL_CODE(15) +#define HPT_IOCTL_SET_ARRAY_INFO HPT_CTL_CODE(16) +#define HPT_IOCTL_SET_DEVICE_INFO HPT_CTL_CODE(17) +#define HPT_IOCTL_RESCAN_DEVICES HPT_CTL_CODE(18) +#define HPT_IOCTL_GET_DRIVER_CAPABILITIES HPT_CTL_CODE(19) +#define HPT_IOCTL_GET_601_INFO HPT_CTL_CODE(20) +#define HPT_IOCTL_SET_601_INFO HPT_CTL_CODE(21) +#define HPT_IOCTL_LOCK_DEVICE HPT_CTL_CODE(22) +#define HPT_IOCTL_UNLOCK_DEVICE HPT_CTL_CODE(23) +#define HPT_IOCTL_IDE_PASS_THROUGH HPT_CTL_CODE(24) +#define HPT_IOCTL_VERIFY_DATA_BLOCK HPT_CTL_CODE(25) +#define HPT_IOCTL_INITIALIZE_DATA_BLOCK HPT_CTL_CODE(26) +#define HPT_IOCTL_ADD_DEDICATED_SPARE HPT_CTL_CODE(27) +#define HPT_IOCTL_DEVICE_IO_EX HPT_CTL_CODE(28) +#define HPT_IOCTL_SET_BOOT_MARK HPT_CTL_CODE(29) +#define HPT_IOCTL_QUERY_REMOVE HPT_CTL_CODE(30) +#define HPT_IOCTL_REMOVE_DEVICES HPT_CTL_CODE(31) +#define HPT_IOCTL_CREATE_ARRAY_V2 HPT_CTL_CODE(32) +#define HPT_IOCTL_GET_DEVICE_INFO_V2 HPT_CTL_CODE(33) +#define HPT_IOCTL_SET_DEVICE_INFO_V2 HPT_CTL_CODE(34) +#define HPT_IOCTL_REBUILD_DATA_BLOCK_V2 HPT_CTL_CODE(35) +#define HPT_IOCTL_VERIFY_DATA_BLOCK_V2 HPT_CTL_CODE(36) +#define HPT_IOCTL_INITIALIZE_DATA_BLOCK_V2 HPT_CTL_CODE(37) +#define HPT_IOCTL_LOCK_DEVICE_V2 HPT_CTL_CODE(38) +#define HPT_IOCTL_DEVICE_IO_V2 HPT_CTL_CODE(39) +#define HPT_IOCTL_DEVICE_IO_EX_V2 HPT_CTL_CODE(40) +#define HPT_IOCTL_CREATE_TRANSFORM HPT_CTL_CODE(41) +#define HPT_IOCTL_STEP_TRANSFORM HPT_CTL_CODE(42) +#define HPT_IOCTL_SET_VDEV_INFO HPT_CTL_CODE(43) +#define HPT_IOCTL_CALC_MAX_CAPACITY HPT_CTL_CODE(44) +#define HPT_IOCTL_INIT_DISKS HPT_CTL_CODE(45) +#define HPT_IOCTL_GET_DEVICE_INFO_V3 HPT_CTL_CODE(46) +#define HPT_IOCTL_GET_CONTROLLER_INFO_V2 HPT_CTL_CODE(47) +#define HPT_IOCTL_I2C_TRANSACTION HPT_CTL_CODE(48) +#define HPT_IOCTL_GET_PARAMETER_LIST HPT_CTL_CODE(49) +#define HPT_IOCTL_GET_PARAMETER HPT_CTL_CODE(50) +#define HPT_IOCTL_SET_PARAMETER HPT_CTL_CODE(51) + + +#define HPT_IOCTL_GET_CONTROLLER_IDS HPT_CTL_CODE(100) +#define HPT_IOCTL_GET_DCB HPT_CTL_CODE(101) + +#define HPT_IOCTL_EPROM_IO HPT_CTL_CODE(102) +#define HPT_IOCTL_GET_CONTROLLER_VENID HPT_CTL_CODE(103) + +/************************************************************************ + * shared data structures + ************************************************************************/ + +/* + * Chip Type + */ +#define CHIP_TYPE_HPT366 1 +#define CHIP_TYPE_HPT368 2 +#define CHIP_TYPE_HPT370 3 +#define CHIP_TYPE_HPT370A 4 +#define CHIP_TYPE_HPT370B 5 +#define CHIP_TYPE_HPT374 6 +#define CHIP_TYPE_HPT372 7 +#define CHIP_TYPE_HPT372A 8 +#define CHIP_TYPE_HPT302 9 +#define CHIP_TYPE_HPT371 10 +#define CHIP_TYPE_HPT372N 11 +#define CHIP_TYPE_HPT302N 12 +#define CHIP_TYPE_HPT371N 13 +#define CHIP_TYPE_SI3112A 14 +#define CHIP_TYPE_ICH5 15 +#define CHIP_TYPE_ICH5R 16 + +/* + * Chip Flags + */ +#define CHIP_SUPPORT_ULTRA_66 0x20 +#define CHIP_SUPPORT_ULTRA_100 0x40 +#define CHIP_HPT3XX_DPLL_MODE 0x80 +#define CHIP_SUPPORT_ULTRA_133 0x01 +#define CHIP_SUPPORT_ULTRA_150 0x02 +#define CHIP_MASTER 0x04 +#define CHIP_SUPPORT_SATA_300 0x08 + +#define HPT_SPIN_UP_MODE_NOSUPPORT 0 +#define HPT_SPIN_UP_MODE_FULL 1 +#define HPT_SPIN_UP_MODE_STANDBY 2 + +typedef struct _DRIVER_CAPABILITIES { + HPT_U32 dwSize; + + HPT_U8 MaximumControllers; /* maximum controllers the driver can support */ + HPT_U8 SupportCrossControllerRAID; /* 1-support, 0-not support */ + HPT_U8 MinimumBlockSizeShift; /* minimum block size shift */ + HPT_U8 MaximumBlockSizeShift; /* maximum block size shift */ + + HPT_U8 SupportDiskModeSetting; + HPT_U8 SupportSparePool; + HPT_U8 MaximumArrayNameLength; + /* only one HPT_U8 left here! */ +#ifdef __BIG_ENDIAN_BITFIELD + HPT_U8 reserved: 4; + HPT_U8 SupportHotSwap: 1; + HPT_U8 HighPerformanceRAID1: 1; + HPT_U8 RebuildProcessInDriver: 1; + HPT_U8 SupportDedicatedSpare: 1; +#else + HPT_U8 SupportDedicatedSpare: 1; /* call hpt_add_dedicated_spare() for dedicated spare. */ + HPT_U8 RebuildProcessInDriver: 1; /* Windows only. used by mid layer for rebuild control. */ + HPT_U8 HighPerformanceRAID1: 1; /* Support RAID1.5 */ + HPT_U8 SupportHotSwap: 1; + HPT_U8 reserved: 4; +#endif + + /* SupportedRAIDTypes is an array of bytes, one of each is an array type. + * Only non-zero values is valid. Bit0-3 represents the lower(child) level RAID type; + * bit4-7 represents the top level. i.e. + * RAID 0/1 is (AT_RAID1<<4) | AT_RAID0 + * RAID 5/0 is (AT_RAID0<<4) | AT_RAID5 + */ + HPT_U8 SupportedRAIDTypes[16]; + /* maximum members in an array corresponding to SupportedRAIDTypes */ + HPT_U8 MaximumArrayMembers[16]; +} +DRIVER_CAPABILITIES, *PDRIVER_CAPABILITIES; + +/* + * Controller information. + */ +typedef struct _CONTROLLER_INFO { + HPT_U8 ChipType; /* chip type */ + HPT_U8 InterruptLevel; /* IRQ level */ + HPT_U8 NumBuses; /* bus count */ + HPT_U8 ChipFlags; + + HPT_U8 szProductID[MAX_NAME_LENGTH]; /* product name */ + HPT_U8 szVendorID[MAX_NAME_LENGTH]; /* vender name */ + +} CONTROLLER_INFO, *PCONTROLLER_INFO; + +#if HPT_INTERFACE_VERSION>=0x01020000 +typedef struct _CONTROLLER_INFO_V2 { + HPT_U8 ChipType; /* chip type */ + HPT_U8 InterruptLevel; /* IRQ level */ + HPT_U8 NumBuses; /* bus count */ + HPT_U8 ChipFlags; + + HPT_U8 szProductID[MAX_NAME_LENGTH]; /* product name */ + HPT_U8 szVendorID[MAX_NAME_LENGTH]; /* vender name */ + + HPT_U32 GroupId; /* low 32bit of vbus pointer the controller belongs + * the master controller has CHIP_MASTER flag set*/ + HPT_U8 pci_tree; + HPT_U8 pci_bus; + HPT_U8 pci_device; + HPT_U8 pci_function; + + HPT_U32 reserved; +} CONTROLLER_INFO_V2, *PCONTROLLER_INFO_V2; +#endif +/* + * Channel information. + */ +typedef struct _CHANNEL_INFO { + HPT_U32 IoPort; /* IDE Base Port Address */ + HPT_U32 ControlPort; /* IDE Control Port Address */ + + DEVICEID Devices[2]; /* device connected to this channel */ + +} CHANNEL_INFO, *PCHANNEL_INFO; + +/* + * time represented in HPT_U32 format + */ +#ifndef __KERNEL__ +typedef struct _TIME_RECORD { + HPT_U32 seconds:6; /* 0 - 59 */ + HPT_U32 minutes:6; /* 0 - 59 */ + HPT_U32 month:4; /* 1 - 12 */ + HPT_U32 hours:6; /* 0 - 59 */ + HPT_U32 day:5; /* 1 - 31 */ + HPT_U32 year:5; /* 0=2000, 31=2031 */ +} TIME_RECORD; +#endif + +/* + * Array information. + */ +typedef struct _HPT_ARRAY_INFO { + HPT_U8 Name[MAX_ARRAYNAME_LEN];/* array name */ + HPT_U8 Description[64]; /* array description */ + HPT_U8 CreateManager[16]; /* who created it */ + TIME_RECORD CreateTime; /* when created it */ + + HPT_U8 ArrayType; /* array type */ + HPT_U8 BlockSizeShift; /* stripe size */ + HPT_U8 nDisk; /* member count: Number of ID in Members[] */ + HPT_U8 reserved; + + HPT_U32 Flags; /* working flags, see ARRAY_FLAG_XXX */ + HPT_U32 Members[MAX_ARRAY_MEMBERS_V1]; /* member array/disks */ + + /* + * rebuilding progress, xx.xx% = sprintf(s, "%.2f%%", RebuildingProgress/100.0); + * only valid if rebuilding is done by driver code. + * Member Flags will have ARRAY_FLAG_REBUILDING set at this case. + * Verify operation use same fields below, the only difference is + * ARRAY_FLAG_VERIFYING is set. + */ + HPT_U32 RebuildingProgress; + HPT_U32 RebuiltSectors; /* rebuilding point (LBA) for single member */ + +} HPT_ARRAY_INFO, *PHPT_ARRAY_INFO; /*LDX modify ARRAY_INFO TO HPT_ARRAY_INFO to avoid compiling error in Windows*/ + +#if HPT_INTERFACE_VERSION>=0x01010000 +typedef struct _HPT_ARRAY_INFO_V2 { + HPT_U8 Name[MAX_ARRAYNAME_LEN];/* array name */ + HPT_U8 Description[64]; /* array description */ + HPT_U8 CreateManager[16]; /* who created it */ + TIME_RECORD CreateTime; /* when created it */ + + HPT_U8 ArrayType; /* array type */ + HPT_U8 BlockSizeShift; /* stripe size */ + HPT_U8 nDisk; /* member count: Number of ID in Members[] */ + HPT_U8 reserved; + + HPT_U32 Flags; /* working flags, see ARRAY_FLAG_XXX */ + HPT_U32 Members[MAX_ARRAY_MEMBERS_V2]; /* member array/disks */ + + HPT_U32 RebuildingProgress; + HPT_U64 RebuiltSectors; /* rebuilding point (LBA) for single member */ + + HPT_U32 reserve4[4]; +} HPT_ARRAY_INFO_V2, *PHPT_ARRAY_INFO_V2; +#endif + +#if HPT_INTERFACE_VERSION>=0x01020000 +typedef struct _HPT_ARRAY_INFO_V3 { + HPT_U8 Name[MAX_ARRAYNAME_LEN];/* array name */ + HPT_U8 Description[64]; /* array description */ + HPT_U8 CreateManager[16]; /* who created it */ + TIME_RECORD CreateTime; /* when created it */ + + HPT_U8 ArrayType; /* array type */ + HPT_U8 BlockSizeShift; /* stripe size */ + HPT_U8 nDisk; /* member count: Number of ID in Members[] */ + HPT_U8 reserved; + + HPT_U32 Flags; /* working flags, see ARRAY_FLAG_XXX */ + HPT_U32 Members[MAX_ARRAY_MEMBERS_V2]; /* member array/disks */ + + HPT_U32 RebuildingProgress; + HPT_U64 RebuiltSectors; /* rebuilding point (LBA) for single member */ + + DEVICEID TransformSource; + DEVICEID TransformTarget; /* destination device ID */ + HPT_U32 TransformingProgress; + HPT_U32 Signature; /* persistent identification*/ +#if MAX_ARRAY_MEMBERS_V2==16 + HPT_U16 Critical_Members; /*bit mask of critical members*/ + HPT_U16 reserve2; + HPT_U32 reserve; +#else + HPT_U32 Critical_Members; + HPT_U32 reserve; +#endif +} HPT_ARRAY_INFO_V3, *PHPT_ARRAY_INFO_V3; +#endif +/* + * ATA/ATAPI Device identify data without the Reserved4. + */ +#ifndef __KERNEL__ +typedef struct _IDENTIFY_DATA2 { + HPT_U16 GeneralConfiguration; + HPT_U16 NumberOfCylinders; + HPT_U16 Reserved1; + HPT_U16 NumberOfHeads; + HPT_U16 UnformattedBytesPerTrack; + HPT_U16 UnformattedBytesPerSector; + HPT_U16 SectorsPerTrack; + HPT_U16 VendorUnique1[3]; + HPT_U16 SerialNumber[10]; + HPT_U16 BufferType; + HPT_U16 BufferSectorSize; + HPT_U16 NumberOfEccBytes; + HPT_U16 FirmwareRevision[4]; + HPT_U16 ModelNumber[20]; + HPT_U8 MaximumBlockTransfer; + HPT_U8 VendorUnique2; + HPT_U16 DoubleWordIo; + HPT_U16 Capabilities; + HPT_U16 Reserved2; + HPT_U8 VendorUnique3; + HPT_U8 PioCycleTimingMode; + HPT_U8 VendorUnique4; + HPT_U8 DmaCycleTimingMode; + HPT_U16 TranslationFieldsValid; + HPT_U16 NumberOfCurrentCylinders; + HPT_U16 NumberOfCurrentHeads; + HPT_U16 CurrentSectorsPerTrack; + HPT_U32 CurrentSectorCapacity; + HPT_U16 CurrentMultiSectorSetting; + HPT_U32 UserAddressableSectors; + HPT_U8 SingleWordDMASupport; + HPT_U8 SingleWordDMAActive; + HPT_U8 MultiWordDMASupport; + HPT_U8 MultiWordDMAActive; + HPT_U8 AdvancedPIOModes; + HPT_U8 Reserved4; + HPT_U16 MinimumMWXferCycleTime; + HPT_U16 RecommendedMWXferCycleTime; + HPT_U16 MinimumPIOCycleTime; + HPT_U16 MinimumPIOCycleTimeIORDY; + HPT_U16 Reserved5[2]; + HPT_U16 ReleaseTimeOverlapped; + HPT_U16 ReleaseTimeServiceCommand; + HPT_U16 MajorRevision; + HPT_U16 MinorRevision; +} IDENTIFY_DATA2, *PIDENTIFY_DATA2; +#endif + +/* + * physical device information. + * IdentifyData.ModelNumber[] is HPT_U8-swapped from the original identify data. + */ +typedef struct _DEVICE_INFO { + HPT_U8 ControllerId; /* controller id */ + HPT_U8 PathId; /* bus */ + HPT_U8 TargetId; /* id */ + HPT_U8 DeviceModeSetting; /* Current Data Transfer mode: 0-4 PIO 0-4 */ + /* 5-7 MW DMA0-2, 8-13 UDMA0-5 */ + HPT_U8 DeviceType; /* device type */ + HPT_U8 UsableMode; /* highest usable mode */ + +#ifdef __BIG_ENDIAN_BITFIELD + HPT_U8 NCQEnabled: 1; + HPT_U8 NCQSupported: 1; + HPT_U8 TCQEnabled: 1; + HPT_U8 TCQSupported: 1; + HPT_U8 WriteCacheEnabled: 1; + HPT_U8 WriteCacheSupported: 1; + HPT_U8 ReadAheadEnabled: 1; + HPT_U8 ReadAheadSupported: 1; + HPT_U8 reserved6: 6; + HPT_U8 SpinUpMode: 2; +#else + HPT_U8 ReadAheadSupported: 1; + HPT_U8 ReadAheadEnabled: 1; + HPT_U8 WriteCacheSupported: 1; + HPT_U8 WriteCacheEnabled: 1; + HPT_U8 TCQSupported: 1; + HPT_U8 TCQEnabled: 1; + HPT_U8 NCQSupported: 1; + HPT_U8 NCQEnabled: 1; + HPT_U8 SpinUpMode: 2; + HPT_U8 reserved6: 6; +#endif + + HPT_U32 Flags; /* working flags, see DEVICE_FLAG_XXX */ + + IDENTIFY_DATA2 IdentifyData; /* Identify Data of this device */ + +} +__attribute__((packed)) DEVICE_INFO, *PDEVICE_INFO; + +#if HPT_INTERFACE_VERSION>=0x01020000 +#define MAX_PARENTS_PER_DISK 8 +/* + * physical device information. + * IdentifyData.ModelNumber[] is HPT_U8-swapped from the original identify data. + */ +typedef struct _DEVICE_INFO_V2 { + HPT_U8 ControllerId; /* controller id */ + HPT_U8 PathId; /* bus */ + HPT_U8 TargetId; /* id */ + HPT_U8 DeviceModeSetting; /* Current Data Transfer mode: 0-4 PIO 0-4 */ + /* 5-7 MW DMA0-2, 8-13 UDMA0-5 */ + HPT_U8 DeviceType; /* device type */ + HPT_U8 UsableMode; /* highest usable mode */ + +#ifdef __BIG_ENDIAN_BITFIELD + HPT_U8 NCQEnabled: 1; + HPT_U8 NCQSupported: 1; + HPT_U8 TCQEnabled: 1; + HPT_U8 TCQSupported: 1; + HPT_U8 WriteCacheEnabled: 1; + HPT_U8 WriteCacheSupported: 1; + HPT_U8 ReadAheadEnabled: 1; + HPT_U8 ReadAheadSupported: 1; + HPT_U8 reserved6: 6; + HPT_U8 SpinUpMode: 2; +#else + HPT_U8 ReadAheadSupported: 1; + HPT_U8 ReadAheadEnabled: 1; + HPT_U8 WriteCacheSupported: 1; + HPT_U8 WriteCacheEnabled: 1; + HPT_U8 TCQSupported: 1; + HPT_U8 TCQEnabled: 1; + HPT_U8 NCQSupported: 1; + HPT_U8 NCQEnabled: 1; + HPT_U8 SpinUpMode: 2; + HPT_U8 reserved6: 6; +#endif + + HPT_U32 Flags; /* working flags, see DEVICE_FLAG_XXX */ + + IDENTIFY_DATA2 IdentifyData; /* Identify Data of this device */ + + HPT_U64 TotalFree; + HPT_U64 MaxFree; + HPT_U64 BadSectors; + DEVICEID ParentArrays[MAX_PARENTS_PER_DISK]; + +} +__attribute__((packed)) DEVICE_INFO_V2, *PDEVICE_INFO_V2; + +/* + * HPT601 information + */ +#endif +/* + * HPT601 information + */ +#define HPT601_INFO_DEVICEID 1 +#define HPT601_INFO_TEMPERATURE 2 +#define HPT601_INFO_FANSTATUS 4 +#define HPT601_INFO_BEEPERCONTROL 8 +#define HPT601_INFO_LED1CONTROL 0x10 +#define HPT601_INFO_LED2CONTROL 0x20 +#define HPT601_INFO_POWERSTATUS 0x40 + +typedef struct _HPT601_INFO_ { + HPT_U16 ValidFields; /* mark valid fields below */ + HPT_U16 DeviceId; /* 0x5A3E */ + HPT_U16 Temperature; /* Read: temperature sensor value. Write: temperature limit */ + HPT_U16 FanStatus; /* Fan status */ + HPT_U16 BeeperControl; /* bit4: beeper control bit. bit0-3: frequency bits */ + HPT_U16 LED1Control; /* bit4: twinkling control bit. bit0-3: frequency bits */ + HPT_U16 LED2Control; /* bit4: twinkling control bit. bit0-3: frequency bits */ + HPT_U16 PowerStatus; /* 1: has power 2: no power */ +} HPT601_INFO, *PHPT601_INFO; + +#if HPT_INTERFACE_VERSION>=0x01010000 +#ifndef __KERNEL__ +/* cache policy for each vdev, copied from ldm.h */ +#define CACHE_POLICY_NONE 0 +#define CACHE_POLICY_WRITE_THROUGH 1 +#define CACHE_POLICY_WRITE_BACK 2 + +#endif +#endif +/* + * Logical device information. + * Union of ArrayInfo and DeviceInfo. + * Common properties will be put in logical device information. + */ +typedef struct _LOGICAL_DEVICE_INFO { + HPT_U8 Type; /* LDT_ARRAY or LDT_DEVICE */ + HPT_U8 reserved[3]; + + HPT_U32 Capacity; /* array capacity */ + DEVICEID ParentArray; + + union { + HPT_ARRAY_INFO array; + DEVICE_INFO device; + } __attribute__((packed)) u; + +} __attribute__((packed)) LOGICAL_DEVICE_INFO, *PLOGICAL_DEVICE_INFO; + +#if HPT_INTERFACE_VERSION>=0x01010000 +typedef struct _LOGICAL_DEVICE_INFO_V2 { + HPT_U8 Type; /* LDT_ARRAY or LDT_DEVICE */ + HPT_U8 reserved[3]; + + HPT_U64 Capacity; /* array capacity */ + DEVICEID ParentArray; /*for physical device, Please don't use this field. + * use ParentArrays field in DEVICE_INFO_V2 + */ + + union { + HPT_ARRAY_INFO_V2 array; + DEVICE_INFO device; + } __attribute__((packed)) u; + +} __attribute__((packed)) LOGICAL_DEVICE_INFO_V2, *PLOGICAL_DEVICE_INFO_V2; +#endif + +#if HPT_INTERFACE_VERSION>=0x01020000 +#define INVALID_TARGET_ID 0xFF +#define INVALID_BUS_ID 0xFF +typedef struct _LOGICAL_DEVICE_INFO_V3 { + HPT_U8 Type; /* LDT_ARRAY or LDT_DEVICE */ + HPT_U8 CachePolicy; /* refer to CACHE_POLICY_xxx */ + HPT_U8 VBusId; /* vbus sequence in vbus_list*/ + HPT_U8 TargetId; /* 0xFF is invalid target/bus id. otherwise, GUI should show + * to user: + * os name: HPT DISK x_y + * where x is vbus_id and y is target_id. + */ + + HPT_U64 Capacity; /* array capacity */ + DEVICEID ParentArray; /*for physical device, Please don't use this field. + * use ParentArrays field in DEVICE_INFO_V2 + */ + HPT_U32 TotalIOs; + HPT_U32 TobalMBs; + HPT_U32 IOPerSec; + HPT_U32 MBPerSec; + + union { + HPT_ARRAY_INFO_V3 array; + DEVICE_INFO_V2 device; + } __attribute__((packed)) u; + +} +__attribute__((packed)) LOGICAL_DEVICE_INFO_V3, *PLOGICAL_DEVICE_INFO_V3; +#endif + + +/* + * ALTERABLE_ARRAY_INFO and ALTERABLE_DEVICE_INFO, used in set_array_info() + * and set_device_info(). + * When set_xxx_info() is called, the ValidFields member indicates which + * fields in the structure are valid. + */ +/* field masks */ +#define AAIF_NAME 1 +#define AAIF_DESCRIPTION 2 + +#define ADIF_MODE 1 +#define ADIF_TCQ 2 +#define ADIF_NCQ 4 +#define ADIF_WRITE_CACHE 8 +#define ADIF_READ_AHEAD 0x10 +#define ADIF_SPIN_UP_MODE 0x20 + +typedef struct _ALTERABLE_ARRAY_INFO { + HPT_U32 ValidFields; /* mark valid fields below */ + HPT_U8 Name[MAX_ARRAYNAME_LEN]; /* array name */ + HPT_U8 Description[64]; /* array description */ +} +ALTERABLE_ARRAY_INFO, *PALTERABLE_ARRAY_INFO; + +typedef struct _ALTERABLE_DEVICE_INFO { + HPT_U32 ValidFields; /* mark valid fields below */ + HPT_U8 DeviceModeSetting; /* 0-4 PIO 0-4, 5-7 MW DMA0-2, 8-13 UDMA0-5 */ +} +ALTERABLE_DEVICE_INFO, *PALTERABLE_DEVICE_INFO; + +typedef struct _ALTERABLE_DEVICE_INFO_V2 { + HPT_U32 ValidFields; /* mark valid fields below */ + HPT_U8 DeviceModeSetting; /* 0-4 PIO 0-4, 5-7 MW DMA0-2, 8-13 UDMA0-5 */ + HPT_U8 TCQEnabled; + HPT_U8 NCQEnabled; + HPT_U8 WriteCacheEnabled; + HPT_U8 ReadAheadEnabled; + HPT_U8 SpinUpMode; + HPT_U8 reserve[2]; + HPT_U32 reserve2[13]; /* pad to 64 bytes */ +} +ALTERABLE_DEVICE_INFO_V2, *PALTERABLE_DEVICE_INFO_V2; + +#if HPT_INTERFACE_VERSION>=0x01020000 +/* target type of set_info, this time, we use the type and length alterable param to implement + * set_dev_info function for future extension*/ +#define TARGET_TYPE_DEVICE 0 +#define TARGET_TYPE_ARRAY 1 + +/*which type of information of an array to be changed*/ +#define AIT_NAME 0 +#define AIT_DESCRIPTION 1 +#define AIT_CACHE_POLICY 2 +/*which type of information of a device to be changed*/ +#define DIT_MODE 0 +#define DIT_READ_AHEAD 1 +#define DIT_WRITE_CACHE 2 +#define DIT_TCQ 3 +#define DIT_NCQ 4 + +/*param type is determined by target_type and info_type*/ +typedef struct _SET_DEV_INFO +{ + HPT_U8 target_type; + HPT_U8 infor_type; + HPT_U16 param_length; + #define SET_VDEV_INFO_param(p) ((HPT_U8 *)(p)+sizeof(SET_VDEV_INFO)) + /* HPT_U8 param[0]; */ +} SET_VDEV_INFO, * PSET_VDEV_INFO; + +typedef HPT_U8 PARAM_ARRAY_NAME[MAX_ARRAYNAME_LEN] ; +typedef HPT_U8 PARAM_ARRAY_DES[64]; +typedef HPT_U8 PARAM_DEVICE_MODE, PARAM_TCQ, PARAM_NCQ, PARAM_READ_AHEAD, PARAM_WRITE_CACHE, PARAM_CACHE_POLICY; + +#endif + +/* + * CREATE_ARRAY_PARAMS + * Param structure used to create an array. + */ +typedef struct _CREATE_ARRAY_PARAMS { + HPT_U8 ArrayType; /* 1-level array type */ + HPT_U8 nDisk; /* number of elements in Members[] array */ + HPT_U8 BlockSizeShift; /* Stripe size if ArrayType==AT_RAID0 / AT_RAID5 */ + HPT_U8 CreateFlags; /* See CAF_xxx */ + + HPT_U8 ArrayName[MAX_ARRAYNAME_LEN]; /* Array name */ + HPT_U8 Description[64]; /* array description */ + HPT_U8 CreateManager[16]; /* who created it */ + TIME_RECORD CreateTime; /* when created it */ + + HPT_U32 Members[MAX_ARRAY_MEMBERS_V1];/* ID of array members, a member can be an array */ + +} CREATE_ARRAY_PARAMS, *PCREATE_ARRAY_PARAMS; + +#if HPT_INTERFACE_VERSION>=0x01010000 +typedef struct _CREATE_ARRAY_PARAMS_V2 { + HPT_U8 ArrayType; /* 1-level array type */ + HPT_U8 nDisk; /* number of elements in Members[] array */ + HPT_U8 BlockSizeShift; /* Stripe size if ArrayType==AT_RAID0 / AT_RAID5 */ + HPT_U8 CreateFlags; /* See CAF_xxx */ + + HPT_U8 ArrayName[MAX_ARRAYNAME_LEN]; /* Array name */ + HPT_U8 Description[64]; /* array description */ + HPT_U8 CreateManager[16]; /* who created it */ + TIME_RECORD CreateTime; /* when created it */ + HPT_U64 Capacity; + + HPT_U32 Members[MAX_ARRAY_MEMBERS_V2];/* ID of array members, a member can be an array */ + +} CREATE_ARRAY_PARAMS_V2, *PCREATE_ARRAY_PARAMS_V2; +#endif + +#if HPT_INTERFACE_VERSION < 0x01020000 +/* + * Flags used for creating an RAID 1 array + * + * CAF_CREATE_AND_DUPLICATE + * Copy source disk contents to target for RAID 1. If user choose "create and duplicate" + * to create an array, GUI will call CreateArray() with this flag set. Then GUI should + * call hpt_get_device_info() with the returned array ID and check returned flags to + * see if ARRAY_FLAG_REBUILDING is set. If not set, driver does not support rebuilding + * and GUI must do duplication itself. + * CAF_DUPLICATE_MUST_DONE + * If the duplication is aborted or fails, do not create the array. + */ +#define CAF_CREATE_AND_DUPLICATE 1 +#define CAF_DUPLICATE_MUST_DONE 2 +#define CAF_CREATE_AS_RAID15 4 +/* + * Flags used for creating an RAID 5 array + */ +#define CAF_CREATE_R5_NO_BUILD 1 +#define CAF_CREATE_R5_ZERO_INIT 2 +#define CAF_CREATE_R5_BUILD_PARITY 4 + +#else +/* + * Flags used for creating + */ +#define CAF_FOREGROUND_INITIALIZE 1 +#define CAF_BACKGROUND_INITIALIZE 2 +#define CAF_CREATE_R5_WRITE_BACK 8 + +#endif + +#define CAF_KEEP_DATA_ALWAYS 0x80 + +/* Flags used for deleting an array + * + * DAF_KEEP_DATA_IF_POSSIBLE + * If this flag is set, deleting a RAID 1 array will not destroy the data on both disks. + * Deleting a JBOD should keep partitions on first disk ( not implement now ). + * Deleting a RAID 0/1 should result as two RAID 0 array ( not implement now ). + */ +#define DAF_KEEP_DATA_IF_POSSIBLE 1 +#define DAF_KEEP_DATA_ALWAYS 2 + +/* + * event types + */ +#define ET_DEVICE_REMOVED 1 /* device removed */ +#define ET_DEVICE_PLUGGED 2 /* device plugged */ +#define ET_DEVICE_ERROR 3 /* device I/O error */ +#define ET_REBUILD_STARTED 4 +#define ET_REBUILD_ABORTED 5 +#define ET_REBUILD_FINISHED 6 +#define ET_SPARE_TOOK_OVER 7 +#define ET_REBUILD_FAILED 8 +#define ET_VERIFY_STARTED 9 +#define ET_VERIFY_ABORTED 10 +#define ET_VERIFY_FAILED 11 +#define ET_VERIFY_FINISHED 12 +#define ET_INITIALIZE_STARTED 13 +#define ET_INITIALIZE_ABORTED 14 +#define ET_INITIALIZE_FAILED 15 +#define ET_INITIALIZE_FINISHED 16 +#define ET_VERIFY_DATA_ERROR 17 +#define ET_TRANSFORM_STARTED 18 +#define ET_TRANSFORM_ABORTED 19 +#define ET_TRANSFORM_FAILED 20 +#define ET_TRANSFORM_FINISHED 21 +#define ET_SMART_FAILED 22 +#define ET_SMART_PASSED 23 +/* + * event structure + */ +typedef struct _HPT_EVENT { + TIME_RECORD Time; + DEVICEID DeviceID; + HPT_U8 EventType; + HPT_U8 reserved[3]; + + HPT_U8 Data[32]; /* various data depend on EventType */ +} HPT_EVENT, *PHPT_EVENT; + +/* + * IDE pass-through command. Use it at your own risk! + */ +#ifdef _MSC_VER +#pragma warning(disable:4200) +#endif +typedef struct _IDE_PASS_THROUGH_HEADER { + DEVICEID idDisk; /* disk ID */ + HPT_U8 bFeaturesReg; /* feature register */ + HPT_U8 bSectorCountReg; /* IDE sector count register. */ + HPT_U8 bLbaLowReg; /* IDE LBA low value. */ + HPT_U8 bLbaMidReg; /* IDE LBA mid register. */ + HPT_U8 bLbaHighReg; /* IDE LBA high value. */ + HPT_U8 bDriveHeadReg; /* IDE drive/head register. */ + HPT_U8 bCommandReg; /* Actual IDE command. Checked for validity by driver. */ + HPT_U8 nSectors; /* data size in sectors, if the command has data transfer */ + HPT_U8 protocol; /* IO_COMMAND_(READ,WRITE) or zero for non-DATA */ + HPT_U8 reserve[3]; + #define IDE_PASS_THROUGH_buffer(p) ((HPT_U8 *)(p) + sizeof(IDE_PASS_THROUGH_HEADER)) + /* HPT_U8 DataBuffer[0]; */ +} +IDE_PASS_THROUGH_HEADER, *PIDE_PASS_THROUGH_HEADER; + +/* + * device io packet format + */ +typedef struct _DEVICE_IO_EX_PARAMS { + DEVICEID idDisk; + HPT_U32 Lba; + HPT_U16 nSectors; + HPT_U8 Command; /* IO_COMMAD_xxx */ + HPT_U8 BufferType; /* BUFFER_TYPE_xxx, see below */ + HPT_U32 BufferPtr; +} +DEVICE_IO_EX_PARAMS, *PDEVICE_IO_EX_PARAMS; + +#define BUFFER_TYPE_LOGICAL 1 /* logical pointer to buffer */ +#define BUFFER_TYPE_PHYSICAL 2 /* physical address of buffer */ +#define BUFFER_TYPE_LOGICAL_LOGICAL_SG 3 /* logical pointer to logical S/G table */ +#define BUFFER_TYPE_LOGICAL_PHYSICAL_SG 4 /* logical pointer to physical S/G table */ +#define BUFFER_TYPE_PHYSICAL_LOGICAL_SG 5 /* physical address to logical S/G table */ +#define BUFFER_TYPE_PHYSICAL_PHYSICAL_SG 6 /* physical address of physical S/G table */ +#define BUFFER_TYPE_PHYSICAL_PHYSICAL_SG_PIO 7 /* non DMA capable physical address of physical S/G table */ + +typedef struct _HPT_DRIVER_PARAMETER { + char name[32]; + HPT_U8 value[32]; + HPT_U8 type; /* HPT_DRIVER_PARAMETER_TYPE_* */ + HPT_U8 reserve3[3]; + HPT_U8 location; /* 0 - system */ + HPT_U8 controller; + HPT_U8 bus; + HPT_U8 reserve1; + char desc[128]; +} +HPT_DRIVER_PARAMETER, *PHPT_DRIVER_PARAMETER; + +#define HPT_DRIVER_PARAMETER_TYPE_INT 1 +#define HPT_DRIVER_PARAMETER_TYPE_BOOL 2 + + + +/* + * ioctl structure + */ +#define HPT_IOCTL_MAGIC32 0x1A2B3C4D +#define HPT_IOCTL_MAGIC 0xA1B2C3D4 + +typedef struct _HPT_IOCTL_PARAM { + HPT_U32 Magic; /* used to check if it's a valid ioctl packet */ + HPT_U32 dwIoControlCode; /* operation control code */ + HPT_PTR lpInBuffer; /* input data buffer */ + HPT_U32 nInBufferSize; /* size of input data buffer */ + HPT_PTR lpOutBuffer; /* output data buffer */ + HPT_U32 nOutBufferSize; /* size of output data buffer */ + HPT_PTR lpBytesReturned; /* count of HPT_U8s returned */ +} +HPT_IOCTL_PARAM, *PHPT_IOCTL_PARAM; + +/* for 32-bit app running on 64-bit system */ +typedef struct _HPT_IOCTL_PARAM32 { + HPT_U32 Magic; + HPT_U32 dwIoControlCode; + HPT_U32 lpInBuffer; + HPT_U32 nInBufferSize; + HPT_U32 lpOutBuffer; + HPT_U32 nOutBufferSize; + HPT_U32 lpBytesReturned; +} +HPT_IOCTL_PARAM32, *PHPT_IOCTL_PARAM32; + +/* + * User-mode ioctl parameter passing conventions: + * The ioctl function implementation is platform specific, so we don't + * have forced rules for it. However, it's suggested to use a parameter + * passing method as below + * 1) Put all input data continuously in an input buffer. + * 2) Prepare an output buffer with enough size if needed. + * 3) Fill a HPT_IOCTL_PARAM structure. + * 4) Pass the structure to driver through a platform-specific method. + * This is implemented in the mid-layer user-mode library. The UI + * programmer needn't care about it. + */ + +/************************************************************************ + * User mode functions + ************************************************************************/ +#if !defined(__KERNEL__) || defined(SIMULATE) +/* + * hpt_get_version + * Version compatibility: all versions + * Parameters: + * None + * Returns: + * interface version. 0 when fail. + */ +HPT_U32 hpt_get_version(void); + +/* + * hpt_get_driver_capabilities + * Version compatibility: v1.0.0.2 or later + * Parameters: + * Pointer to receive a DRIVE_CAPABILITIES structure. The caller must set + * dwSize member to sizeof(DRIVER_CAPABILITIES). The callee must check this + * member to see if it's correct. + * Returns: + * 0 - Success + */ +int hpt_get_driver_capabilities(PDRIVER_CAPABILITIES cap); + +/* + * hpt_get_controller_count + * Version compatibility: v1.0.0.1 or later + * Parameters: + * None + * Returns: + * number of controllers + */ +int hpt_get_controller_count(void); + +/* hpt_get_controller_info + * Version compatibility: v1.0.0.1 or later + * Parameters: + * id Controller id + * pInfo pointer to CONTROLLER_INFO buffer + * Returns: + * 0 Success, controller info is put into (*pInfo ). + */ +int hpt_get_controller_info(int id, PCONTROLLER_INFO pInfo); + +#if HPT_INTERFACE_VERSION>=0x01020000 +/* hpt_get_controller_info_v2 + * Version compatibility: v2.0.0.0 or later + * Parameters: + * id Controller id + * pInfo pointer to CONTROLLER_INFO_V2 buffer + * Returns: + * 0 Success, controller info is put into (*pInfo ). + */ +int hpt_get_controller_info_v2(int id, PCONTROLLER_INFO_V2 pInfo); +#endif + +/* hpt_get_channel_info + * Version compatibility: v1.0.0.1 or later + * Parameters: + * id Controller id + * bus bus number + * pInfo pointer to CHANNEL_INFO buffer + * Returns: + * 0 Success, channel info is put into (*pInfo ). + */ +int hpt_get_channel_info(int id, int bus, PCHANNEL_INFO pInfo); + +/* hpt_get_logical_devices + * Version compatibility: v1.0.0.1 or later + * Parameters: + * pIds pointer to a DEVICEID array + * nMaxCount array size + * Returns: + * Number of ID returned. All logical device IDs are put into pIds array. + * Note: A spare disk is not a logical device. + */ +int hpt_get_logical_devices(DEVICEID * pIds, int nMaxCount); + +/* hpt_get_device_info + * Version compatibility: v1.0.0.1 or later + * Parameters: + * id logical device id + * pInfo pointer to LOGICAL_DEVICE_INFO structure + * Returns: + * 0 - Success + */ +int hpt_get_device_info(DEVICEID id, PLOGICAL_DEVICE_INFO pInfo); + +/* hpt_create_array + * Version compatibility: v1.0.0.1 or later + * Parameters: + * pParam pointer to CREATE_ARRAY_PARAMS structure + * Returns: + * 0 failed + * else return array id + */ +DEVICEID hpt_create_array(PCREATE_ARRAY_PARAMS pParam); + +/* hpt_delete_array + * Version compatibility: v1.0.0.1 or later + * Parameters: + * id array id + * Returns: + * 0 Success + */ +int hpt_delete_array(DEVICEID id, HPT_U32 options); + +/* hpt_device_io + * Read/write data on array and physcal device. + * Version compatibility: v1.0.0.1 or later + * Parameters: + * id device id. If it's an array ID, IO will be performed on the array. + * If it's a physical device ID, IO will be performed on the device. + * cmd IO_COMMAND_READ or IO_COMMAND_WRITE + * buffer data buffer + * length data size + * Returns: + * 0 Success + */ +int hpt_device_io(DEVICEID id, int cmd, HPT_U32 lba, HPT_U32 nSector, void * buffer); + +/* hpt_add_disk_to_array + * Used to dynamicly add a disk to an RAID1, RAID0/1, RAID1/0 or RAID5 array. + * Auto-rebuild will start. + * Version compatibility: v1.0.0.1 or later + * Parameters: + * idArray array id + * idDisk disk id + * Returns: + * 0 Success + */ +int hpt_add_disk_to_array(DEVICEID idArray, DEVICEID idDisk); + +/* hpt_add_spare_disk + * Version compatibility: v1.0.0.1 or later + * Add a disk to spare pool. + * Parameters: + * idDisk disk id + * Returns: + * 0 Success + */ +int hpt_add_spare_disk(DEVICEID idDisk); + +/* hpt_add_dedicated_spare + * Version compatibility: v1.0.0.3 or later + * Add a spare disk to an array + * Parameters: + * idDisk disk id + * idArray array id + * Returns: + * 0 Success + */ +int hpt_add_dedicated_spare(DEVICEID idDisk, DEVICEID idArray); + +/* hpt_remove_spare_disk + * remove a disk from spare pool. + * Version compatibility: v1.0.0.1 or later + * Parameters: + * idDisk disk id + * Returns: + * 0 Success + */ +int hpt_remove_spare_disk(DEVICEID idDisk); + +/* hpt_get_event + * Used to poll events from driver. + * Version compatibility: v1.0.0.1 or later + * Parameters: + * pEvent pointer to HPT_EVENT structure + * Returns: + * 0 Success, event info is filled in *pEvent + */ +int hpt_get_event(PHPT_EVENT pEvent); + +/* hpt_rebuild_data_block + * Used to copy data from source disk and mirror disk. + * Version compatibility: v1.0.0.1 or later + * Parameters: + * idArray Array ID (RAID1, 0/1 or RAID5) + * Lba Start LBA for each array member + * nSector Number of sectors for each array member (RAID 5 will ignore this parameter) + * + * Returns: + * 0 Success, event info is filled in *pEvent + */ +int hpt_rebuild_data_block(DEVICEID idMirror, HPT_U32 Lba, HPT_U8 nSector); +#define hpt_rebuild_mirror(p1, p2, p3) hpt_rebuild_data_block(p1, p2, p3) + +/* hpt_set_array_state + * set array state. + * Version compatibility: v1.0.0.1 or later + * Parameters: + * idArray Array ID + * state See above 'array states' constants, possible values are: + * MIRROR_REBUILD_START + * Indicate that GUI wants to rebuild a mirror array + * MIRROR_REBUILD_ABORT + * GUI wants to abort rebuilding an array + * MIRROR_REBUILD_COMPLETE + * GUI finished to rebuild an array. If rebuild is done by driver this + * state has no use + * + * Returns: + * 0 Success + */ +int hpt_set_array_state(DEVICEID idArray, HPT_U32 state); + +/* hpt_set_array_info + * set array info. + * Version compatibility: v1.0.0.1 or later + * Parameters: + * idArray Array ID + * pInfo pointer to new info + * + * Returns: + * 0 Success + */ +int hpt_set_array_info(DEVICEID idArray, PALTERABLE_ARRAY_INFO pInfo); + +/* hpt_set_device_info + * set device info. + * Version compatibility: v1.0.0.1 or later + * Parameters: + * idDisk device ID + * pInfo pointer to new info + * + * Returns: + * 0 Success + * Additional notes: + * If idDisk==0, call to this function will stop buzzer on the adapter + * (if supported by driver). + */ +int hpt_set_device_info(DEVICEID idDisk, PALTERABLE_DEVICE_INFO pInfo); + +#if HPT_INTERFACE_VERSION >= 0x01000004 +int hpt_set_device_info_v2(DEVICEID idDisk, PALTERABLE_DEVICE_INFO_V2 pInfo); +#endif + +/* hpt_rescan_devices + * rescan devices + * Version compatibility: v1.0.0.1 or later + * Parameters: + * None + * Returns: + * 0 Success + */ +int hpt_rescan_devices(void); + +/* hpt_get_601_info + * Get HPT601 status + * Version compatibiilty: v1.0.0.3 or later + * Parameters: + * idDisk - Disk handle + * PHPT601_INFO - pointer to HPT601 info buffer + * Returns: + * 0 Success + */ +int hpt_get_601_info(DEVICEID idDisk, PHPT601_INFO pInfo); + +/* hpt_set_601_info + * HPT601 function control + * Version compatibiilty: v1.0.0.3 or later + * Parameters: + * idDisk - Disk handle + * PHPT601_INFO - pointer to HPT601 info buffer + * Returns: + * 0 Success + */ +int hpt_set_601_info(DEVICEID idDisk, PHPT601_INFO pInfo); + +/* hpt_lock_device + * Lock a block on a device (prevent OS accessing it) + * Version compatibiilty: v1.0.0.3 or later + * Parameters: + * idDisk - Disk handle + * Lba - Start LBA + * nSectors - number of sectors + * Returns: + * 0 Success + */ +int hpt_lock_device(DEVICEID idDisk, HPT_U32 Lba, HPT_U8 nSectors); + +/* hpt_lock_device + * Unlock a device + * Version compatibiilty: v1.0.0.3 or later + * Parameters: + * idDisk - Disk handle + * Returns: + * 0 Success + */ +int hpt_unlock_device(DEVICEID idDisk); + +/* hpt_ide_pass_through + * directly access controller's command and control registers. + * Can only call it on physical devices. + * Version compatibility: v1.0.0.3 or later + * Parameters: + * p - IDE_PASS_THROUGH header pointer + * Returns: + * 0 Success + */ +int hpt_ide_pass_through(PIDE_PASS_THROUGH_HEADER p); + +/* hpt_verify_data_block + * verify data block on RAID1 or RAID5. + * Version compatibility: v1.0.0.3 or later + * Parameters: + * idArray - Array ID + * Lba - block number (on each array member, not logical block!) + * nSectors - Sectors for each member (RAID 5 will ignore this parameter) + * Returns: + * 0 Success + * 1 Data compare error + * 2 I/O error + */ +int hpt_verify_data_block(DEVICEID idArray, HPT_U32 Lba, HPT_U8 nSectors); + +/* hpt_initialize_data_block + * initialize data block (fill with zero) on RAID5 + * Version compatibility: v1.0.0.3 or later + * Parameters: + * idArray - Array ID + * Lba - block number (on each array member, not logical block!) + * nSectors - Sectors for each member (RAID 5 will ignore this parameter) + * Returns: + * 0 Success + */ +int hpt_initialize_data_block(DEVICEID idArray, HPT_U32 Lba, HPT_U8 nSectors); + +/* hpt_device_io_ex + * extended device I/O function + * Version compatibility: v1.0.0.3 or later + * Parameters: + * idArray - Array ID + * Lba - block number (on each array member, not logical block!) + * nSectors - Sectors for each member + * buffer - I/O buffer or s/g address + * Returns: + * 0 Success + */ +int hpt_device_io_ex(PDEVICE_IO_EX_PARAMS param); + +/* hpt_set_boot_mark + * select boot device + * Version compatibility: v1.0.0.3 or later + * Parameters: + * id - logical device ID. If id is 0 the boot mark will be removed. + * Returns: + * 0 Success + */ +int hpt_set_boot_mark(DEVICEID id); + +/* hpt_query_remove + * check if device can be removed safely + * Version compatibility: v1.0.0.4 or later + * Parameters: + * ndev - number of devices + * pIds - device ID list + * Returns: + * 0 - Success + * -1 - unknown error + * n - the n-th device that can't be removed + */ +int hpt_query_remove(HPT_U32 ndev, DEVICEID *pIds); + +/* hpt_remove_devices + * remove a list of devices + * Version compatibility: v1.0.0.4 or later + * Parameters: + * ndev - number of devices + * pIds - device ID list + * Returns: + * 0 - Success + * -1 - unknown error + * n - the n-th device that can't be removed + */ +int hpt_remove_devices(HPT_U32 ndev, DEVICEID *pIds); + +/* hpt_create_array_v2 + * Version compatibility: v1.1.0.0 or later + * Parameters: + * pParam pointer to CREATE_ARRAY_PARAMS_V2 structure + * Returns: + * 0 failed + * else return array id + */ +#if HPT_INTERFACE_VERSION>=0x01010000 +DEVICEID hpt_create_array_v2(PCREATE_ARRAY_PARAMS_V2 pParam); +#endif + +/* hpt_get_device_info_v2 + * Version compatibility: v1.1.0.0 or later + * Parameters: + * id logical device id + * pInfo pointer to LOGICAL_DEVICE_INFO_V2 structure + * Returns: + * 0 - Success + */ +#if HPT_INTERFACE_VERSION>=0x01010000 +int hpt_get_device_info_v2(DEVICEID id, PLOGICAL_DEVICE_INFO_V2 pInfo); +#endif + +/* hpt_get_device_info_v3 + * Version compatibility: v1.2.0.0 or later + * Parameters: + * id logical device id + * pInfo pointer to LOGICAL_DEVICE_INFO_V2 structure + * Returns: + * 0 - Success + */ +#if HPT_INTERFACE_VERSION>=0x01020000 +int hpt_get_device_info_v3(DEVICEID id, PLOGICAL_DEVICE_INFO_V3 pInfo); +#endif + +/* hpt_create_transform + * create a transform instance. + * Version compatibility: v2.0.0.0 or later + * Parameters: + * idArray - source array + * destInfo - destination array info + * Returns: + * destination array id + */ +#if HPT_INTERFACE_VERSION>=0x02000000 +DEVICEID hpt_create_transform(DEVICEID idArray, PCREATE_ARRAY_PARAMS_V2 destInfo); +#endif + +/* hpt_step_transform + * move a block in a tranform progress. + * This function is called by mid-layer, not GUI (which uses set_array_state instead). + * Version compatibility: v2.0.0.0 or later + * Parameters: + * idArray - destination array ID + * the source ID will be invalid when transform complete. + * Returns: + * 0 - Success + */ +#if HPT_INTERFACE_VERSION>=0x02000000 +int hpt_step_transform(DEVICEID idArray); +#endif + +/* hpt_set_vdev_info + * set information for disk or array + * Version compatibility: v1.2.0.0 or later + * Parameters: + * dev - destination device + * + * Returns: + * 0 - Success + */ +#if HPT_INTERFACE_VERSION>=0x01020000 +int hpt_set_vdev_info(DEVICEID dev, PSET_VDEV_INFO pInfo); +#endif + +/* hpt_init_disks + * initialize disks for use + * Version compatibility: v2.0.0.0 or later + * Parameters: + * ndev - number of disks to initialize + * pIds - array of DEVICEID + * + * Returns: + * 0 - Success + */ +#if HPT_INTERFACE_VERSION>=0x02000000 +int hpt_init_disks(HPT_U32 ndev, DEVICEID * pIds); +#endif + +/* hpt_calc_max_array_capacity + * cap max capacity of the array user want to create or transform + * Version compatibility: v1.2.0.0 or later + * Parameters: + * source - if transform, this is the source array, otherwise, it should be zero + * destInfo - target array params + * Returns: + * 0 - Success + * cap - max capacity of the target array + */ +#if HPT_INTERFACE_VERSION>=0x01020000 +int hpt_calc_max_array_capacity(DEVICEID source, PCREATE_ARRAY_PARAMS_V2 destInfo, HPT_U64 * cap); +#endif + +/* hpt_rebuild_data_block2 + * Used to copy data from source disk and mirror disk. + * Version compatibility: v1.1.0.0 or later + * Parameters: + * idArray Array ID (RAID1, 0/1 or RAID5) + * Lba Start LBA for each array member + * nSector Number of sectors for each array member (RAID 5 will ignore this parameter) + * + * Returns: + * 0 Success, event info is filled in *pEvent + */ +#if HPT_INTERFACE_VERSION>=0x01010000 +int hpt_rebuild_data_block_v2(DEVICEID idMirror, HPT_U64 Lba, HPT_U16 nSector); +#endif + +/* hpt_verify_data_block2 + * verify data block on RAID1 or RAID5. + * Version compatibility: v1.1.0.0 or later + * Parameters: + * idArray - Array ID + * Lba - block number (on each array member, not logical block!) + * nSectors - Sectors for each member (RAID 5 will ignore this parameter) + * Returns: + * 0 Success + * 1 Data compare error + * 2 I/O error + */ +#if HPT_INTERFACE_VERSION>=0x01010000 +int hpt_verify_data_block_v2(DEVICEID idArray, HPT_U64 Lba, HPT_U16 nSectors); +#endif + +/* hpt_initialize_data_block2 + * initialize data block (fill with zero) on RAID5 + * Version compatibility: v1.1.0.0 or later + * Parameters: + * idArray - Array ID + * Lba - block number (on each array member, not logical block!) + * nSectors - Sectors for each member (RAID 5 will ignore this parameter) + * Returns: + * 0 Success + */ +#if HPT_INTERFACE_VERSION>=0x01010000 +int hpt_initialize_data_block_v2(DEVICEID idArray, HPT_U64 Lba, HPT_U16 nSectors); +#endif + +/* hpt_i2c_transaction + * perform an transaction on i2c bus + * Version compatibility: v2.0.0.0 or later + * Parameters: + * indata[0] - controller ID + * Returns: + * 0 Success + */ +#if HPT_INTERFACE_VERSION>=0x01020000 +int hpt_i2c_transaction(HPT_U8 *indata, HPT_U32 inlen, HPT_U8 *outdata, HPT_U32 outlen, HPT_U32 *poutlen); +#endif + +/* hpt_get_parameter_list + * get a list of driver parameters. + * Version compatibility: v1.0.0.0 or later + * Parameters: + * location - parameter location + * outBuffer - a buffer to hold the output + * outBufferSize - size of outBuffer + * Returns: + * 0 Success + * put in outBuffer a list of zero terminated parameter names. the whole list + * is terminated with an additional zero byte. + */ +int hpt_get_parameter_list(HPT_U32 location, char *outBuffer, HPT_U32 outBufferSize); + +/* hpt_{get,set}_parameter + * get/set a parameter value. + * Version compatibility: v1.0.0.0 or later + * Parameters: + * pParam - a pointer to HPT_DRIVER_PARAMETER. + * Returns: + * 0 Success + */ +int hpt_get_parameter(PHPT_DRIVER_PARAMETER pParam); +int hpt_set_parameter(PHPT_DRIVER_PARAMETER pParam); + +#endif + +#pragma pack() + +#ifdef __cplusplus +} +#endif +#endif diff --git a/sys/dev/rr232x/i386-elf.rr232x_lib.o.uu b/sys/dev/rr232x/i386-elf.rr232x_lib.o.uu new file mode 100644 index 000000000000..e054cf42c547 --- /dev/null +++ b/sys/dev/rr232x/i386-elf.rr232x_lib.o.uu @@ -0,0 +1,3068 @@ +$FreeBSD$ +begin 644 rr232x_lib.o +M?T5,1@$!`0D```````````$``P`!````````````````\`0!`&(```!J%.C\____BTPD-(M!#(N0`/X*`(D5```` +M`(M##(FP9!T``(M##(FH:!T``(M!#(FX\`0!`/;""`^4P`^VP(/$'%M>7UW# +MC78`5E.#[!"*7"0@BU0D'(M"#(NP\`0!`(DU`````(M"#,>`\`0!`&(```!J +M%.C\____BT0D((M0#(3;#Y7`B((`_`H`QP0D%````.C\____BU0D((M"#(FP +M\`0!`(/$%%M>PXUV`(M4)`2+3"0(N``````[%2@```!],HT4DL'B`F:+@@`` +M``!FB0%FBX("````9HE!`HJ""````(A!"(J""0```(A!";@!````PU575E.# +M[!#&1"0/`+W__P``H2@```")!"3&1"0.`(L$)(E$)`2_`````(M$)`2)1"0( +MB?:[`````#M<)`A],HMT)`B0C02;C0R%``````^W@0(```#!X!`/MY$````` +M"=`YZ'4'_X$,````D$,Y\WS31XGX/`=VO/Y$)`Z`?"0.'W:B_D0D#X!\)`__ +M=8N#Q!!;7E]=PXGV5E.+="0,BUPD$(,]``````!U$<<%``````$```#H1O__ +M_XGVA=MT`\8#`+H`````.Q4H````?3F-!)*-#(4`````BP8Y@0````!U'(7; +M=`B+@1````"(`XT$D@^V!(4,````ZQ&-=@!".Q4H````?,>X`````%M>PXUV +M`+AT5@``PXGVN#P```##B?93@^P(BUPD$(-[4`!U$H/L#/]S#.C\____B$,$ +M@\00D(![!`)T#X-[4`!T((M#4(!X!`)U%X/L"&H`4^C\____B1PDZ/S___^# +MQ!"0N`````"#>U``=0:`>P0`=`6X`0```(/$"%O#D%575E.#[`R+="0@BWPD +M*(ML)"R)^[D`````NG16``")^(UV`(@(0$IU^HL5!````(U"`:,$````B1.) +M:P@/MT8"/0`C``!T5#T`(P``?R`])"(``'0^/20B``!_"3T@(@``=##K/CU` +M(@``="?K-3T@(P``=!X](",``'\)/1`C``!T&.L>/2(C``!T!SU`(P``=1!F +MQT,&@6#K$&;'0P9"<.L(9HM&`F:)0P:*1@B(0P5F@7L&0G!U"L:#A`````/K +M$9!F@7L&@6`/E,!`B(.$````N```$`!F@7L&@6!T!;@```@`4&H`:@!5Z/S_ +M__^)0PR+1"0TB8?D50``BP:)A^A5``"+1@2)A^Q5``"+1@B)A_!5``"Y```` +M`(/$$#L-*````'TEBQTH````C02)C12%`````(L&.8(`````=0;_@A````!! +M.=E\X8/L"&H`5^AP_/__N`$```"#Q!Q;7E]=PXUV`%.#[`B+7"00@WL,`'02 +M@^P(_W,,_W,(Z/S___^#Q!"0@[M85@```'0C_[-@5@``_[-<5@``_[-85@`` +MC8/T50``4.C\____@\00B?:#NV16````="/_LVQ6``#_LVA6``#_LV16``"- +M@PQ6``!0Z/S___^#Q!")]H.[5%8```!T&X/L"/^S5%8``(V#/%8``%#H_/__ +M_X/$$(UV`(/$"%O#C78`55=64X/L%(ML)"B+7"0LQD,0"(J%%50``(A#%<9# +M$@'&0Q<(@WU0``^40Q-H`````(U#/%#H_/___[X`````C7L8_+D'````\Z6D +MQD,1(HN%Y%4``(D#BX7H50``B4,$BX7L50``B4,(BX7P50``B4,,QD,62\9# +M%`"#Q!Q;7E]=PXGV4X/L%(M<)!QJ`6@`!```:``@``#_`#*?"-M(7` +M````#[;1B10DB725)(EN)(@.QT8(`````(L4),'B"HG0`X585@``B48,B="9 +MBXU<5@``BYU@5@```<$1TXG()?\#``"Z`````(G7"<=U-8E.&(E>%(L4),'B +M"(G0`X5D5@``B480B="9BXUH5@``BYUL5@```<$1TX3)=0>)3B")7AR0@\0$ +M6UY?7<-64X/L$(MT)!Q6Z/S___^)AA!4``"#Q`B-AEQ6``!0C8;T50``4.C\ +M____B8985@``@\0(C89H5@``4(V&#%8``%#H_/___XF&9%8``(V&/%8``(D$ +M).C\____B8945@``@\0(:A#_=@CH_/___XF&'%0``(/$"&H4_W8(Z/S___^) +MAB!4``"#Q`AJ//]V".C\____B(855```LP"#Q!`/ML/'1(80`0```,=$AA@! +M````0X#[`7;GQT9(YG_7`,=&3.9_UP#'1D1QXPPU575E.+?"04BVPD&(UW,/:'T````.!T+[$`B?.`OOX!``"E=2*Z```` +M`(GV#[?"`@P80F:!^O\!=O*X`````(3)#X66````]H:M````!'0'QT<(`0`` +M`(I&9SP$=@*P`/9&:@)T)O9&8PAT(("^@`````!T%P^VEH````#VP@)U"?;" +M`70&L`/K`K`$@\@(B$4!QD4`_[@`````]D9J!'0\#[>6L````+`&]L)`=2.P +M!?;"('4#[`1J`&H`:@!J`&H!4E;H_/___X/$(+H` +M````A<`/A*L#``"-=@#VA]0````@=&/'0P0!````BQ0D@'H%`'4'QT,(`0`` +M``^WA]H```#!Z`6#X`$Y0PAT.H/L!&H`:@!J`&H`@WL(`1G`)8````"#P`)0 +M#[9$)"-05NC\____@\0@A#[`A55NC\____@\00A!"+%"2*`H/(`H@"BU0D!/:"I@```"!T-O:"K````"!T#8/@GX/(0(L4 +M)(@"ZR:+%"2*`H/@GX/(((@"ZQ>)]KH`````ZQ60N@````#K#8L$)(`@G[H! +M````B?:)T(/$#%M>7UW#B?975E.+="00BT80BU@DB@"`)OT/MOC&A!_`4P`` +M`/8&$'4Z@^P$5_\S:`````#H_/___X/$#%93:@'H_/____Z#%%0``(D<).C\ +M____@\0,:@%74^C\____@\00D%M>7\-55U93@^P,BT0D((M`)(E$)`B+5"0@ +MBA*(5"0'B<#O)_P4P```'16Z/S___^)P2N,G_!3``"!^7^6 +MF`!W0(T$6XT$QXV8)%0``+J`EI@`*`)%0``*"&`0#'0@@` +M````BTPD*(E*#%+_MQ!4``#H_/___X/$$.DQ!@``_W0D(.CH^?__@\0$A,`/ +MB8D````/MD0D!X&\A]!3``"?A@$`=RR#[`10BT0D$/\P:"@```#H_/___X/$ +M$(`^!74(Q@8.Z8?^___&!@?I?_[__P^V1"0'@:R'T%,``*"&`0"-!$"-!,>- +MD"14``#'@"14``"@A@$`QT((`````(M,)"")2@R#[`A2_[<05```Z/S___^# +MQ!#IE`4``,8&!H/L#/]T)"SH_/___X/$"(`^!P^4P(/`"(@&#[9$)`_'A(?0 +M4P``0$M,`(T$0(T$QXV0)%0``,>`)%0``$`-`P#'0@@`````BT0D*(E"#%+_ +MMQ!4``#H_/___X/$$.DO!0``_W0D(.CF^/__)<````"#Q`2#^$`/A)4````/ +MMEPD!X&\G]!3```_#0,`=SB#[`S_="0LZ/S___^#Q`Q3BU0D$/\R:%@```#H +M_/___X/$$(`^"74(Q@8#Z7/]___&!@[I:_W__P^V1"0'@:R'T%,``$`-`P"- +M!$"-!,>-D"14``#'@"14``!`#0,`QT((`````(M,)"")2@R#[`A2_[<05``` +MZ/S___^#Q!#I@`0``(/L#/]T)"SH_/___X/$$(`^"74(Q@8#Z03]__^`?04! +M&<"#X/B#P!*(!NGQ_/__@^P,:.P```!J`&H`:@!J`&H`:@!H``$``(M$)$R# +MP#!0:@!J`0^V1"0_4/]T)$3H_/___X/$0(7`=0C&!@[IKOS__XM$)"#V0#`$ +M=`V`/@UU",8&#NF7_/__BU0D(&:!>C3(-W0,9H%Z-(QS#X6+````@^P,:.\` +M``!J`&H`:@!J`&H`:@=J`&H!:@!J``^V1"0_4/]T)$3H_/___X/$0(7`=0C& +M!@[I1?S__\8&#`^V1"0'QX2'T%,``(##R0&-!$"-!,>-D"14``#'@"14``!` +M0@\`QT((`````(M,)"")2@R#[`A2_[<05```Z/S___^#Q!#I5P,``(UV`(/L +M#&CE````:@!J`&H`:@!J`&H`:@!J`&H`:@`/MEPD/U/_="1$Z/S___^#Q$"% +MP`^$H@```(M4)`B+0@R+3"0@BU$LBH00"`$``*(`````A,`/A8````"#[`QJ +M0&I`:@!J`&H`:@%J`&H`:@%J`&H`4_]T)$3H_/___X/$0(7`=0C&!@[I:OO_ +M_\8&#`^V1"0'QX2'T%,``(##R0&-!$"-!,>-D"14``#'@"14``!`0@\`QT(( +M`````(M$)"")0@R#[`A2_[<05```Z/S___^#Q!#I?`(``,8&"_\T)/]T)"3H +M[?3__X/$"(3`=0C&!@[I_OK__X/L#/]T)"SH,O;__X/$$(7`=0C&!@[IX_K_ +M_\8&#X/L!`^V7"0+4XM4)!#_,FB(````Z/S___^#Q!#'A)_P4P```````(!] +M!0!T%<9%!0"#[`S_=3C_532#Q!#I_@$``(/L!`^V1"0+4%7_=3C_53"#Q!#I +MY@$``(/L!`^V1"0+4(M,)!#_,6@S````Z/S___^#Q!#&!@`/MD0D!\>$A_!3 +M````````@'T%`'0>QD4%`(/L#%7HI/G__X/$!/]U./]5-(/$$.F3`0``#[9$ +M)`?'A(>@4P```````(/L!&K_5?]U./]5,(/$$.EO`0``_W0D(.@F]?__@\0$ +MA,!Y9P^V1"0'@;R'T%,``#]"#P!W",8&#NGE^?__#[9$)`>!K(?04P``0$(/ +M`(T$0(T$QXV0)%0``,>`)%0``$!"#P#'0@@`````BT0D((E"#(/L"%+_MQ!4 +M``#H_/___X/$$.GZ````B?:H`70(Q@8.Z8SY__^+5"0@#[=",,'H`H/@`8/X +M`1G`@^#^@\`-B`;I;/G__X/L#&H0:@!J`&H`:@!J`&H`:@!J`6H`:@`/MD0D +M/U#_="1$Z/S___^#Q$"%P'4(Q@8.Z37Y___&!A,/MD0D!\>$A]!3``"`EI@` +MZ1WY____="0@Z#3T__^#Q`2$P'EE#[9$)`>!O(?04P``/PT#`'<(Q@8.Z?/X +M__\/MD0D!X&LA]!3``!`#0,`C01`C03'C9`D5```QX`D5```0`T#`,=""``` +M``"+3"0@B4H,@^P(4O^W$%0``.C\____@\00ZPN-=@#&!A#IH/C__X/$#%M> +M7UW#5U93BW0D$(M\)!B*7"04N@````"`^P=W>0^VP[H`````@+PPP%,```!U +M9[D`````NCP```")^)"("$!*=?H/ML/!X`6Y`````+H@````C80PY%0``(UV +M`(@(0$IU^HM$)!R)1S"+1"0@B47\.+3"0$BU0D"+@`````@+P*P%,```]U!XN$ +MD:!3``##D%575E.#[`R+7"0DBVPD((M%$(H0B%0D"XM()(E,)`0/MO*)\8GR +MP>(%BWPD!(VT.N14``"->#"+1"0$BTR()(D,)+D`````NBP```")V(GVB`A` +M2G7ZB7L8BT4(BU4,B0.)4P2*5"0+B%,,QD,-`(I&'(A##HI%`XA#$HI%`HA# +M$8I%`,#H!8/@`XA##P^WAY@```"#X`6#^`1U!L9#$A#K.`^WAY@```"#X`.# +M^`)U!L9#$@_K(XU'-F:!?S944W489H%X"%-!=`R`>`A!=0J`>`M3=03&0Q(/ +M@SPD``^$GP```(I&#(/@`<'@!HI+"(/AOPG!B$L(BD8$@^`!BE,)@^+^"<*( +M4PF+1A#!X`>#X7\)P8A+"(I&"(/@`='@@^+]"<*(4PF+#"0/MX'6````T>B# +MX`'!X`2#XN\)PHA3"8.Y-`(````/E,#!X`6#XM\)PHA3"0^V@#XG\)PHA3"8I%`,#H`H/@`8I3 +M"(/B_@G"B%,(BD4`P.@"@^`"@^+]"<*#RA"(4PB#/"0`=!,/MD0D"XM\)`2+ +M1( +M*(,[`'0@_W,(_W,$_S.-@B16``!0Z/S____'`P````"#Q!"-=@#V1E4&=0J# +M>PP`=`3_2PR0@_\!=".#_P%R"H/_`G01ZUN-=@#&10$`QD96`>M6B?;&1E8- +MZTZ)]F:+5"0*9HE3$(M4)#B*0@N(0Q**`HA#$XEK%,=#&-09``")PP` +M=`;V1E4&=`J#[`Q6_U9@@\00N`$```"#Q`Q;7E]=PXUV`%575E.#['R+O"20 +M````BX0DE````(MH*(G"BT!$BU)(B40D,(E4)#2+A"24````9HM`3&:)1"0@ +MBU<0B50D/(M")(E$)!B)1"04BA*(5"0[]@<"=1N+A"24````QD!6`H/L#%#_ +M4&"#Q!#IT0<``)"+E"24````@'I4!'4S@^P$4@^V1"1#4/]T)"3H_/___X/$ +M$(-_+``/A*,'``"#[`Q7Z,+\__^#Q!#ID@<``(GVBD0D.\#H`@^VP(M4)!2` +MO!!P5@````^$A````(-_+`!U.H/L#%?HC?S__\='%""A!P#'1QPT&0``B7\@ +M@\0(C4<44/]T)"#H_/___XD$).C\____@\00ZT>-=@"#[`B-7Q13_W0D(.C\ +M____B00DZ/S____'1Q0@H0<`QT<<-!D``(E_((/$"%/_="0@Z/S___^)!"3H +M_/___X/$$(UV`(N$))0```"`>%0#=1N#[`10#[9$)$-0_W0D).C\____@\00 +MZ<@&```/MT0D(+H``````T0D,!-4)#0[5PQR(7<%.T<(=AJ+E"24````QD)6 +M!H/L#%+_4F"#Q!#ID`8``(M$)#R+0`B)1"0E@`=`RH`70(BW)8Z>H!``"+A"24 +M````@WA<`'0=@^P$:@!64(N4)*0```#_4ER#Q!"%P`^%P0$``)"+A"24```` +M@WA8`'0+]D!5`74%BW!8ZRZ+E"24````@WI<`'01@^P$:@%64O]27(/$$(7` +M=1"+A"24````QD!6">F6`P``QT0D0`$```#'1"14`````+\`````D(GXP>`$ +M9O<$,/\!#X54`P``B<*+1"14`P0RB40D5$>#?#($`'3:BY0DE````/9"50)T +M"L=$)$0!````ZQ6+A"24````]D!5!'0(QT0D1`(```"+5"0#^`)W!X/X`70;ZV*#^`-T!X/X!'0^ZU:+E"24````QD)6".M7@^P(#[9$ +M)$-0_W0D).C\____BX0DI````,9`5@B#Q!#K-8N4))0```#&0E8%ZRB+A"24 +M````QD!6".L;BY0DE````,9"5@;K#HN$))0```#&0%8(C78`@WT``'0B_W4( +M_W4$_W4`BT0D(`4D5@``4.C\____QT4``````(/$$(/L#/^T)*````"+E"2D +M````_U)@@\00Z0`"``#'1"1``0```,=$)%``````QT0D9``:``"+A"24```` +MB40D:,=$)%0`````9L=$)%@``,=$)$0`````@WPD'``/A*,```"+5"0\@WH( +M`0^%E0```,=%#`$```#&1"1C0L=$)$@!````BT0D,"4``/\`N@`````/K-`0 +M9HE$)&"+1"0P)0#_``"Z``````^LT`AFB40D7HM$)#`E````_[H`````#ZS0 +M$`^V3"0P"<%FB4PD7(M$)"!FB40D6L9$)&)`@^P$C40D1%`/MD0D0U#_="0D +MZ/S___^#Q!"%P`^%6/[__^D8`0``BT0D("4`_P``/0`"``!^!V;'1"0@``(/ +MMT0D(`7_````P>@(B`0D#[;8B5T,@^P(#[9$)$-0_W0D).C\____#[;`NB`` +M```IPH/$$+@"````.=H/C/K]___&1"1C0,=$)$@`````@#PD``^$J````(M$ +M)#`E``#_`+H`````#ZS0$&:)1"1@BT0D,"4`_P``N@`````/K-`(9HE$)%X/ +MMD0D,&:)1"1<#[9$)"!FB40D6HM$)#`E````#[H`````#ZS0&(/(0(A$)&*! +M1"0P``$``(-4)#0`9H%L)"```?X,)'4(QT0D9``:``"#[`2-1"1$4`^V1"1# +M4/]T)"3H_/___X/$$(7`#X5%_?__@#PD``^%6/___X/$?%M>7UW#@^P8_W0D +M'.C\____@_@!#Y3`#[;`@\0UT#X!\)"4!&<"#X!"#P"3K#8!\ +M)"4!&<"#X!"#P"!0N$````"%[74,B?`/K/@8@\A`#[;`4(GP#ZSX$`^WR`^V +MP5")\`^L^`@/ML!0B?`/MM`/M\*%[70)B<@E`/\```G04`^W1"0Z4&H`P>`( +M4/]T)&Q5@'PD30$9P/?0@\`"4`^V1"1+4/]T)%#H_/___X/$0(7`=0C'1"0, +M_____X/L"`^V1"0;4/]T)"#H_/___XM$)!R#Q!"#Q!Q;7E]=PXGV5U93BTPD +M$(I4)!2+01"+>"2*&(U"^SP"=P*R!(A1`HUR"(#Z!'8#C7(XC4:_/`)W!;Y` +M````@^P(#[;;4U?H_/___X/$#&H!4U?H_/___X/$#&H`:@!J`(GR#[;"4&H# +M4U?H_/___X/$&%-7Z/S___^#Q!!;7E_#55=64X/L#(M$)""+6!"+:R2*`XA$ +M)`L/MO")]XGPP>`%C;0HY%0``(N#R`D``(E$)`3'!"3_____A7UW#D%575E.#[`R+1"0@BU@0BVLDB@.( +M1"0+#[;PB?>)\,'@!8VT*.14``"+@\@)``")1"0$QP0D_____X7`=!N#[`A7 +M5>C\____@\0,:@!75>C\____@\00B?;V@]0````@=&N#?"0D`'0P@^P$:@!J +M`&H`:@!J`@^V1"0C4%7H_/___X/$((7`=$3'1@@!````QP0D`````.LT@^P$ +M:@!J`&H`:@!H@@````^V1"0C4%7H_/___X/$((7`=!''1@@`````QP0D```` +M`(UV`(-\)`0`=!6#[`@/MD0D$U!5Z/S___^#Q!"-=@"+!"2#Q`Q;7E]=PY!5 +M5U93@^P,BT0D((M8$(MK)(H#B$0D"P^V\(GWB?#!X`6-M"CD5```BX/("0`` +MB40D!,<$)/____^%P'0;@^P(5U7H_/___X/$#&H`5U7H_/___X/$$(GV]H/4 +M````0'1K@WPD)`!T-(/L!&H`:@!J`&H`:*H````/MD0D(U!5Z/S___^#Q""% +MP'1!QT80`0```,<$)`````#K,9"#[`1J`&H`:@!J`&I5#[9$)"-05>C\____ +M@\0@AC\____ +M@\00C78`BP0D@\0,6UY?7<.055=64X/L#(ML)""*1"0DB$0D"XM%$(MP)(H0 +MB%0D"HNXR`D``,=$)`3_____A?]T'X/L"`^VVE-6Z/S___^#Q`QJ`%-6Z/S_ +M__^#Q!"-=@"#[`1J`&H`:@!J`+@&````@'PD'P)T!;B&````4`^V1"0B4%;H +M_/___X/$((/X`74?BE0D"X/B`\'B!8I%`(/@GPG0B$4`QT0D!`````")]H7_ +M=!2#[`@/MD0D$E!6Z/S___^#Q!")]HM$)`2#Q`Q;7E]=PX/L#(M,)!"+5"04 +M#[8"@_@'#X>Y````_R2%<````(GVBT($QH`45````(/L#%#H_/___[@````` +M@\00Z9@```"*0@0Z00-W%(A!!(/L"`^V0@104>B3^O__@\00N`````#K=9"# +M[`@/MD($4%'HUOW__X/$$.MAD(/L"`^V0@104>C._/__@\00ZTV0@^P$#[9" +M!5`/MD($4%'HQ?K__X/$$.LT@^P$#[9"!5`/MD($4%'HI?O__X/$$.L<@^P( +M#[9"!%!1Z'+^__^#Q!#K"9"X_____XUV`(/$#,.#[!C_="0#&%0``%!J!/]S".C\____@\0, +M#[:#%E0``%!J#/]S".C\____@\0,#[:#%U0``%!J#?]S".C\____@\0,#[:# +M%50``%!J//]S".C\____@\0,_[,<5```:A#_PXUV`%.+7"0(#[9$)`Q0Z%#___^# +MQ`2+4PS'A`($`P``_____XM3#,=$`@@`````BU,,QT0"#)@```!;PXUV``^V +M1"0(4.@9____@\0$BU0D!(M2#,=$`@P`````PXGV55=64XM<)!2+;"08BWPD +M'(MT)""Y`````(U3"HM&$(D#BT84B4,$@SX`=0*Q`0^V1P31X`G!9HE+"(.] +M-`(```!T#8.]-`(```(/A3P!``"#?@0!#X6^````9@^V1@^`S!%FB0*#P@)F +M#[9&#H#,$6:)`H/"`@^V1P3!X`,E^````(#,$F:)`H/"`F8/MD8+@,P39HD" +M@\("9@^V1@B`S!-FB0*#P@)F#[9&#(#,%&:)`H/"`F8/MD8)@,P49HD"@\(" +M9@^V1@V`S!5FB0*#P@)F#[9&"H#,%6:)`H/"`F;'`D`6@\("@SX`=1:P8(.] +M-`(```(/A'T!``"P)NEV`0``L&&#O30"```"#X1G`0``L#;I8`$``&8/MD8. +M@,P19HD"@\("#[9'!,'@`R7X````@,P29HD"@\("9@^V1@B`S!-FB0*#P@)F +M#[9&"8#,%&:)`H/"`F8/MD8*@,P59HD"@\("BT8()0````_!Z!@-0!8``&:) +M`H/"`H,^`1G`@^#[@^@TZ>T```"0@WX$`0^%A@```&8/MD8/@,P29HD"@\(" +M9@^V1@Z`S!)FB0*#P@)F#[9&"X#,$V:)`H/"`F8/MD8(@,P39HD"@\("9@^V +M1@R`S!1FB0*#P@)F#[9&"8#,%&:)`H/"`F8/MD8-@,P59HD"@\("9@^V1@J` +MS!5FB0*#P@)FQP)`%H/"`H,^`1G`@^#P@\`UZUV09@^V1@Z`S!)FB0*#P@)F +M#[9&"(#,$V:)`H/"`F8/MD8)@,P49HD"@\("9@^V1@J`S!5FB0*#P@*+1@@E +M````#\'H&`U`%@``9HD"@\("@SX!&<"#X/Z#Z#:-=@!F#[;`#0"7__]FB0); +M7E]=PXUV`%93BU0D#(MT)!B+6@P/MD0D$(M$@B2+2"R*A`L$`0``H@````"( +M!HJ$"P@!``"B`````&8/ML!FB48"BH0+#`$``*(`````9@^VP&:)1@2*A`L0 +M`0``H@````!F#[;`9HE&!HJ$"Q0!``"B`````&8/ML!FB48(@WPD%`%U;HJ4 +M"R`!``"(%0````"(T(/(@(B$"R`!``"*A`L(`0``H@````#!X`AF"48"BH0+ +M#`$``*(`````P>`(9@E&!(J$"Q`!``"B`````,'@"&8)1@:*A`L4`0``H@`` +M``#!X`AF"48(B)0+(`$``(GVBH0+&`$``*(`````B$8*BH0+'`$``*(````` +MB$8+6U[#C78`55=64X/L+(M,)$"+1"1(9HE$)`X/MG0D1(M\L22+40R+1RR+ +M1`(PHP````"#X!^-!$"-!("-K(=``@``@WT``71!C5T4C40D$%#_B< +M_O___H_-"0``@\0,C40D%%!J``^W1"0:4/]S'&H!5O]W)/]3&(/$&%57Z!@/ +M``"#Q!"#Q"Q;7E]=PY!55U93@^PLBU0D2(I$)$2(1"0'QP0D``````^VP(M, +M)$"+=($DO0````!FBP)FB40D"(U,)`AFBT("9HE!`HM"!(E!!&:+1"0(B<.# +MXQ^-!%N-!("-G(9``@``9HM!`H3`="C'!"0!````9HM!`@^VZ('-@````,>& +MR`D```````#'AC`"````````C7L4C40D"&:+0`*H!'0:C40D$%#_=P0/MD0D +M#U#_="1,Z+/]__^#Q!"#.P$/A(\```#^CLT)``"#[`2-1"044(U$)!"+0`10 +M#[?%4/]W'/]T)!0/MFPD'U7_=B3_5QB#Q!A35N@8#@``@\00@[[("0```'1, +M@[[`"0```'1#BX;`"0``@W@0`74W@^P(5?]T)$SHR@\``(/$"/^VP`D``%;H +M%Q$``(/$$(7`=12#[`1J`/^VP`D``%;H;P4``(/$$(/$+%M>7UW#55=64X/L +M#(ML)"R+1"0@BT`,B40D!,<$)``````/MD0D),'@`HA$)`N*5"0H"%0D"P^V +M1"0+BTPD((MT@22#?"0P`'1DA?8/A+<```"+5BR+GE@*``"-!.T`````"T8@ +MBWPD!(E$%R0YZW0G#[9\)`N-=@"#[`2+1A"-!-A05_]T)"SH)/[__T.#XQ^# +MQ!`YZW7A@[[("0```'4'QP0D`0```(F>6`H``(-\)#0`=0J#/"0`#X0:`0`` +M#[9$)`M0Z,/X__^#Q`2+3"0$BU0("(D5`````(G3#[?*B&,`(```````"#[`@/MEPD$U/_="0LZ+H( +M``"#Q`A3_W0D+.AE%0``@\0(4_]T)"SH_/___X/$$(7`#X69````4VH`:@'_ +M="0LBU0D,/]2((/$$.F!````D/;#$'0G@^P(#[9<)!-3_W0D+.A9!P``4VH! +M:@'_="0\BTPD0/]1((/$(.M4#[?#J8````!T2H.^,`(```%U*L>&R`D````` +M``#'AC`"````````@^P$4`^V1"034/]T)"SH9OS__X/$$(,]``````%U#H/L +M#%;HE0X``(/$$(GV@\0,6UY?7<-3@^P(BUPD$`^V1"04P>`""T0D&`^VT(M, +MDR2%R741@^P(4E/HNPP``(/$$.M.B?:+D<`)``"%TG42@^P(#[;`4%/HG0P` +M`(/$$.LP@SH!=`:#>A`!=!6#[`@/ML!04^B`#```@\00ZQ.-=@"#[`A24>@. +M````@\00C78`@\0(6\.-=@!55U93@^P,BVPD((M%)(M8#(M5+(I%`(/@`XG' +M#[9-`(J$$R`!``"B`````(J$$QP!``"B`````(G&]L$$=`F-DQ0``P#K!Y"- +MDQ0``@"X``$``(GYT^#WT(D"B?"$P`^($P$``/?&`0```'07@^P$:@'_="0L +M5>B(`@``@\00Z?0```"+5"0DBT(4@_@!="R#^`%R#X/X`@^$A@```.G5```` +MD(/L!&H`_W0D+%7H40(``(/$$.F]````D/?&0````'1,@^P(BT0D+(/`%%!5 +MZ*L```"#Q!"#^`%U'XM,)"2#>20`#X6-````@^P$:@!15>@-`@``@\00ZWR# +M[`1J`?]T)"Q5Z/D!``"#Q!#K:(/L!&H!_W0D+%7HY0$``(/$$.M4B?(/ML*H +M0'1+J"!U1XM,)"2#>20`=1&#[`1J`%%5Z+T!``"#Q!#K+(/L"(M$)"R#P!10 +M5>@C````@\00A00`=.B+;"0D +MBVT,B6PD"(M4)"2+0A#1X(LL)"G%BTPD"(L!*>B)!"2+00B)1"0$O@````"# +M.@)U*9"+5"0$C1QRBT!0_W,$#[8&4/]V).A\]___@\00@WPD.`%U#F:_`0#'AL@) +M````````@^P$C40D!%!J`&H`_W,D5P^V!E#_=B3_4R"#Q!A55NCH!P``@\00 +M@WPD.`%U%H,]``````%U#8/L#%;H>`H``(/$$)"#OL`)````#X2[````BX;` +M"0``@W@0`74O@^P(4%;HX0H``(/$$(7`#X6:````@^P$:@#_ML`)``!6Z#7_ +M__^#Q!#I@0```)"#OC0"````=3.#[`@/M@90_W8DZ'`(``"+1B2+4`R+1BR+ +M1`(HHP````#'!"0!````Z/S___^#Q!"-=@"#[`@/M@90_W8DZ'T(``"+GL`) +M``"#Q!"%VW0H@WL0`'4BB?:#[`2-0Q104U;H9@D``(M;"(/$$(7;=`B#>Q`` +M=.*)]H/$'%M>7UW#5U93BUPD$(M#)(MX#(MS+(M$-RBC`````*@$=#+'1##6`H` +M``````#'@S`"````````QT,$`````,>#4`H``"````"Z`````(F4D]`)``!" +M@_H??O.Z`````(GVC012C02`QX2#0`(```$```!"@_H??NG'@\`)```````` +MQX/$"0```````,>#R`D```````#'1#<(`````,=$-PR8````BT,4B40W$(M# +M&"4`_/__B40W%(M#)+H`````@WA\`'0#BU,8B50W&(M#'(E$-QR+0R2Z```` +M`(-X?`!T`XM3&(E4-R"+0R"P`(E$-R2X`0```%M>7\.055=64X/L+(MT)$"+ +M1"1,9HE$)`Z#?"1$``^%C0```+L`````C01;C02`C02&@[A``@```'5L@[A0 +M`@```745BY!8`@``B[AX`@``BZAT`@``ZQR0C01;C02`C02&BY!8`@``B[AP +M`@``BZAL`@``C40D$%!2#[8&4/]V).A_]/__@\0,C40D%%!J``^W1"0:4%?_ +M="1<#[8&4/]V)/_5@\0@0X/['P^.>/___X/$+%M>7UW#55=64X/L!(M<)!B* +M1"0`()0`'``"!XA_X__\)P@^VA!F6```` +MP>`%)>`````)PH'B___^_XM##(D4,(/$!%M>7UW#D%575E.#[`R+7"0@#[9L +M)"15Z*+O__^)QHUX*(DL)%/HC\____BT,,QP0X`````(M##(L$ +M.*,`````55/H?_[__U53Z-SO__^#Q"Q;7E]=PU575E.#[`R+?"0@QD0D"P"] +M``````^V1"0+P>`"B40D!(UV`(I$)`2-=`4`@>;_````5NC\[O__@^P$B<.+ +M1PS'1!@H`@```(M'#(M$&"BC`````%97Z"'___^+1PS'1!@H`````(M'#,<$ +M&!\!``"+1PS'1!@$`````(M'#,=$&`@`````BT<,QT08#`````"+1PS'1!@0 +M`````(M'#,=$&!0`````BT<,QT08&`````"+1PS'1!@<`````(M'#,=$&"0` +M````BT<,QT08(`````"+1PS'1!@L`````(M'#,=$\````@\0018GH/`,/ +MABW___^`?"0+`1G)@>$``/__@<$```,`BT<,QT0(#`````"+1PS'1`@0```` +M`(M'#,=$"!0`````BT<,QT0(&`````"+1PR+1`@@HP`````E'!P<'`T#`P,# +MBU<,B40*(/Y$)`N`?"0+`0^&KO[__X/$#%M>7UW#B?:+1"0$BT`,QX!L!`$` +M___/#\.)]HM,)`2+002P`#T``(!0=!R+00R+@"P-``"C`````(G"@\H!BT$, +MB9`L#0``BT$,BX``#0``HP````")PH'B__\`_XM!#(F0``T``(M!#,>`!`T` +M``````"+00S'@#@,````````BT$,QX`$'0``_P`!`(M!#,>`9!T```````"+ +M00S'@"@,````````BT$,QX!8'0```````(M!#,>`7!T```````"+00S'@$`= +M````````BT$,QX!$'0```````(M!#,>`2!T```````"+00S'@%`=```````` +MPY"+5"0$BTPD",=!"`````"+@L0)``")00R#NL0)````=`F+@L0)``")2`B) +MBL0)``"#NL`)````=0:)BL`)``##4XM<)`B+3"0,@WD(`'49BT$,B8/$"0`` +MA@,____QP,`````_H4X`@``@\0(6UY?7<-64XM< +M)`R+="00@WX0`'0&_HO,"0``5E/H&____XN#4`H```^V5@2)E(/0"0``0(F# +M4`H``,<&`0```/Z+.`(``(/$"%M>PY"*1"0$/`-V$`^VR(U,"0*X`0```-/@ +MPY`/MLB-3`D!N`$```#3X,.05U93@^P0BW0D((I$)"2(!"2+?E@/MMA3Z+O_ +M__\)^(E&6(D<).@VZ___@\0$BU8,BH0"'`$``*(`````BT8,]L,$=`B-D!0` +M`P#K!HV0%``"`(H,)(/A`[@``0``T^#WT(D"BT8,BX!D'0``HP`````Y^'4; +MBU8,BT98B8)D'0``BT8,BX!D'0``HP````"0@\006UY?PY!64XMT)`R+7E@/ +MMD0D$%#H+/___X/$!/?0(=B)1EB+1@R+@&0=``"C`````#G8=0R+5@R+1EB) +M@F0=``!;7L.055=64X/L"(ML)!R*5"0@BW4,#[;"BUR%)(M++(E,)`3'@S`" +M```!````OP,````AUZ@$=`N-AA0``P")!"3K"8V.%``"`(D,)+@!`0``B?G3 +MX/?0BPPDB0&+0RS'1#`(``````^VPE!5Z%+___^+5"0,BH06'`$``*(````` +MQX,\`@```0```,=$%B@!````@\006UY?7<-55U93@^P,BVPD((I$)"2(1"0+ +MNP````"+?0P/ML"+1(4DBW`LQX`P`@```````,=$-R@"````D(M$-RBC```` +M`*@!=!F#[`QHZ`,``.C\____@\000X'[YP,``';:#[9$)`M05>@F_O__@\04 +M6UY?7<.)]E93BUPD#(M#)(MP#/]T)!3_="044XN#5`H``,'@!0-##%#H4>K_ +M_XN35`H``$*#XA^)DU0*``#^@\T)``"+2RR+0Q@E`/S__\'B!0G0B40Q%(/$ +M$%M>PY!3@^P(BUPD$&H`:@)J`%/HF/?__XD<).A`]O__B1PDZ/S___^#Q!"# +M^`%U',>#R`D```$````/M@-0_W,DZ(+]__^#Q`B-=@"#Q`A;PXUV`(M4)`2+ +M0@R+@&@=``"C`````(M2#(/(`HF":!T``,.0BU0D!(M"#(N`:!T``*,````` +MBU(,@^#]B8)H'0``PY!55U93@^P,BWPD)(/'%(M4)""+0B2+<`R+6BR*A!X< +M`0``H@`````EP0```+H`````@_A`#X6Z`0``@W\$`74\#[9'%8B$'@0!```/ +MMD<7B(0>"`$```^V1QF(A!X,`0``#[9'&XB$'A`!```/MD<=B(0>%`$``.LU +MC78`9O='%`#_=2!F]T<6`/]U&&;W1Q@`_W409O='&@#_=0AF]T<<`/]T"KH` +M````Z48!``!FBT<4B(0>!`$``&:+1Q:(A!X(`0``9HM'&(B$'@P!``!FBT<: +MB(0>$`$``&:+1QR(A!X4`0``BD<>B(0>&`$``(/L#/]T)"SH_/___X/$$(I' +M'XB$'AP!``"#/P(/A;\```"*A!X@`0``H@````"#[`QHR````&@0)P``:@%J +M`/]T)#SH_/___X/$(+H`````A<`/A*T```"*A!X<`0``H@`````EB0```+H` +M````@_@(#X6.````O0````"#?P@`=#N+=PR+7@B0BU0D((M")(M(#(M2+&:+ +M!&MFB801``$``$6!_?\```!VWH$^``(``'4GC480B4<,ZQ^)]HM'#(U0`HE7 +M#&:+`&:)A!X``0``18']_P```';C@6\0``$``(M4)""+0B2#>'`!=1#'0@0! +M````4.C\____@\0$N@$```")]HG0@\0,6UY?7<.)]E=64X/L$(M\)"#'1U@` +M````BT<,QX!D'0```````,='8`````#'1V0`````QT=H`````,=';`````#' +M1W``````QT=T`````,='>`````#&AX0````!N`````"#?R``#X1;`@``N``` +M``!F@7\&@6`/A4H"``#&AX0````"#[9'!87`=`>#^`%T"^L2QT=P`0```.L0 +MQT=T`0```.L'QT=X`0```,9$)`\`B?:#?W`!=1H/MD0D#\:$.(X````'QH0X +ME@````+K>XUV`(-_=`%U&@^V1"0/QH0XC@````7&A#B6`````^M;C78`#[9< +M)`]3Z)WE__^#Q`2-B#`#``"+5PS'1`(H`@```(M7#(M$`BBC`````(M'#(L4 +M"(D5`````(G0)0`'``#!Z`B(A#N.````@>+@````P>H%B)0[E@```/Y$)`^` +M?"0/!P^&6?___X/L#%?H!/;__U?H:O?__U?H>/?__X/$&(M'#,>`\`0!`&`` +M`@"#OX@`````=2N+1PR+@``-``"C`````*@P=!2+1T2IX`,`@'0/)1_\_W^) +M1T3K!8-G1,^0QD0D#P"-=@`/MD0D#U#HU>3__X/$!(M7#(M$`E"C`````(G& +M@9_____B?8/MEPD#U/HI>3__XM7#(ET`E")'"17Z-'S +M__^#Q`C^1"0/@'PD#P=VIXM7#(M'1(F"``P``(M7#(M'2(F"*`P``(M7#(M' +M3(F"7!T``+(`BT<,C8@,``,`A-)U!HV(#``"``^VPHM$AQ")`8M'#(V($``# +M`(32=0:-B!```@`/ML*+1(<8B0%"@/H!=L+'1UA5JP8`@W]P`74*QT=85:N& +M`(UV`,9$)`\`C78`#[9$)`]05^B8Y/__@\0(_D0D#X!\)`\'=N:#[`QH4,,` +M`.C\____N`$```"#Q!"0@\006UY?PY"+1"0$BT`,QX!D'0```````+@!```` +MPY#'!0`````!````PY#'!0``````````PY!64X/L!(MT)!"*5"04#[;"BUR& +M)+@`````A=MT+P^VPE#H=N/__X/L"(E#+(ES),>#R`D```````#'@S`"```` +M````4^B+\/__@\00@\0$6U[#B?964XMT)`P/MEPD$%/H-^/__X/$!(G"@<(` +M`P``N`````"#O)Z@`````'07BT8,BP00HP````"#X`^#^`,/E,`/ML!;7L.- +M=@!55U93@^P,BWPD((I$)"2(1"0+#[;84U?HO^/__U/HW>+__XG%@<4(`P`` +MC;```P``QT0D$`````"#Q`R+1PS'!"@!`P``@^P,:.@#``#H_/___XM'#,<$ +M*``#``#'!"0@3@``Z/S___^[`````(/$$(UV`(M'#(L$,*,`````A2S'!"0`````@[G( +M"0```0^$F````(M$/0"C`````(G"@WPD(`)U.(U&_\<$)``````\'W=XQX$T +M`@```@```(/BX(GQ#[;!2`G"@\H@@WMX`75,QT0]0$L```#K0HGV@WPD(`!U +M*8U&_\<$)``````\'W +M:@!J`O]T)"!3Z%+N__^)'"3H^NS__[@!````@\00@\0(6\.0#[94)`B+1"0$ +MBU20)+C_````A=)T!P^V@C@"``##B?975E.+?"00BD0D%(I<)!@/MG0D'/;# +M^'4(]\;X````=`>X`````.M@#[;`B?*(E#B6````B)PXC@```%#H4]___X/$ +M!`4P`P``BU<,BPP"B0T`````B=K!X@B!X@`'``"!X1_X__\)T8GRP>(%@>+@ +M````"=&!X?___O^+5PR)#`*X`0```(GV6UY?PU.+7"0(#[9$)`Q0Z/C>__^# +MQ`2+4PR+5`)0B14`````@,X2BTL,B50!4+@!````6\.-=@!64XM<)`P/MG0D +M$%;HP][__XM3#(M4`E")%0````"`SA"`YOV+2PR)5`%0B30D4^C<[?__@\0( +MN`$```!;7L.055=64X/L!(MT)""*1"0@P/ML"+7((D4.AM +MWO__@\0$BX0',`,``*,`````B498A=MU$,<&`````+@!````Z;D```"+:RP/ +MMD0D`U#_="07UW#B?955U93@^P,BVPD*(I<)"0/ML.+5"0@BW2")+@!````@[[( +M"0````^$,0$``+@"````@+XX`@``'P^$'P$``(N&4`H``$B)AE`*``"+E(;0 +M"0``C012C02`C;R&0`(``(A7!(-]```/A9@```"-102#OC0"```"=0S'0`0! +M````ZR^-=@"#>`0!=2:#?@@`=2"+AE`*``")E(;0"0``0(F&4`H``+@#```` +MZ:\```")]H"^S`D```!U.X.^,`(```!U&@^VVU/_="0DZ.WQ__]3_W0D+.@C +M\O__@\0055=6Z'3P__^-10105U;H&?/__X/$&.MD55=6Z%SP__^#Q`SK5XUV +M`%575NA,\/__@\0,@+XX`@```75`@[XP`@```743@^P(#[;#4/]T)"SH8_+_ +M_X/$$(/L"%=6Z++S__^#Q!"%P'435U;H:/#__[@!````@\0(ZP>)]K@````` +M@\0,6UY?7<.-=@!55U93@^P`0! +M=2"(VL#J`H/L!(G8@^`#4(/B`5+_="0\Z'WC__^#Q!")]D.`^P=VPL9$)!,` +MBTPD,(M!#,>`"(`!``````#WQO\!```/A/P```"`?"03`1G`)0``__\%%``# +M`(M4)`S'!`+O____BTPD#(L4`8D5`````(G7]]*#RA")%`&`?"03`'0)B<@% +M"``#`.L)BT0D#`4(``(`BP"C`````(G%LP`/MD0D$XE$)`0/MLNX``$``-/@ +M(?B)1"04N`$```#3X(GR@^(!(?AU!(72="*#[`174E")Z(/@'U`/ML-0#[9$ +M)"M0_W0D3.C1X/__@\0@@WPD%`!T.XM4)`2)5"0(B=#!X`()V`^VP%#HK^[_ +M_X/$!(5$)!AT&H/L!`^VPU#_="00_W0D/.ANXO__@\00C78`P>X"P>T(0X#[ +M`P^&:/___^L%B?;![@C1[OY$)!.`?"03`0^&T_[__[,`B?8/ML.+3"0P@WR! +M)`!T#HM$@22#>`0!#X0R_O__0X#[!W;>@/L(=0W_="0PZ/S___^#Q`20N`$` +M``"#Q!Q;7E]=PXUV`(M$)`2+0`S'@&0=````````N`$```##D(M$)`2+4`R+ +M0%B)@F0=``"X`0```,.)]E=64XM\)!"^`````(GP#[;84U?H.-K__U/H5MG_ +M_XV0"`,``(M'#,<$$`$#``"#Q`Q&B?*`^@=VTX/L#&@@3@``Z/S___^^```` +M`(/$$(GVB?(/ML)0Z!G9__^#Q`2-D`@#``"+1PS'!!```P``1HGP/`=VVX/L +M#&@@H0<`Z/S___^^`````(/$$(GVB?(/ML)05^A\V?__@\0(1HGP/`=VZEM> +M7\.)]E575E.#[!B+;"0L5>A'____LP"#Q!")]@^V\U;HJ]C__X/$!(G'BT4, +MBX0X``,``*,`````A_7__XM%#(N$ +M.``#``"C`````(/$$)`/ML/'A(6@`````0```$.`^P=VH+@!````@\0,6UY? +M7<.-=@!64X/L#(MT)!B*1"0$AJ`````!````N`$```"#Q!A;7L.05E.+7"0,#[9T +M)!!6Z.?7__^#Q`0%"`,``(M3#(L4`HD5`````(/B\(/*!(M+#(D4`<>$LZ`` +M````````N`$```!;7L-64XMT)`RS``^VPU!6Z/S___^#Q`A#@/L'=NVX`0`` +M`%M>PY!55U93@^P,BT0D((MX)(MW#(M8+`^V*%57Z$[8___'1!XH!````(M$ +M'BBC`````(/L!&H9Z/S____'1!XH`````(M$'BBC`````%57Z'OF__^#Q`S' +MA!X(`P```0,``&CH`P``Z/S____'A!X(`P````,``(/$'%M>7UW#BU0D!`^V +M`E#_7UW#C78`BU0D!(M")(M(#(M"+,:$`2`! +M````BT(DBT@,BT(LBH0!(`$``*(`````PY"+5"0$BT(DBT@,BT(LQH0!(`$` +M``*+0B2+2`R+0BR*A`$<`0``H@````##D%575E.#[`R+;"0@BT4DBW@,BW4L +MNP````"X`````(.],`(```$/A)4```"*A#<@`0``H@````"H@70-@^P,:C+H +M_/___X/$$(J$-R`!``"B`````*B!=#F)V$-F/;<+=RF#[`@/MD4`4/]U).C\ +M____@\00A7UW# +M5U93BU0D$`^V1"04BUR")+@`````A=MT7XMZ#(MS++@`````@[O("0```71+ +M4^C\____QH0W'`$``.&#[`AJ9&@0)P``:@%J`%/H_/___X/$((7`=1)3Z/S_ +M__^X`````(/$!.L2B?93Z/S___^X`0```(/$!(GV6UY?PU=64X/L$(M\)""* +M1"0DB$0D#P^VP(MTAR2X`````(7V#X2R````C5XPC78`@^P,:.P```!J`&H` +M:@!J`&H`:@!H``$``(U&,%!J`&H!#[9$)$=05^C\____@\1`A/8#!'0W +M9H%[!,@W=`AF@7L$C'-U)X/L!&H`:@!J`&H`:@7\.0@^P,#[94)!2+1"00 +MBU20)+@`````A=)T&K@`````@[K("0```70,@^P,4NC\____@\00@\0,PY"# +M[!AH[P```&H`#[9$)#Q0#[9$)#Q0#[9$)#Q0#[9$)#Q0#[9$)#Q0:@!J`&H` +M:@`/MD0D3%#_="1,Z/S___^#Q$S#D%575E.#[`R*1"0DB$0D"XM,)#AFB4PD +M"(M$)#QFB40D!HML)$"+?"1$BW0D2(I<)$R*3"10B$PD`P^V1"0+N@````"+ +M3"0@@WR!)`!T2H/L#`^V1"0/4`^VPU`/M\90#[?'4`^WQ5`/MT0D)E`/MT0D +M+%#_="1<_W0D7/]T)%S_="1<#[9$)$-0_W0D7.C\____B<*#Q$"0B="#Q`Q; +M7E]=PXGV55=64X/L#(M\)""+;"0LBD0D*(C"P.H"B%0D"X/@`[L`````.>L/ +M@X`````/MLB#P0BX`0```(G&T^:)\??1B4PD!)"-AQ0``P"`?"0+`'4&C8<4 +M``(`BP"C`````(7P=#:+1"0DBH0''`$``*(`````C9<4``,`@'PD"P!U!HV7 +M%``"`(M,)`2)"J@!#Y3`#[;`ZQR-=@"#[`S_="0\Z/S___^#Q!!#.>MRF+@` +M````@\0,6UY?7<.-=@!55U93@^QXBH0DD````(A$)&N+K"2D````BY0DJ``` +M`&:)5"1,BX0DK````&:)1"0\BY0DL````&:)5"0LBX0DM````&:)1"0RQ3Z(7[ +M__^#Q!"Z`````(7`#X2A`P``N@````"#N\@)```!#X2/`P``@[PDC`````%U +M28GJ#[;&B(0^!`$``(M4)$`/ML:(A#X(`0``BU0D,`^VQHB$/@P!``"+5"0@ +M#[;&B(0^$`$``(M4)!`/ML:(A#X4`0``ZT>-=@#WQ0#_``!U*/=$)$``_P`` +M=1[W1"0P`/\``'44]T0D(`#_``!U"O=$)!``_P``=!13Z/S___^Z`````(/$ +M!.GY`@``D(GHB(0^!`$``(I4)$"(E#X(`0``BD0D,(B$/@P!``"*5"0@B)0^ +M$`$``(I$)!"(A#X4`0``BE0D#XB4/A@!``!3Z/S___^#Q`2*1"0.B(0^'`$` +M`(.\)(@`````=5>Z`0```(.\))``````#X6'`@``@^P,:!`G``!H'`P``&H! +M:@!3Z/S___^#Q""%P'434^C\____N@````"#Q`3I5@(``%/H_/___[H!```` +M@\0$Z4,"``"#[`QH$"<``&@<#```:@%J`%/H_/___X/$((7`=1-3Z/S___^Z +M`````(/$!.D2`@``BH0^'`$``*(`````@^P,:!`G``!H]`$``&H!:@A3Z/S_ +M__^#Q""%P'434^C\____N@````"#Q`3IU0$``+T`````.ZPDE`````^#'P$` +M`(I4)%_`Z@*(5"0+BD0D7X/@`XA$)`J*A#X<`0``H@````")ZH32#X6M```` +MA>UT,X/L#&ID:%##```/MD0D`2H"'1&@^P,:F3H_/___X/$$$6!_4_#``!VS%/H_/___[H`````@\0$ZS!3 +MZ/S___^Z`````(/$!.L@4^C\____N@````"#Q`3K$%/H_/___[H!````@\0$ +MB?:)T(/$;%M>7UW#B?975E.+7"00BT,DBW`,BWLLQH0W(`$```:+0RR*A#`@ +M`0``H@````"#[`QJ"NC\____4^C\____@\0(:/0!``#H_/___\<$)/0!``#H +M_/___\<$)/0!``#H_/___\<$)/0!``#H_/___[L`````@\00BH0^'`$``*(` +M````A,!X"+@!````ZQ^0@^P,:/0!``#H_/___X/$$$.!^P\G``!VS[@````` +M6UY?PXGV4X/L%(M<)!Q3Z$;___^#Q!"Z`0```(/X`70:@^P,:/0!``#H_/__ +M_XD<).@D____B<*#Q!")T(/$"%O#5E.+="0,H0@```"+0!C&A#````0`H+H` +M````BPT(````C78`BT$0BH0P```$`*(`````0H/Z!'[KN@````")]HM!%(J$ +M,```!`"B`````$*#^@5^Z[H`````BPT(````BT$0BH0P```$`*(`````0H/Z +M!'[K6U[#BU0D!*$(````BT`,QH00```$`("A"````(M`&,:$$```!`"PPXUV +M`%93BW0D#%;H5/___Z$(````BT`(QH0P```$``"A"````(L`BIPP```$`(@= +M`````%;HHO___P^VVX/$"(G86U[#C78`5E.+7"0,BX/P!`$`HP````")QH/@ +M8H/X8G00B?"#R&)F#[;`9HF#\`0!`(N#```$`*,`````4^C@_O__H0@```"+ +M0`C&A!@```0`!Z$(````BP#&A!@```0`$:$(````BT`(QH08```$``6A"``` +M`(L`QH08```$`!%3Z!3___^)L_`$`0"+@_`$`0"C`````(/$"%M>PY!64XM< +M)`R+@_`$`0"C`````(G&@^!B@_AB=!")\(/(8F8/ML!FB8/P!`$`BX,```0` +MHP````!3Z$C^__^A"````(M`",:$&```!``'H0@```"+`,:$&```!```H0@` +M``"+0`C&A!@```0`!:$(````BP#&A!@```0``%/H?/[__XFS\`0!`(N#\`0! +M`*,`````@\0(6U[#D(M$)`2`N(T`````=2*#>%``=!&+0%#_<`SH_/___X/$ +M!,.)]O]P#.C\____@\0$PXM$)`2#>%``=!*+0%#_<`SH_/___X/$!,.-=@#_ +M<`SH_/___X/$!,-3@^P(BUPD$%/HAOW__Z$(````BT`(QH08```$``JA"``` +M`(L`QH08```$``!3Z-G]__^*@P$`!`"B`````(/$"+K_____J`)U/5/H1/W_ +M_Z$(````BP#&A!@```0``5/HI_W__X/L!&IDZ/S___^*@P$`!`"B`````-'H +M@^`!@\00@_@!&=*)T(/$"%O#B?964X/L!(M<)!"*1"04B$0D`X-[4`!T"8M# +M4(M0#.L$D(M3#(-[4`!T$Z$(````BW`$@<8```0`ZQ&-=@"A"````(MP'('& +M```$`(N"\`0!`*,`````B<&#X&*#^&)T$(C(@\AB9@^VP&:)@O`$`0"+@@`` +M!`"C`````(I$)`.(@XP```"(!#*)BO`$`0"+@O`$`0"C`````(/$!%M>PXGV +MBU0D!(I,)`B`?"0,`'01N`$```#3X`B"C````.L/B?:X_O___]/`((*,```` +M#[:"C````%!2Z/S___^#Q`C#D%=64XM<)!"_`````(N#\`0!`*,`````B<:# +MX&*#^&)T$(GP@\AB9@^VP&:)@_`$`0"+@P``!`"C`````%/H@OS__X/$!#P^ +M=1>#[`Q3Z#[^__^#Q!"%P'4'OP(```")]J$(````BT`8QH08```$`+")L_`$ +M`0"+@_`$`0"C`````(GZ#[;"6UY?PXGV5E.#[`2+="00NP````")]L<%"``` +M`.````"#[`Q6Z%'___^#Q!"$P'4)0X'[YP,``'[=#[;`@\0$6U[#5E.#[`2+ +M="00NP````")]HJ&"!`!`*(`````J`AT$<:&"!`!`$2X`````.L>C78`@^P, +M:@'H_/___X/$$$.!^P\G``!VRKC_````@\0$6U[#C78`@^P8BT0D',:`"!`! +M`&10Z)C___^#Q!S#@^P8BU0D'(M$)""(@@00`0!2Z'W___\/ML"#Q!S#B?93 +M@^P4BUPD'%/H9O___X/$$+H`````AH! +M``")]HM$)!B`>`$"=2:`>`(!=0Z*0`.(@HT```#IR@$``(M$)#3'0"S^____ +MZ;H!``")]L:'`!`!``3&AP@0`0!$BW0D&(!^`0`/A-````"*!D:)Q8H&1HC# +M@^P,5^C=_O__@\0(#[;#4%?HZ/[__X/$$(3`#X5%`0``]L,!=$R[`````(GJ +MA-(/A(4```"!Y?\```"-=@"+3"00BT0D-#E(%'8?@^P,5^C\____BU0D((M, +M)!R(!`I"B50D((/$$(UV`$,YW7?/ZTF0B>@/MM"-!#(K1"08@\`".T0D%`^/ +MX@```+L`````@_H`=B6)U8UV`(/L"`^V!E!7Z%?^__^#Q!"$P`^%JP```$-& +M.=UWXHGV@'X!``^%,O___XGVQH<($`$`5(`^``^$H@```(/L#%?HL_W__X/$ +M$(7`#X6#````BH<,$`$`H@`````\8'5TQH<($`$`1(M4)!"+3"0T.5$4=FN# +M[`Q7Z'S]__^#Q!"%P'50BH<,$`$`H@`````\H'1,/(!U/8J'!!`!`*(````` +MBU0D$(M,)`R(!`I"B50D$,:'"!`!`$2+1"0T.5`4=[+K&\:'"!`!`%3K!\:' +M"!`!`%2+5"0TQT(L_____\:'"!`!`%"+3"0T@WD@`'0)BT$@BU0D$(D0@^P, +M_W0D0(M,)$3_42B#Q"Q;7E]=PXGV55=64XM4)!B*3"0DBT0D%(MP#(M<)!R+ +MAO`$`0"C`````(G%@^!B@_AB=!")Z(/(8F8/ML!FB8;P!`$`BX8```0`HP`` +M``"$R70MN0`````[3"0@?4:-%!:-=@"-!`J*@```!`"B`````(@#04,[3"0@ +M?.CK)HGVN0`````[3"0@?1F-/!:)]HT4#XH#B((```0`04,[3"0@?.V0B:[P +M!`$`BX;P!`$`HP````"X`0```%M>7UW#D(/L#(M4)!R+3"0HN`````"%TG1, +MBD$+B$)*9HM!!(A"1F:+00:(0D=FBT$(B$)(BD$*B$))B@&(0D1FBT$"B$)% +M@WPD&`$9P(/@^8/`"(A"5H/L#%+_4F"X`0```(/$$(/$#,-64X/L-(M<)$@/ +MMG0D1+D`````NBP```")X(GVB`A`2G7ZQP0D`0```,=$)`@`````]D-5`G0* +MQT0D!`$```#K$XI#58/@!#P!&<#WT(/@`HE$)`3'1"0,`````(M#3(E$)!`/ +MMD-+P>`(B40D%&8/MD-$9HE$)!AF#[9#16:)1"0:9@^V0T9FB40D'&8/MD-' +M9HE$)!YF#[9#2&:)1"0@QD0D(D"*0TJ(1"0CQT0D)'QH``")7"0H@^P$C40D +M!%")\@^VPE#_="1,Z/S___^#Q!"Z`0```(7`=!/&0U8(@^P,4_]38+H````` +M@\00B="#Q#1;7L.)]H/L#(M4)!RX`````(72=!^#?"08`1G`@^#Y@\`(B$)6 +M@^P,4O]28+@!````@\00@\0,PY!75E.#[#"+?"1`BW0D2(I<)$2Y`````+HL +M````B>")]H@(0$IU^L<$)`$````/ML.+1(S0````BY0D +MV````(N<)-P```"+2@2-1"1H4/]R"/]1'(/$"(M3!(U$)`A0_W,(_U(<@\00 +MN@$```"*1"1A.D0D`7=&NO____^*1"1A.D0D`7(WN@$```"*1"1B.D0D`G#,<&```` +M`(ES"+@!````Z8,```"+0PB+5@0[4`1U:8/L"/]P"/]V"/]2)(/$$(3`=%:- +M>PB#>P@`=#N+5@2#NH``````=!:#[`B+!_]P"/]V"/^2@````(/$$.L.@^P( +M_S=6Z/S___^#Q!"%P'@'BS^#/P!UQ8E>#(L'B0:)-[@!````ZQ&)]HL;A=L/ +MA6;___^X`````%M>7\.0BU0D!*$`````B0*)%0````"#>@@`=!&A`````(E" +M#(M""`$%`````,.-=@"*5"0$H0````"%P'0.C78`.%`$=`N+`(7`=?6X```` +M`,.-=@!55U93BW0D%+@`````C7X,B?V)]KL`````BU8,.==T&HGIB?8Y@LS^ +M__]U"$"[`0```.L&BQ(YT77JA=MUUEM>7UW#D+@`````BQ4`````A=)T#Y`Y +M0A1V`XM"%(L2A=)U\H/`9,.)]E575E.#[&R+K"2`````OP````"+M"2$```` +MA?9U!HMU!(UV`(M="(7;=%*0@^P(BU,$C40D"%#_%G`````$```#'A:@`````$```QX6@`````!```.C\____:((( +M``!05HU%4%#H_/___X/$$(L=`````(7;=!V-=@"#>Q@`=`Z#[`175E7_4QB# +MQ!")]HL;A=MUYH/$;%M>7UW#B?975E.+?"00#[9$)!10Z/S___^)QH/$!+@` +M````A?8/A/@```"#[`R-1SA0Z/S___^)PX/$$+D`````NH0!``"0B`A`2G7Z +MH30```!`HS0```")@X`!``"-@W`!``")@W`!``")@W0!``"`BT`!```!B;-0 +M`0``B3N#?A``=!N-@X0!``")0PBY`````(M6$(72=`:("$!*=?J-@U0!``") +M@U0!``")@U@!``"-@UP!``")@UP!``")@V`!``#&@T,!``#_QT,80@```,=# +M%/____^#?BP`="B#[`Q3_U8L@\00A7\-3@^P(BUPD +M$(N#4`$``(-X,`!T#(/L#%/_4#"#Q!")]HN33`$``(N#2`$``(E0!(D"@^P( +M4XL#@\`X4.C\____@\086\.-=@!75E.+?"00BW<,C4<,.?`/A+0```"-=@"- +MGKC^___V@T`!```!#X21````@WL$``^%AP```(N#4`$``(!X!`1V%X.[B``` +M``!T((N#B````#E8!'05C78`BX-0`0``@'@$`758]D,S`G12@WL4`'D,5^A^ +M_/__B4,4@\0$]H-``0```G0W@^P(:@!7Z/S___^)PH/$$(7`=",YV'0?]H!` +M`0```G0)@*-``0``_>L-BT,4B4(4QT,4`````(LVC4<,.?`/A4____];7E_# +MC78`5U93BW0D$(M\)!2+1"08BUX,_XL<#0``A-1A!0Z/S_ +M__^#Q!"#NQP-````=0^#[`Q3Z`H```"#Q!"-=@!;7E_#5U93BWPD$(M?#(U' +M##G8="V)QI"-D[C^__^+@E`!``"`>`0!=1+V0C-`=`R#[`Q2Z/S___^#Q!"+ +M&SG>==:+7Q2-1Q0YV'09B<:)]HU#](/L#%#H_/___X/$$(L;.=YUZXM?#(U' +M##G8="^)QHUV`(V3N/[__XN"4`$``(!X!`1V$H-Z!`!U#(/L#%+H_/___X/$ +M$(L;.=YUUH/L#%?H%?[__X/$$(._&`T```!T$8/L#/]W!/^7&`T``(/$$(GV +M6UY?PU575E.#['R+G"20````BVL,QT0D#`````"%VP^$"@$``(UV`(/L"(M# +M!(U4)!A2_W,(_U`<@\00#[9$)"`[!3@````/CLX```"-0Q")1"0$#[8%```` +M`#M$)`QU1P^V!0````"-!("-!("-!("-!("-!("-!(#!X`:C/````,<%1``` +M``````")'4@```"#[`AH/````%7H_/___X/$$.FB````BT,8B40D"/^%'`T` +M`(/L#(M\)!!7Z/S___^)QHM#!(D<)&@P<0``5O\U.````/]S"/]0-(/$((3` +M=16#[`A65^C\_____XT<#0``@\00ZPR+1"0(.4,8@U0D#`#_!3@````/MD0D +M(#L%.`````^/.?___\<%.`````````"+&X7;#X7Y_O___XT<#0``@[T<#0`` +M`'4,@^P,5>CY_?__@\00@\1\6UY?7<.)]E575E.#[`R+="0@BWPD)(ML)"B) +MKA@-``"+7@B%VW0F@^P,BT,$_W,(_U!X@\00A,!U#<:&$`T```'IB0```)"+ +M&X7;==J+'0````"%VW06@WLD`'0*@^P,5O]3)(/$$(L;A=MUZH7_=!6#[`B+ +M1P1J`?]W"/]0*,9'0`&#Q!#'AAP-```!````@^P,_W8(Z/S___^#Q!"%[74M +M@[X<#0```'0D@^P,:*"&`0#H_/___XDT).C\____@\00@[X<#0```'7?C78` +M@\0,6UY?7<-64X/L!(MT)!`Y-0````!U"XL&HP````#K)(GVBQ4`````A=)T +M&#DR=`R)]HL2A=)T##DR=?:%TG0$BP:)`HU&##E&#'0;B<.+1@PM2`$``(/L +M#%#H_/___X/$$#E>#'7GC484.484="N-=@"+1A2-2/2+4`2+`(E0!(D"@^P( +M48U&:%#H_/___X/$$(U&%#E&%'78BQT`````A=MT&(GV@WLH`'0*@^P,5O]3 +M*(/$$(L;A=MUZHM>"(7;=!B-=@"#[`R+0P3_N#Q`1; +M7L.04XM,)`B+7"0,BU$,C4$,.=!T%HG!C78`C8*X_O__.5@4=`N+$CG1=>^X +M`````%O#5E.#[!"+7"0<4^C\____B<:-0&2)1BB+4PR-0IR)1B2-1A")1A") +M1A2#Q!"[`````(U.+(G0@^@L=`>0B!E!2'7ZB?"#Q`1;7L.)]E93@^P$BUPD +M%(MT)!BX`````#ES"'(A@^P,4^C\____BU0D((D0B5@$B7`(C5;_B5`,*5,( +M@\00@\0$6U[#B?:#[!2+1"08BTPD'(M0"`-1#(E0"%%0Z/S___^#Q!S#D(/L +M$(M$)!3_="08C5!04E#H_/___X/$',.-=@"#[!2+1"084(L`@\!04.C\____ +M@\0N# +MQ`A;PXGV5E.#[`2+="00BUX(A=MT+H/L#(M#!/]S"/]0<(/$$(![0`!T$X/L +M"(M#!&H!_W,(_U`H@\00B?:+&X7;==*+7@R-1@PYV'0NB<:)]HV3N/[__XN" +M4`$``(!X!`%U$H-X-`!T#(/L#%+_4#2#Q!")]HL;.=YUUH/$!%M>PU.#[`B+ +M1"00BU@(A=MT+I"`>T``=!*#[`B+0P1J`/]S"/]0*(/$$)"#[`R+0P3_0.4,( +M=3N#[`R-0RA0Z/S___^#Q!"%P'1$B5@,B7@0QP``````B4`$QT`(`````(/L +M"%"-1B10Z/S___^#Q!#K'(L;A=MUNHLVA?9UJ.L.@^P(4&H#Z/S___^#Q!!; +M7E_#55=64X/L#(MT)""+1@R+4`R#P`PYT`^$G````(V:N/[__XN#4`$``(!X +M!`%U>HM$)"0Y0SQU<3ES0'5LN@````#V@T`!```!#X6Y````BVLUT0XM- +M#(7)=#6+402%TG0BN`````"`>B0`=!7UW#C78`5U93BWPD$(/L#%?H_/___XM?#(/$$(U'##G8=#&)QI"-@[C^ +M__^`N$(!````=!F+D%`!``"#>C0`=`V#[`Q0_U(T@\00C78`BQLYWG72@^P, +M5^C\____BU\,@\00C4<,.=AT%H![^0!T"K@!````ZPZ-=@"+&SG8=>JX```` +M`%M>7\.04XM<)`C_,^C$\O__B4,4@\0$6\.+1"0$@W@4`'@'QT`4_____\.) +M]E.+3"0(NP````"+5"0,2H/Z_W0,#[8!`<-!2H/Z_W7T#[;#6\.-=@"+3"0$ +MH0````"%P'08BU`(A=)T"SE*"'01BQ*%TG7UBP"%P'7HN`````##D(M,)`B# +M>1``=!Z#>10`=`F+412+01")0A"+41"+012)`L=!$`````##C78`5U93BWPD +M$(MT)!3H_/___XG!@WX0`'0>@WX4`'0)BU84BT80B4(0BU80BT84B0+'1A`` +M````B<@#!HE&!(N7F````(V/F````(72=!:)PY"+0@0IV(7`?PJ-2A2+4A2% +MTG7MB584B4X0A=)T!HU&%(E"$(DQ.;>8````=1.#[`C_-O]W!.C\____@\00 +MC78`6UY?PU=64XMT)!#H_/___XG'BYZ8````B=F%VW1,B?:+000I^(7`?T&# +M>10`=`R+412-AI@```")0A"+012)AI@```")P\=!$`````#'010`````@^P, +M_W$,_U$(@\00BXZ8````A7\.)]E93@^P,BW0D&(U> +M'("F0`$``/Y6:@'H_/___X/$$/9#%P)T$(/L#%;H_/___X/$$.M)B?:+&X7; +M=$&)]HM3#(72=#*`HD`!``#^BX)0`0``BT`@B4(HB5(LQT(P`````(/L"(U" +M*%"+!H/`)%#H_/___X/$$(L;A=MUP8/$!%M>PXUV`%93@^P$BW0D$(M<)!2+ +M1"08A____@^P(BQ")4V#'``````!3Z/S___^#Q!A; +MPY!64X/L!(M<)!"+L```(`@>,``/[_ +M0XM0'(72=!V_`0```(M"#(7`=`N+2"`IV8GXT^`)QHL2A=)UZ+D`````B?`/ +MMM")]HG0T_BH`74(C00+ZPZ-=@!!@_D'=NJX`````%M>7\.05E.+3"0,O@`` +M``"[`````,=!)`````#V03-`=`O'02``````ZT*)]HM1'(72=">0@WH,`'0& +M0^L7C78`BT$D`T((B4$D.7((=@:+<@B-=@"+$H72==J#^P-^"<=!(`````#K +M!(EQ()!;7L.055=64X/L#(ML)""+?"0DBUT+0P0#0P@YP@^'-`$` +M`#E[!'5OBU0D*#E3"`^$>____SE[!'5=@^P8:"`!``#_=0#H_/___X/$%%#H +M_/___XG&@\00N0````"%P`^$00(``+H0````B`A`2G7ZBT,(*T0D*(E&"(M4 +M)"B-!!>)1@2+`XD&B3.)4PB)V>D2`@``C78`.7L$#X.W````@^P8:"`!``#_ +M=0#H_/___X/$%%#H_/___XG&@\00N0````"%P`^$VP$``+H0````B`A`2G7Z +MBT,$B48$B?HK4P2)5@B+`XD&B3.)>P0I4PB+1"0H.4,(=E>#[!AH(`$``/]U +M`.C\____@\044.C\____B<:#Q!"%P`^$F/[__[D`````NA````"("$!*=?J+ +M1"0H`T,$B48$BT,(*T0D*(E&"(L#B0:),XM4)"B)4PB)V>E/`0``@WL,``^$ +M-@$``(GV.7L$#X4K`0``N@$```"+,X7V=!Z#?@P`=!(Y?@1U#8M&"#M#"'8" +MB?-"B?:+-H7V=>*Y`````(/Z`0^/`P$``(M$)"@Y0PAR38/L&&@@`0``_W4` +MZ/S___^#Q!10Z/S___^)QH/$$+D`````A<`/A,\```"Z$````(@(0$IU^HE^ +M!(M4)"B)5@B+`XD&B3.)\>FM````BW4GK)8GVBS:%]@^%=____[D`````ZQ*-=@"+ +M&X7;#X5:_?__N0````")R(/$#%M>7UW#C78`4X/L"(M<)!"+3"04BU,<.=%U +M38L"B4,<@^P(4H/L#&@@`0``_S/H_/___X/$%%#H_/___X/$$.LUBP&)`H/L +M"%&#[`QH(`$``/\SZ/S___^#Q!10Z/S___^#Q!#K$(GVA=)T"CD*=-&+$H72 +M=?:#Q`A;PY!75E.+?"00BUPD%+X`````BT\GK+(7)="B+5@B+1@0!T(E! +M!(M!"`-#""G0B4$(@^P(4U?H_/___X/$$.F;````QT,,`````(M6"(M&!`'0 +MB4,$*5,(Z8$```"Z`````+X`````BT\0P`=0^+000#00@[0P1U!(G*B?:+"87)==+'0PP`````A=)T'(M"!(E# +M!(M#"`-""(E#"(/L"%)7Z/S___^#Q!"%]G07BT,(`T8(B4,(@^P(5E?H_/__ +M_X/$$)"`3S,06UY?PU575E.#[`R+?"0@BVPD)(M<)"B^`````,=$)`@````` +MQD0D!P"%VW4/N``````Y;R`/@BD!``"0BT\0P`=18Y:0AR$87V +M=`B+00@[1@AS!8G.C78`A=MT*#E9#'4CQD0D!P&%]G4*.6D(0P`=1:%VW02BU,DBT($`T((.4$$=02)3"0(BPF% +MR766A=MT-K@`````@'PD!P`/A*(```"%]G4%BW,DZQV#?"0(`'06BU,DBTPD +M"(M!"`-""#M&"'8$B=:)]K@`````A?9T +M'(M&#(E&)(E&((/$!%M>PXGV55=64X'L#`(``+\`````B[0D(`(``(/&'(I6 +M%XC0@^`#/`$/A$P"``"(T(/@[XA&%[D`````N@`"``")X(UV`(@(0$IU^HI. +M%_;!`@^$Y@```(GCQP0D>6-G;(N4)"`"``"*@D`!``#!X`2#X""*5"0$@^+? +M"<*(5"0$A,EY$(C0@\@0B$0D!(I&%HA$)`6*1ABH`709@$L'`8T4A0````"# +MX@B*0P2#X/<)T(A#!(I&&*@$=!:`2P<"B,+0ZH/B!(I#!(/@^PG0B$,$BD88 +MJ!!T%X!+!PB(PL#J!(/B`HI#!(/@_0G0B$,$BD88J$!T%(!+!P2(PL#J!XI# +M!(/@_@G0B$,$@^P(:``"``!3Z/S____WV(A#!H/$"&H`4VH!:@!J"?^T)#P" +M``#H_/___X/$(.D]`0``B>.*3A>(R(/@]XA&%\<$)%]W85*+K"0@`@``BT4, +MBU40B40D!(E4)`B$R7D,@$PD#!"*1A:(1"0-BD88J`%T&8!+#P&-%(4````` +M@^((BD,,@^#W"="(0PR*1ABH!'06@$L/`HC"T.J#X@2*0PR#X/L)T(A##(I& +M&*@0=!>`2P\(B,+`Z@2#X@**0PR#X/T)T(A##(I&&*A`=!2`2P\$B,+`Z@>* +M0PR#X/X)T(A##(I&%\#H`H/@`8A##HL6A=)T.XM*#(7)="Z-!'^-!,.+:@2) +M:!#'0!0`````BVH(B6@8QT`<`````(MI((EH(,=`)`````!'BQ*%TG7%@^P( +M:``"``!3Z/S____WV(B#``$``(/$"&H`4VH!BT8,+0```@`E``#^_[H````` +M4E#_M"0\`@``Z/S___^#Q""!Q`P"``!;7E]=PX'L#`(``+D`````N@`"``") +MX(GVB`A`2G7Z@^P(:@"-1"0,4&H!:@!J`/^T)"P"``#H_/___X'$+`(``,.- +M=@!3@^P(BUPD$(N#4`$``+K_____@'@$`75$BT,H+0```@`E``#^_[H````` +MB4,,B5,0@^P,4^BF_/__@&,S],=#%/____^)'"3H_/___XD<).AK____N@`` +M``"#Q!")T(/$"%O#5E.![`0"``"+G"00`@``B>;V@T`!```!=&:+@U`!``"` +M>`0!=5J`HT`!``#[N0````"Z``(``(G@C78`B`A`2G7Z@^P(:@%6:@%J`&H` +M4^C\____@\0@9H&^_@$``%6J=1ZZ`````(G0P>`$@[PPR@$```!T!(!+,P)" +M@_H#?N>!Q`0"``!;7L.-=@!64X/L!(MT)!"`9C._BUX'(/$$.L"BQN%VW7:5NC\____@\0(6U[#B?955U93@>P<`@`` +MB[0D,`(``(UL)!"-7AR#[`AJ`8U$)!Q0:@&+1B@M```"`"4``/[_N@````!2 +M4%;H_/___X/$((7`=!^`ID`!``#^@^P(5FH!Z/S___^`2QC\____@\00A,`/A9(!``"`?0X`#Y7" +MP>("BD,7@^#["="(0Q>+1B@M```"`"4``/[_N@````")1@R)5A"#[`Q6Z,3Z +M__^#Q!#V10P0=`J`2Q>`BD4-B$,6]D4/`707BE,8@\H!BD4,P.@"@^`"@^+] +M"<*(4QCV10\"=!:*4QB#R@2*10S1X(/@"(/B]PG"B%,8]D4/"'07BE,8@\H0 +MBD4,P>`$@^`@@^+?"<*(4QCV10\$=!>*4QB#RD"*10R#X`'!X`>#XG\)PHA3 +M&,=$)`@`````QT0D#`````")]HM4)`R-!%*-1,4`B40D!(G'@\<0BT<,"T<( +M=&R#[`AJ!/\VZ/S___^)1"08@\00A<`/A)4"``"#[`3_=PB+?"0,_W<05NA> +M\___B<&#Q!"%P'1=BT0D"(/`'(M4)`B)@S'0A``````B4@(B5$,B?;_1"0,@WPD#`,/CFG___^#?"0(`'0J@$L7 +M0%;H_/___X/$!.D_`0``@^P,_W0D%.C\____@\00Z0@"``"`2Q`BD0D%8A#%O9$)!#XG\)PHA3&(GV +M]D,7`70-BWL,B7X,QT80`````(![%P!Y(\9$)!``BD,6B$0D%(/L"(M#'(U4 +M)!A2_W,H_U!@@\00C78`BD,8J`%T)<9$)!`"T.B#X`&(1"04@^P(BT,=A*0BA&*0?^(`8A1_X/I`CG9=^^)V3GS=%&`.R!U#$,Y\W0Z@#L@=/:) +M]CGS="^`.P!T*HUV`(H#0SP@=1$Y\W0<@#L`=`Z`.R!T"8UV`(I#_X@!03GS +M=`6`.P!UV3GQ=`F0Q@$`03GQ=?A;7L.055=64X/L/(ML)%"Y`````+HL```` +MB>"0B`A`2G7Z@^P(:@'_=0SH_/___XG'@\00BY!,`0``BX!(`0``B5`$B0*+ +M!XM8#(/`##G8=$*-=@"-L[C^__^+AE`!``"`>`0!=2*#[`C_=D!5Z/S___^# +MQ!"%P'@:A6#!30!```$@^P,:"`!``#H_/___[@`````@\086\.0 +MD)!64XMT)`R+#0````"%R70FBU$,C4$,.=!T%HG#C8*X_O__.;"``0``=!&+ +M$CG3=>R+"87)==JX`````%M>PXGV55=64X/L#(M\)""+;"0DB:_P#```O@`` +M```Y[G,FB?:-'':-')^#[`B-@^P```!05^C\____B8/H````@\001CGN7UW#D%93@^P$BW0D$+L`````@[[P#````'8KD(T$6XT$AO^P\``` +M`/^P[````/^PZ````%;H_/___X/$$$,YGO`,``!WUL>&\`P```````"#[`Q6 +MZ/S___^#Q!1;7L.055=64X/L;+X`````BST`````A?\/A*H```")]HM?"(7; +M#X23````C6PD`)"#[`B+0P15_W,(_U`<@\00@'PD$P!T;8GP1CN$)(````!U +M88.\)(0`````=%$/MD0D%XN4)(0````Y`GQ!BQN%VW4)N`````#K4XGV@^P( +MBT,$5?]S"/]0'(/$$(!\)!,`=`FX`````.LSB?8/MD0D%XN4)(0````I`CD" +M?;^)V.L;B?:+&X7;#X5R____BS^%_P^%6/___[@`````@\1L6UY?7<.-=@!5 +M5U93@^QLB[0DB````+W_____QP8`````BST`````A?]T5)"+7PB%VW1&D(/L +M"(M3!(U$)`A0_W,(_U(<@\00@'PD$P!T!T7'!@`````[G"2`````=0V+A"2$ +M````B2CK%8GV#[9$)!7UW#D%575E.#[&R_ +M`````(LM`````(7M=#.)]HM="(7;=".-="0`D(/L"(M#!%;_7UW#D%575E.![(0```"+K"2< +M````:@#_M"2<````Z#G^__^)PX/$$+C_____A=L/A*L```"Y`````+I,```` +MB>B-=@"("$!*=?JY`````+I@````C40D$(@(0$IU^H/L"(M3!(U$)!A0_W,( +M_U(B-=@"("$!*=?JY`````+I@````C40D$(@(0$IU^H/L"(M3!(U$)!A0 +M_W,(_U((10*#.P!UU+@`````@\1\6UY?7<.-=@!55U93@>RT````C80D +MS````%#_M"3,````Z$K\__^)Q\9$)!<`@\00NO____^%P`^$[0```(MH#+D` +M````NA````"+A"3(````C78`B`A`2G7Z@^P(BU<$C40D2%#_=PC_4AR#Q`R+ +M5P2-1"0,4/^T),P```#_=PC_4ER#Q!"Z_____X7`#X67````BT0D#(N4),@` +M``")0@2+1"0(B0*+70R-10PYV'1TC78`C;.X_O__BX90`0``@'@$`756@^P( +MBU8XC40D&%#_=D3_4CR#Q!`Y?D!U,`^V1"0<.X0DQ````'4BBD0D'3I$)%)S +M&`^VT(N&@`$``(N,),@```")1)$(_D0D!XI$)`)\.F*````BQT`````A=MT?HUV`(M+#(U###G(=&N)]HV1N/[_ +M_X-Z!`!U5(N"4`$``(!X!`1V)(N"B````(7`=`N#>`0`=`4Y4`AT,XN"@`$` +M`(E$M0!&ZR*)]HN"4`$``(!X!`%U%/9",P)T#HN"@`$``(E$M0!&C78`.?YT +M@(L)C4,,.PXUV`(M4 +M)`2+3"0(N`````#V@D`!```!=0*P`?9!""!T`X/("/:"0`$```1T`X/(`O:" +M0`$```)T`X/(!/9!"!!T`X/($/9",P1T!0T```"`]D(S`G0%#0```@#V0C,! +M=`4-```!`,-55U93@^P$#BW0D,(M& +M#(M6$`^LT`O!Z@M24%-1Z/S___^#Q!")1"0(B50D#`^V1B2)1"04B<%)BT0D +M"/?AB<'!X`(!R(T<`+X`````@WPD%``/CHT```"+1"0PBTRP+(7)='#V@4`! +M```!=&>+@5`!``"`>`0$=EOV06QP=%6+07"+470/K-`+C02`C02`C02`C2S% +M`````(M!#(M1$`^LT`O!Z@N)1"0(B50D#(GHN@````#W="0(B<4/MD$DC02` +MC40`]@^OQ87;=`0YPW8#B<.01HM4)#`/MD(D.?`/CW/___^!^Q`G``!V!;L0 +M)P``B=B#Q!Q;7E]=PU575E.#[`R+1"0@BZB(````@'UB`@^%)0$``(M%"(M- +M!(M0$(M`#"M!#!M1$`^LT`O!Z@NY$"<``(G3"<,/A,4"``"`?10`='B+10B+ +M<`R+>!")\(GZ*T58&U5<#ZS0"\'J"XG!B=,/I,,"P>$"`<$1TXG(B=H/I,H" +MP>`"`<$1TXG(B=H/I,H"P>`"`<$1TP^DRP/!X0.+100K<`P;>!`/K/X+P>\+ +M5U934>C\____@\00B<'!X0(!P='AZ4<"``"+102+<`R+>!"+15B+55PI\!GZ +M#ZS0"\'J"XG!B=,/I,,"P>$"`<$1TXG(B=H/I,H"P>`"`<$1TXG(B=H/I,H" +MP>`"`<$1TP^DRP/!X0.+10B+4!"+0`PI\!GZ#ZS0"\'J"U)04U'H_/___X/$ +M$(G!P>$"`<'1X>G+`0``C78`@'UB`P^%X@```(!]%`!T<(M%!(MP#(MX$(GQ +MB?LK35@;75P/K-D+P>L+B'I20$``)"+15B+55P/K-`+P>H+B<&)TP^DPP+!X0(!P1'3B'IW0```)"`?10`=&Z+10B+<`R+>!") +M\8G[*TU8&UU<#ZS9"\'K"XG(B=H/I,H"P>`"`<@1VHG!B=,/I,,"P>$"`<@1 +MVHG!B=,/I,,"P>$"`<@1V@^DP@/!X`,/K/X+P>\+5U924.C\____@\00B<'! +MX0(!P='AZVJ)]HM%6(M57`^LT`O!Z@N)P8G3#Z3#`L'A`@'!$=.)R(G:#Z3* +M`L'@`@'!$=.)R(G:#Z3*`L'@`@'!$=,/I,L#P>$#BT4(BU`0BT`,#ZS0"\'J +M"U)04U'H_/___X/$$(G!P>$"`<'1X8GV@?D0)P``=@6Y$"<``(G(@\0,6UY? +M7<.05E.#[`2+="00BUPD%(M&>(D#BT9\B4,$BX:`````B4,(BX:$````B4,, +M_[90`0``Z#/Y__^(0V2*1B6(0V6+1G")@Y````")-"3H>?G__XE#:(/L"%;H +M_/___XF#C````,9#9@"Y`````(/$$(!^)`!T49"#?(XL`'1`BU2.+(N"4`$` +M`(!X!`1U%0^V0V:+4AR+DH`!``")5(-LZQ2)]@^V0V:+5(XLBY*``0``B52# +M;/Y#9H![9@=W"4$/MD8D.B0`=!`/ +MMDHDD#E<@BQTXT`YP7?UN`````!;PXGV5E.#[`2+7"00BW0D%&:+0RAFB8;( +M````4^BF____B8;$````BT-XB0:+0WR)1@2+@X````")1@B+@X0```")1@S_ +MLU`!``#H&/?__XA&9(I#)8A&98M#<(M3=(F&L````(F6M````(D<).A5]___ +MB49H@^P$4^C\____B8:L````BD,DB$9FN0````"#Q!"`>R0`=$2-=@"+5(LL +MA=)T*(N"4`$``(!X!`1U$(M"'(N`@`$``(E$CFSK%9"+@H`!``")1(YLZPC' +M1(YL`````$$/MD,D.PXGV5U93@>R@````B[PDL````(NT)+0```"+7T"+AU`!``"Z +M_____X!X!`$/A7X!``"#[`B+5SB-1"1X4/]W1/]2/(/$"(M3!(U$)!A0_W,( +M_U(<@\0,C40D$%"-1"004%/H^/#__XJ$)(T```"(1@**A"2,`````T0D'(A& +M`8M$)!B(!H/$$(!_,P!Y"(I',HA&`^L*BH0D@@```(A&`XI4)'B(T<#I!H/A +M`8I&!H/@_,#J!]'B"<@)T`^V3"1Y@^$!P>$"@^#SBEPD>8T4G0````"#X@@) +MR`G0B-F#X1"#X,^(VH/B(`G("="(V8/A0(/@/XC:P.H'#[;2P>('"<@)T(A& +M!HI4)'^#X@.*1@>#X/P)T(A&!XJ$)(,```"(1@7VPP1T!L9&!`+K&(I$)'G` +MZ`.#X`&#^`$9P(/@_H/``XA&!(U$)'!05^B/]O__@\0(B48(@[PDB`````!T +M2XU&#(/L!&B6````_[0DD````%#H_/___X/&0KD`````@\00BYPDB````)!F +M#[942S`0!#X7>`0``@^P(BU4XC40D>%#_=43_4CR#Q`B+4P2-1"084/]S"/]2'(/$ +M#(U$)!!0C40D$%!3Z#OO__^*A"2-````B$<"BH0DC`````-$)!R(1P&+1"08 +MB`>#Q!"`?3,`>0B*13*(1P/K"HJ$)((```"(1P.*A"2#````B$<%BE0D>(C1 +MP.D&@^$!BD<&@^#\P.H'T>()R`G0#[9,)'F#X0'!X0*#X/.*7"1YC12=```` +M`(/B"`G("="(V8/A$(/@SXC:@^(@"<@)T(C9@^%`@^`_B-K`Z@'I@`` +M``````"+12")AZH```#'AZX`````````BU4Z`````(G0@<2L```` +M6UY?7<.05U93BWPD$(MT)!17Z/S___^)PX/$!+D`````NJX```")\(GVB`A` +M2G7ZA?]T!(7;=0>Z_____^MTBT,,B48$N/____^#>P0`=`F+0P2+@(`!``") +M1@B+@U`!``"`>`0$=B6Z_____X![)`AW0,8&`8/L"(U&#%!3Z$OX__^Z```` +M`(/$$.LFBX-0`0``NO____^`>`0!=17&!@*#[`B-1@Q04^B`^___B<*#Q!") +MT%M>7\.05U93BWPD$(MT)!17Z/S___^)PX/$!+D`````NM@```")\(GVB`A` +M2G7ZA?]T!(7;=0>Z_____^MOBT,,BU,0B48$B58(N/____^#>P0`=`F+0P2+ +M@(`!``")1@R+@U`!``"`>`0$=AK&!@&#[`B-1A!04^B`^/__N@````"#Q!#K +M)HN#4`$``+K_____@'@$`745Q@8"@^P(C4804%/HT?K__XG"@\00B=!;7E_# +MB?975E.+?"00BW0D%%?H_/___XG#@\0$N0````"Z^@```(GPB?:("$!*=?J% +M_W0$A=MU"KK_____Z:0```"+0PR+4Q")1@2)5@BX_____X-[!`!T"8M#!(N` +M@`$``(E&#+#_@WL4`'@#BD,4B$8#@^P,BP/_<`3H_/___XA&`HJ#1`$``(A& +M`8N#4`$``(/$$(!X!`1V)<8&`;K_____@'LD$'<]@^P(C48@4%/HN/C__[H` +M````@\00ZR:+@U`!``"Z_____X!X!`%U%<8&`H/L"(U&(%!3Z*7[__^)PH/$ +M$(G06UY?PXGV55=64X'L+`(``(NL)$`"``"*G"1(`@``QT0D&/_____'1"0< +M_____[\`````BX0D1`(``(!X`P!X&8N%4`$``(!X!`9U$HN4)$0"``#V0@," +M=`6_`0```+D`````N@`"``"-1"0@B?:("$!*=?J+E"1$`@``BD("B$4E#[9* +M`K@!````T^!FB44FBE5LB-"#R`2(16R+A"1$`@``]D`#`W0LB-"#R`6(16S' +M17``````QT5T`````(N%4`$``(!X!P!T&(C0@\@'B$5LZP['17#_____QT5T +M_____XN4)$0"``"+0@2)17B+0@B)17R+0@R)A8````"+0A")A80```"^```` +M`(!])``/A)0```"+1+4LB40D%(EH!(M4)!PY4!!W'7()BU0D&#E0#',2BU0D +M%(M"#(M2$(E$)!B)5"0`0$=3R%]G0, +MBX50`0``@'@$!G4L@^P(:@"-1"0L4&H!BU0D*(M")(M`!+H`````4E"+1"0P +M_W`#^``/CHP```"+3+4LBT4,BU40`T$,$U$0B44,B5401CGW?^7K;XN%4`$` +M`(!X!0!T(0^W12;WV(G!B+A5`!``"* +M0`2#Z`@\`780BU0D%(N"4`$``(!X!`AU!\:%1`$```&!Q"P"``!;7E]=PU57 +M5E.+?"04BVPD&+X`````@'\D`'1BD(M4MRR%TG10]H)``0```71'BX)0`0`` +M@'@$!'8ON0````"`>B0`=#`/MEHDBT2*+(7`=`[V@$`!```!=`4Y:!QT)$$Y +MRW_EZP^-=@`Y:AQU!XG0ZQ&-=@!&#[9')#GP?Y^X`````%M>7UW#D%575E.+ +M?"04BUPD&+T`````O@````"%VW0#BW,DN0````"+5QR%TG00C78`@WH,`8/9 +M_XL2A=)U\[@`````@_D#=V&Y`````(7;=`.+2PR+5QR%TG0XB?:%VW0%.5H, +M=">%]G03@WH,`'4=BT8$`T8(.4($=0*)U8-Z#`!U"CE*"'8%BTH(B?:+$H72 +M=UT#(M%"`-&"#G(=@*)P8G(6UY?7<.-=@!55U93@^Q4BUPD<(I$ +M)&R(1"1/#[9L)'C'1"1`_____\=$)$3_____QT0D.`````#'1"0\`````(GH +MP.@$#[;`B40D,(/E#X-\)&@`#X36`0``BU0D:(N"4`$``(!X!`=T%H!\)$\' +M#X6O`0``@'@$!P^%L0$``)"+3"1H@'DD`0^$)@(``(N!4`$``(!X!``$``#G?#X-P`0``BT0D:(MTN"R% +M]@^$^P0``(M4)'3_-+KH_/___X/$!#E&''0:1XM,)&@/MD$D.?@/ACL!```Y +MWW+'Z3(!``"+5"1H#[9")+H`````N0`````YV`^'[@0``.L5BT$(N@`````! +M1"0X$50D/.F(````OP````"+3"1H@'DD`'0UBT0D:(MTN"R%]@^$B00``(M4 +M)'3_-+KH_/___X/$!#E&'`^%?00``$>+3"1H#[9!)#GX=\N+5"1H#[9")(MT +M@BB+1AR)T8M2#(M)$(E4)#B)3"0\BT@`0!=!*Z`````+D`````Z0D$``"-=@"+1B"Z +M``````%$)#@15"0\1SG?F[`````(L$)/?A +MB40D&(L\)`^O^XG6`?Z+1"0$#Z_!`<:)="0@^P$_[0D/`(```^V1"074%/H +MI____X/$$.G5````BX0D.`(``$B#^`%W4(N#4`$``(!X!`1U%8M#'(E$)`B# +M[`Q3Z/S___^#Q!#K$(N#4`$``(!X!`%U!(E<)`B#O"0X`@```@^%B0```(/L +M#/]T)!3H_/___X/$$.MXBW,<@'LT`'4'@'PD#P!T0?:&0`$```%T.(M#)(-X +M!`!U+[D`````N@`"``"-1"00B?:("$!*=?J#[`AJ`(U$)!Q0:@%J`&H`5NC\ +M____@\0@@^P,4^C\____@\00]D8S$'05]H9``0```70,@^P,5NC\____@\00 +M1XGX.$4D#X?I_O__@^P,5>C\____@<0L`@``6UY?7<.)]E575E.#[!B+1"0L +MBW@PBQ")5"04B[+0````BV\$BU\(4.C\____BU8<@\00N/____^%VW0&BX.` +M`0``B0*#^/]U"L=&+/____^-=@"`36T$@$MM!(!C;/V)NX@```")O8@```"- +M5PR+1"0(@\`4BT@$B5`$B4<,B4H$B1&#[`Q5Z/S____'1C`4&`$`B78TQT8X +M`````(/$"(U&,%#_=@CH_/___X/$'%M>7UW#C78`55=64X/L+(ML)$"+?"1$ +MO@````"`?20`=#"`?P$`="J+7+4LA=MT/_]TMW#H_/___X/$!#E#''0;1@^V +M120Y\'X(#[9'`3GP?]:Z`0```.G\`@``BD4DNO____\Z1P$/A^L"``#K'KK_ +M____Z=\"``"Z_____^G5`@``NO_____IRP(``+X`````@'TD`'0BBURU+(7; +M=-G_=+=PZ/S___^#Q`0Y0QQUTD8/MD4D.?!_WHM':(M7;"M%#!M5$(E$)"") +M5"0D"<(/A#,"```/MD4DBUR%*(M#'(E$)!S'1"00`````,=$)!0`````BT@< +MA0P`#X7*````BU,DBT($`T((.4$$#X6X````BT,,BU,0B40D +M$(E4)!2+00BZ`````#M4)"1R4W<&.T0D('9+BT,DBU0D(`-0"(E0"(E3#,=# +M$`````"+5"0@`5$$BT0D("E!",=$)"``````QT0D)`````"+5"0<@$HS$(/L +M#%+H_/___X/$$.M3BT$(N@`````I1"0@&50D)(M3)(M""`-!"(E""(E##,=# +M$`````"#[`A1_W0D*.C\____BT0D+(!(,Q")!"3H_/___X/$$.L+D(L)A(M'"(E%?(M'#(F%@````(M'$(F%A````(/L#%7H_/___X/$"/]U +M%(M%`/]P!.C\____N@````"#Q!"-=@")T(/$+%M>7UW#B?;#C78`@^P4BTPD +M&(V1\````(L!B4((QT(,#_\``(V!+`$``(E"&,="$`@```#'0A0`````QT(@ +M`````(N!@`$``(F!+`$``(M*&(M$)!R)003'0BB@MP``4O]R".AG7P``@\0< +MPXUV`%.#[`B+7"00BD-MJ`1T1:@(#X69````@\@(B$-MBX.(````BT`(@$AM +M",>#Z````#"\``")F^P```"#[`B-@^0```!0BP/_<`3H_/___X/$$.M=D(M3 +M!(I#;(/@]XA#;*@0=4R%TG0&]D)M"'5"BD-LJ&!U.X/($(A#;,>#Z````#"\ +M``")F^P```"#[`B-@^0```!0BP/_<`3H_/___X/$"%-J!.C\____@\00C78` +M@\0(6\.-=@"#[!2+1"08BT`DQX#H````,+P``(F`[````(V0Y````%*+`/]P +M!.C\____@\0`&`$``,"X```%\````%!3 +MZ/S___^#Q!A;PXGV5U93@^P@BU0D,(MZ)(-Z+/T/A'$"``"*1VVH"'0R@WHL +M``^$W`$``(/@]XA';8N'B````(M`"(!@;?>#[`A7:A3H_/___X/$$.EA`@`` +MB?:*1VRH$`^$@0```(-Z+`!T&X/@[XA';(/L"%=J".C\____@\00Z34"``") +M]@^V1R1(B00DF8E4)`2+7W"+!"3WXXE$)!B)5"0BP`=!.#[`AJ"E?H-?W__X/$$.FP`0``#[9' +M)$B)!"29B50D!(M?<(L$)/?CB40D$(E4)!2+-"0/KW=TB=$!\0^O7"0$C1P9 +MB5PD%#M?$'(B=PF+5"00.U<,`9VS?@^P(5VH,Z/S___^#Q!#I50$``(N' +M#`$``(`X``^$FP```(!G;-^#[`AJ`5?HM/S__X/$$.DO`0``BD=LJ$`/A"0! +M``"#>BP`=!F#X+^(1VR#[`A7:@_H_/___X/$$.D%`0``#[9')$B)!"29B50D +M!(M?<(L$)/?CB40D"(E4)`R+-"0/KW=TB=$!\0^O7"0$C1P9B5PD##M?$'(A +M=PF+5"0(.U<,(```` +MBUA8@>/__P\`O@`````/MU!@N0`````YSG(I=P-=@#'A^@```#PN```B;_L````QX?D```` +M`````(/L"(V'Y````%"+!_]P!.C\____@\00ZRB0QX?H````,+P``(F_[``` +M`(/L"(V'Y````%"+!_]P!.C\____@\00@\0@6UY?PXGV55=64X/L'(ML)#"+ +M?"0TB:_X````C8' +M$`$```````")OQ0!``#'AQ@!``!XN0``BX>``0``B8'``$```0```#I%`$``/9';'`/A#8!```/MD+CP@! +M``"+1PR+5Q`K1W`;5W2#^@!W!SV`````=@6X@````&:)00S'AP`!```.```` +M]D=L('06BX<,`0``Q@``QX<$`0```0```(UV`/^'X````(._X````&1^"L>' +MX`````````"#[`B-A_````!05>C\____@\00@\0<6UY?7<-55U93@^Q\Z/S_ +M__^)1"1LBY0DF````(M":(M2;(E$)&")5"1DQD0D0`#'1"0X`````,=$)#`! +M````QT0D+`````"+C"28````BD$"P.@$B$0D7G4%QD0D7@&+G"28````@&," +M#X![`1!W"X![`0%W#X`[!W0*N?_____I;`X``+\`````BX0DF````(!X`0!T +M1HGVBY0DF````/]TNG#H_/___XG#BX!0`0``@\0$@'@$`74)]H-``0```74* +MN?_____I)`X``$>+C"28````#[9!`3GX?[R+G"28````#[8#@_@'=U?_)(7$ +M````QD0D7P?K4\9$)%\%@'PD7@,9P(/@_H/`"(A$)$#K.\9$)%\(ZS3&1"1? +M">LMQD0D7P:+E"28````@'H!`G8;QD0D7P7&1"1`!L9$)%X"ZPJY_____^FD +M#0``@^P,#[9$)&M0Z/S___^)1"1,@\00N?____^%P`^$@@T``(!\)%X!=DJ+ +MC"28````9@^V00%F#[9,)%ZZ`````&;W\;G_____9H72#X53#0``@^P,#[9$ +M)$Q0Z/S___^)1"1(@\00N?____^%P`^$,0T``(M<)&0+7"1@#X70````@'PD +M7P=U5K\`````BX0DF````(!X`0`/A"H!``"+E"28````_W2Z<.C\____@\0$ +M@W@@``^$F0P``(M`(+H`````BXPDF`````%!:!%1;$GJ```` +MQT0D8/_____'1"1D_____[\`````BYPDF````(![`0`/A,0```"+A"28```` +M_W2X<.C\____B<.+0""Z`````(/$!#M4)&1W&'(&.T0D8',0BU,@N0````") +M5"1@B4PD9$>+C"28````#[9!`3GX?[7K=XM<)#R`>P4`=#2+E"28````9@^V +M0@'V="1>#[;`#[93!BG0F5)0_W0D;/]T)&SH_/___X/$$(E$)&")5"1D@WPD +M.`!T,HM,)#B`>04`="@/MD0D7@^V408IT)E24/]T)&S_="1LZ/S___^#Q!") +M1"1@B50D9(GVBUPD/(![!0!U&8-\)#@`#X0/`0``BT0D.(!X!0`/A`$!``"+ +ME"28````#[9*`KC_____T^")P8G#P?L?BT0D8"'(BU0D9"':B40D8(E4)&2+ +MC"28````B4%HB5%LBUPD/(![!0!T668/MD$!]G0D7@^VP`^V4P8IT(G!B@4`=%,/MD0D7@^V +M4@8IT(G!B`4`=!B+E"28````BD("N?____\Z0R4/A?<)``"+ +MC"24````BT$,BU$0BYPDF````#M3;'(1=P4[0VAV"KG_____Z`0'=!*+C"28````@#D'=6F`>`0'=5N+ +MG"28````@#L'=3:#[`A3_[0DH````.CE\/__@\00A+E"28````#[9"`3GX?@Z+3"0D"TPD(`^% +M,/___XN<))@````/MD,!.?AU#HM$)"0+1"0@#X5[____B?J+3"0TB%$DZ8\` +M``"_`````(N<))@```"`>P$`=&R+A"28````_W2X<.C\____B<.#Q`2X```` +M`(-\)"P`=1J#O"24`````'004_^T))@```#HKN7__X/$"(/L!%#_="1H4^C\ +M____BU0D1(E$NBR#Q!"%P`^$__[__T>+C"28````#[9!`3GX?Y2+G"28```` +MBD,!BU0D-(A")(M<)&R+3"0TB5D<@'PD7@$/AB8!``"_``````^V;"1>@^P( +M#[9$)$A0_[0DG````.C\____B<:[`````(/$$(/]`'X5D(T$'XM4)#2+1((L +MB42>+$,YW7_LBDPD7HA.)(M<)#2+0QR)1AR#[`2#O"28``````^4P`^VP%#_ +MM"2@````5NA(XO__B?B9]_V)=(,L`>^#Q!")^CA3)'>"9@^V0R3V="1>B$,D +M#[;XB?F`^0]W$XM<)#3'1+LL`````$>)^#P/=NV#[`2#O"28``````^4P`^V +MP%#_M"2@````_W0D0.CHX?__OP````"#Q!"+5"0T#[9")(G"@_@`?F&+3"0T +MBW2Y+(G3BU0D/`^V0@:)V2G!B(N4))0```")0GB+ +M0WR)0GR+@X````")@H````"+@X0```")@H0```"#[`1J`6H`4^C#ZO__BYPD +MI````(N+@`$``(/$$.E2!0``BX0DE````(J00`$``(/B!(M,)#2*@4`!``"# +MX/L)T(B!0`$``(N<))0```"*DT`!``"#X@*#X/T)T(B!0`$``(N!4`$``(!X +M!@!U#XM!+(N`4`$``(!X!@!T&O^T))0```#HM]#__R4"$```B40D-(/$!.M! +MBY0DE````(M"%(M,)#2)012#[`1J`&H`4N@;ZO__@\0(BUPD//]S%(N$))P` +M``#_<`3H_/___X/$$.G.`@``B?:#[`R+A"2<````@\!H4.C\____B<:#Q!"Y +M`````+ID````B?:("$!*=?KH_/___XD&BY0DE````(E6!(M,)#2)3@B)TXN" +M4`$``(!X!`1V3;\`````@'LD`'0R@WLL`'0,BT,L]H!``0```74@#[93)(UV +M`$+7+LLBX-0`0``@'@$!'>SBU0D +M-(N"4`$``+\`````O0````"`>`0'=%V+3"0T#[9!)(N14`$```^V4@8IT)E2 +M4(N$))P```#_#[92!BG0F5)055?H_/___X/$$(G'B=4Y:Q!W"W(%.7L,C\____BXPDE````(E!'(M<)#0[ +M0QQTZ(/L#%'H_/___X/$$(/L#/]T)$#H_/___X/$$(.\))0`````=1R+A"28 +M````]D`#`74/@^P,_W0D0.C\____@\00BY0DF````/9"`P$/A+@```"`?"1> +M`79QBTPD.(!Y!@!T9[\`````BUPD-(![)`!T2XM$)#2+7+@L@$ML0,>#Z``` +M`#"\``")F^P```"#[`B-@^0```!0BP/_<`3H_/___X/$"%-J#>C\____@\00 +M1XM4)#0/MD(D.?A_M8M,)#2`86R_Z0#Z````#"\``") +MF^P```"#[`B)V`7D````4(L#_W`$Z/S___^#Q`A3:@WH_/___X/$$.G'```` +MBX0DF````/9``P(/A+8```"`?"1>`79QBU0D.(!Z!@!T9[\`````BTPD-(!Y +M)``/A)(```"+1"0TBURX+(!+;!#'@^@````PO```B9OL````@^P(C8/D```` +M4(L#_W`$Z/S___^#Q`A3:@3H_/___X/$$$>+5"0T#[9")#GX?[7K1;G_____ +MZTF+3"0T@$EL$,>!Z````#"\``")B>P```"#[`B)R`7D````4(L!_W`$Z/S_ +M__^#Q`C_="0\:@3H_/___X/$$(M<)#2+BX`!``"0B0.-01"#X/`IPKC_____.Q5@````="6A9``` +M`(T\@(T\>(T\O8````#\N0L```#SI8D59````+@`````7E_#B?955U93@^P, +MBWPD((M'&(M8!/\PZ/S___^)QL=$)`P`````@\0$@_L.#X<&!P``_R2=Y``` +M`,=$)`@!````Z2('``"+@(@```!F]T9L<`@/A>`&``"%P`^$V`8``(!X8P`/ +MA^`8&WO +M@$IM"(!(;0C'AN@````PO```B;;L````@^P(C8;D````4(L&_W`$Z/S___^# +MQ`A6:A+H_/___X/$$.F7!@``C78`BY"(````9HM`;"5P"```9CT`"`^%2P8` +M`(72#X1#!@``BT($BU((@&!M]X!B;??'1"0(`0```(/L"%9J$^C\____@\00 +MZ4H&``"+0`2%P'0*]D!M#`^%"08``&;W1FQP#`^%_04``/:&0`$```$/A/`% +M``"+AE`!``"`>`0%#X66````NP````"`?B0`#X3<````BVR>+(7M='"+A5`! +M``"`>`0$=F3V16P0=5X/MT4J4.AMR?__BY50`0``#[92!H/$!#G0#XV8!0`` +MBD5L@^#W@\@0B$5LQX7H````,+P``(FM[````(/L"(V%Y````%"+10#_<`3H +M_/___X/$"%5J!.C\____@\000P^V1B0YV`^/>____^M5#[=&*E#H`,G__XN6 +M4`$```^V4@:#Q`0YT`^-*P4``(!.;!#'AN@````PO```B;;L````@^P(C8;D +M````4(L&_W`$Z/S___^#Q`A6:@3H_/___X/$$(!F;/=F@WXJ``^$%@4``.C\ +M____B48@QT0D"`$```#I`04``)"+@%`!``"`>`0%=4>[`````(!^)`!T2I"+ +M5)XLA=)T*(N"4`$``(!X!`1V'(I";*@0=!6#X.>(0FR#[`A2:@7H_/___X/$ +M$)!##[9&)#G8?\?K#H/L"%9J!>C\____@\00@&9LY\=$)`@!````Z8X$``"* +M0&RH$`^$4P0``/:&0`$```$/A$8$``"#X.6(1FQFBT8J9HE&*,=&+(72="3V@D`!```!=!N+@E`!``"`>`0$=@;V0FP2=0F`9FS^ZPB- +M=@!#.=E_S\=$)`@!````Z?(#``"+0`2%P'0*]D!M#`^%L0,``&;W1FQP#`^% +MI0,``/:&0`$```$/A)@#``"+AE`!``"`>`0%#X6F````NP````"`?B0`#X2I +M`P``BVR>+(7M='V+A5`!``"`>`0$=G'V16P@=6MFBT8H9@M&*@^WP%#H#L?_ +M_XN64`$```^V4@:#Q`0YT`^-.0,``(!-;"#'17``````QT5T`````,>%Z``` +M`#"\``")K>P```"#[`B-A>0```!0BT4`_W`$Z/S___^#Q`A5:@GH_/___X/$ +M$$,/MD8D.=@/CV[____I$@,``&:+1BAF"T8J#[?`4.B1QO__BY90`0``#[92 +M!H/$!#G0#XV\`@``@$YL(,=&<`````#'1G0`````QX;H````,+P``(FV[``` +M`(/L"(V&Y````%"+!O]P!.C\____@\0(5FH)Z/S___^#Q!#IHP(``(UV`(!@ +M;-^#[`A0:@KH_/___X/$$.F)`@``BD!L@^#?@\@"B$9LQT0D"`$```"#[`A6 +M:@OH_/___X/$$.EB`@``@&!LW^E9`@``]H!``0```0^$'`(``&:#>"H`#X41 +M`@``9HM`;"5Q#```9H/X`0^%_@$``(N&4`$``(!X!`4/A88```"[`````(!^ +M)``/A+L```"+;)XLA>UT9(N%4`$``(!X!`1V6(I5;(C0@^!!/`%U3(C0@\A` +M@^#WB$5LQT5P`````,=%=`````#'A>@````PO```B:WL````@^P(C87D```` +M4(M%`/]P!.C\____@\0(56H-Z/S___^#Q!!##[9&)#G8?XOK1(!.;$#'1G`` +M````QT9T`````,>&Z````#"\``")MNP```"#[`B-AN0```!0BP;_<`3H_/__ +M_X/$"%9J#>C\____@\00@&9L]^E+`0``@W@$`'0*D(MV!(-^!`!U]XN&4`$` +M`(!X!`5U1KL`````@'XD`'1-BU2>+(72="B+@E`!``"`>`0$=AR*0FRH0'05 +M@^"_B$)L@^P(4FH.Z/S___^#Q!"00P^V1B0YV'_'ZQ*`9FR_@^P(5FH.Z/S_ +M__^#Q!"#?A0`>0R#[`Q6Z/S___^#Q!#'1"0(`0```.FX````@&!LO,=``3FP$@WPD"`)U$(/L#%;H_/___X/$$.M& +MB?:#OH@`````="Z+AH@```"+4`2+6`B%TG0,@^P,4NC\____@\00A=MT&X/L +M#%/H_/___X/$$.L-@^P,5NC\____@\00D,=',!08`0")?S3'1S@`````@^P( +MC4^__^(1P2A`````(,X``^4 +M1P7&1P8'QD<'!\9'"`#&1PD!QD<*#XI'"X/@_H/("(A'"XL=`````(7;=$B) +M]H![!`1V.HGH#[;P4^@GPO__@\0$B$0W#(![!`9U#,9$-QP"@$PD"T#K%8GJ +M#[;"QD0''!"`>P0%=06`3"0+($6+&X7;=;J`?"0+8'4/B>H/ML+&1`<,$L9$ +M!QP018GJ#[;"QD0'#!/&1`<<$+@`````@\0,6UY?7<.-=@!75E.+?"00BU\8 +MO@````"#.P!V6?]TLP3H_/___XG"BX!0`0``@\0$@'@$`70NQTGQTPXUV`%.#[`R+7"04_W,8:@#_`````#'1"1\`````(V\)(````"#QFC\ +MN0@```#SI8/$#(U$)`10:@!3Z"?E__^+51R)`H/$$(/X_W4*QT4L_____XUV +M`,=%,!08`0");33'13@`````@^P(C44P4/]U".C\____@<3,````6UY?7<.0 +M5E.#[`2+="00BT88C5@$_S#H_/___U-0_W8(Z,3D__^)PH/$$(7`=#>#^/]U +M"L=&+/____^-=@"+1AR)$,=&,!08`0")=C3'1C@`````@^P(C48P4/]V".C\ +M____@\00@\0$6U[#B?955U93@^P,BVPD((M%&(M8!(M5"(E4)`C_,.C\____ +MB<>#Q`3VPP,/E$0D!\<$)`````"+F(@```"%VW1;@WL$`'0ABT,$@+A!`0`` +M`'4]@[AD`0```'4T@[A\`0```'4KC78`A=MT,(-["`!T*HM#"("X00$```!U +M$H.X9`$```!U"8.X?`$```!T#,<$)/_____IP````/9';'!T#L<$)/_____I +MK@```(GVN0````"`?R0`="0/MGP@` +M=!:#[`1J``^V1"0/4/]S".BOU___@\00BU,0BT,,B5`$B0*#[`A3BT0D%(/` +M:%#H_/___X/$$.L?QP0D_____^L6@^P$:@`/MD0D#U!7Z''7__^#Q!")]HM% +M'(L4)(D0@_K_=0?'12S_____QT4P%!@!`(EM-,=%.`````"#[`B-13!0_W4( +MZ/S___^#Q!Q;7E]=PU.#[`B+7"00BT,8_S#H_/___XG!@\0$@7L,#/\```^4 +MPHI`,XA$)`?`Z`*#X`$XT'0>P>("BD0D!X/@^PG0@\@0B$$S@^P,4>C\____ +M@\00QT,P%!@!`(E;-,=#.`````"#[`B-0S!0_W,(Z/S___^#Q!A;PXUV`%=6 +M4XM<)!"+0QB+<`3_,.C\____B<=6Z/S___]05^C\____@\0(@_@!&<#WT(E# +M+,=#,!08`0")6S3'0S@`````C4,P4/]S".C\____@\006UY?PU575E.#[`R+ +M;"0@BUT8C7L$_S/H_/___XG&@\0$]D,$`70UN0````"Z$````(U`>(@(0$IU +M^HM'!(E&>(M'"(E&?(M'#(F&@````(M'$(F&A````(!.;`3V!P)T-;D````` +MND````"-AI````"-=@"("$!*=?J-EI````"-1Q2#[`1J0%!2Z/S___^`3FP$ +M@\00]D9L!'0,@^P,5NC\____@\00QT4P%!@!`(EM-,=%.`````"#[`B-13!0 +M_W4(Z/S___^#Q!Q;7E]=PU93@^PDQ@0D!HM$)#"+6`B%VW0@B>:)]HM#"(E$ +M)`2#[`B+0P16:@#_4&"#Q!"+&X7;=>2#Q"1;7L.)]E=64X/L((M<)#"+0QB+ +M$(UX!(72=3J#[`S_`%@^+?"<*(4S2`2S,0 +M]@8$=$O&1"0P!8I&!HA$)#3&1"0U`(/L"(M3.(U$)#A0_W-$_U)@B4#XG\)PHA3-(!+,Q#V!@AT1\9$)#`# +MBD8'B$0D-(/L"(M3.(U$)#A0_W-$_U)@B4"#XOT)PHA3 +M-(!+,Q")]O8&('0CQD0D,`>*1@F(1"0T@^P(BU,XC40D.%#_`0$=C6Y`````(!_)`!T*@^V7R20BU2/+(72=!B+@E`! +M``"`>`0$=@R*AT0!``"(@D0!``!!.%W````!C@``")M>````#'A>0` +M````````@^P(C87<````4(U%)%#H_/___X/$$.LKD,=&+/[____'1C`4&`$` +MB78TQT8X`````(/L"(U&,%#_=@CH_/___X/$$(/$#%M>7UW#B?955U93@^Q< +MBT0D<(MX"(M`&(L0C5@$A=)U3<9$)#`&BST`````A?\/A)H#``"-;"0PC78` +MBU\(A=MT(8GNC78`BT,(B40D-(/L"(M#!%9J`/]08(/$$(L;A=MUY(L_A?]U +MTNE@`P``4NC\____B<:#Q`0/M@.%P'0.@_@!#X2N`0``Z34#``"+AE`!``"` +M>`0!#X59`0``#[9#`8/X!`^'3`$``/\DA2`!``"+1"1P@W@0"0^%-P$``(!. +M,X#&1"0P`(I#!(A$)#2#[`B+5CB-1"0X4/]V1/]28(N4)(````")0BR`3C,0 +M@\00Z0L!``"+1"1P@W@0"0^%\@```,9$)#`"BD,$B$0D-(/L"(M6.(U$)#A0 +M_W9$_U)@BY0D@````(E"+(!.,Q"#Q!#IR@```(M$)'"#>!`)#X6Q````QD0D +M,`.*0P2(1"0T@^P(BU8XC40D.%#_=D3_4F"+E"2`````B4(L@$XS$(/$$.F) +M````BT0D<(-X$`EU=,9$)#`$BD,$B$0D-,9$)#4`@^P(BU8XC40D.%#_=D3_ +M4F"+E"2`````B4(L@$XS$(/$$.M*BT0D<(-X$`EU-<9$)#`%BD,$B$0D-,9$ +M)#4`@^P(BU8XC40D.%#_=D3_4F"+E"2`````B4(L@$XS$(/$$.L+BT0D<,=` +M+/[____V1C,0#X3"`0``@^P(BT8XC50D"%+_=D3_4#R*1"0>B(9#`0``B30D +MZ/S___^#Q!#IEP$``(N&4`$``(!X!`1VM`^V0P&#^`%T8(/X`7\)A(@(0$IU +M^HM#!(E&>(M#"(E&?(M##(F&@````(M#$(F&A````(!.;`3I``$``(M$)'"# +M>!!(#X4]____N0````"Z!````(V&D````(@(0$IU^HV6D````(U#!(/L!&I` +M4%+H_/___X!.;`2#Q!#INP```(M4)'"#>A`)#X7X_O__@+Y$`0```G4_@'L$ +M`G0Y@^P(_W885^C\____B7`LQD!4!(N4)(````")4##'0&!8X```QD!6`(D$ +M).C\____@\00Z;<```"0BH9$`0``.D,$=%J*0P2(AD0!``"+AE`!``"`>`0$ +M=C2Y`````(!^)`!T*0^V7B2+5(XLA=)T&(N"4`$``(!X!`1V#(J&1`$``(B" +M1`$``$$YRW_;@$YL!.L+BT0D<,=`+/[____V1FP$=!R#[`Q6Z/S___^#Q!#K +M#HUV`(M4)'#'0BS^____BT0D<,=`,!08`0")0#3'0#@`````@^P(BT0D>(/` +M,%"+5"1\_W((Z/S___^#Q!"#Q%Q;7E]=PXGV5U93BW0D$(M\)!2+1"08BUX, +M_XL<#0``A-1A!0Z/S___^#Q!"#NQP-````=3>+@]````#' +M@]P```"XY@``B8/@````QX/D`````````(/L"(V#W````%"-0R10Z/S___^# +MQ!"06UY?PU575E.#['B+K"2,````BWT(5^BA]O__QX<<#0```0```(M?"(/$ +M$(7;=%>0@^P(BT,$C50D"%+_`0$#X:'````@WH$``^% +MM0```/9";$`/A:L```"#NH@`````=`^+@H@````Y4`0/A9,```#'1"0(```` +M`+X`````@'HD`'0I#[9")(E$)`2+3+(LA+=PR-1PPY\'0MC78`C9ZX_O__@WL$`'48@WL4 +M`'@2BQ0D.5,4?0H[7"0$=`3_0Q20BS8Y\'76QT4P%!@!`(EM-,=%.`````"# +M[`B-13!0_W4(Z/S___^#Q!Q;7E]=PXGV4X/L$(M<)!B+`_^P^`P``%#HUJ?_ +M_XD<).C\____@\086\.055=64X/L#(M\)#2+1"0P9HE$)`J+=P@/M]C!XPD# +MGNP,``!+B=BZ`````/>V[`P``(G#@WPD)`!T%HM4)"3V0FT$=0R+@E`!``"` +M>`8`=3#'1RS^____QT`4`=&"+1"0@ +M+0O_``"#^!IW+O\DA30!``"+7"0$QD-.`>D7`0``BT0D!,9`3@+I"@$``(M4 +M)`3&0DX#Z?T```"#[`A5C8:`````4.C\____@\0$_W0D$.C\____@\00Z6[^ +M__^+1"0@+0O_``"#^!IW)_\DA:`!``"+3"0$QD%.`>LZBT0D!,9`3@/K,-'C +MBU0D!,9"3@+K)(/L"%6-AH````!0Z/S___^#Q`3_="00Z/S___^#Q!#I%?[_ +M_XV&Z`P``(M,)`2)05"+1"0HBU0D+(M,)`2)042)44AFBT0D"F:)04S'05P` +M````QD%6`(M4)"2)42S'06`DUP``B9[X#```QX8(#0```````,>&_`P```CJ +M``")C@`-``#'A@0-````````@^P(C8;X#```4%;H_/___X/$$.MQBUPD)`^V +M2R6+1"0HBU0D+`^MT-/J]L$@=`>)T+H`````BTPD!(E!1(E12,=!7`````#& +M058`B5DLQT%@)-<``(-^)`!U#H/L#%'H_/___X/$$.L=BT0D!(/`$(U6'(M* +M!(E"!(M<)`2)4Q")2`2)`9"#Q`Q;7E]=PU575E.+="08BU0D%(M"+(N0B``` +M`(UZ3(LH@<7H#```BT0D%`^W6$S!XPF`>A0`=!_V0%4$=!D/MT\(#[='"BG! +MBU0D%`^W0DPIP<'A">L'#[=/"L'A"8G(N@````#W=02-!$"+30"-/(&)T87; +M=$:#?"0<`'0)B<@#!XE&".L3B+(7)=$2+@5`!``"`>`0$=AB# +M[`A15^C*____@\00A,!T)[@!````ZRZ+022+5R2+0`0[0@1U$HM!'#M'''4* +MN`$```#K$8UV`$,/MD8D.=A_J[@`````6UY?PXGV55=64XM\)!2+;"08O@`` +M``"`?R0`=#Z0BURW+(7;="R+@U`!``"`>`0$=A"#[`A54^C*____@\00ZQ&0 +M55/H1?___X/$"(3`#Y1#-$8/MD7UW#B?964X/L#(M$)!B+<`2+ +M6`A0BP.#P&A0Z/S___^#Q`QJ`&H`5N@8P___@$ML!(D<).C\____@\046U[# +MB?:#[!2+1"08QT`8_.X``(E`',=`(`````"-4!A2BT`$BP"#P"10Z/S___^# +MQ!S#B?955U93@^P,BUPD((MK!(M["(M%`(NPT````%=5Z!?____'AX@````` +M````QX6(`````````(J50`$``(/B!(J'0`$``(/@^PG0B(=``0``BI5``0`` +M@^("@^#]"="(AT`!``#'1C`4&`$`B78TQT8X`````(U&,%#_=@CH_/___X/$ +M"%=J%>C\____@\0(BU,0BT,,B5`$B0+'0Q@X[P``B5L7UW#B?964X/L$(M4)!R+6C"+0P2+,%+H_/___\=#&&CO +M``")6QS'0R``````@\0(@\,84X/&)%;H_/___X/$%%M>PXGV5U93BW0D$(M> +M!(M6"(L[BT,4B4(4QT,4_____X!C;?.`8FWS@^P(_W(4_W<$Z/S___^#Q`C_ +M7"G!&=.)3EB)7ER`?F(!=12+5Q`QVHM'##'("<)U +M!L9&8@")]H!^8@)U$HM&6(M67(M/$#'1,T<,"<%T=HM&7`M&6'1NZ:\```"- +M=@`/MT$(N@````")P8G3`TY8$UY`?"0'`W42@^P(C48D4/]V!.C\____@\00@^P,_W0D +M+.C\____QT4P%!@!`(EM-,=%.`````"#Q`B-13!0_W4(Z/S___^#Q!"#Q`Q; +M7E]=PX/L&(M$)!S&0%8`4.C\____@\00B`A`2G7ZQT,89/(``(ES',=#(`````"#[`B-0QA0BT0D%(/`)%#H +M_/___X/$$.F=`0``QD-C`8M#!("@0`$``/Z+0PB`H$`!``#^BT,$@&!M]XM# +M"(!@;?>#[`R+0P3_,.A*G___@\00@'MB`'0&@'MB`W42@^P(C4,D4/]S!.C\ +M____@\00@^P,5NC\____QT4L_____\=%,!08`0");33'13@`````@\0(C44P +M4/]U".C\____@\00Z1$!``!FBT<*B<)F`U9,9HE7"HM&+#M#!'4,9CM7"'(T +M9L='"@``9HM'"F8[1P@/@]0```"*1E6#X/V#R`2(1E6+0PB)1BS'1D`````` +MQT8\`````,9&5@"Y`````(M6)(M&*(72=`B)]H@(0$IU^HM,)`@/MI'T#``` +M2HN![`P``,'H"8G1#Z_(#[=7"`^W1PHIPCG1=@*)T6:)3DQF@?D``78&9L=& +M3``!@'L4`'0V]D95!'0P#[='"+H``````P<35P0/MT\*NP`````IR!G:#[=. +M3+L`````*<@9VHE&1(E62.L4#[='"KH``````P<35P2)1D2)5DB#[`Q6Z/S_ +M__^#Q!#K#8/L#%;H//S__X/$$)"#Q`Q;7E]=PU575E.#[!2+1"0H@\!,B40D +M$(M4)"B+0@2+&(N+T````(E,)`S_L_@,``!3Z"N=__^#Q`B+?"0HBT<(BU<$ +MBT`8.T(8?0.+0AA0BU0D+(M"!/\PZ/S___^)QH/$$(7`=7:+3"0@@'EB`'0& +M@'EB`W4:@^P(BT0D*(/`)%"+7"0L_W,$Z/S___^#Q!"#[`R+?"0LBT<$_S#H +M/)W__XM$)!3'0"S_____QT`P%!@!`(E`-,=`.`````"#Q`B+1"0,@\`P4(M4 +M)!#_<@CH_/___X/$$.E6`0``BY,,#0``A=)^$XM,)""+000[D.`````/G\`/ +MMM")5CC&1E8`BWPD((!_8@!T!H!_8@-U&HM$)""#P"2)1CR+5"0@BT($B48L +M@$Y5`NM,BTPD((M!"(E&+(!.502_`````(.[\`P```!V,+T`````B?:+D^@, +M``"-!'^+B^P,``"+!(*%R70*B?:)ZH@00$EU^$@)B=$/K\B+7"0(#[=3"`^W0PHIPCG1=@*)T6:)3DQF@?D``78& +M9L=&3``!BWPD((!_%`!T.O9&501T-(M,)`@/MT$(N@`````#`1-1!`^W20J[ +M`````"G(&=H/MTY,NP`````IR!G:B49$B59(ZQB+3"0(#[=!"KH``````P$3 +M402)1D2)5DB`3E4(BWPD!(E^,,=&8'SR``#'1EQ@[0``@^P,5NC\____@\00 +M@\0,6UY?7<.-=@!3@^P0BTPD&(M!!(L`B40D#`^W053!X`F+5"0,`X+L#``` +M2(G3N@````#WL^P,``")@_@,``#'@P@-````````QX/\#```F/0``(F+``T` +M`,>#!`T```````")V`7X#```4%/H_/___X/$&%O#C78`5E.+="0,BTPD$(G+ +MBX90`0``N@````"`>`0!=6.%R70EBX&(````A@P`=!^%R73;BT(,@W@$`'0*D(M` +M!(-X!`!U]SG(=`0YV'7'BQ*%TG75N@$```")T%M>PXUV`%=64XM<)!"+?"04 +M@+M!`0```'44@[MD`0```'4+@[M\`0```'0.B?:Z`````.FJ````B?:#>Q3_ +M=""#[`C_7\.)]H/L#(M4)!"+ +M@E`!``"`>`0$=@ZX`````(.ZB`````!U$X/L"/]T)!Q2Z.[^__\/ML"#Q!"# +MQ`S#55=64X/L&(M$)"R+6#"+$XE4)!2+NM````"+5QB+$HE4)!"+:#10Z/S_ +M__^+@U`!``"#Q!"`>`0$=G&+LX@```"%]G14@WX$`'05@^P$:@)J`/]V!.C^ +MN/__@\00C78`@WX(`'02@^P$:@)J`/]V".CCN/__@\00BU80BT8,B5`$B0*# +M[`A6BT0D%(/`:%#H_/___X/$$.L?@^P$:@)J`%/HLKC__X/$$.L-D(/L#%/H +M_/___X/$$$4[;"0$=27'1S`4&`$`B7\TQT7UW#C78`4X/L +M$(M<)!C_`0$=P6Y`````(/L"%%2Z!;^__^#Q!"$P'1$0SGS8__^)!L=#,!08`0")6S3'0S@`````@^P(C4,P4/]S".C\____@\04 +M6U[#C78`BT0D!(-X$`-V!H-X%$MW!\=`+/[____#4X/L$(M<)!B+0QC_Q`#=@F!>Q3Y````=PO'0RS^____ZQ:)]E#H_/___X/$!(7` +M=0?'0RS^____6\.)]E=64XM<)!"+0QB+.(MS'+@`````N?H```")\I"(`D)) +M=?J#[`A65^ALJ/__@\00A7\.-=@!64XM<)`R!>Q"S````=@:#>Q0'=PO' +M0RS^____ZSZ)]HM#&(LP5NC\____B<*#Q`2%]G0H@_[_=".%P'05BX!0`0`` +M@'@$!'8)@[J(`````'0*QT,L_O___XUV`%M>PY!55U93@^P,BWPD((M'&(L8 +MC7`$BV\<4^C\____B<*#Q`2%VW0'@_O_=0>)]KH`````#[9&`E"-1G!0#[9& +M`5`/M@904N@[K/__B44`B54$QTQB!>Q"' +M````=@:#>Q0#=Q['0RS^____ZU''0RS^____ZTC'0RS\____ZS^-=@"]```` +M`(!_`0!V,9")Z@^VPHMTAVA6Z/S___^#Q`2%P'3)5NC\____@\0$BP`[0PAU +MPD6)Z#A'`7?2B?9;7E]=PXUV`(/L%(M$)!B+4`C'@MP````8V```B8+@```` +MQX+D`````````(V"W````%"#PB12Z/S___^#Q!S#BT0D!(-X$`-V!H-X%`-_ +M!\=`+/[____#5E.#[&R+7"1XBT,8:@#_,.@#D?__B<&+PXGV55=64X/L%(M<)"B+0QB+:`2+<`B+>`QJ`/\PZ$20__^)P8/$ +M$(7`=0O'0RS^____ZS^)]H7V=1R#[`R+0`1J`5?_7UW#C78`55=64XM<)!2+>QB!>Q"O +M````=@:#>Q0#=Q['0RS^____ZU''0RS^____ZTC'0RS\____ZS^-=@"]```` +M`(!_`0!V,9")Z@^VPHMTAW!6Z/S___^#Q`2%P'3)5NC\____@\0$BP`[0PAU +MPD6)Z#A'`7?2B?9;7E]=PXUV`(/L%(M$)!B+4`C'@MP```#$UP``B8+@```` +MQX+D`````````(V"W````%"#PB12Z/S___^#Q!S#55=64XM<)!2+0QB+,(UX +M!(%[$+,```!V!H-[%`-W#<=#+/[____I@0```)!6Z/S___^#Q`2%P'4)QT,L +M_O___^MJ5NC\____@\0$BP`[0PAT'L=#+/S____K4<=#+/[____K2,=#+/S_ +M___K/XUV`+T`````@'\!`'8QB>H/ML*+=(=P5NC\____@\0$A@X1P%WTHUV`%M>7UW#C78`@^P4BT0D&(M0",>"W``` +M`!#9``")@N````#'@N0`````````C8+<````4(/")%+H_/___X/$',-64X/L +M!(M<)!"+0QB+,(-[$`=V!H-[%`-W#L=#+/[____IE@```(GV5NC\____@\0$ +MAPXGV@^P4BT0D&(M0",>"W````'C9``")@N````#'@N0````` +M````C8+<````4(/")%+H_/___X/$',.+1"0$@W@0`'@&@W@4*W<'QT`L_O__ +M_\-3@^P(BUPD$/]S'.@DQ___@\0$APY!3@^P0BUPD&(M+&%,/MD$(4(M!!+H` +M````4E#_,>C\____B00D_W,,Z*OC__^#Q"A;PXGV5E.+7"0,BT,8BS"#>Q`( +M=@>#>Q0`?PV0QT,L_O___^LSC78`5NC\____@\0$APY!3@^P0BUPD +M&(M3&%,/MT(,4/]R"/]R!/\RZ/S___^)!"3_Q`-=@>#>Q0`>0V0QT,L_O___^LSC78`5NC\____@\0$A`0$=A^#NH@`````=!:+@H@```"`>&,`=0J*0FV#X!@\"'0(QT,L_O___Y!; +M7L.055=64X/L#(M$)""+0!C_,.C\____B["(````C6Y,@\0$@'X4``^$Q0`` +M`(M.!(M&6(M67(M9$#'3,T$,"<-U)(!^8@)U$H/L#%;H5>;__X/$$.FP`0`` +MD(!^8@%U!L9&8@")]HM.!(M&6(M67#M1$'(^=P4[00QV-XM.!`^W1F"Z```` +M``-!#!-1$#E67'(0=P4Y1EAV"6:+?F#K,XUV`&:+?EB+1@1F*W@,ZR.-=@`/ +MMT9@N@`````Y5EQR#G<%.498=@=FBWY@ZP609HM^6`^WQ[H`````BTY8BUY< +M*<$9TXD,)(E<)`3ID@```(GVBTX$BT98BU9L```"`?F(`=0;&1F(!B?:+1EB+5ER)!"2)5"0$@'YB +M`'0)@'YB`W4/C78`BT8$BT@,BU@0ZPJ0BT8(BT@,BU@0#[=&8+H``````T98 +M$U9<.=IR$'<$.Q`#=@>#>Q0`>0V0QT,L_O___^M'C78`5NC\____@\0$A"W`````S;``")@N````#'@N0````````` +MC8+<````4(/")%+H_/___X/$',-64XM<)`R+0QB+,(-[$`-V!X-[%`!Y#9#' +M0RS^____ZT>-=@!6Z/S___^#Q`2%P'4)QT,L_O___^LN5NC\____B<*#Q`2+ +M`#M#"'0)QT,L_/___^L3BX)0`0``@'@$`70'QT,L_O___UM>PY"#[!2+1"08 +MBU`(QX+<````#-L``(F"X````,>"Y`````````"-@MP```!0@\(D4NC\____ +M@\0&,`=`K'0RS^____C78`6UY?PX/L%(M$)!B+4`C'@MP```"$ +MVP``B8+@````QX+D`````````(V"W````%"#PB12Z/S___^#Q!S#5E.+7"0, +MBT,8BS"#>Q`'=@>#>Q0`>0V0QT,L_O___^M'C78`5NC\____@\0$A"W````)S-``")@N````#'@N0````` +M````C8+<````4(/")%+H_/___X/$',-64XM<)`R+0QB+,(-[$%=V!X-[%`!Y +M#9#'0RS^____ZT^-=@!6Z/S___^#Q`2%P'4)QT,L_O___^LV5NC\____B<*# +MQ`2+`#M#"'0)QT,L_/___^L;BX)0`0``@'@$!'8&@WH$`'0)QT,L_O___XGV +M6U[#D%.#[`B+7"00BT,8_S#H_/___XM3",>"W````-C;``")FN````#'@N0` +M````````@^P$@<+<````4@5D`0``4.C\____@\086\.-=@!64XMT)`R+1AB+ +M&(-^$$-V!X-^%`!Y#9#'1BS^____ZTN-=@"%VW1$4^C\____@\0$A"W````,#=``")@N````#'@N0````` +M````C8+<````4(/")%+H_/___X/$',-64XMT)`R+1AB+&(-^$`AV!X-^%`!Y +M#9#'1BS^____ZTN-=@"%VW1$4^C\____@\0$A"W````.#<``")@N````#'@N0`````````C8+<````4(/" +M)%+H_/___X/$',.+1"0$@W@0`'@&@W@4`'D'QT`L_O___\.#[!2+1"08BU`( +MQX+<````[.4``(F"X````,>"Y`````````"-@MP```!0@\(D4NC\____@\0< +MPXM$)`2#>!``>`:#>!0K=P?'0"S^____PU.#[!2+7"0<_W,PP!=0J-0A`YP7(+ZQ60@_D/=P^-=@#'1BS^____ZTN-=@#_,^C\____ +M@\0$A`0!=`G'1BS^____B?9;7L.04X/L"(M<)!"+0QC_,.C\____@^P$ +M4U#H9`<``(/$&%O#C78`5E.+7"0,BT,8BS"#>Q`#=@>#>Q0`>0V0QT,L_O__ +M_^LSC78`5NC\____@\0$A"W````)SH``")BN````#' +M@N0`````````@<+<````4E#H_/___P5D`0``B00DZ/S___^#Q!S#D%575E.+ +M7"04BT,8#[8XC02]!````#E#$'(&@WL4`W<"Y`````````"-@MP```!0@\(D4NC\ +M____@\0"W````$SA``")@N````#'@N0`````````C8+<````4(/")%+H +M_/___X/$',.+5"0$BT(8BP"#>A`#=@R-!(4$````.4(4"(7;=$20@^P(BU,$C40D&%#_'P`=0S'0RS^____ +MZQ.-=@"+0@P[0PAT",=#+/S___^0@\0(6\.-=@"#[!2+1"08BT@(BY'<```` +MB5`HQT`P%!@!`(E`-,=`.`````"#P#!04>C\____@\0"Y``````` +M``"#Q`C'0RC@%@$`BU`$4_]P"/]2?(/$&%O#C78`5U93BWPD$(MT)!2[8`$` +M`(,]8`$``/]T'Z%@`0``.T8,=!"0@\,,@SO_=`R+`SM&#'7Q@SO_=1/'1BS^ +M____@^P,5O]6*(/$$.M=QT8L`````(/L#%;_4P2#Q!"#?BP`=`R#[`Q6_U8H +M@\00ZSJ`OQ`-````=<&#O]``````=!6-A]0```"+4`2)<`2)!HE6!(DRZQ.) +MM]````"#[`Q6_U,(@\00C78`6UY?PU93@^P$BW0D$(M>",>#T`````````"- +M@]0````Y@]0```!T)(N#U````(M(!(L0B4H$B1&)`(E`!(/L"%!3Z!'___^# +MQ!")]H/L#%;_5BB#Q!1;7L.-=@!3@^P(BUPD$(M,)!2)60B#>2``=`B+42"+ +M012)`H/L"%%3Z-7^__^)'"3H_/___X/$&%O#BT0D!(N`@`$``,.05E.#[#2* +M7"1`BW0D1+D`````NBP```")X(UV`(@(0$IU^HA<)`B`^P=U%H-^!`!T#8M& +M!(N`@`$``(E$)`R+=AR`^P9T#X#[!'0*@/L%=`6`^PAU"_9&;`%T!<9$)`P! +MBX:``0``B40D!(G@4.C\____@\0X6U[#4X/L%(M,)!R+63"+4QR*04J(0@J* +M04:(0@:*04>(0@>*04B(0@B*04F(0@F*042(0@2*046(0@6*04N(0@N`>58! +M#Y3`#[;`2(E#+%'H_/___\=#,!08`0")6S3'0S@`````@\0(C4,P4/]S".C\ +M____@\086\.055=64X/L%(M\)"B+="0LBUX8BVX<_W<8_S?H_/___XG"@\00 +MA(0D>*0PB(0DB*0PF(0DF*0P2(0D2*0P6(0D6* +M0PN(0DO'0F`D&0$`@^P,4NC\____@\00@\0,6UY?7<.0BU0D"(M$)`2)D`P- +M``##D%575E.+;"04BW0D&(N->`$``(7)=#6)]HL!BU$$.U8,=R)R!3M&"',; +MBT$(BU$,.U8$)QXUV`(U+\(!Y5`!U,P^W04RZ``````-!1!-12#E6!'QP`=!^)V8V6?`$``(.^?`$```!T#)"+`HU0$(-X +M$`!U]8D*N/_____K%(N&>`$``(E#$(F>>`$``+@`````6U[#D%575E.+;"04 +MBUPD&(V5>`$``#F=>`$``'0,B?:+`HU0$#E8$'7VBT,0B0+'0Q``````C7L4 +MB[5T`0``.7L4=!B+0Q2+3P2+%HEP!(D&B1&)2@2)>Q2)?P2+10#'0#0!```` +M6UY?7<.04X/L"(M4)!"+0BS^@$$!``")TX-Z0`!T,HM"0,=`')@<`0"+0D") +M4""+0D#'0"0`````_W)`_W(LZ/S___^#Q`B%P'42BT-`B4,\@^P,4^@(```` +M@\00@\0(6\-55U93@^P(```` +M@'AC`'4=]D55"'47@^P,5>CU!P``@\00A<`/A08!``"+?2R+AU`!``"`>`0$ +M=COV154$=#6*1VVH('0N@^#?B$=MZ/S___^)1R"`3VP$BT4`QX`4#0```0`` +M`&:+1RAF"T9`$``("^0@$```!T#^L\B?:#[`S_<`3_$(/$$(L3.U,$=1+' +M0P0`````QP,`````ZPB-=@"+0@B)`X72=`?'0@@`````B="%TG7&C;Y4`0`` +MZRZ)]H/L"%-6Z/;]__^#Q!"%P'0;C4,0BY94`0``B4($B5,0B7@$B894`0`` +MZRB0N``````YOE0!``!T%(L'BT@$BQ")2@2)$8D`B4`$@^@0B<.%P'6MC:YP +M`0``ZT>0B=^#>T``=#*+0T#'0!R8'`$`BT-`B5@@BT-`QT`D`````/]S0/]S +M+.C\____@\0(A+AG@!``")0Q")GG@! +M``"-0QQ0_W0D%.C\____BU0D.,="-`$```"#Q`B0BQ^%VW6VBTPD&(L)B4PD +M&(M$)#"#P`PYR`^%1_[__X-\)!0`#X6=````BT0D,(.X%`T```!T%L>`%`T` +M``````"#[`Q0Z/S___^#Q!"+7"0P@\,DZPN#[`S_<`3_$(/$$(L3.U,$=0_' +M0P0`````QP,`````ZP6+0@B)`X72=`?'0@@`````B="%TG7)BW0D#.L,@^P, +M4^C\____@\00N`````"+5"0P.7(<=!2+!HM(!(L0B4H$B1&)`(E`!(/H$(G# +MA2P`#X4D_?__@WDT``^%&OW__X/$'%M>7UW#D%93@^P$BW0D +M$(L>@WLD`'4/@^P,5NC\____@\00ZQ60C480C5,)SH-Z7`!T$(/L!%-14O]27(/$$(7`=1^X +M`````.G#````QT0X!`$```"X`0```.FQ````C78`BT0D!`,&.P0D#X:&```` +M@WX$`'4/BT0D",'@!,=$.`0`````BP0D.40D!'7UW#C78`55=64X/L#(ML)""+ +M32R+N8@```"+742+=4@/MT5,N@`````!V!'RQT0D"`````"`?Q0`=!\Y=UQW +M"G)(.5]8=D.-=@`Y5UQW+W)9.4=87UW#5E.+ +M7"0,BW,$9H-[*`!U&/9#;`)T$HN#4`$``(!X!0!T!@^V2`;K!;D`````9HM# +M*HG"9@M3*'0,C78`08U"_V8APG7WBX-0`0``#[9`!CG(?2*`HT`!``#^ZRRX +M_O___]/`9B%&*H/L#%;H_/___X/$$.L[@(M``0```6:#>R@`=`6`2VP"D/:# +M0`$```%T'X7V=!NP`(!^)`!V$XUV``^VR#E(-[!`!T%8/L#(M#!(N`4`$` +M`%/_4""#Q!#K#(/L#%/H_/___X/$$(.[B``````/A)P```"+@X@```"#>`0` +M#X2,````@W@(``^$@@```#E8!'4%BT`(ZPF+@X@```"+0`2`H$`!``#^@^P, +M4.C\____@\00ZUJ)]H!+;2"#NX@`````=3>#>P0`=`R+0P2#N(@`````=26# +M>Q0`>0^#>P0`=!F+0P2#>!0`>!"#[`AJ`%/H_/___X/$$(GV]D-L!'0.@^P, +M4^C\____@\00B?:#Q`1;7L.)]E575E.![!P"``"-;"00BX0D,`(``(L`B40D +M"(/L"&H!56H!BXPD1`(``(M!(+H`````4E#_<1SH_/___X/$((%\)!#T%GA: +M=16#[`AH``(``%7H_/___X/$$(3`=`JZ_____^D-!@``NO____^`?2$$#X;^ +M!0``9HM%)V:)1"0&BTPD"(M1#(G(@\`,.=!T+HG!B?:-NKC^__^+AU`!``"` +M>`0$=A*#?P0`=0R+1QP[100/A!,!``"+$CG1==:#[`@/MD4A4/]T)!3H_/__ +M_XG'@\00NO____^%P`^$E`4``("@0`$``/Z*11>(AT0!``"-7QQFBT0D!F:) +M0PR+102)1QR`2U`!BT4IBU4MB4-4B5-8BX6]````B4,$BD4DB$,)#[;(O@$` +M``")\M/B9HE3"HM%&8M5'8E'#(E7$(I%(HA#"+C_____@'L(#W<5#[9+"(GP +MT^!(ZPJ)"(T8/A_0G!B$M09HM$)`9F"4,,BX=0`0`` +M@'@&`'0?#[934(/B`8I%)<#H`H/@`3G"=`N(R(/@_H/(`HA#4(-]"``/A"@! +M``"`2U$$BW-LA?8/A:,```"+3"0(BU$4BN#>VP`=7:#[`R+1"04@\!H4.C\____B4-LB<:#Q!"Z____ +M_X7`#X3<`P``N0````"Z9````(M#;(GVB`A`2G7ZC58,BT0D"(/`%(M(!(E0 +M!(E&#(E*!(D1BT4(B0:+10R+51")1EB)5ER*112(1F+V118"=`>+0VS&0!0! +M@'X4`'08BT98BU9<.U40=Q]R!3M%#'<8@'X4`'4DBT98BU9<.U40<@=W%SM% +M#',2BT4,BU40B498B59(AD0!``"`3FP!BT4$ +MB48<9HM,)`9FB4XHBT5!BU5%B49PB59TBX7!````B48@BD4ZB$8DN/____^` +M?B0/=PP/MDXDN`$```#3X$AFB48JB7X$BT4QBU4UB48,B580BD4\B$8E#[;( +MN`$```#3X&:)1B8/MD0D#XETARR+14F)1GB+14V)1GR+15&)AH````"+156) +MAH0```"+15F)AHP```"+A9T```")AM````"+A:$```")AM0```"+A:4```") +MAM@```"+A:D```")AMP```"-EI````"-15V#[`1J0%!2Z/S___^#Q!"*53W` +MZ@*#X@&#ROXB5FR(5FR*CD`!``"(R]#KBD46@^`!"=B#X`'1X(/A_0G!B(Y` +M`0``B-'0Z68/MD4]"`8`=!X/MM&#X@&*13W`Z`*#X`$YPG0+B,B#X/Z#R`*(1FR*53N(5"0/#[;" +MNO____^#?(8L``^%V`````^V1"0/BXPD,`(``(E,ABR)<02+1B`[A<$```!T +M%(!.;`+'1G``````QT9T`````.L>BT9PBU9T.U5%B0`=@\/ML$Y7((L +M=`M!.$HD=_&X_P```%O#B?955U93@>P,`@``BZPD(`(``+\`````B>:+11SV +M@$`!```!#X0[`@``BUT$A=MT"X-[!`!T!8G?BUL$N0````"Z``(``(GPB?:( +M"$!*=?K'!O06>%JX`````(7;=`.+0QR)1@3VA4`!```"=`2`3A8!L`"%VW0( +M@_\!&<"#P`*(1AB%VP^$-@$``(.[B`````!T/8N+B````(L!B48(BT%8BU%< +MB48,B580BD$4@^`!T>"*5A:#XOT)PHA6%CE9"'4(B-"#R`2(1A:*06*(1A2* +M@T0!``"(1A>+0PR+4Q")1AF)5AV+@U`!``"*0`2(1B&*0R2(1B*)^(7_=0*) +MZ%#HU/[__XA&(XI#)8A&)`^V0VR#X`'!X`**5B6#XOL)PHA6)8/$!/9#;`)T +M"(C0@\@!B$8E9HM#*&:)1B>+0W"+4W2)1BF)5BV+0R")AKT```"+0WB)1DF+ +M0WR)1DV+@X````")1E&+@X0```")1E6+@XP```")1EF+@]````")AIT```"+ +M@]0```")AJ$```"+@]@```")AJ4```"+@]P```")AJD```"-5EV-@Y````"# +M[`1J0%!2Z/S___^#Q!"%_W1PBT<,BU<0B48QB58UBX=0`0``BD`$B$8YBDCQ_?__B$8[BD7UW#B?93@^P4BUPD'%/H@OW__XM#'(/$$/9`,Q!T#H/L#%#H_/__ +M_X/$$(GV@\0(6\.-=@!64X/L!(M<)!"+@U`!``"`>`0$=@2`8VS[]H-``0`` +M`71RBX-0`0``@'@$!'999HM#*&8+0RIFB4,HO@````"`>R0`=$^-=@"#?+,L +M`'0MBTRS+(J30`$``(/B`HJ!0`$``(/@_0G0B(%``0``@^P,_W2S+.C\____ +M@\001@^V0R0Y\'_#ZPV#[`Q3Z$#___^#Q!"0@\0$6U[#B?975E.+7"00@WL$ +M`'0,C78`BUL$@WL$`'7WZ/S___^)0QR+NX@```"%_W0V.5\$=0B+=PCK!HUV +M`(MW!.C\____B0>%]G0;B?;H_/___XE&'#M#''3S@^P,5NC\____@\00@^P, +M4^C\____@\006UY?PXUV`%575E.+;"04BT0D&(MX'(7_=&*+1PR%P'15B<.# +M>`0`=$V)]HM;!#GK=0FX`0```.M(B?:Y`````(![)`!T*@^V`0$=@PYZG4(N`$```#K%Y!!.N/[_ +M__:#0`$```%T/8N#4`$``(!X!`%U,?9#,P1T*U-7Z`S___^#Q`B$P'4=BT0D +M"#E#('(4BT0D!#E#(',+BT,@B40D!(G=B?:+-HL'@\`,.?!UJ;@`````A>UT +M//9';0)U%(/L!&H`_W0D$%7H_/___X/$$.LBBT47UW#5U93BUPD$(M\)!2^`````(![)``/ +MA),```")]H-\LRP`=`V+1+,L]H!``0```75PB?J%_W42@^P,4^C1_O__@\00 +MB<*%P'14B5H$@WRS+`!T"XM$LRS'0`0`````B52S+(!+;`K'0W``````QT-T +M`````+@!````B?'3X&8)0RCWT&8A0RJ%_W4.@^P(4FH'Z/S___^#Q!"`2VP$ +MA?]U#48/MD,D.?`/CV_____V0VP(=`V#[`Q3Z/S___^#Q!"06UY?PU=64XM< +M)!"+="045E/HNOW__X/$"+K_____A,!U9P^V0R1(F5)0_W,0_W,,Z/S___^# +MQ!#V0VT"=1J#[`1J`%!6Z/S___^)QX/$$+K_____A7\.0 +M5U93BWPD$(N'4`$```^V0`2#Z`6#^`0/AT`0$=B2#[`Q3Z/S___^#Q!#V0VP$=`2`3VP$ +M#[9#;(/@`8/(_B!';)!&#[9')#GP?[_V1VP!#X7I````O@````"`?R0`#X3: +M````B?:+7+R0`="`/MG,DC78`BTR#+(7)=`R+D5`!``"`>@4`=29`.<9_YXN34`$` +M`(!Z!0!T.P^V0R0/ME(&*=`/MDLET^`/M\#K*P^V020/ME(&*=`/MDDET^"+ +MDU`!```/ME(&*=8/K\8/M\#K!XGVN`````!;7L-64X/L!(MT)!"+7@2+1@B% +MVW0+A(72='2+ +M@5`!``"`>`0$=C"+@E`!``"`>`0$=AB#[`A24>C\____@\00A,!T4[D!```` +MZV"+@5`!``"`>`0$=S&+@E`!``"`>`0$=R6+01P[0AQU%HM))(M2)(M!!#M" +M!'4(BT$(.T((=A:Y`0```.LCN0$```#K'+D!````ZQ601P^V0R0Y^`^/9___ +M_[D`````B?:)R%M>7\.)]E93@^P$BW0D$(M>#(U&##G8=$*0C9.X_O__BX)0 +M`0``@'@$!'8F]D)L!'0@@WH$`'0+B?:+4@2#>@0`=?>#[`Q2Z/S___^#Q!"- +M=@"+&XU&##G8=;^#Q`1;7L.0BTPD!(M4)`B+@;0```")0@B)D;0```##@^P, +MBU0D$(M,)!2#NK@`````=3"+@J0````[`7(6@^P,_W$(_U$$N`````"#Q!#K +M,XUV`(F*O````(F*N````.L1B?:+@KP```")2!")BKP```"#[`Q2Z/S___^X +M`0```(/$$(/$#,.#[!3_="0'O`````````#'A[@` +M````````ZPF+1A")A[@```#'1A``````@^P,_W8(_U8$@\00ZRR)]HN?M``` +M`(7;=!:)]H/L"/\V_S/_4P2#Q!"+6PB%VW7LBX>D````.P9R-HNWN````(7V +M=82!OZ0```!_`0``=R"+G[0```"%VW06B?:#[`AJ`/\S_U,$@\00BUL(A=MU +M[%M>7\-3@^P(BUPD$(.[S`````!U.\>#P````)`Z`0")F\0```#'@\@````` +M````@^P(C8/`````4(U#+%#H_/___\>#S`````$```"#Q!"0@\0(6\.0D)"# +M[`R+5"00@*)``0``_H-Z!`!T%(/L#(M"!(N`4`$``%+_4""#Q!"0@\0,PU.# +M[!"+5"08BUHPBD)6B$-6_T,,4O]S!.C\____BT,$_T@(B1PDZ/S___^#Q!A; +MPX/L#(M$)!"+4#"X`````(-Z7`!T$X/L!/]T)!S_="0<4O]27(/$$)"#Q`S# +M5E.#[!"+7"0,)BD8(B$0D`Y"+5"0$BW((BWH,BRJ)V3GK=@*)Z8I$)`(X1"0#=1J+5"0D +MB0K'0@0`````B7((B7H,@\(0B50D)"G-N@`````!SA'7*,)A>UUFXM$)`2#>`0`=0R# +MP!")1"0$Z7G___^+5"0DQT+T`0```+@!````@\0,6UY?7<.05E.#[`2+5"00 +MBUHPBW,HBTHTN/[____3P&8A1A*`>E8!=`:*0E:(0U;_0PR#[`A2_W,$Z/S_ +M__^+0P3_2`B#Q!!F@WX2`'46@'M6`'4$QD-6`8/L#%/H_/___X/$$(/$!%M> +MPU575E.#[!2+1"0LBEPD*(M0+(E4)`R+2"B+,8MY!&:+:1`X60AU$0^W00ZZ +M``````'&$=?K(8GV.%D(=AJ+1"0,#[=`)HD$),=$)`0``````S0D$WPD!#A9 +M"'4$9@-I##A9"74'9@-I"HUV`(!Y%`!T#CA9"',E.%D)=Q;K'HGV.%D(S13Z/S___^#Q!")]D6)Z(M4)`@X0B0/AV#_ +M___I\P```(UV`/]T)"#_="0,Z/O]__^)1"0(@\0(BTPD!&:#>1(`=1F+1"0@ +MQD!6`H/L#%#H_/___X/$$.FX````O0````"+5"0(@'HD``^&I0```)"+3"0$ +M#[=!$HGJ#[;ZB?G3^*@!='^+1"0(BW2X+(M4)"#_2@R+0@3_0`B#[`S_<@3H +M_/___XG#BTPD,(L!B0.+002)0P2+03B)0SB#Q!")7UW#@^P8:*`#``#H_/__ +M_[@`````@\0`0$=ASV0FP!=!;V@D`!```!=`F`2FP" +MO@$```"`8FS^00^V0R0YR'_'@&-L_H7V=!.#[`Q3Z/S___^#Q!#K!9"`8VS^ +M@\0$6U[#B?975E.+="00BUXPBU,LBWLH@'Y4!'46@'Y6`0^$T@```(I&5HA# +M5NG'````D(!^5@$/A+8```#V0U4"=&R`>U<`#X6F````]D)L`@^%G````&:# +M>BH`#X61````QD-7`8-^-``/E,`/MLB)3C2+1(HLA-=@#V0U4$ +M=#Z`?E8"=!+&1E8`@^P,5NC\____@\00ZVV#[`Q2Z$W^__^#Q!"`>U8!=!H/ +MMQ>+3C2X`0```-/@.<)U"8UV`(I&5HA#5HM.-+C^____T\!F(0?_0PR#[`A6 +M_W,$Z/S___^+0P3_2`B#Q!!F@S\`=1:`>U8`=03&0U8!@^P,4^C\____@\00 +M6UY?PY!55U93@^P%0!=1&#[`Q0Z#P)``"#Q!#I +MRP(``(M,)#"`>50$#X6R````BUPD%&;'`P``O@````"`?R0`#X:E`@``B?:) +M\`^VZ(M0+WV(7;>0+WVSG8 +M?0^R`(7V=5J#_05V5;(!ZU&R`(7M=06#_@5W1K(!ZT*+3PB#.0`/E,(/ML*) +M`>LRL@"`?R0`=BIFBTB)\=/@BUPD%&8)`XUV`$:)\#P!=L*^ +M`````(GR#[;JBURO+(7;#X23````]H-``0```0^$A@```(M,)!0/MP&)Z=/X +MJ`%T=XM$)##_2`R+5"0PBT($_T`(@^P,_W($Z/S___^)P8M4)$"+`HD!BT($ +MB4$$BT(XB4$X@\0$B5DLBD)5B$%5QT%@^$,!`,=!7)1"`0")43"):32+5"0\ +MBT)$BU)(B4%$B5%(BUPD/&:+0TQFB4%,4>C\____@\001HGP/`$/AE'___^# +MQ!Q;7E]=PY"#[!AHX`,``.C\____N`````"#Q!S#B?955U93BUPD%(MT)!B+ +M0S"+4"B+:%`/MT("P>`)N@````#W=02)T8T$0(M5`(T\@@^W6TS!XPET1H-\ +M)!P`=`F)R`,'B48(ZQ.)R+H``````T<$$U<(B48(B58,BT4$*<@YV'8"B=B) +M!L=&!`````"Y`````(/&$(/'#"G#=;K'1O0!````N`$```!;7E]=PY!55U93 +M@^P,BU0D((M:,(M#+(E$)`B+>RB+2U")3"0$BTHTN/[____3P&8A!X!Z5@%T +M!HI"5HA#5F:+,(M# +M+(E$)`B+2RB+:U"`?E8!=`N*1E:(0U;I5`$``&:+00)F`T9,9HE!`O9&50)T +M7F8[0TQU"&;'00(``.M0QD97`,9&5@`/MT$"N@`````#0T034TB)1D2)5D@/ +MMGT,BT4$P>@)#Z_X#[=33`^W00(IPCG7=@*)UV:)?DR#[`Q6Z/S___^#Q!#I +M!0$``)!FBT$"9CM#3'4BQD-6`0^W0TRZ``````-#1!-32(M,)`B)07")473I +MN`````^W00*Z``````-#1!-32(E&1(E62`^V?0R+103!Z`D/K_@/MU-,#[=! +M`BG".==V`HG79HE^3(I&58/@_8/(!(A&5<9&5P#&1E8`BT0D"&:#>"@`=#W' +M1C0`````BU0D"`^V0B0Y1C1S,(UV`(M,)`@/MT$HBTXTT_BH`74 +M7UW#55=64XMT)!B+5"04BT(PBU`HBTA0#[="`L'@";H`````]W$$B=.-!$"+ +M$8TL@HG?BT0D%`^W6$S!XPF#>#0`=`R+00C1Z(T$0(ULA0"%VW1-C78`@WPD +M'`!T#8GX`T4`B48(ZQ:-=@")^+H``````T4$$U4(B48(B58,BT$$*?@YV'8" +MB=B)!L=&!`````"_`````(/&$(/%#"G#=;;'1O0!````N`$```!;7E]=PY!5 +M5U93@^P\BT0D4(M`,(E$)`R+4"R)5"0TBU@HBTA0B4PD,(MT)%"`?E8!=`^* +M1E:+5"0,B$)6Z90!``!FBT,"BTPD4&8#04QFB4,"@WDT`'42BW0D#&8[1DQU +M+V;'0P(``.L29HM#`HM4)`QF.T),#X/"````BTPD-(M!,(MT)%")1BS'1C0! +M````#[=#`HE$)"C'1"0L`````(M$)"B+5"0LBTPD#`-!1!-12(MT)%")1D2) +M5DB+1"0P#[9(#(M`!,'H"0^OR(M$)`P/MW!,#[=#`BG&.?%V`HGQBU0D4&:) +M2DS&0E8`QD)7`(/L#%+H_/___X/$$.G^````BTPD#,9!5@R+="0TBDYLB,B# +MR`J(1FR+1"0,BWA$BVA(B7YPB6YT9L=&*`(`@\D.B$YLZ9L```"-=@`/MVL" +MQT0D)`````#!Y0ET4_R)]HM4)#"+6@0YZW8"B>N+3"0PBSF+="0DC0QVBU0D +M,(M""-'H`?"-!$"+%(^+/(>)V3G;B=;SI@^71"0C#Y+`.$0D(P^%:?____]$ +M)"0IW76PBT0D#,9`5@$/MU!,B50D&,=$)!P`````BTPD&(M<)!R+="0,`TY$ +M$UY(BT0D-(E(<(E8=(M4)`S_0@R#[`C_="18_W($Z/S___^+3"0#3'0R`$`QT!<2$@!`(M4)$2+1+HLBTPD'(E!+(/L#%'H_/___X/$ +M$$>#_P$/AC?____I[`$``/]+#(M#!/]`"(/L#/]S!.C\____B40D+(L#BW0D +M+(D&BT,$B48$BT,XB48X@\00BT0D0`^W0`*)1"0HQT0D+`````"+="0HBWPD +M+`-S1!-[2(M,)!R)<42)>4@/MG4,BT4$P>@)#Z_P#[=[3(M4)$`/MT("*<TR+5"1`#[="`BG'.?YV`HG^BTPD'&:)<4R`254"B5DPQT$T```` +M`,=!8(Q,`0#'05S<2P$`BW0D1(M&+(E!+(/L#%'H_/___X/$$.L3C78`QD-6 +M!H/L#%/H_/___X/$$(/$3%M>7UW#5U93BUPD$(M,)!2+5"08O@````"+1"0< +MP>@"B<>#^`!V%HGVBP$S`H/"!(/!!(D#@\,$1CGW=^Q;7E_#5U93BUPD$(M, +M)!2^`````(M$)!C!Z`*)QX/X`'85B?:)VH/#!(L",P&#P02)`D8Y]W?M6UY? +MPY!75E.+?"00BUPD%(/L#(U')%#H_/___XG&B1B#Q!!+@_O_=!R#[`B-1-Y$ +M4/\WZ/S___^)1)X$@\002X/[_W7DB?!;7E_#B?975E.+?"00BW0D%(L>2X/[ +M_W0=D/]TWDC_=-Y$_W2>!/\WZ/S___^#Q!!+@_O_=>2#[`A6C42X/[_W0:N0````"Z`!```(M$G@2("$!*=?I+@_O_ +M=>M;7L.04XM<)`B+"TF#^?]T*8M$BP2Z`````(GV@S@`=`>X`````.L70H/` +M!('Z_P,``';H28/Y_W77N`$```!;PXUV`%575E.#[`@/MT0D(,'@"8M4)"2) +MU\'G"8G"@>+_#P``B10DP>@,B40D!(GVN@`0```K%"0Y^G8"B?J^`````(G1 +MBP0DBUPD!(ML)!P#1)T$A=)T"(GSB!A`277X.?IT#_]$)`0IU\<$)`````#K +MO8/$"%M>7UW#D+D`````NA````"+1"0$B?:("$!*=?K#D(M$)`2*4#$/MLK! +MX06-3`$T0HA0,8D!QD$%`,9!!@#&00<`B7\.055=64X/L&(M\)#"+="0\B?B( +M1"07B?.+1"0L@\`\4.C\____B<6)10")102#Q!"+5"0@BP*)11R+1"0HBU0D +M+(E%)(E5*&:)=2R)^(A%+L:%L`\```#'A60/````````QX5H#P```````&;! +MZP,/M_N%_W4$9K\!`,>%M`\```````"^`````(!\)`L`=#(/ME0D"XE4)`2) +M\\'C!`'KC8,T#0``4.B]_O__@<,T#@``4^BQ_O__@\0(1CET)`1_U[X````` +M#[94)`N-0OW1^`'"@_H`?B\/ME0D"XU"_='XC1P"@^P(5_]T)"SH!_W__XF$ +MM=P,```!O;0/``"#Q!!&.?-_WHGH@\0,6UY?7<-55U93@^P,BW0D*(M\)"R+ +M1"0P9HE$)`J+3"0DBU$(#[9))8GPT^@E_P,``(L2C1R"BRN%[71HD(M5*#'Z +MBT4D,?`)PG52@+VP#P```74:QH6P#P```(M5!(M%`(E0!(D"B6T`B6T$ZR&` +MO;`/```#=1C&A;`/````BU4$BT4`B5`$B0*);0");03^A;$/``")Z.F.```` +MD(MM#(7M=9F#[`P/MT0D%E!75HM4)#P/MD(D4/]T)#SH-/[__XG%BTPD1(E( +M((L#B44,@\0@A)_K\`````BTPD)`^V022Z`````%)05U;H_/___X/$$"C#2XA=+\:% +ML0\```&)Z(/$#%M>7UW#C78`55=64X/L-&@@!```_W0D3.C\____B40D.(M$ +M)%2*4%6(T-#H@_`!B<�&)3"0TQT0D+`````"#Q!"+1"1$@WA8`'0%]L(! +M=#&#[`R+1"0T@\!L4.C\____B40D+(E$)#"#Q`QJ`?]T)"3_="10BU0D5/]2 +M7(/$$.L+BTPD1(M)6(E,)""+1"0@BRC'1"0,`````,=$)!@`````BU0D1(M" +M*(G"@'AL``^$;`$``(M,)!B-!$F+5,(DB50D$(J"K`\``(A$)!()N`@```!F*T0D"&:)1"0( +M9HM$)`IF.40D"'8%9HE$)`@/MT0D"(G&P>8)#[9$)!>+3"00BX2!W`P``(G7 +MBTPD!`-\B`2)]CEL)`QU%H-$)"`0BT0D((LHQT0D#`````"-=@")ZRM<)`PY +M\W8"B?.+5"0@BT((@WPD)`!T%@-$)`R#[`134%?H_/___X/$$.L4B?8#1"0, +M@^P$4U=0Z/S___^#Q!`!7"0,*=YT!`'?ZY:+3"0(9BE,)`IT%?]$)`2Z```` +M`&;'1"0("`#I/_____Y$)!>*1"07BU0D$#B"K0\```^#TO[___]$)!B+3"1$ +MBU$H#[9";#M$)!@/CY3^__^#?"0<`'07@^P(_W0D)(M$)#2#P&Q0Z/S___^# +MQ!"#[`1J`/]T)$S_="1,_U0D6(/$/%M>7UW#B?964X/L!(M4)!"+E8!=`:*0E:(1E;_1@R#[`A2_W8$Z/S___^+1@3_2`B#Q!"*0W%`B$-Q.D-P +M=36`?E8`=03&1E8!BD96B$0D`X7V=""+1BB+6!2*1"0#B$96@^P,5NC\____ +MB=Z#Q!"%VW7AD(/$!%M>PXGV55=64X/L#(ML)""+10B+<`C'0`@`````BT8H +MB40D"+\`````@'TD`'1WB?:+7+TLA=MT9/:#0`$```%T6_].#(M&!/]`"(/L +M#/]V!.C\____BQ:)$(M6!(E0!(M6.(E0.(/$!(E8+,9`5`2*3E6#X3"*4%6# +MXL\)RHA05<=`8/A8`0")<#"+5"04_D)P4.C\____@\00B?9'#[9%)#GX=XN# +MQ`Q;7E]=PXUV`%575E.#[`R+;"0@BUPD),:#L`\```"+4P2+`XE0!(D"B1N) +M6P3'@V0/````````_HNQ#P``@[MH#P```'1>B=ZX`````'0UBX-H#P``BT`H +MBT@4.8MH#P``=0W'@V@/````````ZQ.0BX9H#P``BU`HBT$HBT`4B4(4B@0`=0Z# +M>@@`=0B#>@P`=`>)]KX!````A?9U,D$X3RYWP;@`````A7UW#C78`@^P4BT0D&,>`N`\``$A<`0")@+P/``#'@,`/```` +M````C9"X#P``4O]P'.C\____@\0`$BU0D$(V$$#0-``!0Z`WU__^#Q`1#BTPD$#A9+G?.@^P,5^BA.P``@\00 +MZ=$```#&1"0O`(!];`!V+8GV#[9$)"^-!$"+=,4D@+ZN#P```70)BH:N#P`` +MB$=6_D0D+XI4)"\X56QWU8!_5@!U%X/L!&BL6P$`5_]T)$#H3??__X/$$.M\ +M@^P$:@!7_W0D0.A!_/__@\00ZVB`OJX/```!=2N)][,`@'XN`'8YD`^VP\'@ +M!(V$.#0-``!0Z#7T__^#Q`1#.%\N=^3K&HGV@+ZN#P```G4/@^P,_W8@Z*Q5 +M``"#Q!"0@^P(5O]T)#SH5_K__X/$!/]T)$#H_/___X/$$(/$/%M>7UW#@^P, +MBT0D%(L`@'@R`'0IQD`R`,=`$+QJ`0")0!3'0!@`````@^P(@\`04/]T)!SH +M_/___X/$$)"#Q`S#55=64XM4)!2+="08BT(PBP@/MD`)BZR!W`P``(M"1"M! +M),'@"0^W6DS!XPF)PH'B_P\``(G'P>\,C78`N0`0```IT3G9=@*)V8-\)!P` +M=`R)T`-$O02)1@CK%I")T+H``````T3]1!-4_4B)1@B)5@R)#CG9=!3'1@0` +M````@\801RG+N@````#KL<=&!`$```"X`0```%M>7UW#5U93BU0D$(I""@)" +M"XA""HU:#+X!````ZQ6)]H!Z"@!Y"K@`````Z?(```#^0@H/MDH*@_D?=Q") +M\-/@A4(,#Y7`#[;`ZTV0@_D_=Q.#Z2")\-/@A4,$#Y7`#[;`ZS60@_E?=Q.# +MZ4")\-/@A4,(#Y7`#[;`ZQV0N`````"#^7]W$H/I8(GPT^"%0PP/E<`/ML") +M]H7`=(3&0@L!C7H,#[9:"KX!````ZP6)]OY""P^V0@N-#`.#^1]W$8GPT^"% +M0@P/E<`/ML#K3HGV@_D_=Q.#Z2")\-/@A4<$#Y7`#[;`ZS60@_E?=Q*#Z4") +M\-/@A4<(#Y7`#[;`ZQVX`````(/Y?W<3@^E@B?#3X(5'#`^5P`^VP(UV`(7` +M=9"P`5M>7\.)]E575E.#[!2+="0HBP:)1"00:"`$``!0Z/S___^)Q8M>,(L[ +MBD96B$,&@\00@[]D#P```'0OBX=D#P``_T`,@^P(5HN'9`\``/]P!.C\____ +MBX=D#P``BT`$_T@(@\00ZRV-=@"+A<````#_0`R#[`A6BX7`````_W`$Z/S_ +M__^+A<````"+0`3_2`B#Q!"`>P8!=6A3Z$+^__^#Q`2%P'03QD,&`(/L"%-5 +MZ)$```"#Q!#K7(![!`%U0HI#"#A'+W0Z.$,)=34/MO")\,'@!(VT.#0.``"- +M2PR+!@M##(D&BT8$"T$$B48$BT8("T$(B48(BT8,"T$,B48,D,9#!0*#[`A3 +M_W0D%.CW_/__@\00@\0,6UY?7<-3@^P(BUPD%,9#"P#&0PH`4^BN_?__@^P$ +M4_]T)!SH!0```(/$&%O#55=64X/L#(MT)""+?"0DBQ^+4R`/MD<(BVR"+(.[ +M9`\```!T3XN#9`\``/](#(N#9`\``(M`!/]`"(/L#(N#9`\``/]P!.C\____ +MB<&+@V0/``"+`(D!BX-D#P``BT`$B4$$BX-D#P``BT`XB4$X@\00ZTV+AL`` +M``#_2`R+AL````"+0`3_0`B#[`R+AL````#_<`3H_/___XG!BX;`````BP") +M`8N&P````(M`!(E!!(N&P````(M`.(E!.(/$$(EI+(!_!`%U!H!)50+K!(!) +M500/MD<*N@`````#0R034RB)042)44AF#[9'"V:)04S'05P<8`$`B7DPQT%@ +MW&$!`(/L#%'H_/___X/$'%M>7UW#55=64X/L!(M\)!R^`````+T`````BT0D +M&(D$).L/@_U_=@F)\.DY`0``B?9%@_T?=Q>X`0```(GIT^"+5"08A0(/E<`/ +MML#K5X/]/W<8C4W@N`$```#3X(L4)(5"!`^5P`^VP.LZ@_U?=QB-3<"X`0`` +M`-/@BQ0DA4((#Y7`#[;`ZQVX`````(/]?W<3C4V@L`'3X(L4)(5"#`^5P`^V +MP(7`#X1V____NP$```"+5"08ZP*00XU,'0"#^1]W$K@!````T^"%`@^5P`^V +MP.M5D(/Y/W<7@^D@N`$```#3X(5"!`^5P`^VP.LZB?:#^5]W%X/I0+@!```` +MT^"%0@@/E<`/ML#K'HGVN`````"#^7]W$H/I8+`!T^"%0@P/E<`/ML")]H7` +M=8R)Z@'=B=#!Z`.(!+>(T(/@!XA$MP&Q""C!B$RW`@^VP3G87UW#D%575E.!["P!``"+A"1$`0``BS"+ +M6`B`>Q4`#X3L````@WL0`'4*B4,0Z7\!``")]L9#%0"-1"0@4%/H5?[__XE$ +M)!`/MD,4BZR&W`P``(M#$`^V0`R+E(;<#```B50D'(N\)$P!```/MD<,BY2& +MW`P``(E4)!B[`````(/$"#M<)`@/C0H!```/MD2<(8G!P>$)#[9$G"*)QL'F +M"8I$G""(1"0/#[;0B7UW#55=64X'L+`$``(N$)$0!``"+&(U$)"!0BX0D2`$` +M`(/`"%#HM/S__XG%BY0D3`$```^V0AB+O(/<#```B7PD'`^V0AF+E(/<#``` +MB50D%+X`````@\0(.>Y]0Y`/MD2T(<'@"0^V3+0BP>$)#[9QP`=B**6QP/ML&+O"3$`0``#[94!PR+E);<#```B52$8$$X +MRW?AO0`````[;"00#XU!`0``B?8/MH2LH0```(G'P><)#[:$K*(```#!X`F) +M1"08BH2LH````(A$)!>Q`(N4),0!``"`>AP`=B,/MO"*6AR(7"0/#[;!BU2$ +M8(M!P!=2H/MD0D%XM4)!R+1(($ +M`?B#[`3_="0<_W0D*%#H_/___X/$$.FF````B?8/ME0D%XGXBTPD'`-$D00Y +M1"0@=1O_="08_W0D*(GX`T21!%#HU^C__X/$#.LGB?;_="08_W0D*/]T)"@/ +MMD0D(XM<)"B+7(,$C00?4.ARZ/__@\00BX0DQ`$``(!X'`)V0KL"````#[9` +M'(/X`GXT#[9T)!>-=@#_="08_W2L)(GXBU0D)`-$L@10Z'#H__^#Q`Q#BXPD +MQ`$```^V01PYV'_5D$4[;"00#XS!_O__@^P$:@#_M"3,`0``_[0DS`$``.@- +M````@<2\`0``6UY?7<.)]E=64XM\)!"+7"04BW0D&,9#!0*#_@$9P(/@]8/` +M#(A#!H/L"%-7Z+WU__^#Q!"`>P0#=3"+0PB+4!"%TG0FQT`0`````,9"!0*# +M_@$9P(/@]8/`#(A"!H/L"%)7Z(?U__^#Q!!;7E_#4XM,)`B+7"0,#[93!X72 +M=$.-=@`/MH11=`L``,'@!8U$"#2`>`4"=`>X`````.LI@'@&`702QD,%`HI` +M!HA#!K@`````ZQ*0#[:4474+``"%TG7`N`$```!;PY!55U93@^PP8!#X3.````@'\S``^$X?[__XM' +M(`^V4PB+1)`L]H!``0```0^$J````,=$)!0`````QD,%`<9#!@")?"0(B=V+ +M1QR)1"0$@^P(:"`$``!0Z/S___^#Q!`/ME,$@_H&=W7_))4\`@``@^P(4U#H +M./;__X/$$.M?@^P(4_]T)!#HSOC__X/$$.M-@^P(4_]T)!#H=/K__X/$$.L[ +M@^P(4_]T)!#H)OO__X/$$.LIBT0D",9`,P'&104"QD4&`8/L"%7_="00Z,SR +M__^#Q!#K!XUV`,9#!@%&@\,@#[9',3GP#X]$_O__@WPD&``/A17^__^#?"04 +M`'05QH>N#P```8/L#%?HPN[__X/$$.L$QD7UW#D%575E.#[&2+ +M1"1XBU@@BZAD#P``:"`$``#__``````^WQHG" +MJ`%U#)!'B=")^=/XJ`%T]8G[BW0D<(A>,.L*B?:+1"1PQD`P$(M4)'#&0C$` +MQH)T"P```,9",P#&@JX/````QH*O#P```(7M#X0?$0``@'U4`0^%*0@```^V +M14Z#^`(/A+X$``"#^`)_#H/X`0^$&P$``.D1(P``@_@##X4((P``C5PD0%/H +M3N7__X/$!+\`````BTPD<`^W<2RS`(/_'W='#[;#C52$0(G]N2`````I^3GQ +M=@*)\8/Y('4(QP+_____ZPZX`0```-/@2(GIT^`)`K@@````*?@Y\',4C70^ +MX+\`````ZP.#[R!#@/L#=JN+7"1P_[/<#```Z/3C___&1"0?`(/$!(![+@`/ +MAG8B```/MEPD&\'C!`-<)'"-@S0-``!0Z*[D__^!PS0.``!3Z*+D__^#Q`C_ +M="1PZ*[D__^#Q`3&0`0"BE0D&XA0",9`"0"+5"1`B5`,BU0D1(E0$(M4)$B) +M4!2+5"1,B5`8_D0D&XI,)!N+7"1P.$LN=Y'I`B(``+@!````ZTZ+="1PL0"` +M?BX`=CT/ML'!X`0!\(V0-`T``+L`````@[@T#0```'42@WH$`'4,@WH(`'4& +M@WH,`'0%NP$```"%VW6V03A.+G?#N`````"%P'16BW0D<,>&9`\```````") +M\XGI@[YH#P```'0@BU4HBX9H#P``BT`HBT`4B4(4BX9H#P``BT`HB6@4ZP:+ +M12B):!2)BV@/``"+;"1P_H6Q#P``Z3G3X`D"N"`````I^#GPS`0=0:*0R^(0S"+="1PBEXPB)Y(#P``QH9)#P```8M$)$") +MAC0/``"+1"1$B88X#P``BT0D2(F&/`\``(M$)$R)AD`/``#'AD0/```````` +M5NCNXO__@\0$QD`$`HA8"(A8"8M4)$")4`R+5"1$B5`0BU0D2(E0%(M4)$R) +M4!B)QHML)'"`?2X"#X?O````B>N!PS0/``!5Z*?B__^#Q`3&0`0%B5@(QD`< +M`(G'BQ;^@G0+```/MHIT"P``*="#Z#3!^`6(A$IT"P``BD8'B(1*=0L``(A. +M!\9$)!L`@'TN``^&]1\``(I$)!N+5"1P.$(P='!2Z$KB__^#Q`3&0`0!BDPD +M&XA("(A("8M4)$")4`R+5"1$B5`0BU0D2(E0%(M4)$R)4!B*5QP/MLJ*7"0; +MB%P/#$*(5QR+%_Z"=`L```^VBG0+```IT(/H-,'X!8B$2G0+``"*1P>(A$IU +M"P``B$\'_D0D&XI$)!N+5"1P.$(N#X=N____Z5X?``#&1"0;`(M,)'"`>2X` +M#X9+'P``B@0`=0R#>@@`=0:#>@P`=`6[`0```(7;=;9!.$XN=\.X`````(7` +M=%J+1"1PQX!D#P```````(G#B>F#N&@/````="2+52B+="1PBX9H#P``BT`H +MBT`4B4(4BX9H#P``BT`HB6@4ZP:+12B):!2)BV@/``"+;"1P_H6Q#P``Z9X+ +M``"-7"1`4^@`X/__@\0$OP````"+1"1P#[=P++,`@_\?=TG3X`D"N"`````I +M^#GP#1`\` +M``````"`>RX"#X?`````BUPD<('#-`\``/]T)'#H3M___X/$!,9`!`6)6`C& +M0!P`B+@^'>____^DY'```BVPD<(I=+U7HE-[__X/$!,9` +M!`&(6`B(6`F+5"1`B5`,BU0D1(E0$(M4)$B)4!2+5"1,B5`8B40D),9$)!L` +M@'TN``^&\!L``(GK@<,T#P``BD0D&XM4)'`X0B\/A*T```!2Z#G>__^#Q`3& +M0`0!BDPD&XA("(A("8M4)$")4`R+5"1$B5`0BU0D2(E0%(M4)$R)4!B)Q?]T +M)'#H`=[__X/$!,9`!`.)6`B*5"0;B%`,B<>+$/Z"=`L```^VBG0+``")Z"G0 +M@^@TP?@%B(1*=`L``(I'!XB$2G4+``"(3P>+%_Z"=`L```^VBG0+``"+1"0D +M*="#Z#3!^`6(A$IT"P``BD<'B(1*=0L``(A/!_Y$)!N*3"0;BW0D<#A.+@^' +M+?___^D0&P``N`$```#K;9"%[0^$Y`@``(I%5:@"#X39"```J`@/A*\```"+ +M="1PL0"`?BX`=D"0#[;!P>`$`?"-D#0-``"[`````(.X-`T```!U%(-Z!`!U +M#H-Z"`!U"(-Z#`!T!XGVNP$```"%VW6703A.+G?!N`````"%P'1:BT0D<,>` +M9`\```````")PXGI@[AH#P```'0DBU4HBW0D<(N&:`\``(M`*(M`%(E"%(N& +M:`\``(M`*(EH%.L&BT4HB6@4B8MH#P``BVPD\M6X/``"S`(/Z +M'W=+#[;#BTPD%(TT@8G5N2`````IT3GY=@*)^8/Y('4)QP;_____ZP^0N`$` +M``#3X$B)Z=/@"0:X(````"G0.?AS%(U\%^"Z`````.L#@^H@0X#[`W:G#[9< +M)!N)VHG8P>`$BW0D<(V<,#0.``"+"_?1B4PD0(M#!/?0B40D1(M#"/?0B40D +M2(M##/?0B40D3,'B!(ML)"B-'"H#5"0L(PJ)"XM"!"-$)$2)0P2+0@@C1"1( +MB4,(BT(,(T0D3(E##(I$)!LX1C!U++@`````@SL`=1*#>P0`=0R#>P@`=0:# +M>PP`=`6X`0```(7`=`?&1"09`8GV_D0D&XI4)!N+3"1P.)&M#P``#X.P_O__ +M@'PD&0`/A.D%``"-1"1`4.@+V___QD0D'P"#Q`2+7"1P@'LN`'9CD(I$)!N+ +M5"1P.$(P=$0X0B]T/P^VT,'B!`-4)'"-BC0-``"+1"1`"X(T#0``B40D0(M$ +M)$0+002)1"1$BT0D2`M!"(E$)$B+1"1,"T$,B40D3/Y$)!N*3"0;BUPD<#A+ +M+G>>BW0D<`^V?C")^,'@!(ML)"B-/"B+7"1`(Q^)7"0PBTPD1"-/!(E,)#2+ +M5"1((U<(B50D.(M$)$PC1PR)1"0\]].)7"1`]]&)3"1$]]*)5"1(]]")1"1, +M(Q^)7"1`(T\$B4PD1"-7"(E4)$@C1PR)1"1,_W0D<.@SVO__@\0$QD`$`(E$ +M)!RX`````(-\)$``=16#?"1$`'4.@WPD2`!U!X-\)$P`=`6X`0```(7`#X3- +M`0``BU0D<(I",(B"2`\``(M$)$")@C0/``"+1"1$B8(X#P``BT0D2(F"/`\` +M`(M$)$R)@D`/``#&@DD/```!QX)$#P```````,9$)!L`@'HN``^&-P(``(I, +M)!N+7"1P.$LP#X1-`0``.(NL#P``=PTXBZT/``!R!3A++W4Z_W0D<.AVV?__ +M@\0$QD`$`8I4)!N(4`B(4`F+5"1`B5`,BU0D1(E0$(M4)$B)4!2+5"1,B5`8 +MB<7K;`^V5"0;B=#!X`2+3"0HC10(B=.+1"1`"P*)`HM$)$0+0@2)0@2+1"1( +M"T((B4((BT0D3`M"#(E"#/]T)'#H`]G__X/$!,9`!`&*5"0;B%`(B%`)BQ.) +M4`R+4P2)4!"+4PB)4!2+4PR)4!B)Q8M<)'"!PS0/``#_="1PZ,;8__^#Q`3& +M0`0#B5@(BDPD&XA(#(G'BQ#^@G0+```/MHIT"P``B>@IT(/H-,'X!8B$2G0+ +M``"*1P>(A$IU"P``B$\'BEPD&XMT)'`X7B]U,HML)!R+50#^@G0+```/MHIT +M"P``B?@IT(/H-,'X!8B$2G0+``"*10>(A$IU"P``B$T'_D0D&XI$)!N+5"1P +M.$(N#X>-_O__Z;\```#&1"0;`(M,)'"`>2X`#X:L````BEPD&XMT)'`XGJP/ +M```/AX,````XGJT/``!R>SA>+W1V.%XP='$/ML/!X`0#1"0HN@````"#.`!U +M$H-X!`!U#(-X"`!U!H-X#`!T!;H!````A=)T0@^V7"0;B=C!X`2+;"0HC1PH +M_W0D<.BKU___@\0$QD`$`8I4)!N(4`B(4`F+$XE0#(M3!(E0$(M3"(E0%(M3 +M#(E0&/Y$)!N*3"0;BUPD<#A++@^'5/___[@`````@WPD,`!U%8-\)#0`=0Z# +M?"0X`'4'@WPD/`!T!;@!````A<`/A-@4``"+1"1PBD`PB$0D$XM4)'"(@F`/ +M``"+1"0PB8),#P``BT0D-(F"4`\``(M$)#B)@E0/``"+1"0\B8)8#P``QH)A +M#P```,>"7`\```````"*6B]2Z.G6__^#Q`3&0`0!B%@(BDPD$XA("8M4)#") +M4`R+5"0TB5`0BU0D.(E0%(M4)#R)4!B)1"0DQT0D(`````#&1"0;`(M<)'"` +M>RX`#X8U%```B=Z!QDP/``"*1"0;BU0D<#A",`^$(P$``#A"+P^$&@$``(I: +M+U+H#?"0@`'0PBU4`_H)T"P``#[:*=`L``(M$)"`IT(/H-,'X +M!8B$2G0+``"*10>(A$IU"P``B$T'BT0D<(I8+U#HT-7__X/$!,9`!`.)<`B( +M6`R)QXE$)""+$/Z"=`L```^VBG0+``")Z"G0@^@TP?@%B(1*=`L``(I'!XB$ +M2G4+``"(3P>+%_Z"=`L```^VBG0+``"+1"0D*="#Z#3!^`6(A$IT"P``BD<' +MB(1*=0L``(A/!_Y$)!N*5"0;BTPD<#A1+@^'M_[__^G?$@``C78`BUPD<(J; +MK`\``(A<)!N+="1P.)ZM#P``#X*^$@``B?:*1"0;BU0D<#A"+W1S#[;`P>`$ +M`T0D*+H`````@S@`=1.#>`0`=0V#>`@`=0>#>`P`=`:0N@$```"%TG1##[9< +M)!N)V,'@!(M,)"B-'`C_="1PZ,W4__^#Q`3&0`0!BE0D&XA0"(A0"8L3B5`, +MBU,$B5`0BU,(B5`4BU,,B5`8D/Y$)!N*3"0;BUPD<#B+K0\```^#:/___^D? +M$@``C78`BW0D<(!^,`\/AI()``"-1"1`4.A4U/__QD0D'@#&1"0?`(/$!(!^ +M+@`/AI\```"0BD0D&XM4)'`X0B]T?`^VP,'@!`'0C9`T#0``N0````"#N#0- +M````=1.#>@0`=0V#>@@`=0>#>@P`=`:0N0$```"%R71$#[94)!N)T,'@!(M, +M)'"-E`@T#0``BT0D0`L"B40D0(M$)$0+0@2)1"1$BT0D2`M""(E$)$B+1"1, +M"T(,B40D3/Y$)!K^1"0;BEPD&XMT)'`X7BX/AV+___\/ME0D&HML)'`/MD4N +M@^@#T?@YP@^./@4``(I=+XB=2`\``(M$)$")A30/``"+1"1$B84X#P``BT0D +M2(F%/`\``(M$)$R)A4`/``#&A4D/```!QX5$#P```````%7H5-/__X/$!,9` +M!`*(6`B(6`F+5"1`B5`,BU0D1(E0$(M4)$B)4!2+5"1,B5`8B<95Z"/3__^# +MQ`3&0`0&B40D'(L6_H)T"P``#[:*=`L``(M$)!PIT(/H-,'X!8B$2G0+``"* +M1@>(A$IU"P``B$X'@'TN`@^'10(``(GK@<,T#P``5>C1TO__@\0$QD`$!8E8 +M",9`'`")QXM$)!R+$/Z"=`L```^VBG0+``")^"G0@^@TP?@%B(1*=`L``(M< +M)!R*0P>(A$IU"P``B$L'QD0D&P"`?2X`#X85$```BD0D&XM4)'`X0B\/A+@! +M``"*1QP/MM"*3"0;B$P7#$"(1QP/MMG!XP2+="1PC00SC8@T#@``BY`T#@`` +M]]*)5"0PBT$$]]")1"0TBT$(]]")1"0XBT$,]]")1"0\BVPD*(T,*R-4)$") +M$8M$)$0C1"0TB4$$BT0D2"-$)#B)00B+1"1,(T0D/(E!#+@`````@SD`=1*# +M>00`=0R#>0@`=0:#>0P`=`6X`0```(7`=&T/MEPD&XG8P>`$BU0D*(T<$/]T +M)'#HL]'__X/$!,9`!`&*3"0;B$@(B$@)BQ.)4`R+4P2)4!"+4PB)4!2+4PR) +M4!B+%_Z"=`L```^VBG0+```IT(/H-,'X!8B$2G0+``"*1P>(A$IU"P``B$\' +M#[9$)!O!X`2+7"1PC808-`T``+H`````@S@`=1*#>`0`=0R#>`@`=0:#>`P` +M=`6Z`0```(72='0/MEPD&XG8P>`$BW0D<(V<,#0-``!6Z`W1__^#Q`3&0`0" +MBE0D&XA0"(A0"8L3B5`,BU,$B5`0BU,(B5`4BU,,B5`8B<:+$/Z"=`L```^V +MBG0+``"+1"0<*="#Z#3!^`6(A$IT"P``BD8'B(1*=0L``(A.!_Y$)!N*3"0; +MBUPD<#A++@^'(O[__^DR#@``QD0D&P"+="1P@'XN``^&'PX``(UV`(I$)!N+ +M5"1P.$(O#X3[`0``#[;8P>,$C003C8@T#@``BY`T#@``]]*)5"0PBT$$]]") +M1"0TBT$(]]")1"0XBT$,]]")1"0\BTPD*(TT"R-4)$")%HM$)$0C1"0TB48$ +MBT0D2"-$)#B)1@B+1"1,(T0D/(E&#(M<)'"!PS0/``#_="1PZ/S/__^#Q`3& +M0`0#B5@(BEPD&XA8#(G'BVPD'(M5`/Z"=`L```^VBG0+```IT(/H-,'X!8B$ +M2G0+``"*10>(A$IU"P``B$T'N`````"#/@!U$H-^!`!U#(-^"`!U!H-^#`!T +M!;@!````A(A$IU"P``B$X'C78`_D0D&XI,)!N+7"1P.$LN#X??_?__ +MZ?8+``"+="1PBEXO5NA1SO__@\0$QD`$`8A8"(A8"8M4)$")4`R+5"1$B5`0 +MBU0D2(E0%(M4)$R)4!B)1"0DBEXO5N@;SO__@\0$QD`$`HA8"(A8"8M4)$") +M4`R+5"1$B5`0BU0D2(E0%(M4)$R)4!B)QO]T)'#HY\W__X/$!,9`!`:)1"0< +MBQ;^@G0+```/MHIT"P``BT0D'"G0@^@TP?@%B(1*=`L``(I&!XB$2G4+``"( +M3@?&1"0;`(ML)'"`?2X`#X8R"P``B?:*1"0;BU0D<#A"+P^$AP(```^VP,'@ +M!`'0C9`T#0``N0````"#N#0-````=1.#>@0`=0V#>@@`=0>#>@P`=`:0N0$` +M``"%R0^$2P(``/Y,)!J*3"0:BUPD<(I;+HT\&0^V7"0;B=Z)V,'@!(ML)'"- +MG"@T#0``5>@+$/Z" +M=`L```^VBG0+``"+1"0D*="#Z#3!^`6(A$IT"P``BD<'B(1*=0L``(A/!XL7 +M_H)T"P``#[:*=`L``(GH*="#Z#3!^`6(A$IT"P``BD<'B(1*=0L``(A/!XM< +M)!R+$_Z"=`L```^VBG0+``")^"G0@^@TP?@%B(1*=`L``(I#!XB$2G4+``"( +M2P>+1"1PBD`OB$0D$8M4)'"-G!8T#0``4NC\R___@\0$QD`$!(I,)!&(2!B* +M5"0;B%`9BQ.)4`B+4P2)4`R+4PB)4!"+4PR)4!2)QXL0_H)T"P``#[:*=`L` +M`(M$)"0IT(/H-,'X!8B$2G0+``"*1P>(A$IU"P``B$\'BTPD'(L1_H)T"P`` +M#[:*=`L``(GX*="#Z#3!^`6(A$IT"P``BUPD'(I#!XB$2G4+``"(2P>+;"1P +MC;0N-`T``%7H6P^VP,'@ +M!`'0C9`T#0``N0````"#N#0-````=1.#>@0`=0V#>@@`=0>#>@P`=`:0N0$` +M``"%R71##[9<)!N)V,'@!(M,)'"-G`@T#0``4>ADRO__@\0$QD`$`HI4)!N( +M4`B(4`F+$XE0#(M3!(E0$(M3"(E0%(M3#(E0&/Y$)!N*3"0;BUPD<#A++@^' +M8____^FZ!P``C40D0%#H`,K__X/$!/]T)'#H#,K__X/$!,9`!`:)1"00_D0D&XI<)!N+="1P.%XN#X?C_O__BVPD<(I=+U7HPLC_ +M_X/$!,9`!`*(6`B(6`F+5"1`B5`,BU0D1(E0$(M4)$B)4!2+5"1,B5`8B<:+ +M$/Z"=`L```^VBG0+``"+1"0<*="#Z#3!^`6(A$IT"P``BD8'B(1*=0L``(A. +M!P^V73")WHG8P>`$C9PH-`X``(L#]]")1"0PBU,$]]*)5"0TBTL(]]&)3"0X +MBUL,]].+;"1`(>B)1"0PBWPD1"'ZB50D-(M4)$@AT8E,)#B+1"1,(<.)7"0\ +MP>8$BTPD<(VT#C0.``")Z2,.B4PD0"-^!(E\)$0C5@B)5"1((T8,B40D3+@` +M````@WPD0`!U%8-\)$0`=0Z#?"1(`'4'@WPD3`!T!;@!````A<`/A!<"``"+ +M7"1PBD,OB(-(#P``BT0D0(F#-`\``(M$)$2)@S@/``"+1"1(B8,\#P``BT0D +M3(F#0`\``,:#20\```''@T0/````````QD0D&P"`>RX`#X;"`0``B=Z!QC0/ +M``"0BD0D&XM4)'`X0C!U2U+H1P0`=0R#>P@`=0:#>PP`=`6X`0```(7`=&T/ +MMEPD&XG8P>`$BU0D*(T<$/]T)'#H!\;__X/$!,9`!`&*3"0;B$@(B$@)BQ.) +M4`R+4P2)4!"+4PB)4!2+4PR)4!B+%_Z"=`L```^VBG0+```IT(/H-,'X!8B$ +M2G0+``"*1P>(A$IU"P``B$\'_D0D&XI<)!N+;"1P.%TN#X='_O__N`````"# +M?"0P`'45@WPD-`!U#H-\)#@`=0>#?"0\`'0%N`$```"%P`^$"0,``(M$)'"* +M6"]0Z&3%__^#Q`3&0`0!B%@(B%@)BU0D,(E0#(M4)#2)4!"+5"0XB5`4BU0D +M/(E0&(E$)"3'1"0@`````,9$)!L`BU0D<(!Z+@`/AK0"``"*3"0;BUPD<#A+ +M,`^$BP(``#A++P^$@@(```^VP<'@!(MT)"B-'#`#1"1PC8@T#0``BU0D,".0 +M-`T``(D3BT0D-"-!!(E#!(M$)#@C00B)0PB+1"0\(T$,B4,,N`````"#.P!U +M$H-[!`!U#(-["`!U!H-[#`!T!;@!````A<`/A!@"``"+;"1PBETP#[9T)!N) +M\,'@!(M4)"B--!!5Z'K$__^#Q`3&0`0!BDPD&XA("(A8"8L6B5`,BU8$B5`0 +MBU8(B5`4BU8,B5`8B<6#?"0@`'0OBQ#^@G0+```/MHIT"P``BT0D("G0@^@T +MP?@%B(1*=`L``(I%!XB$2G4+``"(30>+7"1PBELOB%PD$(M$)'"*0#"(1"0/ +M#[9T)!N)\XGPP>`$BU0D*(TT$/]T)'#HZ,/__X/$!,9`!`2*3"00B$@8BE0D +M#XA0&8L6B5`(BU8$B5`,BU8(B5`0BU8,B5`4B<>)1"0@BQ#^@G0+```/MHIT +M"P``BT0D)"G0@^@TP?@%B(1*=`L``(I'!XB$2G4+``"(3P>+%_Z"=`L```^V +MBG0+``")Z"G0@^@TP?@%B(1*=`L``(I'!XB$2G4+``"(3P>+3"0,$`UPD*/]T)'#H"L/__X/$!,9`!`2*5"0.B%`8BDPD&XA( +M&8L3B5`(BU,$B5`,BU,(B5`0BU,,B5`4B<>+$/Z"=`L```^VBG0+``"+1"0D +M*="#Z#3!^`6(A$IT"P``BD<'B(1*=0L``(A/!XL6_H)T"P``#[:*=`L``(GX +M*="#Z#3!^`6(A$IT"P``BD8'B(1*=0L``(A.!_Y$)!N*7"0;BW0D<#A>+@^' +M3_W__XUV`(/L#/]T)'SH--G__X/$;%M>7UW#55=64X/L'(M$)#"#P`R+5"0P +M.4(,#X27`@``B40D$(M*#(E,)!0YP0^$A`(``(GVBT0D%(E$)`R+$(E4)!2+ +M2"")3"0(#[9`+DB)!"29B50D!(M,)`R+622+!"3WXXG'BS0D#Z]Q*(G1`?$/ +MKUPD!(TL&8M4)`B#>@0`#X2#````BTH$B4PD"(N9B````+X`````A=L/A*T` +M```Y2P0/A:0```"`>Q0`="D/MD$DN@````!24/]S7/]S6.C\____@\00.>IR +M,W<$.?AV+8![%`!U=8M,)`@/MD$DN@````!24/]S7/]S6.C\____@\00.>IW +M!G)2.?AV3KX!````ZT>-=@"+1"0(BYB(````O@````"%VW0Q.4,$=2R`>Q0` +M=!(Y:UQR&7<%.7M8=A*`>Q0`=10Y:UQW!W(-.7M8=@B^`0```(UV`(7V=&"+ +M5"0,QH*P#P```(M,)`R+402+`8E0!(D"B0F)202#>0@`="2#>0P`=`F+40R+ +M00B)0@B+1"0,BU`(B<&+0`R)`L=!"`````"#[`C_="04_W0D/.C8P/__@\00 +MZ?@```"#?"0T`'01BU0D-(M$)`PY4"`/A>````"+3"0,BT$@BU@(@WL$`@^' +MV@```/:`0`$```%U?\:!L`\```"+402+`8E0!(D"B0F)202#>0@`="2#>0P` +M=`F+40R+00B)0@B+1"0,BU`(B<&+0`R)`L=!"`````"#[`C_="04_W0D/.A+ +MP/__@\00@WL(`'1JB?:+0PB+4"B+4A2)4PC&0%8"@^P,4.C\____@\00@WL( +M`'7>ZT2+1"0,QH"P#P```HM0!(M,)`R+`8E0!(D"BT0D,(/`%(M0!(E(!(D! +MB5$$B0K^@;$/``"#[`Q1Z#C9__^#Q!#K$8UV`(M$)!`Y1"04#X5^_?__@\0< +M6UY?7<.)]E575E.#["S'1"0<`````(M$)$"+0`2)1"0DBT0D0(/`!#M$)"0/ +MA)T!``"0BU0D)(E4)""+2B")3"08#[9"+DB)1"0(F8E4)`R+3"0DBUDDBT0D +M"/?CB<>+="0(#Z]Q*(G1`?$/KUPD#(TL&8M4)!B#>@0`#X2"````BTH$B4PD +M&(N9B````+X`````A=L/A*P````Y2P0/A:,```"`>Q0`="D/MD$DN@````!2 +M4/]S7/]S6.C\____@\00.>IR,W<$.?AV+8![%`!U=(M,)!@/MD$DN@````!2 +M4/]S7/]S6.C\____@\00.>IW!G)1.?AV3;X!````ZT:)]HM$)!B+F(@```"^ +M`````(7;=#$Y0P1U+(![%`!T$CEK7'(9=P4Y>UAV$H![%`!U%#EK7'<'<@TY +M>UAV"+X!````C78`A?9T:8M4)"2+$HE4)"2+3"0@QH&P#P```(M1!(L!B5`$ +MB0*)"8E)!(N!M`\```%$)!R#>0@`="*#>0P`=`F+40R+00B)0@B+3"0@BU$( +MBT$,B0+'00@`````@^P(_W0D*/]T)$SH%K[__X/$$(M$)"2+`(E$)"2+1"1` +M@\`$.T0D)`^%9/[__XM4)$"+4@R)5"0DBT0D0(/`##G0#X2:`0``B?:+3"0D +MB4PD((M!((E$)!0/MD$N2(E$)`B9B50D#(M9)(M$)`CWXXG'BW0D"`^O<2B) +MT0'Q#Z]<)`R-+!F+5"04@WH$``^$@@```(M*!(E,)!2+F8@```"^`````(7; +M#X2L````.4L$#X6C````@'L4`'0I#[9!)+H`````4E#_Q0`=72+3"04#[9!)+H`````4E#_Q0`=!(Y:UQR&7<%.7M8=A*`>Q0`=10Y:UQW!W(-.7M8=@B^`0```(UV`(7V +M=&F+5"0DBQ*)5"0DBTPD(,:!L`\```"+402+`8E0!(D"B0F)202+@;0/```! +M1"0<@WD(`'0B@WD,`'0)BU$,BT$(B4((BTPD((M1"(M!#(D"QT$(`````(/L +M"/]T)"C_="1,Z&*\__^#Q!"+1"0DBP")1"0DBT0D0(/`##M$)"0/A6C^__^+ +M5"1$.50D'`^#B@```(GVBT0D0(/`!(M,)$`Y001T>(M!!(E$)"2)1"0@QH"P +M#P```(M,)"2+402+`8E0!(D"B0F)202+@;0/```!1"0<@WD(`'0B@WD,`'0) +MBU$,BT$(B4((BTPD((M1"(M!#(D"QT$(`````(/L"/]T)"C_="1,Z+V[__^# +MQ!"+1"1$.40D'`^">/___XMT)$"#Q@R+5"1`BU(,B50D)#GR#X3.````B?:+ +M3"0DB4PD((L!B40D)(M!(/:`0`$```$/A*X```"+0`B#>`0"#X>A````LP"` +M>2X`=C^0.%DO=#,/ML/!X`0!R(V0-`X``(.X-`X``/]U$H-Z!/]U#(-Z"/]U +M!H-Z#/]T"K@`````ZPZ-=@!#.%DN=\*X`0```(7`=%&+5"0@QH*P#P```HM, +M)""+402+`8E0!(D"BT0D0(/`%(M0!(E(!(D!B5$$B0K^@;$/``"#[`Q1Z#'4 +M___'1"14`````(/$$#ET)"0/A33___^+1"1$.40D'',1@^P(:@#_="1,Z##X +M__^#Q!"+1"0<@\0L6UY?7<.055=64X/L%&@@!```BT0D+/\PZ/S___^)Q8M0 +M#(/$$(U`##G0='N)]HM$)"`Y0B!U9XG7LP"`>BX`=D"0#[;#P>`$`?B-B#0- +M``"^`````(.X-`T```!U%(-Y!`!U#H-Y"`!U"(-Y#`!T!XGVO@$```"%]G49 +M0SA?+G?!N`````"%P'04N`$```#IF````+@!````Z^N-=@"+$HU%##G0=8>+ +M512-110YT'1VD(M$)"`Y0B!U8XG7LP"`>BX`=D"0#[;#P>`$`?B-B#0-``"^ +M`````(.X-`T```!U%(-Y!`!U#H-Y"`!U"(-Y#`!T!XGVO@$```"%]G460SA? +M+G?!N`````"%P'00N`$```#K%[@!````Z^Z)]HL2C444.=!UB[@`````@\0, +M6UY?7<.)]E.#[`B+1"00BQB`>%8`=03&0%8!@'A6`706@'A6!G00@'A6`W0* +M@'A4`'4$QD!6"X/L#%#H_/___XD<).C\____@\086\.)]E575E.#[%2+;"1L +M:"`$``"+1"1L_S#H_/___XE$)%3'1"0<`````(M4)'"+6C"+0RB+2RR)3"08 +M#[91)$J)5"0L9HM+3&:)3"12BU!TBTAXB50D0(E,)$0/MDARB4PD*`^V4'.) +M5"0D9HM(?F:)3"109HM0?&:)5"1.@\00@WM8`'0/BD-5@^`!#[;`.T0D:'52 +MN`````"#>UP`#X2J`@``@^P,BWPD4(/';%?H_/___XE$)!R)QH/$#/]T)&Q0 +M4_]37(/$$(7`=1V#[`C_="045^C\____N`````"#Q!#I9P(``(MS6+\````` +MBTPD8(M)-(E,)!#'1"0@`````,=$)"0`````D`^W1"0^N@`````#1"0P$U0D +M-(E$)"B)5"0LBT0D$#E$)!@/A3@!``"+5"0D"U0D('1@BT0D*"M$)"")P\'C +M"711@WPD:`!T#XM,)$2+@;0```")10CK%HM,)$2+@;@```"+D;P```")10B) +M50S'100`````@?L`$```#X;0````QT4``!```(/%$('K`!```'6O#[=<)$#! +MXPF)]HL.B<@I^#G87UW#D%93@^P$BU0D$(M:,(MS +M*(!Z5@%T!HI"5HA#5O]##(/L"%+_U8!=!"`>U8&=`J`>U8#=`3&0U8+@^P,4^C\____ +M@\00D(/$!%M>PXGV55=64X/L9(M$)'B+`(E$)%QH(`0``%#H_/___XE$)&"+ +ME"2`````BU(HB50D7(N,)(````"+22R)3"14@\00BUPD($C90: +M-`T``(E4)#@/MY2#;`\```^WM(-N#P``OP````"-=@"#^A]W3XGY#[;!BTPD +M.(T<@8G5N2`````IT3GQ=@*)\8/Y('4+QP/_____ZQ&-=@"X`0```-/@2(GI +MT^`)`[@@````*=`Y\',6C706X+H`````ZP.#ZB!'B?N`^P-VH0^V;"0_B>J) +MZ,'@!(MT)$"-K#`T#@``#[>X+L`````ZP6)]H/K($>)^#P#=J+^1"0_ +MBE0D/XM,)$`XD:T/```/@\+^__^+7"1P]D-5"`^$Y04``(MT)$2+AH@```"% +MP'4)BT8$BX"(````@'@4``^$W`(``(M$)$"*@*P/``"(1"0_#[;`BU0D0&:+ +ME()L#P``9HE4)#)FA=(/A!$!``#!X`2+3"1`C80(-`T``(E$)"R_``````^W +M\K(`@_\?=TH/ML*+3"0LC1R!B?VY(````"GY.?%V`HGQ@_D@=0C'`______K +M#K@!````T^!(B>G3X`D#N"`````I^#GP`$`="-D#0.``"Y`````(.X-`X```!U +M$H-Z!`!U#(-Z"`!U!H-Z#`!T!;D!````A`$BUPD +M0(V$�-``")1"0DOP`````/MULLO@````"0@_\?=TR)\@^VPHM,)"2-%(&) +M_;D@````*?DYV78"B=F#^2!U",<"_____^L.N`$```#3X$B)Z=/@"0*X(``` +M`"GX.=AS%8U<.^"_`````.L#@^\@1HGP/`-VI0^V5"0_B=#!X`2+3"1`C80( +M-`X``(E$)""_``````^W62R^`````(GV@_\?=TR)\@^VPHM,)""-%(&)_;D@ +M````*?DYV78"B=F#^2!U",<"_____^L.N`$```#3X$B)Z=/@"0*X(````"GX +M.=AS%8U<.^"_`````.L#@^\@1HGP/`-VI0^V1"0_BU0D0/^T@MP,``#HA*__ +M_X/$!)#^1"0_BDPD/XM<)$`XBZP/```/AWS^___IZ`(``(M$)$"*@*T/``"( +M1"0_#[;(BU0D0&:+A(IL#P``9@.$BFX/``!FB40D,F8Y0BP/AA@!``")R,'@ +M!(V$$#0-``")1"0<#[=<)#(/MW(L*=ZR`(/['W=*#[;"BTPD'(T\@8G=N2`` +M```IV3GQ=@*)\8/Y('4(QP?_____ZPZX`0```-/@2(GIT^`)![@@````*=@Y +M\',4C70>X+L`````ZP.#ZR!"@/H#=J@/MEPD/XG8P>`$BW0D0(V$,#0.``") +M1"08#[=<)#(/MW8L*=ZR`(/['W=*#[;"BTPD&(T\@8G=N2`````IV3GQ=@*) +M\8/Y('4(QP?_____ZPZX`0```-/@2(GIT^`)![@@````*=@Y\',4C70>X+L` +M````ZP.#ZR!"@/H#=JB+7"1`#[=#+`^W5"0R*=!04@^V1"1'_[2#W`P``.B& +MKO__@\0,_D0D/XI$)#^+5"1`.$(N#X:'`0``B?:*3"0_BUPD0#A++P^$7P$` +M``^VP<'@!`'8C9`T#@``N0````"#N#0.````=1*#>@0`=0R#>@@`=0:#>@P` +M=`6Y`0```(7)#X4D`0``#[9T)#^)\,'@!(M\)$"-A#@T#0``B40D%+\````` +MBT0D0`^W6"R^`````)"#_Q]W3(GR#[;"BTPD%(T4@8G]N2`````I^3G9=@*) +MV8/Y('4(QP+_____ZPZX`0```-/@2(GIT^`)`K@@````*?@YV',5C5P[X+\` +M````ZP.#[R!&B?`\`W:E#[94)#^)T,'@!(M,)$"-A`@T#@``B40D$+\````` +M#[=9++X`````B?:#_Q]W3(GR#[;"BTPD$(T4@8G]N2`````I^3G9=@*)V8/Y +M('4(QP+_____ZPZX`0```-/@2(GIT^`)`K@@````*?@YV',5C5P[X+\````` +MZP.#[R!&B?`\`W:E#[9$)#^+5"1`_[2"W`P``.B4K/__@\0$D/Y$)#^*3"0_ +MBUPD0#A++@^'>_[___]$)$B+="1,#[9&;#M$)$@/CXSX__^+?"1$@+]$`0`` +M`G0.BT0DFP`=#>+3"1(C01)BUPD +M3(M$PR3'@&0/````````@^P(4/]T)%SH2K/__X/$$/]$)$@/MD-L.T0D2'_) +M@^P,_W0D?.BM\___@\00Z:\#``"+="1P]D95`@^$9`,``(M\)$2#?R@`#X56 +M`P``BT0D4`70````B40D#(ML)%"!Q5`!``"Y`````+H@````B>B("$!*=?K' +M1"1(`````(M4)$R`>FP`#X0L`0``BTPD2(T$28M<)$R+1,,DB40D0(G&L0"` +M>"X`=D+7"1`BT,D +MBU,HBW0D3#M6>')D=P4[1G1V78M\)$0/MT +M`0")6"R+5"1\B5`PB7`T4.C\____@\00_D0D/XI,)#^+7"1$.$LD#X=3____ +MZSW'1"1(`````(MT)$R`?FP`="N#[`R+?"14C01_BU0D6/]TPB3HSL+__X/$ +M$$>)?"1(BTPD3`^V06PY^'_5@\1<6UY?7<.)]E575E.#[$R+3"1DBT$HB40D +M1(M1+(E4)$#'1"0T`````&:+6B9FB5PD/F:!^X``=@=FQT0D/H``9HM$)#YF +MP>@##[?0A=)U`K(!BT0D0`^V0"2)1"0H@^@#T?@!1"0H#Z]4)"B)5"0H@'E4 +M`74UBU0D1,9";`&#PB2)5"0TBTPD:(M!$(M1%(M<)#2)0P2)4PAFBT0D/F:) +M0PR+1"0HZ)U8M<)&@#>Q`3:Q1FBT0D/D@A^&:+5"0^ +M9BG"9HE4)#J+3"0\9CG*=@5FB4PD.HM,)!@A^8M<)!PAZX-\)"P`#X22```` +MQT0D+`````!FBU0D/HM$)$!F.5`F=D.^`````(M4)$0/MD)LB40D%(/X`'XM +MD(T$=HM4)$2-1,(DB40D-(M0"#':B50D!(M0!#'*BT0D!`G0=#]&.70D%'_4 +MBU0D1(I";`^V\$"(0FR-!':-1,(DB40D-(E(!(E8"&:+5"0^9HE0#,9`#A#& +M0`\`BT0D*`%$)"2*5"0SBT0D-#A0#G89B%`.B?AF*S__X/$ +M$.LEBT(HQT`8L)X!`(E0',=`(`````"#[`B#P!A0_S+H_/___X/$$(/$#,.- +M=@!55U93@^P4BVPD*&@@!```_W4`Z/S___^)1"08BWTHO@````"#Q!"`?VP` +M=#6-=@"-'':-'-^#[`R-4R`/MT(04/]R#/]R"/]U+/]T)"3HJ:;__XE#)(/$ +M($8/MD=L.?!_SH/L#%7H40,``(/$'%M>7UW#D%575E.#[`R^`````(M$)"R` +M>&P`#X21````C01VBU0D+(U$PB2)1"0(BUPD)(M3"`^V2R6+0`33Z"7_`P`` +MBQ*+'(*%VW0QBT0D"(MH"(MX!(UV`(M#)(M3*(GI,=$Q^`G!=`F+6PR%VW7I +MZPN+5"0(B1J%VW4CD(7V?A1.C01VBUPD+,=$PR0`````A?9_[+C_____Z98` +M``!&BU0D+`^V0FPY\`^/;____[X`````BUPD+(![;`!T88GVC01VBU0D+(M< +MPB2`N[`/```!=1C&@[`/````BU,$BP.)4`2)`HD;B5L$ZR"`N[`/```#=1?& +M@[`/````BU,$BP.)4`2)`HD;B5L$D/Z#L0\``$:+7"0L#[9#;#GP?Z&#[`S_ +M="0TZ"$"``"X`````(/$$)"#Q`Q;7E]=PU575E.#[&2+;"1XBT4`B40D)&@@ +M!```4.C\____B40D*(M5+(E4)"2+6@B#Q!"`?50$=4R+12B+4PB)4!2):PB# +M[`S_="0@Z`#I__^#Q!"%P'08@^P(_W0D'/]T)"3H">'__X/$$.F=`0``@^P, +M_W0D(.C9J/__@\00Z8D!``"0@'U4``^%S@```/9%509U&,9%5@&#[`Q5Z/S_ +M__^#Q!#I8P$``(UV`/9%501T*H-["`!T)(M#"(M0*(M2%(E3",9`5@&#[`Q0 +MZ/S___^#Q!"#>P@`==Z)]HM=1(MU2(E<)#B)="0\9HM%3&:)1"1`BU0D%(I" +M)$B(1"1"#[9*)0^M\]/N]L$@=`>)\[X`````B5PD((ET)"0/ML"Z`````%)0 +M5E/H_/___X/$$(E$)"B)5"0LBUPD%`^V2R4/I<+3X/;!('0'B<*X`````(E$ +M)#")5"0TZV.0BT0D%&:#>"H`=!7&158&@^P,5>C\____@\00Z9````"+5"04 +M#[=")HG!NP````"+143WX8E$)`B)5"0,BWU(#Z_YB=8!_HM51`^OTP'6B70D +M#(M$)`B+5"0,B40D,(E4)#2+72B#[`2-1"0D4%7_="0HZ,'X__^)`U-5_W0D +M+/]T)#3HZ/S__X/$((7`="''0P1XK@$`B6L(QT,,`````(/L"%/_="0HZ/S_ +M__^#Q!"#Q%Q;7E]=PU575E.#[!2+1"0HBP")1"00:"`$``!0Z/S___^)PHM$ +M)#"+>"B^`````(/$$(!_;`!T9I"-!':+3,-6"2+2"3&@;`/```"BU$$BP&)4`2)`HM%!(E-!(DIB4$$ +MB0B+1"0@B8%D#P``BD,.B(&L#P``BD,/B(&M#P``#[:1K`\```^VP#G0?'H/ +MMH&L#P``.=!U'6:+0Q!FB821;`\``&:+0Q)FB821;@\``.M)C78`#[:!K0\` +M`#G0=1UFBT,49HF$D6P/``!FBT,69HF$D6X/``#K(8UV``^V02\YT'069L>$ +MD6P/`````&:+02QFB821;@\``$(/MH&M#P``.=!]AD8/MD=L.?`/CR7___^+ +M5"0@]D)5!'07@^P$:"RN`0!2_W0D%.C-HO__@\00ZRF+5"0@BT(HQT`8L)X! +M`(E0',=`(`````"#[`B#P!A0_S+H_/___X/$$+@`````@\0,6UY?7<.)]E.# +M[`B+1"00BU@(@WL(`'0EC78`BT,(BU`HBU(4B5,(QD!6#8/L#%#H_/___X/$ +M$(-["`!UWH/$"%O#D%.#[!"+7"08:"`$``#_,^C\____BUL(@\!4B00DZ/S_ +M__^)`X/$$+C_____@SL`=!JY`````+H`$```BP.-=@"("$!*=?JX`````(/$ +M"%O#55=64X/L%(ML)"AH(`0``/]U`.C\____B<:+10B#Q!"#.``/A)````"_ +M`````(GVBT4(BP"+#+B%R717@+FP#P```W4;QH&P#P```(M1!(L!B5`$B0*) +M"8E)!.L9C78`QH&P#P```(M1!(L!B5`$B0*)"8E)!,=!"`````"+60R#[`A1 +M5NCBGO__B=F#Q!"%VW6I1X'__P,``':4@^P(BT4(_S"-1E10Z/S___^+10C' +M``````"#Q!"#Q`Q;7E]=PXUV`%=64XMT)!"Y`````+L`````@'XD`'0EOP$` +M```/ME8DBT2.+(7`=`GV@$`!```!=0:)^-/@"<-!. +MPXGV5E.#[`R+7"08:"`$``!3Z/S___^)QHD8C4`$B48$B48(@\0,C48,B48, +MB480C484B484B488C48PXGV4X/L$&@@!```_W0D'.C\____B<.# +MQ`C_L,````"-@)P```!0Z/S_____L[P```#_L[@```#_L[0```"-@X0```!0 +MZ/S___^#Q"A;PX/L&&@@!```Z/S___^X`````(/$',.0D(/L%&A@!```_W0D +M'.C\____:@%H(`$``/]T)"Q0Z/S___^#Q"S#B?93@^P0:&`$``#_="0)TX-^7`!T$X/L +M!/]T)"Q25O]67(/$$(7`=0RX`````.G6````B?:`?0G_#X2P````#[=-"L'A +M"8LS.?%V.)`/MD4(BU0D(#E"-'4;BP.)!XM#!(E'!(M#"(E'"(M##(E'#(/' +M$(GV*?&#PQ"+,_],)`@Y\7?)#[9%"(M4)"`Y0C1U'(M#"(M3#(E'"(E7#(D/ +MQT<$`0```+@!````ZUPY\7,WB`$@^P$ +M4%-7Z/S___^X`0```(/$$(/$#%M>7UW#5E.#[`2+5"00BUHPBW,HBTHTN/[_ +M___3P&8A1@Z`>E8!=`:*0E:(0U;_0PR#[`A2_W,$Z/S___^+0P3_2`B#Q!!F +M@WX.`'46@'M6`'4$QD-6`8/L#%/H_/___X/$$(/$!%M>PXM,)`R+1"0(BU`H +MBD0D!#A""'449HM""F:)04R+`HM2!(E!1(E12,-FBT(,9HE!3,=!1`````#' +M04@`````PY!55U93@^P,BVPD((M$)"2+4"B)5"0(BUA$BW!(9HM`3&:)1"0& +MQP0D`````+D`````@'TD``^$M@```)"+?(TL.7<0=P\/@HT````Y7PP/AH0` +M``"+1"0(B1B)<`2(2`BX`0```-/@BU0D"&8)0@X/MT0D!KH``````=@1\CM7 +M$')!=P4[1PQV.L<$)`$```"-00&+5"0(B$()08L$)-/@9@E"#F:+1PQF*=AF +MB4(*9HM4)`9F*<*)T(M4)`AFB4(,ZRZ+1"0(QD`)_V:+5"0&9HE0"NL;B?:+ +M1PRZ`````"G#&=9!#[9%)#G(#X=+____BP0D@\0,6UY?7<-55U93@^P,BT0D +M((M`+(E$)`B+5"0@BU(HB50D!(M,)""`>50$#X6]````9L="#@``O0````"` +M>"0`#X9\`0``B>@/MOB+5"0(BW2Z+(7V='_VAD`!```!=':X`0```(GYT^"+ +M5"0$9@E"#HM,)"#_20R+003_0`B#[`S_<03H_/___XG#BU0D,(L"B0.+0@2) +M0P2+0CB)0SB#Q`2)S1345?H +M(?W__U/H_/___X/$$$6)Z(M4)`@X0B0/AW3___^#Q`Q;7E]=PX/L&&A@!``` +MZ/S___^X`````(/$',,```````````````````````````````````````!2 +M;V-K971204E$(#(S,G@@4T%402!#;VYTT@``I](``+73``!(U```=](` +M`-#4``#1S0``WLT``&S.``#WX0``/.(``'WB``"^X@``_>(``,/K``#JZP`` +MZNL``.KK``#JZP``ZNL``.KK``#JZP``ZNL``.KK``#JZP``ZNL``.KK``#J +MZP``T.L``-WK``#JZP``ZNL``.KK``#JZP``ZNL``.KK``#JZP``ZNL``,/K +M``#0ZP``W>L``"/L``!#[```0^P``$/L``!#[```0^P``$/L``!#[```0^P` +M`$/L``!#[```0^P``$/L``!#[```-^P``"WL``!#[```0^P``$/L``!#[``` +M0^P``$/L``!#[```0^P``"/L```W[```+>P```0V`0##-@$`!#8!`*0V`0"D +M-@$`#VP!`,)K`0#":P$`T6L!`.-K`0#U:P$`!VP!`/]L`0"R;`$`LFP!`,%L +M`0#3;`$`Y6P!`/=L`0!(:6=H4&]I;G0@5&5C:&YO;&]G:65S+"!);F,N`'-T +M87)T(&-H86YN96P@6R5D+"5D70!F86EL('1O('-T87)T(&-H86YN96P@6R5D +M+"5D70!S>#4P.'@`9&5V:6-E(&1I0`````#$2`C``````$!``````````````,1(B,``````0$````````` +M`````@``````````````````````````````40`````````B````%`$``/0! +M``!P`@``Z`(``/0$``!X!0``!````+````"L!@``>`(``,@5``!@%@``@!8` +M`)@C``!,&0``7!@````;``#D)```2",``&0C``#,)```+"L``-@C```(+``` +M&"P``"@L``!0!```@`(```````````````````$````````````````````` +M`````````````@``(`(``$`"``!@`@``@`(``*`"``#``@``X`(`_P`````` +M`````````````````````````````````````````0```!@````````````` +M```````PD0``!'X``+Q\``````````````````!8?```@'X````````````` +M`/\``$3[``!<^P```?\``)#[``"H^P```O\``.3[``#\^P```_\``*3\``"\ +M_```!/\```C]```L_0``!?\``&S]``"H_0``!O\``.@``0!D`0$`!_\``*0$ +M`0!H!0$`"O\``*`%`0"X!0$`"_\``/P%`0!4!@$`#/\``-0+`0!`#`$`#?\` +M`'@,`0#D#`$`#O\``!P-`0#H#0$`#_\``"`.`0",#@$`$/\``,0.`0`X#P$` +M$?\``"P0`0"<$`$`$O\``-00`0#L$`$`$_\``"01`0`\$0$`&/\``(`1`0`< +M$@$`&?\``(@&`0#@!@$`&O\``!0'`0!L!P$`'?\``$`2`0"8$@$`'O\``.`2 +M`0!<$P$`'_\``%04`0#0%`$`(/\```0#`0"``P$`(?\```S^``!(_@``(O\` +M`(0/`0#T#P$`(_\``*`'`0#X!P$`)/\``"@(`0"`"`$`)?\``+`(`0`("0$` +M*?\``+@#`0!L!`$`*O\``#@)`0#$"0$`*_\```@5`0!8%0$`+/\``$S_``"L +M_P``+?\``"0``0"P``$`+O\``*S^``#H_@``+_\``$3\``!<_```9/\``)`5 +M`0"T%0$`,/\``'06`0`4%P$`9O\``"P"`0!H`@$`9_\``)P!`0"T`0$`____ +M_P``````````````````````````!``````````````````````````````` +M-#P!`*P[`0````````````````````````````````````````````4!```< +M```````````````8````W#P!`)Q``0``````!#T!`"@]`0`````````````` +M```````````````````&``$````````````$````!``````````P10$`;$,! +M````````````````````````````````````````````"`$!`7`#```````` +M#````(`````,M@$`)+`!`+RU`0"\M@$`6+6UT86(`+G-T`````0`````````````` +M0,4!`'4"``````````````$`````````$0````,``````````````+7'`0!G +M```````````````!``````````$````"``````````````!,R@$`$`P```T` +M``!I````!````!`````)`````P``````````````7-8!`*,/```````````` +M``$```````````````````````````````````````````````,``0`````` +M```````````#``(``````````````````P`#``````````````````,`!``` +M```````````````#``4``````````````````P`&``````````````````,` +M!P`````````````````#``@``````````````````P`)```````````````` +M``,`"@`````````````````#``L``````````````````P`,```````````` +M``````,`#0`!````#%D``#<````"``$`(````$19``!#`````@`!`#L```#H +M50``%`````(``0!(````+%@``-\````"``$`9@```'!E``!2`@```@`!`',` +M``#(````!`````$`!P"&````+%H``+D````"``$`OP```"A.```_`````@`! +M`-<```#H6@``-@0```(``0#M````8$D``%(````"``$`!`$``+!7``!\```` +M`@`!`"$!``!(20``"P````(``0`S`0``,$D``!<````"``$`20$``$QB```H +M`````@`!`%$!````````(`````$``P!<`0``;%4``'P````"``$`:P$``*1C +M```_`````@`!`'@!``!H1@``QP(```(``0"*`0``X%```'4"```"``$`J`$` +M`+A4``!+`````@`!`,0!``"\5@``*P````(``0#?`0``R$H``+H````"``$` +M]@$``+1,``!'`````@`!``X"``#T30``,0````(``0`G`@``5$D```L````" +M``$`.@(``.Q@``"7`````@`!`$,"```H1```'P````(``0!8`@``:$X```X! +M```"``$`;P(``'!3```6`````@`!`(P"```$8P``G@````(``0":`@``>$\` +M`&4!```"``$`K0(``(1A``"7`````@`!`+<"``!H30``C`````(``0#1`@`` +M#&H``+`````"``$`X@(```15``!$`````@`!`/\"``!84P``%P````(``0`: +M`P``;$P``$4````"``$`,0,``#!4``"%`````@`!`%`#```<8@``,`````(` +M`0!7`P``M$D``$4````"``$`=@,``"0M``!U`````@`!`(T#``!(30``'@`` +M``(``0"D`P``.&4``#8````"``$`L@,``,1G``"W`````@`!`,8#``#,7P`` +M/`````(``0#5`P``A$L``.4````"``$`Z@,``"`.``"H!P```@`!`/D#``!P +M9```/`````(``0`/!```2$0``!\````"``$`)@0``)!6```K`````@`!`$`$ +M``"(60``H@````(``0!E!```_$P``$L````"``$`>00``.!H``#V`````@`! +M`)4$``!(50``(P````(``0"U!```_%4``)$````"``$`R@0``%2+```O!``` +M`@`!`.0$``#$*`$`@@8```(``0#T!```*`````0````!``D`!`4``*R&```I +M`````@`!`!D%``!T.0$`6P````(``0`Q!0``2,T``%(````"``$`004``(0X +M`0#N`````@`!`%(%``"```$0$```(``0#-!0``Q)L``!\#```" +M``$`Y04``#!M```A`````@`!`/D%``!`?0``6P````(``0`.!@``R!\!`!,# +M```"``$`%@8``&`W`0",`````@`!`"4&``!$A0``:`$```(``0`Y!@``^(D` +M`&0````"``$`1P8``.A_``!K`````@`!`%P&``"0@P``P``*0```!(``0`-"```Z#D!`&@````2``$`)P@``)QK```1```` +M$@`!`#\(```8<```10```!(``0!7"``````````````0````"0``$#(!`)H````2``$` +M.0D`````````````$````$\)``"8=0``2@```!(``0!F"0``8)$``%$````2 +M``$`@@D`````````````$````)<)`````````````!````"J"0`````````` +M```0````OPD``%@[`0!1````$@`!`-4)``"P'P$`%0```!(``0#O"0```'H` +M`(,````2``$`!0H``*2W`0`6````$@`!`!X*`````````````!`````H"@`` +MU!L!`&<````2``$`0`H`````````````$````%@*``!\=P``0@```!(``0!L +M"@`````````````0````=@H``"0````$````$0`)`(8*```L>P``E````!(` +M`0"?"@```'<``'P````2``$`L0H``#!(`0`6````$@`!`,H*```````````` +M`!````#>"@``H!@!``L````2``$`]PH```1M```I````$@`!`"8+```````` +M`````!`````^"P``;!@!`#0````2``$`3PL`````````````$````&,+```` +M`````````!````!W"P`````````````0````BPL``"1V```?````$@`!`*@+ +M``#$/`$`%@```!(``0#%"P``/!P!`%P````2``$`VPL`````````````$``` +M`/(+``"L,@$`<0```!(``0`.#```W"(!`$,````2``$`(PP````````````` +M$````#0,`````````````!````!,#```;#H!`"(````2``$`9`P````````` +M````$````'@,``"8>@``$@```!(``0"5#```2&P``+L````2``$`L0P``-!J +M```+````$@`!`,H,``"@)P$`(@$``!(``0#K#```P'<``"P!```2``$``PT` +M`-QJ``"7````$@`!`!H-``#4>@``*P```!(``0`T#0`````````````0```` +M3`T``'1K```H````$@`!`&4-`````````````!````!Z#0``:'4``#`````2 +M``$`D0T``-`Y`0`8````$@`!`+`-``"\!L!`%L````2``$`B@X`````````````$````*8.```@(P$`8P```!(``0"\ +M#@````$```$````1``<`V0X``(QT``#;````$@`!`/$.``"0'P$`'@```!(` +M`0`'#P``Y'4``#X````2``$`)P\`````````````$````#\/``!L<@``3@$` +M`!(``0!=#P``O&H``!,````2``$`A0\``.PF`0"S````$@`!``!M=E-T;W)A +M9V5$979!5$%3;V9T4F5S971$979I8V4`;793=&]R86=E1&5V051!4V5T1F5A +M='5R97,`96YD2&%R9%)E%]I;V-T;`!M=D%U=&]&;'5S:$]N17)R;W(`=V%I=%=H:6QE +M4W1O5\X.%-8-C!8,5]3871A7T9%5!O=V5R3VX`97AE8W5T94YO;E5$34%#;VUM +M86YD`&UV4V%T84-O;F9I9W5R94-H86YN96P`;793=&]R86=E1&5V051!261L +M94EM;65D:6%T90!M=D5N86)L94%U=&]&;'5S:`!M=E-A=&%3:'5T9&]W;D%D +M87!T97(`0F5E<$]F9@!P5!A4%F=&5R2%)E#4P.'A? +M9FQA%]R=6Y?9G-M`&-H96-K7W!R;W1E8W1?8VER8W5I=`!C;&5A +M6YC +M7V-H86YG961?87)R87ES`&QD;5]Q=65U95]E=F5N=`!T5]S=&%T90!C86QC7W)E8G5I;&1?<')O9W)E'1?5]D97-C0!#:&5C:U-U;0!C;VUP87)E7W-L;W1?6YC7V1I%]I;FET7VUO9'5L +M95]J8F]D`')R,C,R>%]D;6%P;V]L7V=E=%]P86=E`')R,C,R>%]O%]L9&U?9V5T7VUE;5]I +M;F9O`')R,C,R>%]L9&U?%]D;6%P;V]L7VUA +M:V5?;W)D97(`'0`%]L9&U?:6YT<@!M96UC<'D``!R%]L9&U?861D7W-P87)E7W1O7V%R%]L9&U?5]I;F9O`')R,C,R>%]O%]I;FET7VUO9'5L95]V9&5V7W)A=P!R5]R96<`%]L9&U? +M<75E=65?=F)U%]I +M;FET7VUO9'5L95]R86ED-0!?7W5M;V1D:3,`%]L9&U?%]F%]L9&U?9G)E95]C;61S7W1O +M7VQI%]L9&U? +M=6YR96=I%]L9&U?9V5T7W9B=7-?0!R%]H:6U?:&%N9&QE7W1O7W9B=7,`%]O%]L9&U?9FEN9%]T87)G970` +M%]L9&U?:6YI +M=&EA;&EZ95]V8G5S7V%S>6YC`')R,C,R>%]O5]T:6UE`')R,C,R +M>%]O5]R96UO=F5?9&5V:6-E`')R,C,R>%]L9&U?86QL;V-?8VUD +M%]O%]L9&U?9FEN:7-H7V-M9`!R%]L9&U?%]L +M9&U?<75E=65?=&%S:P!R%]F%]L9&U?=&EM97)?<')O +M8F5?9&5V:6-E`')R,C,R>%]L9&U?"P```@\``'0+```"#@``E@L```*7``"@"P```B,``*H+ +M```"#@``OPL```(C``!S#````CL``)(,```",@``LPP```(>``#I#0```08` +M`.X-```"GP``^@T```*G```(#@```C0``!0.```"'@``:PX```$#``!_#@`` +M`K```+`.```!/```Q@X```*.``#B#@```C4```4/```!!0``"@\```*?```7 +M#P```A<``'`/```!/```@P\```*.``#`#P```08``,4/```"GP``"A````$\ +M```@$````HX``#<0```"'0``1D```)!``#"&0`` +M`CP``/<9```"IP``0!H```*]``"F&@```0$``+X:```"A0``C!L```(O``#E +M&P```0$``/@;```"J0```!P```*.```8'````JD``"`<```"<```+AP```$! +M```^'````JD``$8<```"C@``;!P```)"``"J'@```0$``,P>```"+```#A\` +M``$!```]'P```JH``&P@```"+```LR````(R```6(0```KT``%0A```!`0`` +M%"(```(L``!C(@```C<``!`C```!`0``)R,```(L``!0(P```B```'2T```*7``"E,````8(``+,P```!@@``QS````&"``#;,``` +M`8(``.\P```!@@``"S$```&"```C,0```8(``#8Q```!@@``23$```&"``!< +M,0```8(``'@Q```!@@``AS$```&"``"\,0```8(``$8T```!@@``H#0```(U +M```S-0```1,``/PU```!@@``"#8```&"```@.````8(``*8X```!@@``4#D` +M``$3``#2.0```8(``-XY```"EP``23H```&"``!>.@```8(``&LZ```"EP`` +M?#P```&"``"[/````8(``-$\```!@@``_#P```&"``!Y/0```8(``(4]```! +M@@``F3T```*7``"N/0```8(``!@^```!@@``!C\```&"``!B/P```8(``'X_ +M```!@@``U$$```&"```)0@```8(``"="```!@@``7$(```&"``#N0@```8(` +M`$E#```!@@``6D,```*7``#X0P```CH``#9$```!@@``5D0```&"``"+1``` +M`8(``%]%```"/P``@44```&"``";10```D0``+=%```!@@``3D8```(H``![ +M1P```8(``(='```!@@``\T<```&"```R2````8(``!M)```"EP``2DD```$3 +M``!620```1,``.9)```!@@``2TH```*7``!A2@```I<``'=*```!@@``EDH` +M``*7```F2P```C8``#Y+```!@@``RTL```&"``"Y30```8(``!!.```!@@`` +M0DX```&"``":3@```8(``,-.```"-0``#D\```&"```:3P```8(``"9/```! +M@@``,D\```&"```^3P```8(``$I/```!@@``5D\```&"``!B3P```8(``/E0 +M```!@@``0U$```&"``!G40```B@``"52```!@@``3U(```&"``!`4P```CX` +M`,I3```"EP``!E0```*7``!A5````8(``(Q4```!@@``Y%0```&"```E50`` +M`8(``%95```",```EU4```&"``"A50```I<``+)5```!@@``T54```*7```Y +M5@```8(``&%6```"EP``<%8```(U``"V5@```8(``.)6```!@@``&U<```&" +M```I5P```I<``#A7```!@@``55<```(U``!I5P```I<``(97```"1```DE<` +M``&"``#?5P```B(``/M7```"1```"%@```(_```:6````C\``(%8```"0``` +MME@```(/```X60```CH``']9```"0```%EH```(6``"&6@```8(``)I:```! +M@@``S%H```*7```*7````C\``%Y<```"/P``H%P```)$``"M7````C\``,!< +M```"/P``Y%P```)$``#Q7````C\```I=```!@@``(5T```)$```N70```C\` +M`&]=```!@@``E%T```(4``"A70```C\``-1=```"1```&UX```)$```^7@`` +M`8(``(!>```"1```DEX```(_``"R7@```8(``,1>```"EP``UEX```(_``#F +M7@```C\``/9>```"/P``!E\```(_``!#7P```8(``$U?```"EP``4U\```(_ +M``!@7P```I<``&Q?```"EP``>%\```*7``"$7P```I<``)A?```!@@``L5\` +M``*7``#P7P```I<```]@```!"0``)6````$)```W8````8(``%-@```!@@`` +M9&````$)``!S8````8(``(5@```!"0``E6````$)``"U8````0D``,5@```! +M"0``U&````&"``#Y8````8(``!YA```!@@``*6$```$)```Y80```0D``$AA +M```!"0``6&$```$)``!Y80```8(``)%A```!@@``MF$```&"``#!80```0D` +M`-%A```!"0``X&$```$)``#P80```0D``!%B```!@@``-F(```(G``!$8@`` +M`B<``%UB```"+0``;&(```(M``"#8@```0D``)-B```!"0``KF(```&"``#% +M8@```0D``-]B```"EP``ZF(```&"```N8P```0D``$%C```!"0``56,```&" +M``!Z8P```8(``)AC```!@@``VV,```(K``#W8P```8(``!QD```!@@``160` +M``$)``!A9````8(``()D```!"0``AF0```$'``##9````8(``.)D```"EP`` +M664```&"``!J9@```C@```MG```!@@``/F<```&"``!19P```8(``.)G```! +M@@``!V@```&"```J:````8(``&UH```!@@``D&D```$!``"K:0```BP``'IJ +M```!`0``D&H```(L``#!:@```8T``,IJ```!C0``T6H```%0``#E:@```5$` +M`.]J```"I0``!FL```%1```/:P```5$``(9K```!40``46P```%1``#,;``` +M`F,```EM```!1P``$6T```%'```<;0```5```"AM```!4```-6T```%'``"? +M;0```4<``!=N```"H```+&X```*@``!`;@```4<``&9N```"H```>FX```*@ +M``"*;@```J```+!N```">```P&X```*@``#);@```4<```9O```"5```)&\` +M``*B```_;P```0D``$5O```!"0``YV\```*6``!4<````I8``.QP```"K0`` +M4W$```)>``!Q<0```I8``(5Q```"E@``V7$```)=``#\<0```DT``#5R```" +M3@``JW(```$)``"_<@```;D``,QR```!7P``YG(```$)``#L<@```0D``/!R +M```!O@``]G(```$)``#^<@```0D```1S```"C@``)G,```*B```S````J(``*QX```!3```PW@```*[``#A>````F8``'9Y```"0```J(``.=Y```"E@``#'H```)6``!3>@```E8``-EZ```! +M40``.'L```*P``"R>P```FD``,A[```"L```*WP```)6``!+?````FD``&-\ +M```!!P``:GP```)R``"(?````I8``*]\```"E@``TWP```)F``#E?````J,` +M`"I]```"NP``7'T```)>``!N?0```F8``(Y]```"E@``L7T```*6``"W?0`` +M`54``+Y]```"4@``T7T```$'``#Z?0```K@``$A^```"N```5WX```$!``"B +M?@```0$``/Y^```"2```$W\```*C```G?P```G,``*B````!!P``L(````)R +M``"Y@````I8``!N!```!!P``(X$```)R```L@0```J(``(&!```!!P``B8$` +M``)R``"2@0```J(``-J!```!!P``XH$```)R``#K@0```J(``(V"```!!P`` +ME8(```)R``">@@```J(```B#```!!P``$(,```)R```9@P```J(``+"#```! +M!P``MX,```)R``#`@P```I8``-6#```!!P``W(,```)R``#E@P```I8``$B$ +M```"6P``E80```);```:A0```EL``#2%```"6P``.88```)[``"!A@```G,` +M`)N&```"6@``Q88```)S``#+A@```EH``.*&```!!P``Z88```)R``#RA@`` +M`J(```2'```"+```"9@``SXL```)B``#0C````GL``%"-```"6@``9(T` +M``)S``"DC0```EP``,^-```"8@``+Y````)[``!RD````F,``!^1```"10`` +M19$```$'``!.D0```G(``%>1```"H```9I$```$'``!PD0```8T``'V1```! +M!P``AY$```$'``"5D0```0<``)Z1```!!P``HY$```*3``"\D0```5$``":2 +M```";```09(```&-``"BD@```J$``,&2```"A```VI(```%1``"[DP```5$` +M`"Z4```!40``O9<```%1``!DF````0,``.::```"C```<)P```*,``#LG``` +M`HP``&Z=```"C```VIT```*,``!0G@```HP``+J>```"C```.Y\```)/```F +MH````D\``%^A```"3P``+J(```)3``"UHP```G8``'*E```"=@``*:8```)H +M``#=I@```F@``(VG```":```]J<```*<``#XJ0```EP```"M```":```?JT` +M``)H``#SK0```F@``'"N```":```\*X```)H``!UKP```0,``,*R```"2``` +M\;(```)@``!$LP```EP``%"S```"2```:[,```)E``"#LP```G,``+:S```" +M>@``%;0```*=```O@```0,``$:_```"5``` +ME[\```)4``#FOP```F@``$S````":```O,````*,``#SP````HP``+?#```" +M>P``&<0```)H``!BQ````E@``(K$```"2```GL0```)S```FQ0```F@``%_% +M```"6```R,4```)[``"]Q@```HP``!7'```"2P``-L@```*W``!3R````J(` +M`&_(```";0``(,D```*,``!-R0```HP``/C)```"5P``+LP```)F``"ES````0$``,#,```"E```SLP` +M``)F``#PS````0D``/O,```!"0``"LT```$)```@``GM<```$!``"WUP```H4` +M`//7```!`0``#-@```*%``![V````G8``.?8```!`0```-D```*%```BV0`` +M`F@``%#9```!`0``:=D```*%``"3V0```F@``*C:```"E@``Y]H```$!```` +MVP```H4``!K;```":```5=L```)E``!?VP```0$``'C;```"A0``E-L```)H +M``"```" +MA0``$MX```)H``#EWP```F4``._?```!`0``".````*%```FX````F@``"_@ +M```"G0``-N````$!``!/X````H4``'7@```":```@.````)Z``#KX````0$` +M``[A```"NP``(N$```$!```[X0```H4``&WA```!40``M>$```)H``#SX0`` +M`0,``'#C```"90``)N0```)V``!;Y````K(``'/D```!`0``?^0```*;``#\ +MY````IT``!KE```!`0``.^4```*%``!OY0```EX``(WE```"E@``H>4```*6 +M``"]Y0```0$``.#E```"NP``1N8```$!``!-Y@```E(``(/F```!`0``IN8` +M``*[``#VY@```ET``"#G```"30``6><```).```5Z````K,``#_H```"LP`` +M5N@```*C``!WZ````0$``)#H```"A0``M>@```)H``!UZ0```F4``('I```" +M;0``C>D```)]``#AZ0```0$``/KI```"A0``(NH```*;``"&Z@```0$``)_J +M```"A0``M^H```*B``#.Z@```0$``.?J```"A0```.L```*R```;ZP```I8` +M`+_K```!`P``]NL```*6```"[````GH``!_L```!`P``3^P```*6``!;[``` +M`GH``*3L```!`0``ONP```$!``#>[````G$``"/M```!`0``,NT```*;```3 +M[P```I8``"SO```"3@``0N\```$!``!>[P```KL``,[O```!`0``Y.\```*% +M``#O[P```F8```3P```!`0``&O````*%```[\````GH``$+P```!`0``7/`` +M``*[``"6\````K<``*+P```"L@``L_````$!``"[\````IL``.#Q```"B0`` +M[_$```)Z```F\@```HD``#7R```">@``//(```$!``!5\@```H4``''R```" +MFP``R?(```$!``#G\@```KL``$#S```"B0``3/,```)Z``!:\P```0$``'/S +M```"A0``>O0```*;``#L]````K(``!SU```"B0``0O4```$!``!C]0```H4` +M`*[V```!`0``M?8```$!``"^]@```IL``!;W```!`0``-/<```)Q```.^``` +M`K$```SY```">@``=/D```*6``"5^0```F```*;Y```!`0``O_D```*%``#0 +M^0```F@``/KY```"L@``(OH```$!```J^@```IL``'#Z```":```O/H```)H +M``#%^@```J,``/KZ```":```'/L```$!```U^P```H4``&_[```!`0``A?L` +M``*%``"^^P```0$``-?[```"A0``(OP```$!```[_````H4``(+\```!`0`` +MF_P```*%``#E_````0$``/[\```"A0``2_T```$!``!A_0```H4``)+]```" +M:```Y?T```$!``#^_0```H4``#+^```":```A?X```$!``">_@```H4``-+^ +M```":```)?\```$!```^_P```H4``'/_```":```Q/\```)H``#^_P```0$` +M`!<``0`"A0``?0`!``)H``"*``$``F@``,```0`!`0``X``!``*[```W`0$` +M`F@``$0!`0`":```=`$!``$!``"4`0$``KL```8"`0`!`0``'P(!``*%``#< +M`@$``0$``/4"`0`"A0``4P,!``)H``!@`P$``F@``)`#`0`!`0``L`,!``*[ +M``#F`P$``F@``/P#`0`":```/@0!``)H``!+!`$``F@``'P$`0`!`0``G`0! +M``*[``#.!`$``F@``.0$`0`":```304!``*Q``!X!0$``0$``)@%`0`"NP`` +MV04!``$!``#R!0$``H4``"(&`0`":```.`8!``)H``!R!@$``F@``*X&`0`" +M:```Q`8!``)H``#^!@$``F@``#H'`0`":```4`60$``I8``%Y9`0`"N```P5D!``)_ +M``#S60$``0$```-:`0`"FP``N%L!``$'``#!6P$``G(``"%<`0`!`0``0%P! +M``*%``!;7`$``0<``&%<`0`"<@``\UT!``$!```*7@$``G$``$E?`0`!`0`` +MT5\!``*$``#V7P$``0$``!!@`0`"A0``[F$!``$'``#T80$``G(``"AB`0`" +ME@``5V(!``*6``!C8P$``G\``+)C`0`"?P``$60!``$!```;9`$``0$``"1D +M`0`"FP``%FD!``)V``"E:P$``0<``*MK`0`"<@``OFL!``$#``"5;`$``0<` +M`)ML`0`"<@``KFP!``$#``!Y;0$``0<``(%M`0`"<@``3)(!``*,``!YD@$` +M`HP``.&3`0`"N````94!``*,```NE0$``HP``+66`0`"C```XI8!``*,``!X +MF0$``0<``(.9`0`"<@``U9H!``*X``#=F@$``H0``/2:`0`!!P``_YH!``)R +M``"5FP$``J(``+N;`0`"E@``)YX!``*6``!BG@$``I8``*">`0`"N```PIX! +M``$'``#(G@$``G(``*2I`0`"A```[ZD!``)_```UJ@$``0$``#RJ`0`!`0`` +M3ZH!``*;``!PJP$``H@``)6K`0`"B```4JX!``$!``!JK@$``H4``(2N`0`! +M!P``C*X!``)R```WL`$``0<``#VP`0`"<@``O;`!``*X``#ML`$``K@``$FQ +M`0`"C```D+$!``*X```.L@$``0$``"6R`0`"<0``1K(!``$'``!,L@$``G(` +M`,FS`0`!`0``YK,!``$!``#^LP$``H4``#VT`0`"N```6;0!``$'``!@M`$` +M`G(``&ZT`0`"H@``K+0!``$'``"TM`$``G(``$FU`0`"E@``K[4!``+```#) +MM0$``J8``/"U`0`";0``_+4!``)]```6M@$``0<``!^V`0`"<@``,K8!``*@ +M``!)M@$``J```%VV`0`"H```<;8!``*@``"!M@$``G@``)*V`0`"H```L+8! +M``)T``#&M@$``0<``,RV`0`"<@``"K`$```$!``!\ +M`0```0$``(`!```!`0``A`$```$!``"(`0```0$``(P!```!`0``D`$```$! +M``"4`0```0$``)@!```!`0``G`$```$!``"@`0```0$``*0!```!`0``J`$` +M``$!``"L`0```0$``+`!```!`0``M`$```$!``"X`0```0$``+P!```!`0`` +MP`$```$!``#$`0```0$``,@!```!`0``S`$```$!``#0`0```0$``-0!```! +M`0``V`$```$!``#<`0```0$``.`!```!`0``Y`$```$!``#H`0```0$``.P! +M```!`0``\`$```$!``#T`0```0$``/@!```!`0``_`$```$!`````@```0$` +M``0"```!`0``"`(```$!```,`@```0$``!`"```!`0``%`(```$!```8`@`` +M`0$``!P"```!`0``(`(```$!```D`@```0$``"@"```!`0``+`(```$!```P +M`@```0$``#0"```!`0``.`(```$!```\`@```0$``$`"```!`0``1`(```$! +M``!(`@```0$``$P"```!`0``4`(```$!``!4`@```0$``$`````!!0``3``` +M``$!``!0`````0$``%0````!`0``6`````$!``!<`````0$``&`````!`0`` +M9`````$!``!H`````0$``&P````!`0``<`````$!``!T`````0$``'@````! +M`0``?`````$!``"``````0$``(0````!`0``B`````$!``",`````0$``)`` +M```!`0``E`````$!``"8`````0$``)P````!`0``H`````$!``"D`````0$` +M`*@````!`0``K`````$!``"P`````0$``+0````!`0``N`````$!``"\```` +M`1(``,0````!.0``.`$```$!```\`0```0$``$`!```!`0``4`$```$!``!4 +M`0```0$``&0!```!`0``:`$```$!``!P`0```0$``'0!```!`0``?`$```$! +M``"``0```0$``(@!```!`0``C`$```$!``"4`0```0$``)@!```!`0``H`$` +M``$!``"D`0```0$``*P!```!`0``L`$```$!``"X`0```0$``+P!```!`0`` +MQ`$```$!``#(`0```0$``-`!```!`0``U`$```$!``#<`0```0$``.`!```! +M`0``Z`$```$!``#L`0```0$``/0!```!`0``^`$```$!`````@```0$```0" +M```!`0``#`(```$!```0`@```0$``!@"```!`0``'`(```$!```D`@```0$` +M`"@"```!`0``,`(```$!```T`@```0$``#P"```!`0``0`(```$!``!(`@`` +M`0$``$P"```!`0``5`(```$!``!8`@```0$``&`"```!`0``9`(```$!``!L +M`@```0$``'`"```!`0``>`(```$!``!\`@```0$``(0"```!`0``B`(```$! +M``"0`@```0$``)0"```!`0``G`(```$!``"@`@```0$``*@"```!`0``K`(` +M``$!``"T`@```0$``+@"```!`0``P`(```$!``#$`@```0$``,P"```!`0`` +MT`(```$!``#8`@```0$``-P"```!`0``Y`(```$!``#H`@```0$``/`"```! +M`0``]`(```$!``#\`@```0$````#```!`0``"`,```$!```,`P```0$``!0# +M```!`0``&`,```$!```@`P```0$``"0#```!`0``+`,```$!```P`P```0$` +M`#@#```!`0``/`,```$!``!$`P```0$``$@#```!`0``?`,```$!``"``P`` +M`0$``+@#```!`0``O`,```$!``#``P```:8``,0#```!`0``R`,```$!``#\ +M`P```0$````$```!`0``.`0```$!```\!````0$``$`$```!`0``1`0```$! +M``!(!````0$``$P$```!`0``4`0```$!``!4!````0$``'@$```!`0``?`0` +=``$!``"`!````:8``(0$```!`0``B`0```$!```` +` +end diff --git a/sys/dev/rr232x/ldm.h b/sys/dev/rr232x/ldm.h new file mode 100644 index 000000000000..db4edd47effa --- /dev/null +++ b/sys/dev/rr232x/ldm.h @@ -0,0 +1,484 @@ +#include +/* + * $Id: ldm.h,v 1.48 2006/02/21 06:11:19 gmm Exp $ + * Copyright (C) 2004-2005 HighPoint Technologies, Inc. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ +#ifndef _HPT_LDM_H_ +#define _HPT_LDM_H_ + +#define VERMAGIC_LDM 48 + +#if defined(__cplusplus) +extern "C" { +#endif + + +#define __hpt_set_ver(x, v1, v2, v3, v4, v5) x ## _R_ ## v1 ## _ ## v2 ## _ ## v3 ## _ ## v4 ## _ ## v5 +#define _hpt_set_ver(x, v1, v2, v3, v4, v5) __hpt_set_ver(x, v1, v2, v3, v4, v5) +#define hpt_set_ver(x) _hpt_set_ver(x, VERMAGIC_OSM, VERMAGIC_HIM, VERMAGIC_LDM, VERMAGIC_ARRAY, MAX_MEMBERS) + +#define ldm_register_him hpt_set_ver(ldm_register_him) +#define ldm_register_vdev_class hpt_set_ver(ldm_register_vdev_class) +#define ldm_alloc_cmds hpt_set_ver(ldm_alloc_cmds) + + +#ifndef HPT_INTERFACE_VERSION +#define HPT_INTERFACE_VERSION 0x02000000 +#endif + +#define MAX_PARTITIONS_PER_DISK 4 +#if defined(__MAX_PARTITIONS_PER_DISK) && MAX_PARTITIONS_PER_DISK > __MAX_PARTITIONS_PER_DISK +#error "Please redefine MAX_PARTITIONS_PER_DISK!!!" +#endif + +#define MAX(a,b) (((a)>(b))?(a):(b)) +#define MIN(a,b) (((a)<(b))?(a):(b)) + + +struct freelist { + int dma; + HPT_UINT alignment; + HPT_UINT count; + HPT_UINT size; + void * head; + struct freelist *next; +#if DBG + char *tag; + HPT_UINT reserved_count; + #define freelist_debug_tag(list, _tag) (list)->tag = _tag +#else + #define freelist_debug_tag(list, _tag) +#endif +}; + + +void freelist_reserve(struct freelist *list, void *osext, HPT_UINT size, HPT_UINT count); + +void *freelist_get(struct freelist *); +void freelist_put(struct freelist *, void *p); + +void freelist_reserve_dma(struct freelist *list, void *osext, HPT_UINT size, HPT_UINT alignment, HPT_UINT count); +void *freelist_get_dma(struct freelist *, BUS_ADDRESS *busaddr); +void freelist_put_dma(struct freelist *, void *p, BUS_ADDRESS busaddr); + + +#define freelist_reserve_with_tag(list, osext, size, count) \ + do {\ + freelist_debug_tag(list, #list " at " __FILE__);\ + freelist_reserve(list, osext, size, count);\ + }while(0) + +#define freelist_reserve_dma_with_tag(list, osext, size, alignment, count) \ + do {\ + freelist_debug_tag(list, #list " at " __FILE__);\ + freelist_reserve_dma(list, osext, size, alignment, count);\ + }while(0) + +struct lock_request { + HPT_U64 start, end; + struct lock_request *next; + struct list_head waiters; /* blocked commands */ + struct tq_item callback; +}; + +#define INIT_LOCK_REQUEST(req, _start, _end, _cb, _arg) \ + do {\ + (req)->next = 0;\ + (req)->start = _start;\ + (req)->end = _end;\ + INIT_TQ_ITEM(&(req)->callback, _cb, _arg);\ + INIT_LIST_HEAD(&(req)->waiters);\ + } while (0) + +struct task_queue { + struct tq_item *head, *tail; +}; + +#define TQ_EMPTY(tq) ((tq)->head==0) + +struct dmapool_order { + HPT_UINT npages; + struct tq_item wakeup_fn; + struct dmapool_order *next; +}; + +struct dmapool_client { + void * handle; + HPT_UINT (*shrink)(void *handle, HPT_UINT npages); + struct dmapool_client *next; +}; + +typedef struct _VBUS * PVBUS; +typedef struct _VDEV * PVDEV; + + +void dmapool_register_client(PVBUS vbus, struct dmapool_client *client); + + +void dmapool_active(PVBUS vbus); + +/* return 0 if the request is immediately satisfied, non-zero otherwise. */ +int dmapool_make_order(PVBUS vbus, struct dmapool_order *order); + + +void *dmapool_get_page(PVBUS vbus, BUS_ADDRESS *busaddr); +void dmapool_put_page(PVBUS vbus, void *p, BUS_ADDRESS busaddr); + + +struct timer_call { + HPT_U32 interval; /*microseconds*/ + HPT_TIME expire_time; /*microseconds*/ + void (*proc)(void * arg); + void * arg; + struct timer_call ** pprev; + struct timer_call * next; +}; + +#define ldm_init_timer(timer) do { (timer)->next=0; (timer)->pprev=0; } while (0) + +#define INIT_TIMER_CALL(timer, _interval, _proc, _arg) \ + do { \ + HPT_ASSERT((timer)->next==0 && (timer)->pprev==0);\ + (timer)->interval = _interval;\ + (timer)->proc = _proc;\ + (timer)->arg = _arg;\ + } while(0) + +void ldm_request_timer(PVBUS vbus, struct timer_call * tc); +void ldm_remove_timer(PVBUS vbus, struct timer_call * tc); +void ldm_on_timer(PVBUS vbus); + + +typedef struct _LDM_ADAPTER +{ + struct _LDM_ADAPTER *next; + HIM *him; + void *him_handle; + PVBUS vbus; + struct freelist freelist_dev; + struct freelist freelist_plugged_dpc; + HPT_BOOL master; +} +LDM_ADAPTER, *PLDM_ADAPTER; + +typedef struct _IOCTL_ARG +{ + struct list_head link; + PVBUS vbus; + HPT_U32 dwIoControlCode; + HPT_U32 nInBufferSize; + HPT_U32 nOutBufferSize; + void * lpInBuffer; + void * lpOutBuffer; + HPT_U32 *lpBytesReturned; + void * ioctl_cmnd; + void (* done)(struct _IOCTL_ARG *); + int result; /* HPT_IOCTL_RESULT_ */ + struct tq_item dpc; +} IOCTL_ARG; + +#define HPT_IOCTL_RESULT_OK 0 +#define HPT_IOCTL_RESULT_FAILED (-1) +#define HPT_IOCTL_RESULT_INVALID (-2) +#define HPT_IOCTL_RESULT_RETRY (-3) +#define HPT_IOCTL_RESULT_WRONG_VBUS (-4) + +void ldm_ioctl( PVBUS vbus, IOCTL_ARG *IAPnt); +HPT_U32 ldm_get_device_id(PVDEV vd); /* for ioctl */ +void ldm_set_rebuild_priority(PVBUS vbus, int priority); + +#include + +typedef struct hpt_raw_disk +{ +#ifdef SUPPORT_ARRAY + PRAW_PARTITION raw_part_list; + HPT_RAW_LBA max_available_capacity; + HPT_RAW_LBA total_available_capacity; +#endif + HPT_RAW_LBA real_capacity; + HPT_RAW_LBA head_position; + + HPT_U16 max_sectors_per_cmd; + HPT_U8 user_select_mode; + + HPT_U8 uninitialized : 1; + HPT_U8 legacy_disk : 1; + HPT_U8 is_spare : 1; + HPT_U8 v3_format : 1; + HPT_U8 need_sync : 1; + HPT_U8 reserved1 : 1; + HPT_U8 need_check_array : 1; + HPT_U8 df_user_mode_set: 1; + + HPT_U8 df_read_ahead_set: 1; + HPT_U8 enable_read_ahead : 1; + HPT_U8 df_write_cache_set: 1; + HPT_U8 enable_write_cache : 1; + HPT_U8 df_tcq_set: 1; + HPT_U8 enable_tcq : 1; + HPT_U8 df_ncq_set: 1; + HPT_U8 enable_ncq : 1; + + HIM * him; + int index; + PLDM_ADAPTER adapter; + void * phy_dev; + PIDENTIFY_DATA2 identify_data; + char model[40]; +} +HPT_RAW_DISK, *PHPT_RAW_DISK; + +struct vdev_class +{ + struct vdev_class *next; + + HPT_U8 type; + HPT_U8 stripped; /* RAID0,3,5,6 */ + HPT_U8 redundancy; /* RAID1-1, RAID3/5-1, RAID6-2 */ + HPT_U8 must_init; /* RAID3,5,6 */ + + HPT_UINT vbus_ext_size; + HPT_UINT vbus_ext_offset; /* used by LDM */ + HPT_UINT dev_ext_size; + HPT_UINT cmd_ext_size; + + + void (*get_mem_info)(PVBUS vbus, void *osext, int phydev_count); + void (*queue_cmd)(PCOMMAND cmd); + void (*member_failed)(struct _VDEV * vd); + + + void (*initialize)(PVBUS vbus); + void (*release)(PVBUS vbus); + int (*add)(PVDEV vd); + void (*remove)(PVDEV vd); + void (*reset)(PVDEV vd); +}; + + +#define VDEV_CLASS_CONSTRUCTOR(type, prefix) { \ + 0, \ + type, \ + prefix ## _stripped, \ + prefix ## _redundancy, \ + prefix ## _must_init, \ + prefix ## _vbus_ext_size, \ + 0, \ + prefix ## _dev_ext_size, \ + prefix ## _cmd_ext_size, \ + prefix ## _get_mem_info, \ + prefix ## _queue_cmd, \ + prefix ## _member_failed, \ + prefix ## _initialize, \ + prefix ## _release, \ + prefix ## _add, \ + prefix ## _remove, \ + prefix ## _reset, \ +} + +#define VD_RAW 1 +#define VD_PARTITION 4 + +#define mIsArray(vdev_type) ((vdev_type)>VD_PARTITION) + +#define VD_RAID0 5 +#define VD_RAID1 6 +#define VD_JBOD 7 +#define VD_RAID5 8 +#define VD_RAID6 9 + +#define MAX_VD_TYPE_ID 9 + +struct vdev_class *ldm_find_vdev_class(HPT_U8 type); + +typedef struct _VDEV { + PVBUS vbus; + PVDEV parent; + void * ext; + HPT_U64 capacity; + int target_id; + int cmds_per_request; + + union { +#ifdef SUPPORT_ARRAY + HPT_ARRAY array; + HPT_PARTITION partition; +#endif + HPT_RAW_DISK raw; + } u; + + HPT_UINT vf_online : 1; + HPT_UINT vf_bootmark : 1; + HPT_UINT vf_bootable : 1; + HPT_UINT vf_resetting: 1; + + HPT_U8 cq_len; + HPT_U8 cmds_sent; + HPT_U8 max_queue_depth; + HPT_U8 cache_policy; /* see CACHE_POLICY_* */ + + struct list_head link; + struct vdev_class *Class; + + struct list_head cq_wait_send; + struct list_head cq_sent; + + struct task_queue tq_idle; + + int cq_priority; + struct list_head cq_wait_lock; + struct lock_request *locks_granted; + struct lock_request *locks_wait; + HPT_U32 ioctl_id; +} +VDEV; + +#define CACHE_POLICY_NONE 0 +#define CACHE_POLICY_WRITE_THROUGH 1 +#define CACHE_POLICY_WRITE_BACK 2 + + +extern HIM *him_list; + + +void ldm_register_him(PHIM him); + + +void ldm_register_vdev_class(struct vdev_class *Class); + + +HPT_BOOL ldm_register_adapter(PLDM_ADAPTER adapter); + + +int init_config(void); + +HPT_UINT ldm_get_vbus_size(void); + + +void ldm_create_vbus(PVBUS vbus, void *osext); + + +void ldm_get_mem_info(PVBUS vbus, void *osext); + + +void *ldm_get_vbus_ext(PVBUS vbus, struct vdev_class *Class); + + +PVBUS ldm_get_next_vbus(PVBUS vbus, void **posext); + +#define ldm_for_each_vbus(vbus, vbus_ext) \ + for (vbus = ldm_get_next_vbus(0, (void **)(void *)&vbus_ext); vbus; \ + vbus = ldm_get_next_vbus(vbus, (void **)(void *)&vbus_ext)) + + +void ldm_initialize_vbus_async(PVBUS vbus, PLDM_ADAPTER master_adapter, void (*done)(void *osext)); + +/* ldm_initialize_vbus is deprecated since it will hold the CPU too long. */ +#define ldm_initialize_vbus(vbus, adapter) ldm_initialize_vbus_async(vbus, adapter, 0) + + +void ldm_release_vbus(PVBUS vbus); + +PVDEV ldm_create_vdev(PVBUS vbus, HPT_U8 type); +void ldm_release_vdev(PVDEV vd); + +PVDEV ldm_find_target(PVBUS vbus, int id); + + +PCOMMAND ldm_alloc_cmds(PVBUS vbus, HPT_UINT cnt); +void ldm_free_cmds(PCOMMAND cmd); + +HPT_UINT ldm_get_cmd_size(void); +PCOMMAND ldm_alloc_cmds_from_list(PVBUS vbus, struct freelist *list, HPT_UINT cnt); +void ldm_free_cmds_to_list(struct freelist *list, PCOMMAND cmd); + + +PCOMMAND __ldm_alloc_cmd(struct freelist *list); + +#ifdef OS_SUPPORT_TASK +#define CMD_SET_PRIORITY(cmd, pri) cmd->priority = (pri) +#else +#define CMD_SET_PRIORITY(cmd, pri) +#endif + +#define CMD_GROUP_GET(grp, cmd) \ + do {\ + HPT_ASSERT(grp->freecnt);\ + grp->freecnt--;\ + grp->grplist->count++;\ + cmd = __ldm_alloc_cmd(grp->grplist);\ + cmd->vbus = grp->vbus;\ + cmd->grplist = grp->grplist;\ + CMD_SET_PRIORITY(cmd, grp->priority);\ + } while(0) + +#define CMD_GROUP_PUT(grp, cmd) \ + do {\ + grp->freecnt++;\ + freelist_put(grp->grplist, cmd);\ + grp->grplist->count--;\ + } while (0) + + +void ldm_queue_cmd(PCOMMAND cmd); +void vdev_queue_cmd(PCOMMAND cmd); +void ldm_finish_cmd(PCOMMAND cmd); + + +int ldm_acquire_lock(PVDEV vd, struct lock_request *req); +void ldm_release_lock(PVDEV vd, struct lock_request *req); + +void ldm_queue_task(struct task_queue *tq, struct tq_item *t); +void ldm_queue_vbus_dpc(PVBUS vbus, struct tq_item *t); + +HPT_BOOL ldm_intr(PVBUS vbus); +void ldm_run(PVBUS vbus); + + +int ldm_reset_vbus(PVBUS vbus); + + +void ldm_suspend(PVBUS vbus); +void ldm_resume(PVBUS vbus); +void ldm_shutdown(PVBUS vbus);/*shutdown all the controllers*/ + + +#define HIM_EVENT_DEVICE_REMOVED 1 +#define HIM_EVENT_DEVICE_PLUGGED 2 +#define HIM_EVENT_DEVICE_ERROR 3 +#define HIM_EVENT_RESET_REQUIRED 4 + +void ldm_event_notify(HPT_U32 event, void *arg1, void *arg2); + +void ldm_register_device(PVDEV vd); +void ldm_unregister_device(PVDEV vd); + +PVBUS him_handle_to_vbus(void * him_handle); + +#if defined(__cplusplus) +} +#endif +#endif diff --git a/sys/dev/rr232x/list.h b/sys/dev/rr232x/list.h new file mode 100644 index 000000000000..5af23b59fa7e --- /dev/null +++ b/sys/dev/rr232x/list.h @@ -0,0 +1,121 @@ +#include +/* + * $Id: list.h,v 1.4 2006/02/15 07:24:38 gmm Exp $ + * Copyright (C) 2004-2005 HighPoint Technologies, Inc. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ +#ifndef _HPT_LIST_H_ +#define _HPT_LIST_H_ + +#ifndef _LINUX_LIST_H + +#define HPT_INLINE __inline + +struct list_head { + struct list_head *next, *prev; +}; + +#define INIT_LIST_HEAD(ptr) do { (ptr)->next = (ptr); (ptr)->prev = (ptr); } while (0) + +static HPT_INLINE void __list_add(struct list_head * _new, struct list_head * prev, struct list_head * next) +{ + next->prev = _new; + _new->next = next; + _new->prev = prev; + prev->next = _new; +} + +static HPT_INLINE void list_add(struct list_head *_new, struct list_head *head) +{ + __list_add(_new, head, head->next); +} + +static HPT_INLINE void list_add_tail(struct list_head *_new, struct list_head *head) +{ + __list_add(_new, head->prev, head); +} + +static HPT_INLINE void __list_del(struct list_head * prev, struct list_head * next) +{ + next->prev = prev; + prev->next = next; +} + +static HPT_INLINE void list_del(struct list_head *entry) +{ + __list_del(entry->prev, entry->next); +} + +static HPT_INLINE void list_del_init(struct list_head *entry) +{ + __list_del(entry->prev, entry->next); + INIT_LIST_HEAD(entry); +} + +static HPT_INLINE int list_empty(struct list_head *head) +{ + HPT_ASSERT(!(head->next==head && head->prev!=head)); + return head->next == head; +} + +static HPT_INLINE void __list_splice(struct list_head *list, + struct list_head *head) +{ + struct list_head *first = list->next; + struct list_head *last = list->prev; + struct list_head *at = head->next; + + first->prev = head; + head->next = first; + + last->next = at; + at->prev = last; +} + +static HPT_INLINE void list_splice(struct list_head *list, struct list_head *head) +{ + if (!list_empty(list)) + __list_splice(list, head); +} + +static HPT_INLINE void list_splice_init(struct list_head *list, struct list_head *head) +{ + if (!list_empty(list)) { + __list_splice(list, head); + INIT_LIST_HEAD(list); + } +} + +#define list_entry(ptr, type, member) \ + ((type *)((char *)(ptr)-(HPT_UPTR)(&((type *)0)->member))) + +#define list_for_each(pos, head) \ + for (pos = (head)->next; pos != (head); pos = pos->next) + +#define get_first_item(attached, type, member) \ + ((type *)((char *)((attached)->next)-(HPT_UPTR)(&((type *)0)->member))) + +#endif + +#endif diff --git a/sys/dev/rr232x/os_bsd.c b/sys/dev/rr232x/os_bsd.c new file mode 100644 index 000000000000..94b99549f03e --- /dev/null +++ b/sys/dev/rr232x/os_bsd.c @@ -0,0 +1,297 @@ +#include +/* $Id: os_bsd.c,v 1.11 2005/06/03 14:06:38 kdh Exp $ + * + * HighPoint RAID Driver for FreeBSD + * Copyright (C) 2005 HighPoint Technologies, Inc. All Rights Reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include + +/* hardware access */ +HPT_U8 os_inb (void *port) { return inb((unsigned)(HPT_UPTR)port); } +HPT_U16 os_inw (void *port) { return inw((unsigned)(HPT_UPTR)port); } +HPT_U32 os_inl (void *port) { return inl((unsigned)(HPT_UPTR)port); } + +void os_outb (void *port, HPT_U8 value) { outb((unsigned)(HPT_UPTR)port, (value)); } +void os_outw (void *port, HPT_U16 value) { outw((unsigned)(HPT_UPTR)port, (value)); } +void os_outl (void *port, HPT_U32 value) { outl((unsigned)(HPT_UPTR)port, (value)); } + +void os_insw (void *port, HPT_U16 *buffer, HPT_U32 count) +{ insw((unsigned)(HPT_UPTR)port, (void *)buffer, count); } + +void os_outsw(void *port, HPT_U16 *buffer, HPT_U32 count) +{ outsw((unsigned)(HPT_UPTR)port, (void *)buffer, count); } + +HPT_U32 __dummy_reg = 0; + +/* PCI configuration space */ +HPT_U8 os_pci_readb (void *osext, HPT_U8 offset) +{ + return pci_read_config(((PHBA)osext)->pcidev, offset, 1); +} + +HPT_U16 os_pci_readw (void *osext, HPT_U8 offset) +{ + return pci_read_config(((PHBA)osext)->pcidev, offset, 2); +} + +HPT_U32 os_pci_readl (void *osext, HPT_U8 offset) +{ + return pci_read_config(((PHBA)osext)->pcidev, offset, 4); +} + +void os_pci_writeb (void *osext, HPT_U8 offset, HPT_U8 value) +{ + pci_write_config(((PHBA)osext)->pcidev, offset, value, 1); +} + +void os_pci_writew (void *osext, HPT_U8 offset, HPT_U16 value) +{ + pci_write_config(((PHBA)osext)->pcidev, offset, value, 2); +} + +void os_pci_writel (void *osext, HPT_U8 offset, HPT_U32 value) +{ + pci_write_config(((PHBA)osext)->pcidev, offset, value, 4); +} + +void *os_map_pci_bar( + void *osext, + int index, + HPT_U32 offset, + HPT_U32 length +) +{ + PHBA hba = (PHBA)osext; + + hba->pcibar[index].rid = 0x10 + index * 4; + + if (pci_read_config(hba->pcidev, hba->pcibar[index].rid, 4) & 1) + hba->pcibar[index].type = SYS_RES_IOPORT; + else + hba->pcibar[index].type = SYS_RES_MEMORY; + + hba->pcibar[index].res = bus_alloc_resource(hba->pcidev, + hba->pcibar[index].type, &hba->pcibar[index].rid, 0, ~0, length, RF_ACTIVE); + + hba->pcibar[index].base = (char *)rman_get_virtual(hba->pcibar[index].res) + offset; + return hba->pcibar[index].base; +} + +void os_unmap_pci_bar(void *osext, void *base) +{ + PHBA hba = (PHBA)osext; + int index; + + for (index=0; index<6; index++) { + if (hba->pcibar[index].base==base) { + bus_release_resource(hba->pcidev, hba->pcibar[index].type, + hba->pcibar[index].rid, hba->pcibar[index].res); + hba->pcibar[index].base = 0; + return; + } + } +} + +void freelist_reserve(struct freelist *list, void *osext, HPT_UINT size, HPT_UINT count) +{ + PVBUS_EXT vbus_ext = osext; + + if (vbus_ext->ext_type!=EXT_TYPE_VBUS) + vbus_ext = ((PHBA)osext)->vbus_ext; + + list->next = vbus_ext->freelist_head; + vbus_ext->freelist_head = list; + list->dma = 0; + list->size = size; + list->head = 0; +#if DBG + list->reserved_count = +#endif + list->count = count; +} + +void *freelist_get(struct freelist *list) +{ + void * result; + if (list->count) { + HPT_ASSERT(list->head); + result = list->head; + list->head = *(void **)result; + list->count--; + return result; + } + return 0; +} + +void freelist_put(struct freelist * list, void *p) +{ + HPT_ASSERT(list->dma==0); + list->count++; + *(void **)p = list->head; + list->head = p; +} + +void freelist_reserve_dma(struct freelist *list, void *osext, HPT_UINT size, HPT_UINT alignment, HPT_UINT count) +{ + PVBUS_EXT vbus_ext = osext; + + if (vbus_ext->ext_type!=EXT_TYPE_VBUS) + vbus_ext = ((PHBA)osext)->vbus_ext; + + list->next = vbus_ext->freelist_dma_head; + vbus_ext->freelist_dma_head = list; + list->dma = 1; + list->alignment = alignment; + list->size = size; + list->head = 0; +#if DBG + list->reserved_count = +#endif + list->count = count; +} + +void *freelist_get_dma(struct freelist *list, BUS_ADDRESS *busaddr) +{ + void *result; + HPT_ASSERT(list->dma); + result = freelist_get(list); + if (result) + *busaddr = *(BUS_ADDRESS *)((void **)result+1); + return result; +} + +void freelist_put_dma(struct freelist *list, void *p, BUS_ADDRESS busaddr) +{ + HPT_ASSERT(list->dma); + list->count++; + *(void **)p = list->head; + *(BUS_ADDRESS *)((void **)p+1) = busaddr; + list->head = p; +} + +HPT_U32 os_get_stamp(void) +{ + HPT_U32 stamp; + do { stamp = random(); } while (stamp==0); + return stamp; +} + +void os_stallexec(HPT_U32 microseconds) +{ + DELAY(microseconds); +} + +static void os_timer_for_ldm(void *arg) +{ + PVBUS_EXT vbus_ext = (PVBUS_EXT)arg; + ldm_on_timer((PVBUS)vbus_ext->vbus); +} + +void os_request_timer(void * osext, HPT_U32 interval) +{ + PVBUS_EXT vbus_ext = osext; + + HPT_ASSERT(vbus_ext->ext_type==EXT_TYPE_VBUS); + + untimeout(os_timer_for_ldm, vbus_ext, vbus_ext->timer); + vbus_ext->timer = timeout(os_timer_for_ldm, vbus_ext, interval * hz / 1000000); +} + +HPT_TIME os_query_time(void) +{ + return ticks * (1000000 / hz); +} + +void os_schedule_task(void *osext, OSM_TASK *task) +{ + PVBUS_EXT vbus_ext = osext; + + HPT_ASSERT(task->next==0); + + if (vbus_ext->tasks==0) + vbus_ext->tasks = task; + else { + OSM_TASK *t = vbus_ext->tasks; + while (t->next) t = t->next; + t->next = task; + } + + if (vbus_ext->worker.ta_context) + TASK_ENQUEUE(&vbus_ext->worker); +} + +int os_revalidate_device(void *osext, int id) +{ + + return 0; +} + +int os_query_remove_device(void *osext, int id) +{ + PVBUS_EXT vbus_ext = (PVBUS_EXT)osext; + struct cam_periph *periph = NULL; + struct cam_path *path; + int status,retval = 0; + + status = xpt_create_path(&path, NULL, vbus_ext->sim->path_id, id, 0); + if (status == CAM_REQ_CMP) { + if((periph = cam_periph_find(path, "da")) != NULL){ + if(periph->refcount >= 1) + retval = -1; + } + xpt_free_path(path); + } + + return retval; +} + +HPT_U8 os_get_vbus_seq(void *osext) +{ + return ((PVBUS_EXT)osext)->sim->path_id; +} + +int os_printk(char *fmt, ...) +{ + va_list args; + static char buf[512]; + + va_start(args, fmt); + vsnprintf(buf, sizeof(buf), fmt, args); + va_end(args); + return printf("%s: %s\n", driver_name, buf); +} + +#if DBG +void os_check_stack(const char *location, int size){} + +void __os_dbgbreak(const char *file, int line) +{ + printf("*** break at %s:%d ***", file, line); + while (1); +} + +int hpt_dbg_level = 1; +#endif diff --git a/sys/dev/rr232x/os_bsd.h b/sys/dev/rr232x/os_bsd.h new file mode 100644 index 000000000000..3b82f32172e7 --- /dev/null +++ b/sys/dev/rr232x/os_bsd.h @@ -0,0 +1,254 @@ +#include +/* $Id: os_bsd.h,v 1.18 2006/04/11 08:19:02 gmm Exp $ + * + * HighPoint RAID Driver for FreeBSD + * Copyright (C) 2005 HighPoint Technologies, Inc. All Rights Reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _OS_BSD_H +#define _OS_BSD_H + +#include +#include +#include +#if (__FreeBSD_version >= 500000) +#include +#include +#else +#include /*to support DELAY function under 4.x BSD versions*/ +#endif + +#include +#include +#include +#include +#include + +#if (__FreeBSD_version >= 500000) +#include +#include +#include +#endif + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +#if (__FreeBSD_version >= 500000) +#include +#include +#else +#include +#include +#endif + +#if (__FreeBSD_version <= 500043) +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#if (__FreeBSD_version < 500043) +#include +#endif + + +typedef struct _INQUIRYDATA { + u_char DeviceType : 5; + u_char DeviceTypeQualifier : 3; + u_char DeviceTypeModifier : 7; + u_char RemovableMedia : 1; + u_char Versions; + u_char ResponseDataFormat; + u_char AdditionalLength; + u_char Reserved[2]; + u_char SoftReset : 1; + u_char CommandQueue : 1; + u_char Reserved2 : 1; + u_char LinkedCommands : 1; + u_char Synchronous : 1; + u_char Wide16Bit : 1; + u_char Wide32Bit : 1; + u_char RelativeAddressing : 1; + u_char VendorId[8]; + u_char ProductId[16]; + u_char ProductRevisionLevel[4]; + u_char VendorSpecific[20]; + u_char Reserved3[40]; +} +__attribute__((packed)) +INQUIRYDATA, *PINQUIRYDATA; + +#endif + +/* private headers */ + +#include +#include +#include + +/* driver parameters */ +extern char driver_name[]; +extern char driver_name_long[]; +extern char driver_ver[]; +extern int osm_max_targets; + +/* + * adapter/vbus extensions: + * each physical controller has an adapter_ext, passed to him.create_adapter() + * each vbus has a vbus_ext passed to ldm_create_vbus(). + */ +#define EXT_TYPE_HBA 1 +#define EXT_TYPE_VBUS 2 + +typedef struct _hba { + int ext_type; + LDM_ADAPTER ldm_adapter; + device_t pcidev; + PCI_ADDRESS pciaddr; + struct _vbus_ext *vbus_ext; + struct _hba *next; + + struct { + struct resource *res; + int type; + int rid; + void *base; + } + pcibar[6]; + + struct resource *irq_res; + void *irq_handle; +} +HBA, *PHBA; + +typedef struct _os_cmdext { + struct _vbus_ext *vbus_ext; + struct _os_cmdext *next; + union ccb *ccb; + bus_dmamap_t dma_map; + SG psg[os_max_sg_descriptors]; +} +OS_CMDEXT, *POS_CMDEXT; + +typedef struct _vbus_ext { + int ext_type; + struct _vbus_ext *next; + PHBA hba_list; + struct freelist *freelist_head; + struct freelist *freelist_dma_head; + + struct cam_sim *sim; /* sim for this vbus */ + struct cam_path *path; /* peripheral, path, tgt, lun with this vbus */ +#if (__FreeBSD_version >= 500000) + struct mtx lock; /* general purpose lock */ +#else + int hpt_splx; +#endif + bus_dma_tag_t io_dmat; /* I/O buffer DMA tag */ + + POS_CMDEXT cmdext_list; + + OSM_TASK *tasks; + struct task worker; + + struct callout_handle timer; + + eventhandler_tag shutdown_eh; + + /* the LDM vbus instance continues */ + unsigned long vbus[0] __attribute__((aligned(sizeof(unsigned long)))); +} +VBUS_EXT, *PVBUS_EXT; + +#if __FreeBSD_version >= 500000 +#define hpt_lock_vbus(vbus_ext) mtx_lock(&(vbus_ext)->lock) +#define hpt_unlock_vbus(vbus_ext) mtx_unlock(&(vbus_ext)->lock) +#else +static __inline void hpt_lock_vbus(PVBUS_EXT vbus_ext) +{ + vbus_ext->hpt_splx = splcam(); +} +static __inline void hpt_unlock_vbus(PVBUS_EXT vbus_ext) +{ + splx(vbus_ext->hpt_splx); +} +#endif + + +#define HPT_OSM_TIMEOUT (20*hz) /* timeout value for OS commands */ + +#define HPT_DO_IOCONTROL _IOW('H', 0, HPT_IOCTL_PARAM) + +#define HPT_SCAN_BUS _IO('H', 1) + +#if __FreeBSD_version >= 501000 +#define TASK_ENQUEUE(task) taskqueue_enqueue(taskqueue_swi_giant,(task)); +#else +#define TASK_ENQUEUE(task) taskqueue_enqueue(taskqueue_swi,(task)); +#endif + +#if __FreeBSD_version >= 500000 +static __inline int hpt_sleep(PVBUS_EXT vbus_ext, void *ident, int priority, const char *wmesg, int timo) +{ + return msleep(ident, &vbus_ext->lock, priority, wmesg, timo); +} +#else +static __inline int hpt_sleep(PVBUS_EXT vbus_ext, void *ident, int priority, const char *wmesg, int timo) +{ + int retval = 0; + + asleep(ident, priority, wmesg, timo); + hpt_unlock_vbus(vbus_ext); + retval = await(priority, timo); + hpt_lock_vbus(vbus_ext); + + return retval; +} +#endif + +#if __FreeBSD_version < 501000 +#define READ_16 0x88 +#define WRITE_16 0x8a +#define SERVICE_ACTION_IN 0x9e +#endif + +#define HPT_DEV_MAJOR 200 diff --git a/sys/dev/rr232x/osm.h b/sys/dev/rr232x/osm.h new file mode 100644 index 000000000000..23e64835b725 --- /dev/null +++ b/sys/dev/rr232x/osm.h @@ -0,0 +1,199 @@ +#include +/* + * $Id: osm.h,v 1.5 2005/08/18 05:17:43 gmm Exp $ + * Copyright (C) 2005 HighPoint Technologies, Inc. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ +#ifndef _HPT_OSM_H_ +#define _HPT_OSM_H_ + +#define VERMAGIC_OSM 5 + +#define os_max_queue_comm 32 +#define os_max_sg_descriptors 18 + + +#define DMAPOOL_PAGE_SIZE 0x1000 /* PAGE_SIZE (i386/x86_64) */ +#define os_max_cache_size 0x800000 /* 8MB */ +#define os_max_cache_pages (os_max_cache_size/DMAPOOL_PAGE_SIZE) + +/* data types */ +typedef unsigned int HPT_UINT, HPT_U32; +typedef unsigned long HPT_UPTR; +typedef unsigned short HPT_U16; +typedef unsigned char HPT_U8; +typedef unsigned long HPT_TIME; +typedef unsigned long long HPT_U64; + +#define CPU_TO_LE64(x) (x) +#define CPU_TO_LE32(x) (x) +#define CPU_TO_LE16(x) (x) +#define LE32_TO_CPU(x) (x) +#define LE16_TO_CPU(x) (x) +#define LE64_TO_CPU(x) (x) + +#define FAR +#define EXTERN_C + +typedef void * HPT_PTR; + +typedef HPT_U64 HPT_LBA; +typedef HPT_U32 HPT_RAW_LBA; +#define MAX_LBA_VALUE 0xffffffffffffffffull +#define MAX_RAW_LBA_VALUE 0xfffffffful +#define RAW_LBA(x) ((HPT_U32)(x)) +#define LO_LBA(x) ((HPT_U32)(x)) +#define HI_LBA(x) (sizeof(HPT_LBA)>4? (HPT_U32)((x)>>32) : 0) +#define LBA_FORMAT_STR "0x%llX" + +typedef HPT_U64 BUS_ADDRESS; +#define LO_BUSADDR(x) ((HPT_U32)(x)) +#define HI_BUSADDR(x) (sizeof(BUS_ADDRESS)>4? (x)>>32 : 0) + +typedef unsigned char HPT_BOOL; +#define HPT_TRUE 1 +#define HPT_FALSE 0 + +typedef struct _TIME_RECORD { + HPT_U32 seconds:6; /* 0 - 59 */ + HPT_U32 minutes:6; /* 0 - 59 */ + HPT_U32 month:4; /* 1 - 12 */ + HPT_U32 hours:6; /* 0 - 59 */ + HPT_U32 day:5; /* 1 - 31 */ + HPT_U32 year:5; /* 0=2000, 31=2031 */ +} TIME_RECORD; + +/* hardware access */ +HPT_U8 os_inb (void *port); +HPT_U16 os_inw (void *port); +HPT_U32 os_inl (void *port); +void os_outb (void *port, HPT_U8 value); +void os_outw (void *port, HPT_U16 value); +void os_outl (void *port, HPT_U32 value); +void os_insw (void *port, HPT_U16 *buffer, HPT_U32 count); +void os_outsw(void *port, HPT_U16 *buffer, HPT_U32 count); + +extern HPT_U32 __dummy_reg; /* to avoid the compiler warning */ + +#define os_readb(addr) (*(HPT_U8 *)&__dummy_reg = *(volatile HPT_U8 *)(addr)) +#define os_readw(addr) (*(HPT_U16 *)&__dummy_reg = *(volatile HPT_U16 *)(addr)) +#define os_readl(addr) (*(HPT_U32 *)&__dummy_reg = *(volatile HPT_U32 *)(addr)) + +#define os_writeb(addr, val) *(volatile HPT_U8 *)(addr) = (HPT_U8)(val) +#define os_writew(addr, val) *(volatile HPT_U16 *)(addr) = (HPT_U16)(val) +#define os_writel(addr, val) *(volatile HPT_U32 *)(addr) = (HPT_U32)(val) + +/* PCI configuration space for specified device*/ +HPT_U8 os_pci_readb (void *osext, HPT_U8 offset); +HPT_U16 os_pci_readw (void *osext, HPT_U8 offset); +HPT_U32 os_pci_readl (void *osext, HPT_U8 offset); +void os_pci_writeb(void *osext, HPT_U8 offset, HPT_U8 value); +void os_pci_writew(void *osext, HPT_U8 offset, HPT_U16 value); +void os_pci_writel(void *osext, HPT_U8 offset, HPT_U32 value); + +/* obsolute interface */ +#define MAX_PCI_BUS_NUMBER 0xff +#define MAX_PCI_DEVICE_NUMBER 32 +#define MAX_PCI_FUNC_NUMBER 8 +#define pcicfg_read_dword(bus, dev, fn, reg) 0xffff + + +void *os_map_pci_bar( + void *osext, + int index, + HPT_U32 offset, + HPT_U32 length +); + + +void os_unmap_pci_bar(void *osext, void *base); + +#define os_kmap_sgptr(psg) (psg->addr._logical) +#define os_kunmap_sgptr(ptr) +#define os_set_sgptr(psg, ptr) (psg)->addr._logical = (ptr) + +/* timer */ +void *os_add_timer(void *osext, HPT_U32 microseconds, void (*proc)(void *), void *arg); +void os_del_timer(void *handle); +void os_request_timer(void * osext, HPT_U32 interval); +HPT_TIME os_query_time(void); + +/* task */ +#define OS_SUPPORT_TASK + +typedef struct _OSM_TASK { + struct _OSM_TASK *next; + void (*func)(void *vbus, void *data); + void *data; +} +OSM_TASK; + +void os_schedule_task(void *osext, OSM_TASK *task); + +/* misc */ +HPT_U32 os_get_stamp(void); +void os_stallexec(HPT_U32 microseconds); + +#ifndef _SYS_LIBKERN_H_ +#define memcpy(dst, src, size) __builtin_memcpy((dst), (src), (size)) +#define memcmp(dst, src, size) __builtin_memcmp((dst), (src), (size)) +#define strcpy(dst, src) __builtin_strcpy((dst), (src)) +static __inline void * memset(void *dst, int c, unsigned long size) +{ + char *p; + for (p=(char*)dst; size; size--,p++) *p = c; + return dst; +} +#endif + +#define farMemoryCopy(a,b,c) memcpy((char *)(a), (char *)(b), (HPT_U32)c) + + +#define os_register_device(osext, target_id) +#define os_unregister_device(osext, target_id) +int os_query_remove_device(void *osext, int target_id); +int os_revalidate_device(void *osext, int target_id); + +HPT_U8 os_get_vbus_seq(void *osext); + +/* debug support */ +int os_printk(char *fmt, ...); + +#if DBG +extern int hpt_dbg_level; +#define KdPrint(x) do { if (hpt_dbg_level) os_printk x; } while (0) +void __os_dbgbreak(const char *file, int line); +#define os_dbgbreak() __os_dbgbreak(__FILE__, __LINE__) +#define HPT_ASSERT(x) do { if (!(x)) os_dbgbreak(); } while (0) +void os_check_stack(const char *location, int size); +#define HPT_CHECK_STACK(size) os_check_stack(__FUNCTION__, (size)) +#else +#define KdPrint(x) +#define HPT_ASSERT(x) +#define HPT_CHECK_STACK(size) +#endif + +#define OsPrint(x) do { os_printk x; } while (0) + +#endif diff --git a/sys/dev/rr232x/osm_bsd.c b/sys/dev/rr232x/osm_bsd.c new file mode 100644 index 000000000000..7cdb859e154e --- /dev/null +++ b/sys/dev/rr232x/osm_bsd.c @@ -0,0 +1,1351 @@ +#include +/* $Id: osm_bsd.c,v 1.24 2006/04/11 08:19:02 gmm Exp $ + * + * HighPoint RAID Driver for FreeBSD + * Copyright (C) 2005 HighPoint Technologies, Inc. All Rights Reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + + */ +#include +#include + +static int hpt_probe(device_t dev) +{ + PCI_ID pci_id; + HIM *him; + int i; + PHBA hba; + + for (him = him_list; him; him = him->next) { + for (i=0; him->get_supported_device_id(i, &pci_id); i++) { + if ((pci_get_vendor(dev) == pci_id.vid) && + (pci_get_device(dev) == pci_id.did)){ + KdPrint(("hpt_probe: adapter at PCI %d:%d:%d, IRQ %d", + pci_get_bus(dev), pci_get_slot(dev), pci_get_function(dev), pci_get_irq(dev) + )); + device_set_desc(dev, him->name); + hba = (PHBA)device_get_softc(dev); + memset(hba, 0, sizeof(HBA)); + hba->ext_type = EXT_TYPE_HBA; + hba->ldm_adapter.him = him; + return 0; + } + } + } + + return (ENXIO); +} + +static int hpt_attach(device_t dev) +{ + PHBA hba = (PHBA)device_get_softc(dev); + HIM *him = hba->ldm_adapter.him; + PCI_ID pci_id; + HPT_UINT size; + PVBUS vbus; + PVBUS_EXT vbus_ext; + + KdPrint(("hpt_attach(%d/%d/%d)", pci_get_bus(dev), pci_get_slot(dev), pci_get_function(dev))); + +#if __FreeBSD_version >=440000 + pci_enable_busmaster(dev); +#endif + + pci_id.vid = pci_get_vendor(dev); + pci_id.did = pci_get_device(dev); + pci_id.rev = pci_get_revid(dev); + + size = him->get_adapter_size(&pci_id); + hba->ldm_adapter.him_handle = malloc(size, M_DEVBUF, M_WAITOK); + if (!hba->ldm_adapter.him_handle) + return ENXIO; + + hba->pcidev = dev; + hba->pciaddr.tree = 0; + hba->pciaddr.bus = pci_get_bus(dev); + hba->pciaddr.device = pci_get_slot(dev); + hba->pciaddr.function = pci_get_function(dev); + + if (!him->create_adapter(&pci_id, hba->pciaddr, hba->ldm_adapter.him_handle, hba)) { + free(hba->ldm_adapter.him_handle, M_DEVBUF); + return -1; + } + + os_printk("adapter at PCI %d:%d:%d, IRQ %d", + hba->pciaddr.bus, hba->pciaddr.device, hba->pciaddr.function, pci_get_irq(dev)); + + if (!ldm_register_adapter(&hba->ldm_adapter)) { + size = ldm_get_vbus_size(); + vbus_ext = malloc(sizeof(VBUS_EXT) + size, M_DEVBUF, M_WAITOK); + if (!vbus_ext) { + free(hba->ldm_adapter.him_handle, M_DEVBUF); + return -1; + } + memset(vbus_ext, 0, sizeof(VBUS_EXT)); + vbus_ext->ext_type = EXT_TYPE_VBUS; + ldm_create_vbus((PVBUS)vbus_ext->vbus, vbus_ext); + ldm_register_adapter(&hba->ldm_adapter); + } + + ldm_for_each_vbus(vbus, vbus_ext) { + if (hba->ldm_adapter.vbus==vbus) { + hba->vbus_ext = vbus_ext; + hba->next = vbus_ext->hba_list; + vbus_ext->hba_list = hba; + break; + } + } + return 0; +} + +/* + * Maybe we'd better to use the bus_dmamem_alloc to alloc DMA memory, + * but there are some problems currently (alignment, etc). + */ +static __inline void *__get_free_pages(int order) +{ + /* don't use low memory - other devices may get starved */ + return contigmalloc(PAGE_SIZE<hba_list; hba; hba = hba->next) + hba->ldm_adapter.him->get_meminfo(hba->ldm_adapter.him_handle); + + ldm_get_mem_info((PVBUS)vbus_ext->vbus, 0); + + for (f=vbus_ext->freelist_head; f; f=f->next) { + KdPrint(("%s: %d*%d=%d bytes", + f->tag, f->count, f->size, f->count*f->size)); + for (i=0; icount; i++) { + p = (void **)malloc(f->size, M_DEVBUF, M_WAITOK); + if (!p) return (ENXIO); + *p = f->head; + f->head = p; + } + } + + for (f=vbus_ext->freelist_dma_head; f; f=f->next) { + int order, size, j; + + HPT_ASSERT((f->size & (f->alignment-1))==0); + + for (order=0, size=PAGE_SIZE; sizesize; order++, size<<=1) ; + + KdPrint(("%s: %d*%d=%d bytes, order %d", + f->tag, f->count, f->size, f->count*f->size, order)); + HPT_ASSERT(f->alignment<=PAGE_SIZE); + + for (i=0; icount;) { + p = (void **)__get_free_pages(order); + if (!p) return -1; + for (j = size/f->size; j && icount; i++,j--) { + *p = f->head; + *(BUS_ADDRESS *)(p+1) = (BUS_ADDRESS)vtophys(p); + f->head = p; + p = (void **)((unsigned long)p + f->size); + } + } + } + + HPT_ASSERT(PAGE_SIZE==DMAPOOL_PAGE_SIZE); + + for (i=0; ivbus, p, (BUS_ADDRESS)vtophys(p)); + } + + return 0; +} + +static void hpt_free_mem(PVBUS_EXT vbus_ext) +{ + struct freelist *f; + void *p; + int i; + BUS_ADDRESS bus; + + for (f=vbus_ext->freelist_head; f; f=f->next) { +#if DBG + if (f->count!=f->reserved_count) { + KdPrint(("memory leak for freelist %s (%d/%d)", f->tag, f->count, f->reserved_count)); + } +#endif + while ((p=freelist_get(f))) + free(p, M_DEVBUF); + } + + for (i=0; ivbus, &bus); + HPT_ASSERT(p); + free_pages(p, 0); + } + + for (f=vbus_ext->freelist_dma_head; f; f=f->next) { + int order, size; +#if DBG + if (f->count!=f->reserved_count) { + KdPrint(("memory leak for dma freelist %s (%d/%d)", f->tag, f->count, f->reserved_count)); + } +#endif + for (order=0, size=PAGE_SIZE; sizesize; order++, size<<=1) ; + + while ((p=freelist_get_dma(f, &bus))) { + if (order) + free_pages(p, order); + else { + /* can't free immediately since other blocks in this page may still be in the list */ + if (((HPT_UPTR)p & (PAGE_SIZE-1))==0) + dmapool_put_page((PVBUS)vbus_ext->vbus, p, bus); + } + } + } + + while ((p = dmapool_get_page((PVBUS)vbus_ext->vbus, &bus))) + free_pages(p, 0); +} + +static int hpt_init_vbus(PVBUS_EXT vbus_ext) +{ + PHBA hba; + + for (hba = vbus_ext->hba_list; hba; hba = hba->next) + if (!hba->ldm_adapter.him->initialize(hba->ldm_adapter.him_handle)) { + KdPrint(("fail to initialize %p", hba)); + return -1; + } + + ldm_initialize_vbus((PVBUS)vbus_ext->vbus, &vbus_ext->hba_list->ldm_adapter); + return 0; +} + +static void hpt_flush_done(PCOMMAND pCmd) +{ + PVDEV vd = pCmd->target; + + if (mIsArray(vd->Class->type) && vd->u.array.transform && vd!=vd->u.array.transform->target) { + vd = vd->u.array.transform->target; + HPT_ASSERT(vd); + pCmd->target = vd; + pCmd->Result = RETURN_PENDING; + vdev_queue_cmd(pCmd); + return; + } + + *(int *)pCmd->priv = 1; + wakeup(pCmd); +} + +/* + * flush a vdev (without retry). + */ +static int hpt_flush_vdev(PVBUS_EXT vbus_ext, PVDEV vd) +{ + PCOMMAND pCmd; + int result = 0, done; + HPT_UINT count; + + KdPrint(("flusing dev %p", vd)); + + hpt_lock_vbus(vbus_ext); + + if (mIsArray(vd->Class->type) && vd->u.array.transform) + count = MAX(vd->u.array.transform->source->cmds_per_request, + vd->u.array.transform->target->cmds_per_request); + else + count = vd->cmds_per_request; + + pCmd = ldm_alloc_cmds(vd->vbus, count); + + if (!pCmd) { + hpt_unlock_vbus(vbus_ext); + return -1; + } + + pCmd->type = CMD_TYPE_FLUSH; + pCmd->flags.hard_flush = 1; + pCmd->target = vd; + pCmd->done = hpt_flush_done; + done = 0; + pCmd->priv = &done; + + ldm_queue_cmd(pCmd); + + if (!done) { + while (hpt_sleep(vbus_ext, pCmd, PPAUSE, "hptfls", HPT_OSM_TIMEOUT)) { + ldm_reset_vbus(vd->vbus); + } + } + + KdPrint(("flush result %d", pCmd->Result)); + + if (pCmd->Result!=RETURN_SUCCESS) + result = -1; + + ldm_free_cmds(pCmd); + + hpt_unlock_vbus(vbus_ext); + + return result; +} + +static void hpt_stop_tasks(PVBUS_EXT vbus_ext); +static void hpt_shutdown_vbus(PVBUS_EXT vbus_ext, int howto) +{ + PVBUS vbus = (PVBUS)vbus_ext->vbus; + PHBA hba; + int i; + + KdPrint(("hpt_shutdown_vbus")); + + /* stop all ctl tasks and disable the worker taskqueue */ + hpt_stop_tasks(vbus_ext); + vbus_ext->worker.ta_context = 0; + + /* flush devices */ + for (i=0; ihba_list; hba; hba=hba->next) + bus_teardown_intr(hba->pcidev, hba->irq_res, hba->irq_handle); + + hpt_free_mem(vbus_ext); + + while ((hba=vbus_ext->hba_list)) { + vbus_ext->hba_list = hba->next; + free(hba->ldm_adapter.him_handle, M_DEVBUF); + } + + free(vbus_ext, M_DEVBUF); + KdPrint(("hpt_shutdown_vbus done")); +} + +static void __hpt_do_tasks(PVBUS_EXT vbus_ext) +{ + OSM_TASK *tasks; + + tasks = vbus_ext->tasks; + vbus_ext->tasks = 0; + + while (tasks) { + OSM_TASK *t = tasks; + tasks = t->next; + t->next = 0; + t->func(vbus_ext->vbus, t->data); + } +} + +static void hpt_do_tasks(PVBUS_EXT vbus_ext, int pending) +{ + if(vbus_ext){ + hpt_lock_vbus(vbus_ext); + __hpt_do_tasks(vbus_ext); + hpt_unlock_vbus(vbus_ext); + } +} + +static void hpt_action(struct cam_sim *sim, union ccb *ccb); +static void hpt_poll(struct cam_sim *sim); +static void hpt_async(void * callback_arg, u_int32_t code, struct cam_path * path, void * arg); +static void hpt_pci_intr(void *arg); + +static __inline POS_CMDEXT cmdext_get(PVBUS_EXT vbus_ext) +{ + POS_CMDEXT p = vbus_ext->cmdext_list; + if (p) + vbus_ext->cmdext_list = p->next; + return p; +} + +static __inline void cmdext_put(POS_CMDEXT p) +{ + p->next = p->vbus_ext->cmdext_list; + p->vbus_ext->cmdext_list = p; +} + +static void hpt_timeout(void *arg) +{ + PCOMMAND pCmd = (PCOMMAND)arg; + POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv; + + KdPrint(("pCmd %p timeout", pCmd)); + + ldm_reset_vbus((PVBUS)ext->vbus_ext->vbus); +} + +static void os_cmddone(PCOMMAND pCmd) +{ + POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv; + union ccb *ccb = ext->ccb; + + KdPrint(("os_cmddone(%p, %d)", pCmd, pCmd->Result)); + + untimeout(hpt_timeout, pCmd, ccb->ccb_h.timeout_ch); + + switch(pCmd->Result) { + case RETURN_SUCCESS: + ccb->ccb_h.status = CAM_REQ_CMP; + break; + case RETURN_BAD_DEVICE: + ccb->ccb_h.status = CAM_DEV_NOT_THERE; + break; + case RETURN_DEVICE_BUSY: + ccb->ccb_h.status = CAM_BUSY; + break; + case RETURN_INVALID_REQUEST: + ccb->ccb_h.status = CAM_REQ_INVALID; + break; + case RETURN_SELECTION_TIMEOUT: + ccb->ccb_h.status = CAM_SEL_TIMEOUT; + break; + case RETURN_RETRY: + ccb->ccb_h.status = CAM_BUSY; + break; + default: + ccb->ccb_h.status = CAM_SCSI_STATUS_ERROR; + break; + } + + if (pCmd->flags.data_in) { + bus_dmamap_sync(ext->vbus_ext->io_dmat, ext->dma_map, BUS_DMASYNC_POSTREAD); + } + else if (pCmd->flags.data_out) { + bus_dmamap_sync(ext->vbus_ext->io_dmat, ext->dma_map, BUS_DMASYNC_POSTWRITE); + } + + bus_dmamap_unload(ext->vbus_ext->io_dmat, ext->dma_map); + + cmdext_put(ext); + ldm_free_cmds(pCmd); + xpt_done(ccb); +} + +static int os_buildsgl(PCOMMAND pCmd, PSG pSg, int logical) +{ + POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv; + union ccb *ccb = ext->ccb; + bus_dma_segment_t *sgList = (bus_dma_segment_t *)ccb->csio.data_ptr; + int idx; + + if(logical) { + if (ccb->ccb_h.flags & CAM_DATA_PHYS) + panic("physical address unsupported"); + + if (ccb->ccb_h.flags & CAM_SCATTER_VALID) { + if (ccb->ccb_h.flags & CAM_SG_LIST_PHYS) + panic("physical address unsupported"); + + for (idx = 0; idx < ccb->csio.sglist_cnt; idx++) { + os_set_sgptr(&pSg[idx], (HPT_U8 *)(HPT_UPTR)sgList[idx].ds_addr); + pSg[idx].size = sgList[idx].ds_len; + pSg[idx].eot = (idx==ccb->csio.sglist_cnt-1)? 1 : 0; + } + } + else { + os_set_sgptr(pSg, (HPT_U8 *)ccb->csio.data_ptr); + pSg->size = ccb->csio.dxfer_len; + pSg->eot = 1; + } + return TRUE; + } + + /* since we have provided physical sg, nobody will ask us to build physical sg */ + HPT_ASSERT(0); + return FALSE; +} + +static void hpt_io_dmamap_callback(void *arg, bus_dma_segment_t *segs, int nsegs, int error) +{ + PCOMMAND pCmd = (PCOMMAND)arg; + POS_CMDEXT ext = (POS_CMDEXT)pCmd->priv; + PSG psg = pCmd->psg; + int idx; + + HPT_ASSERT(pCmd->flags.physical_sg); + + if (error || nsegs == 0) + panic("busdma error"); + + HPT_ASSERT(nsegs<=os_max_sg_descriptors); + + for (idx = 0; idx < nsegs; idx++, psg++) { + psg->addr.bus = segs[idx].ds_addr; + psg->size = segs[idx].ds_len; + psg->eot = 0; + } + psg[-1].eot = 1; + + if (pCmd->flags.data_in) { + bus_dmamap_sync(ext->vbus_ext->io_dmat, ext->dma_map, BUS_DMASYNC_PREREAD); + } + else if (pCmd->flags.data_out) { + bus_dmamap_sync(ext->vbus_ext->io_dmat, ext->dma_map, BUS_DMASYNC_PREWRITE); + } + + ext->ccb->ccb_h.timeout_ch = timeout(hpt_timeout, pCmd, HPT_OSM_TIMEOUT); + ldm_queue_cmd(pCmd); +} + +static void hpt_scsi_io(PVBUS_EXT vbus_ext, union ccb *ccb) +{ + PVBUS vbus = (PVBUS)vbus_ext->vbus; + PVDEV vd; + PCOMMAND pCmd; + POS_CMDEXT ext; + HPT_U8 *cdb; + + if (ccb->ccb_h.flags & CAM_CDB_POINTER) + cdb = ccb->csio.cdb_io.cdb_ptr; + else + cdb = ccb->csio.cdb_io.cdb_bytes; + + KdPrint(("hpt_scsi_io: ccb %x id %d lun %d cdb %x-%x-%x", + ccb, + ccb->ccb_h.target_id, ccb->ccb_h.target_lun, + *(HPT_U32 *)&cdb[0], *(HPT_U32 *)&cdb[4], *(HPT_U32 *)&cdb[8] + )); + + /* ccb->ccb_h.path_id is not our bus id - don't check it */ + if (ccb->ccb_h.target_lun != 0 || + ccb->ccb_h.target_id >= osm_max_targets || + (ccb->ccb_h.flags & CAM_CDB_PHYS)) + { + ccb->ccb_h.status = CAM_TID_INVALID; + xpt_done(ccb); + return; + } + + vd = ldm_find_target(vbus, ccb->ccb_h.target_id); + + if (!vd) { + ccb->ccb_h.status = CAM_TID_INVALID; + xpt_done(ccb); + return; + } + + switch (cdb[0]) { + case TEST_UNIT_READY: + case START_STOP_UNIT: + case SYNCHRONIZE_CACHE: + ccb->ccb_h.status = CAM_REQ_CMP; + break; + + case INQUIRY: + { + PINQUIRYDATA inquiryData; + memset(ccb->csio.data_ptr, 0, ccb->csio.dxfer_len); + inquiryData = (PINQUIRYDATA)ccb->csio.data_ptr; + + inquiryData->AdditionalLength = 31; + inquiryData->CommandQueue = 1; + memcpy(&inquiryData->VendorId, "HPT ", 8); + memcpy(&inquiryData->ProductId, "DISK 0_0 ", 16); + + if (vd->target_id / 10) { + inquiryData->ProductId[7] = (vd->target_id % 100) / 10 + '0'; + inquiryData->ProductId[8] = (vd->target_id % 100) % 10 + '0'; + } + else + inquiryData->ProductId[7] = (vd->target_id % 100) % 10 + '0'; + + memcpy(&inquiryData->ProductRevisionLevel, "4.00", 4); + + ccb->ccb_h.status = CAM_REQ_CMP; + } + break; + + case READ_CAPACITY: + { + HPT_U8 *rbuf = ccb->csio.data_ptr; + HPT_U32 cap; + + if (vd->capacity>0xfffffffful) + cap = 0xfffffffful; + else + cap = vd->capacity - 1; + + rbuf[0] = (HPT_U8)(cap>>24); + rbuf[1] = (HPT_U8)(cap>>16); + rbuf[2] = (HPT_U8)(cap>>8); + rbuf[3] = (HPT_U8)cap; + rbuf[4] = 0; + rbuf[5] = 0; + rbuf[6] = 2; + rbuf[7] = 0; + + ccb->ccb_h.status = CAM_REQ_CMP; + break; + } + + case SERVICE_ACTION_IN: + { + HPT_U8 *rbuf = ccb->csio.data_ptr; + HPT_U64 cap = vd->capacity - 1; + + rbuf[0] = (HPT_U8)(cap>>56); + rbuf[1] = (HPT_U8)(cap>>48); + rbuf[2] = (HPT_U8)(cap>>40); + rbuf[3] = (HPT_U8)(cap>>32); + rbuf[4] = (HPT_U8)(cap>>24); + rbuf[5] = (HPT_U8)(cap>>16); + rbuf[6] = (HPT_U8)(cap>>8); + rbuf[7] = (HPT_U8)cap; + rbuf[8] = 0; + rbuf[9] = 0; + rbuf[10] = 2; + rbuf[11] = 0; + + ccb->ccb_h.status = CAM_REQ_CMP; + break; + } + + case READ_6: + case READ_10: + case READ_16: + case WRITE_6: + case WRITE_10: + case WRITE_16: + case 0x13: + case 0x2f: + { + pCmd = ldm_alloc_cmds(vbus, vd->cmds_per_request); + if(!pCmd){ + KdPrint(("Failed to allocate command!")); + ccb->ccb_h.status = CAM_BUSY; + break; + } + + switch (cdb[0]) { + case READ_6: + case WRITE_6: + case 0x13: + pCmd->uCmd.Ide.Lba = ((HPT_U32)cdb[1] << 16) | ((HPT_U32)cdb[2] << 8) | (HPT_U32)cdb[3]; + pCmd->uCmd.Ide.nSectors = (HPT_U16) cdb[4]; + break; + case READ_16: + case WRITE_16: + { + HPT_U64 block = + ((HPT_U64)cdb[2]<<56) | + ((HPT_U64)cdb[3]<<48) | + ((HPT_U64)cdb[4]<<40) | + ((HPT_U64)cdb[5]<<32) | + ((HPT_U64)cdb[6]<<24) | + ((HPT_U64)cdb[7]<<16) | + ((HPT_U64)cdb[8]<<8) | + ((HPT_U64)cdb[9]); + pCmd->uCmd.Ide.Lba = block; + pCmd->uCmd.Ide.nSectors = (HPT_U16)cdb[13] | ((HPT_U16)cdb[12]<<8); + break; + } + + default: + pCmd->uCmd.Ide.Lba = (HPT_U32)cdb[5] | ((HPT_U32)cdb[4] << 8) | ((HPT_U32)cdb[3] << 16) | ((HPT_U32)cdb[2] << 24); + pCmd->uCmd.Ide.nSectors = (HPT_U16) cdb[8] | ((HPT_U16)cdb[7]<<8); + break; + } + + switch (cdb[0]) { + case READ_6: + case READ_10: + case READ_16: + pCmd->flags.data_in = 1; + break; + case WRITE_6: + case WRITE_10: + case WRITE_16: + pCmd->flags.data_out = 1; + break; + } + pCmd->priv = ext = cmdext_get(vbus_ext); + HPT_ASSERT(ext); + ext->ccb = ccb; + pCmd->target = vd; + pCmd->done = os_cmddone; + pCmd->buildsgl = os_buildsgl; + + pCmd->psg = ext->psg; + + if (ccb->ccb_h.flags & CAM_SCATTER_VALID) { + int idx; + bus_dma_segment_t *sgList = (bus_dma_segment_t *)ccb->csio.data_ptr; + + if (ccb->ccb_h.flags & CAM_SG_LIST_PHYS) + pCmd->flags.physical_sg = 1; + + for (idx = 0; idx < ccb->csio.sglist_cnt; idx++) { + pCmd->psg[idx].addr.bus = sgList[idx].ds_addr; + pCmd->psg[idx].size = sgList[idx].ds_len; + pCmd->psg[idx].eot = (idx==ccb->csio.sglist_cnt-1)? 1 : 0; + } + + ccb->ccb_h.timeout_ch = timeout(hpt_timeout, pCmd, HPT_OSM_TIMEOUT); + ldm_queue_cmd(pCmd); + } + else { + int error; + pCmd->flags.physical_sg = 1; + error = bus_dmamap_load(vbus_ext->io_dmat, + ext->dma_map, + ccb->csio.data_ptr, ccb->csio.dxfer_len, + hpt_io_dmamap_callback, pCmd, + BUS_DMA_WAITOK + ); + KdPrint(("bus_dmamap_load return %d", error)); + if (error && error!=EINPROGRESS) { + os_printk("bus_dmamap_load error %d", error); + cmdext_put(ext); + ldm_free_cmds(pCmd); + ccb->ccb_h.status = CAM_REQ_CMP_ERR; + xpt_done(ccb); + } + } + return; + } + + default: + ccb->ccb_h.status = CAM_REQ_INVALID; + break; + } + + xpt_done(ccb); + return; +} + +static void hpt_action(struct cam_sim *sim, union ccb *ccb) +{ + PVBUS_EXT vbus_ext = (PVBUS_EXT)cam_sim_softc(sim); + + KdPrint(("hpt_action(fn=%d, id=%d)", ccb->ccb_h.func_code, ccb->ccb_h.target_id)); + + switch (ccb->ccb_h.func_code) { + + case XPT_SCSI_IO: + hpt_lock_vbus(vbus_ext); + hpt_scsi_io(vbus_ext, ccb); + hpt_unlock_vbus(vbus_ext); + return; + + case XPT_RESET_BUS: + hpt_lock_vbus(vbus_ext); + ldm_reset_vbus((PVBUS)vbus_ext->vbus); + hpt_unlock_vbus(vbus_ext); + break; + + case XPT_GET_TRAN_SETTINGS: + case XPT_SET_TRAN_SETTINGS: + ccb->ccb_h.status = CAM_FUNC_NOTAVAIL; + break; + + case XPT_CALC_GEOMETRY: + ccb->ccg.heads = 255; + ccb->ccg.secs_per_track = 63; + ccb->ccg.cylinders = ccb->ccg.volume_size / (ccb->ccg.heads * ccb->ccg.secs_per_track); + ccb->ccb_h.status = CAM_REQ_CMP; + break; + + case XPT_PATH_INQ: + { + struct ccb_pathinq *cpi = &ccb->cpi; + + cpi->version_num = 1; + cpi->hba_inquiry = PI_SDTR_ABLE; + cpi->target_sprt = 0; + cpi->hba_misc = PIM_NOBUSRESET; + cpi->hba_eng_cnt = 0; + cpi->max_target = osm_max_targets; + cpi->max_lun = 0; + cpi->unit_number = cam_sim_unit(sim); + cpi->bus_id = cam_sim_bus(sim); + cpi->initiator_id = osm_max_targets; + cpi->base_transfer_speed = 3300; + + strncpy(cpi->sim_vid, "FreeBSD", SIM_IDLEN); + strncpy(cpi->hba_vid, "HPT ", HBA_IDLEN); + strncpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN); + cpi->ccb_h.status = CAM_REQ_CMP; + break; + } + + default: + ccb->ccb_h.status = CAM_REQ_INVALID; + break; + } + + xpt_done(ccb); + return; +} + +static void hpt_pci_intr(void *arg) +{ + PVBUS_EXT vbus_ext = (PVBUS_EXT)arg; + hpt_lock_vbus(vbus_ext); + ldm_intr((PVBUS)vbus_ext->vbus); + hpt_unlock_vbus(vbus_ext); +} + +static void hpt_poll(struct cam_sim *sim) +{ + hpt_pci_intr(cam_sim_softc(sim)); +} + +static void hpt_async(void * callback_arg, u_int32_t code, struct cam_path * path, void * arg) +{ + KdPrint(("hpt_async")); +} + +static int hpt_shutdown(device_t dev) +{ + KdPrint(("hpt_shutdown(dev=%p)", dev)); + return 0; +} + +static int hpt_detach(device_t dev) +{ + /* we don't allow the driver to be unloaded. */ + return EBUSY; +} + +static void hpt_ioctl_done(struct _IOCTL_ARG *arg) +{ + arg->ioctl_cmnd = 0; + wakeup(arg); +} + +static void __hpt_do_ioctl(PVBUS_EXT vbus_ext, IOCTL_ARG *ioctl_args) +{ + ioctl_args->result = -1; + ioctl_args->done = hpt_ioctl_done; + ioctl_args->ioctl_cmnd = (void *)1; + + hpt_lock_vbus(vbus_ext); + ldm_ioctl((PVBUS)vbus_ext->vbus, ioctl_args); + + while (ioctl_args->ioctl_cmnd) { + if (hpt_sleep(vbus_ext, ioctl_args, PPAUSE, "hptctl", HPT_OSM_TIMEOUT)==0) + break; + ldm_reset_vbus((PVBUS)vbus_ext->vbus); + __hpt_do_tasks(vbus_ext); + } + + /* KdPrint(("ioctl %x result %d", ioctl_args->dwIoControlCode, ioctl_args->result)); */ + + hpt_unlock_vbus(vbus_ext); +} + +static void hpt_do_ioctl(IOCTL_ARG *ioctl_args) +{ + PVBUS vbus; + PVBUS_EXT vbus_ext; + + ldm_for_each_vbus(vbus, vbus_ext) { + __hpt_do_ioctl(vbus_ext, ioctl_args); + if (ioctl_args->result!=HPT_IOCTL_RESULT_WRONG_VBUS) + return; + } +} + +#define HPT_DO_IOCTL(code, inbuf, insize, outbuf, outsize) ({\ + IOCTL_ARG arg;\ + arg.dwIoControlCode = code;\ + arg.lpInBuffer = inbuf;\ + arg.lpOutBuffer = outbuf;\ + arg.nInBufferSize = insize;\ + arg.nOutBufferSize = outsize;\ + arg.lpBytesReturned = 0;\ + hpt_do_ioctl(&arg);\ + arg.result;\ +}) + +#define DEVICEID_VALID(id) ((id) && ((HPT_U32)(id)!=0xffffffff)) + +static int hpt_get_logical_devices(DEVICEID * pIds, int nMaxCount) +{ + int i; + HPT_U32 count = nMaxCount-1; + + if (HPT_DO_IOCTL(HPT_IOCTL_GET_LOGICAL_DEVICES, + &count, sizeof(HPT_U32), pIds, sizeof(DEVICEID)*nMaxCount)) + return -1; + + nMaxCount = (int)pIds[0]; + for (i=0; i=503000 + .d_version = D_VERSION, +#endif +#if (__FreeBSD_version>=503000 && __FreeBSD_version<600034) + .d_flags = D_NEEDGIANT, +#endif +#if __FreeBSD_version<600034 +#if __FreeBSD_version>501000 + .d_maj = MAJOR_AUTO, +#else + .d_maj = HPT_DEV_MAJOR, +#endif +#endif +}; + +static struct intr_config_hook hpt_ich; + +/* + * hpt_final_init will be called after all hpt_attach. + */ +static void hpt_final_init(void *dummy) +{ + int i; + PVBUS_EXT vbus_ext; + PVBUS vbus; + PHBA hba; + + /* Clear the config hook */ + config_intrhook_disestablish(&hpt_ich); + + /* allocate memory */ + i = 0; + ldm_for_each_vbus(vbus, vbus_ext) { + if (hpt_alloc_mem(vbus_ext)) { + os_printk("out of memory"); + return; + } + i++; + } + + if (!i) { + os_printk("no controller detected."); + return; + } + + /* initializing hardware */ + ldm_for_each_vbus(vbus, vbus_ext) { + /* make timer available here */ + callout_handle_init(&vbus_ext->timer); + if (hpt_init_vbus(vbus_ext)) { + os_printk("fail to initialize hardware"); + break; /* FIXME */ + } + } + + /* register CAM interface */ + ldm_for_each_vbus(vbus, vbus_ext) { + struct cam_devq *devq; + struct ccb_setasync ccb; + +#if (__FreeBSD_version >= 500000) + mtx_init(&vbus_ext->lock, "hptsleeplock", NULL, MTX_DEF); +#endif + if (bus_dma_tag_create(NULL,/* parent */ + 4, /* alignment */ + BUS_SPACE_MAXADDR_32BIT+1, /* boundary */ + BUS_SPACE_MAXADDR, /* lowaddr */ + BUS_SPACE_MAXADDR, /* highaddr */ + NULL, NULL, /* filter, filterarg */ + PAGE_SIZE * (os_max_sg_descriptors-1), /* maxsize */ + os_max_sg_descriptors, /* nsegments */ + 0x10000, /* maxsegsize */ + BUS_DMA_WAITOK, /* flags */ +#if __FreeBSD_version>502000 + busdma_lock_mutex, /* lockfunc */ + &vbus_ext->lock, /* lockfuncarg */ +#endif + &vbus_ext->io_dmat /* tag */)) + { + return ; + } + + for (i=0; ivbus_ext = vbus_ext; + ext->next = vbus_ext->cmdext_list; + vbus_ext->cmdext_list = ext; + + if (bus_dmamap_create(vbus_ext->io_dmat, 0, &ext->dma_map)) { + os_printk("Can't create dma map(%d)", i); + return ; + } + } + + if ((devq = cam_simq_alloc(os_max_queue_comm)) == NULL) { + os_printk("cam_simq_alloc failed"); + return ; + } + + vbus_ext->sim = cam_sim_alloc(hpt_action, hpt_poll, driver_name, + vbus_ext, 0, os_max_queue_comm, /*tagged*/8, devq); + + if (!vbus_ext->sim) { + os_printk("cam_sim_alloc failed"); + cam_simq_free(devq); + return ; + } + + if (xpt_bus_register(vbus_ext->sim, 0) != CAM_SUCCESS) { + os_printk("xpt_bus_register failed"); + cam_sim_free(vbus_ext->sim, /*free devq*/ TRUE); + vbus_ext->sim = NULL; + return ; + } + + if (xpt_create_path(&vbus_ext->path, /*periph */ NULL, + cam_sim_path(vbus_ext->sim), CAM_TARGET_WILDCARD, + CAM_LUN_WILDCARD) != CAM_REQ_CMP) + { + os_printk("xpt_create_path failed"); + xpt_bus_deregister(cam_sim_path(vbus_ext->sim)); + cam_sim_free(vbus_ext->sim, /*free_devq*/TRUE); + vbus_ext->sim = NULL; + return ; + } + + xpt_setup_ccb(&ccb.ccb_h, vbus_ext->path, /*priority*/5); + ccb.ccb_h.func_code = XPT_SASYNC_CB; + ccb.event_enable = AC_LOST_DEVICE; + ccb.callback = hpt_async; + ccb.callback_arg = vbus_ext; + xpt_action((union ccb *)&ccb); + + for (hba = vbus_ext->hba_list; hba; hba = hba->next) { + int rid = 0; + if ((hba->irq_res = bus_alloc_resource(hba->pcidev, + SYS_RES_IRQ, &rid, 0, ~0ul, 1, RF_SHAREABLE | RF_ACTIVE)) == NULL) + { + os_printk("can't allocate interrupt"); + return ; + } + + if (bus_setup_intr(hba->pcidev, hba->irq_res, INTR_TYPE_CAM, + hpt_pci_intr, vbus_ext, &hba->irq_handle)) + { + os_printk("can't set up interrupt"); + return ; + } + hba->ldm_adapter.him->intr_control(hba->ldm_adapter.him_handle, HPT_TRUE); + } + + vbus_ext->shutdown_eh = EVENTHANDLER_REGISTER(shutdown_final, + hpt_shutdown_vbus, vbus_ext, SHUTDOWN_PRI_DEFAULT); + if (!vbus_ext->shutdown_eh) + os_printk("Shutdown event registration failed"); + } + + ldm_for_each_vbus(vbus, vbus_ext) { + TASK_INIT(&vbus_ext->worker, 0, (task_fn_t *)hpt_do_tasks, vbus_ext); + if (vbus_ext->tasks) + TASK_ENQUEUE(&vbus_ext->worker); + } + + make_dev(&hpt_cdevsw, DRIVER_MINOR, UID_ROOT, GID_OPERATOR, + S_IRUSR | S_IWUSR, driver_name); +} + +static void hpt_init(void *dummy) +{ + os_printk("%s %s", driver_name_long, driver_ver); + init_config(); + + hpt_ich.ich_func = hpt_final_init; + hpt_ich.ich_arg = NULL; + if (config_intrhook_establish(&hpt_ich) != 0) { + printf("%s: cannot establish configuration hook\n", + driver_name_long); + } + +} +SYSINIT(hptinit, SI_SUB_CONFIGURE, SI_ORDER_FIRST, hpt_init, NULL); + +/* + * CAM driver interface + */ +static device_method_t driver_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, hpt_probe), + DEVMETHOD(device_attach, hpt_attach), + DEVMETHOD(device_detach, hpt_detach), + DEVMETHOD(device_shutdown, hpt_shutdown), + { 0, 0 } +}; + +static driver_t hpt_pci_driver = { + driver_name, + driver_methods, + sizeof(HBA) +}; + +static devclass_t hpt_devclass; + +#ifndef TARGETNAME +#error "no TARGETNAME found" +#endif + +/* use this to make TARGETNAME be expanded */ +#define __DRIVER_MODULE(p1, p2, p3, p4, p5, p6) DRIVER_MODULE(p1, p2, p3, p4, p5, p6) +#define __MODULE_VERSION(p1, p2) MODULE_VERSION(p1, p2) +#define __MODULE_DEPEND(p1, p2, p3, p4, p5) MODULE_DEPEND(p1, p2, p3, p4, p5) +__DRIVER_MODULE(TARGETNAME, pci, hpt_pci_driver, hpt_devclass, 0, 0); +__MODULE_VERSION(TARGETNAME, 1); +__MODULE_DEPEND(TARGETNAME, cam, 1, 1, 1); + +#if __FreeBSD_version>503000 +typedef struct cdev * ioctl_dev_t; +#else +typedef dev_t ioctl_dev_t; +#endif + +#if __FreeBSD_version >= 500000 +typedef struct thread * ioctl_thread_t; +#else +typedef struct proc * ioctl_thread_t; +#endif + +static int hpt_open(ioctl_dev_t dev, int flags, int devtype, ioctl_thread_t td) +{ + return 0; +} + +static int hpt_close(ioctl_dev_t dev, int flags, int devtype, ioctl_thread_t td) +{ + return 0; +} + +static int hpt_ioctl(ioctl_dev_t dev, u_long cmd, caddr_t data, int fflag, ioctl_thread_t td) +{ + PHPT_IOCTL_PARAM piop=(PHPT_IOCTL_PARAM)data; + IOCTL_ARG ioctl_args; + HPT_U32 bytesReturned; + + switch (cmd){ + case HPT_DO_IOCONTROL: + { + if (piop->Magic == HPT_IOCTL_MAGIC || piop->Magic == HPT_IOCTL_MAGIC32) { + KdPrint(("ioctl=%x in=%p len=%d out=%p len=%d\n", + piop->dwIoControlCode, + piop->lpInBuffer, + piop->nInBufferSize, + piop->lpOutBuffer, + piop->nOutBufferSize)); + + memset(&ioctl_args, 0, sizeof(ioctl_args)); + + ioctl_args.dwIoControlCode = piop->dwIoControlCode; + ioctl_args.nInBufferSize = piop->nInBufferSize; + ioctl_args.nOutBufferSize = piop->nOutBufferSize; + ioctl_args.lpBytesReturned = &bytesReturned; + + if (ioctl_args.nInBufferSize) { + ioctl_args.lpInBuffer = malloc(ioctl_args.nInBufferSize, M_DEVBUF, M_WAITOK); + if (!ioctl_args.lpInBuffer) + goto invalid; + if (copyin((void*)piop->lpInBuffer, + ioctl_args.lpInBuffer, piop->nInBufferSize)) + goto invalid; + } + + if (ioctl_args.nOutBufferSize) { + ioctl_args.lpOutBuffer = malloc(ioctl_args.nOutBufferSize, M_DEVBUF, M_WAITOK); + if (!ioctl_args.lpOutBuffer) + goto invalid; + } + +#if (__FreeBSD_version >= 500000) + mtx_lock(&Giant); +#endif + + hpt_do_ioctl(&ioctl_args); + +#if (__FreeBSD_version >= 500000) + mtx_unlock(&Giant); +#endif + + if (ioctl_args.result==HPT_IOCTL_RESULT_OK) { + if (piop->nOutBufferSize) { + if (copyout(ioctl_args.lpOutBuffer, + (void*)piop->lpOutBuffer, piop->nOutBufferSize)) + goto invalid; + } + if (piop->lpBytesReturned) { + if (copyout(&bytesReturned, + (void*)piop->lpBytesReturned, sizeof(HPT_U32))) + goto invalid; + } + if (ioctl_args.lpInBuffer) free(ioctl_args.lpInBuffer, M_DEVBUF); + if (ioctl_args.lpOutBuffer) free(ioctl_args.lpOutBuffer, M_DEVBUF); + return 0; + } +invalid: + if (ioctl_args.lpInBuffer) free(ioctl_args.lpInBuffer, M_DEVBUF); + if (ioctl_args.lpOutBuffer) free(ioctl_args.lpOutBuffer, M_DEVBUF); + return EFAULT; + } + return EFAULT; + } + + case HPT_SCAN_BUS: + { + return hpt_rescan_bus(); + } + default: + KdPrint(("invalid command!")); + return EFAULT; + } + +} + +static int hpt_rescan_bus(void) +{ + struct cam_path *path; + union ccb *ccb; + PVBUS vbus; + PVBUS_EXT vbus_ext; + +#if (__FreeBSD_version >= 500000) + mtx_lock(&Giant); +#endif + + ldm_for_each_vbus(vbus, vbus_ext) { + if (xpt_create_path(&path, xpt_periph, cam_sim_path(vbus_ext->sim), + CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) + return(EIO); + if ((ccb = malloc(sizeof(union ccb), M_TEMP, M_WAITOK)) == NULL) + return(ENOMEM); + bzero(ccb, sizeof(union ccb)); + xpt_setup_ccb(&ccb->ccb_h, path, 5); + ccb->ccb_h.func_code = XPT_SCAN_BUS; + ccb->ccb_h.cbfcnp = hpt_bus_scan_cb; + ccb->crcn.flags = CAM_FLAG_NONE; + xpt_action(ccb); + } + +#if (__FreeBSD_version >= 500000) + mtx_unlock(&Giant); +#endif + + return(0); +} + +static void hpt_bus_scan_cb(struct cam_periph *periph, union ccb *ccb) +{ + if (ccb->ccb_h.status != CAM_REQ_CMP) + KdPrint(("cam_scan_callback: failure status = %x",ccb->ccb_h.status)); + else + KdPrint(("Scan bus successfully!")); + + xpt_free_path(ccb->ccb_h.path); + free(ccb, M_TEMP); + return; +} diff --git a/sys/dev/rr232x/rr232x_config.c b/sys/dev/rr232x/rr232x_config.c new file mode 100644 index 000000000000..32204ba4acbe --- /dev/null +++ b/sys/dev/rr232x/rr232x_config.c @@ -0,0 +1,31 @@ +#include +/**************************************************************************** + * config.c - auto-generated file + * $FreeBSD$ + ****************************************************************************/ +#include + +extern int init_module_him_sx508x(void); +extern int init_module_vdev_raw(void); +extern int init_module_partition(void); +extern int init_module_raid0(void); +extern int init_module_raid1(void); +extern int init_module_raid5(void); +extern int init_module_jbod(void); + +int init_config(void) +{ + init_module_him_sx508x(); + init_module_vdev_raw(); + init_module_partition(); + init_module_raid0(); + init_module_raid1(); + init_module_raid5(); + init_module_jbod(); + return 0; +} + +char driver_name[] = "rr232x"; +char driver_name_long[] = "RocketRAID 232x controller driver"; +char driver_ver[] = "v1.02 (" __DATE__ " " __TIME__ ")"; +int osm_max_targets = 0xff; diff --git a/sys/dev/rr232x/rr232x_config.h b/sys/dev/rr232x/rr232x_config.h new file mode 100644 index 000000000000..c6098aec384f --- /dev/null +++ b/sys/dev/rr232x/rr232x_config.h @@ -0,0 +1,107 @@ +/* + * $FreeBSD$ + */ +#ifndef rr232x_CONFIG_H +#define rr232x_CONFIG_H +#define SUPPORT_ARRAY +#define __KERNEL__ 1 +#define DRIVER_MINOR 1 +#define TARGETNAME rr232x +#define __dummy_reg rr232x___dummy_reg +#define __ldm_alloc_cmd rr232x___ldm_alloc_cmd +#define dmapool_active rr232x_dmapool_active +#define dmapool_get_page rr232x_dmapool_get_page +#define dmapool_make_order rr232x_dmapool_make_order +#define dmapool_put_page rr232x_dmapool_put_page +#define dmapool_register_client rr232x_dmapool_register_client +#define driver_name rr232x_driver_name +#define driver_name_long rr232x_driver_name_long +#define driver_ver rr232x_driver_ver +#define freelist_get rr232x_freelist_get +#define freelist_get_dma rr232x_freelist_get_dma +#define freelist_put rr232x_freelist_put +#define freelist_put_dma rr232x_freelist_put_dma +#define freelist_reserve rr232x_freelist_reserve +#define freelist_reserve_dma rr232x_freelist_reserve_dma +#define him_handle_to_vbus rr232x_him_handle_to_vbus +#define him_list rr232x_him_list +#define init_config rr232x_init_config +#define init_module_him_sx508x rr232x_init_module_him_sx508x +#define init_module_jbod rr232x_init_module_jbod +#define init_module_partition rr232x_init_module_partition +#define init_module_raid0 rr232x_init_module_raid0 +#define init_module_raid1 rr232x_init_module_raid1 +#define init_module_raid5 rr232x_init_module_raid5 +#define init_module_vdev_raw rr232x_init_module_vdev_raw +#define ldm_acquire_lock rr232x_ldm_acquire_lock +#define ldm_add_spare_to_array rr232x_ldm_add_spare_to_array +#define ldm_alloc_cmds_R_5_34_48_37_16 rr232x_ldm_alloc_cmds_R_5_34_48_37_16 +#define ldm_alloc_cmds_from_list rr232x_ldm_alloc_cmds_from_list +#define ldm_check_array_online rr232x_ldm_check_array_online +#define ldm_create_vbus rr232x_ldm_create_vbus +#define ldm_create_vdev rr232x_ldm_create_vdev +#define ldm_event_notify rr232x_ldm_event_notify +#define ldm_find_target rr232x_ldm_find_target +#define ldm_finish_cmd rr232x_ldm_finish_cmd +#define ldm_free_cmds rr232x_ldm_free_cmds +#define ldm_free_cmds_to_list rr232x_ldm_free_cmds_to_list +#define ldm_generic_member_failed rr232x_ldm_generic_member_failed +#define ldm_get_cmd_size rr232x_ldm_get_cmd_size +#define ldm_get_device_id rr232x_ldm_get_device_id +#define ldm_get_mem_info rr232x_ldm_get_mem_info +#define ldm_get_next_vbus rr232x_ldm_get_next_vbus +#define ldm_get_vbus_ext rr232x_ldm_get_vbus_ext +#define ldm_get_vbus_size rr232x_ldm_get_vbus_size +#define ldm_initialize_vbus_async rr232x_ldm_initialize_vbus_async +#define ldm_intr rr232x_ldm_intr +#define ldm_ioctl rr232x_ldm_ioctl +#define ldm_on_timer rr232x_ldm_on_timer +#define ldm_queue_cmd rr232x_ldm_queue_cmd +#define ldm_queue_task rr232x_ldm_queue_task +#define ldm_queue_vbus_dpc rr232x_ldm_queue_vbus_dpc +#define ldm_register_adapter rr232x_ldm_register_adapter +#define ldm_register_device rr232x_ldm_register_device +#define ldm_register_him_R_5_34_48_37_16 rr232x_ldm_register_him_R_5_34_48_37_16 +#define ldm_register_vdev_class_R_5_34_48_37_16 rr232x_ldm_register_vdev_class_R_5_34_48_37_16 +#define ldm_release_lock rr232x_ldm_release_lock +#define ldm_release_vbus rr232x_ldm_release_vbus +#define ldm_release_vdev rr232x_ldm_release_vdev +#define ldm_remove_timer rr232x_ldm_remove_timer +#define ldm_request_timer rr232x_ldm_request_timer +#define ldm_reset_vbus rr232x_ldm_reset_vbus +#define ldm_resume rr232x_ldm_resume +#define ldm_shutdown rr232x_ldm_shutdown +#define ldm_suspend rr232x_ldm_suspend +#define ldm_sync_array_info rr232x_ldm_sync_array_info +#define ldm_sync_array_stamp rr232x_ldm_sync_array_stamp +#define ldm_timer_probe_device rr232x_ldm_timer_probe_device +#define ldm_unregister_device rr232x_ldm_unregister_device +#define num_drives_per_spinup rr232x_num_drives_per_spinup +#define os_get_stamp rr232x_os_get_stamp +#define os_get_vbus_seq rr232x_os_get_vbus_seq +#define os_inb rr232x_os_inb +#define os_inl rr232x_os_inl +#define os_insw rr232x_os_insw +#define os_inw rr232x_os_inw +#define os_map_pci_bar rr232x_os_map_pci_bar +#define os_outb rr232x_os_outb +#define os_outl rr232x_os_outl +#define os_outsw rr232x_os_outsw +#define os_outw rr232x_os_outw +#define os_pci_readb rr232x_os_pci_readb +#define os_pci_readl rr232x_os_pci_readl +#define os_pci_readw rr232x_os_pci_readw +#define os_pci_writeb rr232x_os_pci_writeb +#define os_pci_writel rr232x_os_pci_writel +#define os_pci_writew rr232x_os_pci_writew +#define os_printk rr232x_os_printk +#define os_query_remove_device rr232x_os_query_remove_device +#define os_query_time rr232x_os_query_time +#define os_request_timer rr232x_os_request_timer +#define os_revalidate_device rr232x_os_revalidate_device +#define os_schedule_task rr232x_os_schedule_task +#define os_stallexec rr232x_os_stallexec +#define os_unmap_pci_bar rr232x_os_unmap_pci_bar +#define osm_max_targets rr232x_osm_max_targets +#define vdev_queue_cmd rr232x_vdev_queue_cmd +#endif diff --git a/sys/dev/sk/xmaciireg.h b/sys/dev/sk/xmaciireg.h new file mode 100644 index 000000000000..604073b72a38 --- /dev/null +++ b/sys/dev/sk/xmaciireg.h @@ -0,0 +1,406 @@ +/*- + * Copyright (c) 1997, 1998, 1999, 2000 + * Bill Paul . All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Bill Paul. + * 4. Neither the name of the author nor the names of any co-contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + +/* + * Registers and data structures for the XaQti Corporation XMAC II + * Gigabit Ethernet MAC. Datasheet is available from http://www.xaqti.com. + * The XMAC can be programmed for 16-bit or 32-bit register access modes. + * The SysKonnect gigabit ethernet adapters use 16-bit mode, so that's + * how the registers are laid out here. + */ + +#define XM_DEVICEID 0x00E0AE20 +#define XM_XAQTI_OUI 0x00E0AE + +#define XM_XMAC_REV(x) (((x) & 0x000000E0) >> 5) + +#define XM_XMAC_REV_B2 0x0 +#define XM_XMAC_REV_C1 0x1 + +#define XM_MMUCMD 0x0000 +#define XM_POFF 0x0008 +#define XM_BURST 0x000C +#define XM_VLAN_TAGLEV1 0x0010 +#define XM_VLAN_TAGLEV2 0x0014 +#define XM_TXCMD 0x0020 +#define XM_TX_RETRYLIMIT 0x0024 +#define XM_TX_SLOTTIME 0x0028 +#define XM_TX_IPG 0x003C +#define XM_RXCMD 0x0030 +#define XM_PHY_ADDR 0x0034 +#define XM_PHY_DATA 0x0038 +#define XM_GPIO 0x0040 +#define XM_IMR 0x0044 +#define XM_ISR 0x0048 +#define XM_HWCFG 0x004C +#define XM_TX_LOWAT 0x0060 +#define XM_TX_HIWAT 0x0062 +#define XM_TX_REQTHRESH_LO 0x0064 +#define XM_TX_REQTHRESH_HI 0x0066 +#define XM_TX_REQTHRESH XM_TX_REQTHRESH_LO +#define XM_PAUSEDST0 0x0068 +#define XM_PAUSEDST1 0x006A +#define XM_PAUSEDST2 0x006C +#define XM_CTLPARM_LO 0x0070 +#define XM_CTLPARM_HI 0x0072 +#define XM_CTLPARM XM_CTLPARM_LO +#define XM_OPCODE_PAUSE_TIMER 0x0074 +#define XM_TXSTAT_LIFO 0x0078 + +/* + * Perfect filter registers. The XMAC has a table of 16 perfect + * filter entries, spaced 8 bytes apart. This is in addition to + * the station address registers, which appear below. + */ +#define XM_RXFILT_BASE 0x0080 +#define XM_RXFILT_END 0x0107 +#define XM_RXFILT_MAX 16 +#define XM_RXFILT_ENTRY(ent) (XM_RXFILT_BASE + ((ent * 8))) + +/* Primary station address. */ +#define XM_PAR0 0x0108 +#define XM_PAR1 0x010A +#define XM_PAR2 0x010C + +/* 64-bit multicast hash table registers */ +#define XM_MAR0 0x0110 +#define XM_MAR1 0x0112 +#define XM_MAR2 0x0114 +#define XM_MAR3 0x0116 +#define XM_RX_LOWAT 0x0118 +#define XM_RX_HIWAT 0x011A +#define XM_RX_REQTHRESH_LO 0x011C +#define XM_RX_REQTHRESH_HI 0x011E +#define XM_RX_REQTHRESH XM_RX_REQTHRESH_LO +#define XM_DEVID_LO 0x0120 +#define XM_DEVID_HI 0x0122 +#define XM_DEVID XM_DEVID_LO +#define XM_MODE_LO 0x0124 +#define XM_MODE_HI 0x0126 +#define XM_MODE XM_MODE_LO +#define XM_LASTSRC0 0x0128 +#define XM_LASTSRC1 0x012A +#define XM_LASTSRC2 0x012C +#define XM_TSTAMP_READ 0x0130 +#define XM_TSTAMP_LOAD 0x0134 +#define XM_STATS_CMD 0x0200 +#define XM_RXCNT_EVENT_LO 0x0204 +#define XM_RXCNT_EVENT_HI 0x0206 +#define XM_RXCNT_EVENT XM_RXCNT_EVENT_LO +#define XM_TXCNT_EVENT_LO 0x0208 +#define XM_TXCNT_EVENT_HI 0x020A +#define XM_TXCNT_EVENT XM_TXCNT_EVENT_LO +#define XM_RXCNT_EVMASK_LO 0x020C +#define XM_RXCNT_EVMASK_HI 0x020E +#define XM_RXCNT_EVMASK XM_RXCNT_EVMASK_LO +#define XM_TXCNT_EVMASK_LO 0x0210 +#define XM_TXCNT_EVMASK_HI 0x0212 +#define XM_TXCNT_EVMASK XM_TXCNT_EVMASK_LO + +/* Statistics command register */ +#define XM_STATCMD_CLR_TX 0x0001 +#define XM_STATCMD_CLR_RX 0x0002 +#define XM_STATCMD_COPY_TX 0x0004 +#define XM_STATCMD_COPY_RX 0x0008 +#define XM_STATCMD_SNAP_TX 0x0010 +#define XM_STATCMD_SNAP_RX 0x0020 + +/* TX statistics registers */ +#define XM_TXSTATS_PKTSOK 0x280 +#define XM_TXSTATS_BYTESOK_HI 0x284 +#define XM_TXSTATS_BYTESOK_LO 0x288 +#define XM_TXSTATS_BCASTSOK 0x28C +#define XM_TXSTATS_MCASTSOK 0x290 +#define XM_TXSTATS_UCASTSOK 0x294 +#define XM_TXSTATS_GIANTS 0x298 +#define XM_TXSTATS_BURSTCNT 0x29C +#define XM_TXSTATS_PAUSEPKTS 0x2A0 +#define XM_TXSTATS_MACCTLPKTS 0x2A4 +#define XM_TXSTATS_SINGLECOLS 0x2A8 +#define XM_TXSTATS_MULTICOLS 0x2AC +#define XM_TXSTATS_EXCESSCOLS 0x2B0 +#define XM_TXSTATS_LATECOLS 0x2B4 +#define XM_TXSTATS_DEFER 0x2B8 +#define XM_TXSTATS_EXCESSDEFER 0x2BC +#define XM_TXSTATS_UNDERRUN 0x2C0 +#define XM_TXSTATS_CARRIERSENSE 0x2C4 +#define XM_TXSTATS_UTILIZATION 0x2C8 +#define XM_TXSTATS_64 0x2D0 +#define XM_TXSTATS_65_127 0x2D4 +#define XM_TXSTATS_128_255 0x2D8 +#define XM_TXSTATS_256_511 0x2DC +#define XM_TXSTATS_512_1023 0x2E0 +#define XM_TXSTATS_1024_MAX 0x2E4 + +/* RX statistics registers */ +#define XM_RXSTATS_PKTSOK 0x300 +#define XM_RXSTATS_BYTESOK_HI 0x304 +#define XM_RXSTATS_BYTESOK_LO 0x308 +#define XM_RXSTATS_BCASTSOK 0x30C +#define XM_RXSTATS_MCASTSOK 0x310 +#define XM_RXSTATS_UCASTSOK 0x314 +#define XM_RXSTATS_PAUSEPKTS 0x318 +#define XM_RXSTATS_MACCTLPKTS 0x31C +#define XM_RXSTATS_BADPAUSEPKTS 0x320 +#define XM_RXSTATS_BADMACCTLPKTS 0x324 +#define XM_RXSTATS_BURSTCNT 0x328 +#define XM_RXSTATS_MISSEDPKTS 0x32C +#define XM_RXSTATS_FRAMEERRS 0x330 +#define XM_RXSTATS_OVERRUN 0x334 +#define XM_RXSTATS_JABBER 0x338 +#define XM_RXSTATS_CARRLOSS 0x33C +#define XM_RXSTATS_INRNGLENERR 0x340 +#define XM_RXSTATS_SYMERR 0x344 +#define XM_RXSTATS_SHORTEVENT 0x348 +#define XM_RXSTATS_RUNTS 0x34C +#define XM_RXSTATS_GIANTS 0x350 +#define XM_RXSTATS_CRCERRS 0x354 +#define XM_RXSTATS_CEXTERRS 0x35C +#define XM_RXSTATS_UTILIZATION 0x360 +#define XM_RXSTATS_64 0x368 +#define XM_RXSTATS_65_127 0x36C +#define XM_RXSTATS_128_255 0x370 +#define XM_RXSTATS_256_511 0x374 +#define XM_RXSTATS_512_1023 0x378 +#define XM_RXSTATS_1024_MAX 0x37C + +#define XM_MMUCMD_TX_ENB 0x0001 +#define XM_MMUCMD_RX_ENB 0x0002 +#define XM_MMUCMD_GMIILOOP 0x0004 +#define XM_MMUCMD_RATECTL 0x0008 +#define XM_MMUCMD_GMIIFDX 0x0010 +#define XM_MMUCMD_NO_MGMT_PRMB 0x0020 +#define XM_MMUCMD_SIMCOL 0x0040 +#define XM_MMUCMD_FORCETX 0x0080 +#define XM_MMUCMD_LOOPENB 0x0200 +#define XM_MMUCMD_IGNPAUSE 0x0400 +#define XM_MMUCMD_PHYBUSY 0x0800 +#define XM_MMUCMD_PHYDATARDY 0x1000 + +#define XM_TXCMD_AUTOPAD 0x0001 +#define XM_TXCMD_NOCRC 0x0002 +#define XM_TXCMD_NOPREAMBLE 0x0004 +#define XM_TXCMD_NOGIGAMODE 0x0008 +#define XM_TXCMD_SAMPLELINE 0x0010 +#define XM_TXCMD_ENCBYPASS 0x0020 +#define XM_TXCMD_XMITBK2BK 0x0040 +#define XM_TXCMD_FAIRSHARE 0x0080 + +#define XM_RXCMD_DISABLE_CEXT 0x0001 +#define XM_RXCMD_STRIPPAD 0x0002 +#define XM_RXCMD_SAMPLELINE 0x0004 +#define XM_RXCMD_SELFRX 0x0008 +#define XM_RXCMD_STRIPFCS 0x0010 +#define XM_RXCMD_TRANSPARENT 0x0020 +#define XM_RXCMD_IPGCAPTURE 0x0040 +#define XM_RXCMD_BIGPKTOK 0x0080 +#define XM_RXCMD_LENERROK 0x0100 + +#define XM_GPIO_GP0_SET 0x0001 +#define XM_GPIO_RESETSTATS 0x0004 +#define XM_GPIO_RESETMAC 0x0008 +#define XM_GPIO_FORCEINT 0x0020 +#define XM_GPIO_ANEGINPROG 0x0040 + +#define XM_IMR_RX_EOF 0x0001 +#define XM_IMR_TX_EOF 0x0002 +#define XM_IMR_TX_UNDERRUN 0x0004 +#define XM_IMR_RX_OVERRUN 0x0008 +#define XM_IMR_TX_STATS_OFLOW 0x0010 +#define XM_IMR_RX_STATS_OFLOW 0x0020 +#define XM_IMR_TSTAMP_OFLOW 0x0040 +#define XM_IMR_AUTONEG_DONE 0x0080 +#define XM_IMR_NEXTPAGE_RDY 0x0100 +#define XM_IMR_PAGE_RECEIVED 0x0200 +#define XM_IMR_LP_REQCFG 0x0400 +#define XM_IMR_GP0_SET 0x0800 +#define XM_IMR_FORCEINTR 0x1000 +#define XM_IMR_TX_ABORT 0x2000 +#define XM_IMR_LINKEVENT 0x4000 + +#define XM_INTRS \ + (~(XM_IMR_GP0_SET|XM_IMR_AUTONEG_DONE|XM_IMR_TX_UNDERRUN)) + +#define XM_ISR_RX_EOF 0x0001 +#define XM_ISR_TX_EOF 0x0002 +#define XM_ISR_TX_UNDERRUN 0x0004 +#define XM_ISR_RX_OVERRUN 0x0008 +#define XM_ISR_TX_STATS_OFLOW 0x0010 +#define XM_ISR_RX_STATS_OFLOW 0x0020 +#define XM_ISR_TSTAMP_OFLOW 0x0040 +#define XM_ISR_AUTONEG_DONE 0x0080 +#define XM_ISR_NEXTPAGE_RDY 0x0100 +#define XM_ISR_PAGE_RECEIVED 0x0200 +#define XM_ISR_LP_REQCFG 0x0400 +#define XM_ISR_GP0_SET 0x0800 +#define XM_ISR_FORCEINTR 0x1000 +#define XM_ISR_TX_ABORT 0x2000 +#define XM_ISR_LINKEVENT 0x4000 + +#define XM_HWCFG_GENEOP 0x0008 +#define XM_HWCFG_SIGSTATCKH 0x0004 +#define XM_HWCFG_GMIIMODE 0x0001 + +#define XM_MODE_FLUSH_RXFIFO 0x00000001 +#define XM_MODE_FLUSH_TXFIFO 0x00000002 +#define XM_MODE_BIGENDIAN 0x00000004 +#define XM_MODE_RX_PROMISC 0x00000008 +#define XM_MODE_RX_NOBROAD 0x00000010 +#define XM_MODE_RX_NOMULTI 0x00000020 +#define XM_MODE_RX_NOUNI 0x00000040 +#define XM_MODE_RX_BADFRAMES 0x00000080 +#define XM_MODE_RX_CRCERRS 0x00000100 +#define XM_MODE_RX_GIANTS 0x00000200 +#define XM_MODE_RX_INRANGELEN 0x00000400 +#define XM_MODE_RX_RUNTS 0x00000800 +#define XM_MODE_RX_MACCTL 0x00001000 +#define XM_MODE_RX_USE_PERFECT 0x00002000 +#define XM_MODE_RX_USE_STATION 0x00004000 +#define XM_MODE_RX_USE_HASH 0x00008000 +#define XM_MODE_RX_ADDRPAIR 0x00010000 +#define XM_MODE_PAUSEONHI 0x00020000 +#define XM_MODE_PAUSEONLO 0x00040000 +#define XM_MODE_TIMESTAMP 0x00080000 +#define XM_MODE_SENDPAUSE 0x00100000 +#define XM_MODE_SENDCONTINUOUS 0x00200000 +#define XM_MODE_LE_STATUSWORD 0x00400000 +#define XM_MODE_AUTOFIFOPAUSE 0x00800000 +#define XM_MODE_EXPAUSEGEN 0x02000000 +#define XM_MODE_RX_INVERSE 0x04000000 + +#define XM_RXSTAT_MACCTL 0x00000001 +#define XM_RXSTAT_ERRFRAME 0x00000002 +#define XM_RXSTAT_CRCERR 0x00000004 +#define XM_RXSTAT_GIANT 0x00000008 +#define XM_RXSTAT_RUNT 0x00000010 +#define XM_RXSTAT_FRAMEERR 0x00000020 +#define XM_RXSTAT_INRANGEERR 0x00000040 +#define XM_RXSTAT_CARRIERERR 0x00000080 +#define XM_RXSTAT_COLLERR 0x00000100 +#define XM_RXSTAT_802_3 0x00000200 +#define XM_RXSTAT_CARREXTERR 0x00000400 +#define XM_RXSTAT_BURSTMODE 0x00000800 +#define XM_RXSTAT_UNICAST 0x00002000 +#define XM_RXSTAT_MULTICAST 0x00004000 +#define XM_RXSTAT_BROADCAST 0x00008000 +#define XM_RXSTAT_VLAN_LEV1 0x00010000 +#define XM_RXSTAT_VLAN_LEV2 0x00020000 +#define XM_RXSTAT_LEN 0xFFFC0000 +#define XM_RXSTAT_LENSHIFT 18 + +#define XM_RXSTAT_BYTES(x) ((x) >> XM_RXSTAT_LENSHIFT) + +/* + * XMAC PHY registers, indirectly accessed through + * XM_PHY_ADDR and XM_PHY_REG. + */ + +#define XM_PHY_BMCR 0x0000 /* control */ +#define XM_PHY_BMSR 0x0001 /* status */ +#define XM_PHY_VENID 0x0002 /* vendor id */ +#define XM_PHY_DEVID 0x0003 /* device id */ +#define XM_PHY_ANAR 0x0004 /* autoneg advertisenemt */ +#define XM_PHY_LPAR 0x0005 /* link partner ability */ +#define XM_PHY_ANEXP 0x0006 /* autoneg expansion */ +#define XM_PHY_NEXTP 0x0007 /* nextpage */ +#define XM_PHY_LPNEXTP 0x0008 /* link partner's nextpage */ +#define XM_PHY_EXTSTS 0x000F /* extented status */ +#define XM_PHY_RESAB 0x0010 /* resolved ability */ + +#define XM_BMCR_DUPLEX 0x0100 +#define XM_BMCR_RENEGOTIATE 0x0200 +#define XM_BMCR_AUTONEGENBL 0x1000 +#define XM_BMCR_LOOPBACK 0x4000 +#define XM_BMCR_RESET 0x8000 + +#define XM_BMSR_EXTCAP 0x0001 +#define XM_BMSR_LINKSTAT 0x0004 +#define XM_BMSR_AUTONEGABLE 0x0008 +#define XM_BMSR_REMFAULT 0x0010 +#define XM_BMSR_AUTONEGDONE 0x0020 +#define XM_BMSR_EXTSTAT 0x0100 + +#define XM_VENID_XAQTI 0xD14C +#define XM_DEVID_XMAC 0x0002 + +#define XM_ANAR_FULLDUPLEX 0x0020 +#define XM_ANAR_HALFDUPLEX 0x0040 +#define XM_ANAR_PAUSEBITS 0x0180 +#define XM_ANAR_REMFAULTBITS 0x1800 +#define XM_ANAR_ACK 0x4000 +#define XM_ANAR_NEXTPAGE 0x8000 + +#define XM_LPAR_FULLDUPLEX 0x0020 +#define XM_LPAR_HALFDUPLEX 0x0040 +#define XM_LPAR_PAUSEBITS 0x0180 +#define XM_LPAR_REMFAULTBITS 0x1800 +#define XM_LPAR_ACK 0x4000 +#define XM_LPAR_NEXTPAGE 0x8000 + +#define XM_PAUSE_NOPAUSE 0x0000 +#define XM_PAUSE_SYMPAUSE 0x0080 +#define XM_PAUSE_ASYMPAUSE 0x0100 +#define XM_PAUSE_BOTH 0x0180 + +#define XM_REMFAULT_LINKOK 0x0000 +#define XM_REMFAULT_LINKFAIL 0x0800 +#define XM_REMFAULT_OFFLINE 0x1000 +#define XM_REMFAULT_ANEGERR 0x1800 + +#define XM_ANEXP_GOTPAGE 0x0002 +#define XM_ANEXP_NEXTPAGE_SELF 0x0004 +#define XM_ANEXP_NEXTPAGE_LP 0x0008 + +#define XM_NEXTP_MESSAGE 0x07FF +#define XM_NEXTP_TOGGLE 0x0800 +#define XM_NEXTP_ACK2 0x1000 +#define XM_NEXTP_MPAGE 0x2000 +#define XM_NEXTP_ACK1 0x4000 +#define XM_NEXTP_NPAGE 0x8000 + +#define XM_LPNEXTP_MESSAGE 0x07FF +#define XM_LPNEXTP_TOGGLE 0x0800 +#define XM_LPNEXTP_ACK2 0x1000 +#define XM_LPNEXTP_MPAGE 0x2000 +#define XM_LPNEXTP_ACK1 0x4000 +#define XM_LPNEXTP_NPAGE 0x8000 + +#define XM_EXTSTS_HALFDUPLEX 0x4000 +#define XM_EXTSTS_FULLDUPLEX 0x8000 + +#define XM_RESAB_PAUSEMISMATCH 0x0008 +#define XM_RESAB_ABLMISMATCH 0x0010 +#define XM_RESAB_FDMODESEL 0x0020 +#define XM_RESAB_HDMODESEL 0x0040 +#define XM_RESAB_PAUSEBITS 0x0180 diff --git a/sys/dev/sk/yukonreg.h b/sys/dev/sk/yukonreg.h new file mode 100644 index 000000000000..efe71a0d3462 --- /dev/null +++ b/sys/dev/sk/yukonreg.h @@ -0,0 +1,190 @@ +/* $OpenBSD: yukonreg.h,v 1.2 2003/08/12 05:23:06 nate Exp $ */ +/*- + * Copyright (c) 2003 Nathan L. Binkert + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * $FreeBSD$ + */ + +/* General Purpose Status Register (GPSR) */ +#define YUKON_GPSR 0x0000 + +#define YU_GPSR_SPEED 0x8000 /* speed 0 - 10Mbps, 1 - 100Mbps */ +#define YU_GPSR_DUPLEX 0x4000 /* 0 - half duplex, 1 - full duplex */ +#define YU_GPSR_FCTL_TX 0x2000 /* Tx flow control, 1 - disabled */ +#define YU_GPSR_LINK 0x1000 /* link status (down/up) */ +#define YU_GPSR_PAUSE 0x0800 /* flow control enable/disable */ +#define YU_GPSR_TX_IN_PROG 0x0400 /* transmit in progress */ +#define YU_GPSR_EXCESS_COL 0x0200 /* excessive collisions occurred */ +#define YU_GPSR_LATE_COL 0x0100 /* late collision occurred */ +#define YU_GPSR_MII_PHY_STC 0x0020 /* MII PHY status change */ +#define YU_GPSR_GIG_SPEED 0x0010 /* Gigabit Speed (0 - use speed bit) */ +#define YU_GPSR_PARTITION 0x0008 /* partition mode */ +#define YU_GPSR_FCTL_RX 0x0004 /* Rx flow control, 1 - disabled */ +#define YU_GPSR_PROMS_EN 0x0002 /* promiscuous mode, 1 - enabled */ + +/* General Purpose Control Register (GPCR) */ +#define YUKON_GPCR 0x0004 + +#define YU_GPCR_FCTL_TX_DIS 0x2000 /* Disable Tx flow control 802.3x */ +#define YU_GPCR_TXEN 0x1000 /* Transmit Enable */ +#define YU_GPCR_RXEN 0x0800 /* Receive Enable */ +#define YU_GPCR_BURSTEN 0x0400 /* Burst Mode Enable */ +#define YU_GPCR_LPBK 0x0200 /* MAC Loopback Enable */ +#define YU_GPCR_PAR 0x0100 /* Partition Enable */ +#define YU_GPCR_GIG 0x0080 /* Gigabit Speed 1000Mbps */ +#define YU_GPCR_FLP 0x0040 /* Force Link Pass */ +#define YU_GPCR_DUPLEX 0x0020 /* Duplex Enable */ +#define YU_GPCR_FCTL_RX_DIS 0x0010 /* Disable Rx flow control 802.3x */ +#define YU_GPCR_SPEED 0x0008 /* Port Speed 100Mbps */ +#define YU_GPCR_DPLX_DIS 0x0004 /* Disable Auto-Update for duplex */ +#define YU_GPCR_FCTL_DIS 0x0002 /* Disable Auto-Update for 802.3x */ +#define YU_GPCR_SPEED_DIS 0x0001 /* Disable Auto-Update for speed */ + +/* Transmit Control Register (TCR) */ +#define YUKON_TCR 0x0008 + +#define YU_TCR_FJ 0x8000 /* force jam / flow control */ +#define YU_TCR_CRCD 0x4000 /* insert CRC (0 - enable) */ +#define YU_TCR_PADD 0x2000 /* pad packets to 64b (0 - enable) */ +#define YU_TCR_COLTH 0x1c00 /* collision threshold */ + +/* Receive Control Register (RCR) */ +#define YUKON_RCR 0x000c + +#define YU_RCR_UFLEN 0x8000 /* unicast filter enable */ +#define YU_RCR_MUFLEN 0x4000 /* multicast filter enable */ +#define YU_RCR_CRCR 0x2000 /* remove CRC */ +#define YU_RCR_PASSFC 0x1000 /* pass flow control packets */ + +/* Transmit Flow Control Register (TFCR) */ +#define YUKON_TFCR 0x0010 /* Pause Time */ + +/* Transmit Parameter Register (TPR) */ +#define YUKON_TPR 0x0014 + +#define YU_TPR_JAM_LEN(x) (((x) & 0x3) << 14) +#define YU_TPR_JAM_IPG(x) (((x) & 0x1f) << 9) +#define YU_TPR_JAM2DATA_IPG(x) (((x) & 0x1f) << 4) + +/* Serial Mode Register (SMR) */ +#define YUKON_SMR 0x0018 + +#define YU_SMR_DATA_BLIND(x) (((x) & 0x1f) << 11) +#define YU_SMR_LIMIT4 0x0400 /* reset after 16 / 4 collisions */ +#define YU_SMR_MFL_JUMBO 0x0100 /* max frame length for jumbo frames */ +#define YU_SMR_MFL_VLAN 0x0200 /* max frame length + vlan tag */ +#define YU_SMR_IPG_DATA(x) ((x) & 0x1f) + +/* Source Address Low #1 (SAL1) */ +#define YUKON_SAL1 0x001c /* SA1[15:0] */ + +/* Source Address Middle #1 (SAM1) */ +#define YUKON_SAM1 0x0020 /* SA1[31:16] */ + +/* Source Address High #1 (SAH1) */ +#define YUKON_SAH1 0x0024 /* SA1[47:32] */ + +/* Source Address Low #2 (SAL2) */ +#define YUKON_SAL2 0x0028 /* SA2[15:0] */ + +/* Source Address Middle #2 (SAM2) */ +#define YUKON_SAM2 0x002c /* SA2[31:16] */ + +/* Source Address High #2 (SAH2) */ +#define YUKON_SAH2 0x0030 /* SA2[47:32] */ + +/* Multicatst Address Hash Register 1 (MCAH1) */ +#define YUKON_MCAH1 0x0034 + +/* Multicatst Address Hash Register 2 (MCAH2) */ +#define YUKON_MCAH2 0x0038 + +/* Multicatst Address Hash Register 3 (MCAH3) */ +#define YUKON_MCAH3 0x003c + +/* Multicatst Address Hash Register 4 (MCAH4) */ +#define YUKON_MCAH4 0x0040 + +/* Transmit Interrupt Register (TIR) */ +#define YUKON_TIR 0x0044 + +#define YU_TIR_OUT_UNICAST 0x0001 /* Num Unicast Packets Transmitted */ +#define YU_TIR_OUT_BROADCAST 0x0002 /* Num Broadcast Packets Transmitted */ +#define YU_TIR_OUT_PAUSE 0x0004 /* Num Pause Packets Transmitted */ +#define YU_TIR_OUT_MULTICAST 0x0008 /* Num Multicast Packets Transmitted */ +#define YU_TIR_OUT_OCTETS 0x0030 /* Num Bytes Transmitted */ +#define YU_TIR_OUT_64_OCTETS 0x0000 /* Num Packets Transmitted */ +#define YU_TIR_OUT_127_OCTETS 0x0000 /* Num Packets Transmitted */ +#define YU_TIR_OUT_255_OCTETS 0x0000 /* Num Packets Transmitted */ +#define YU_TIR_OUT_511_OCTETS 0x0000 /* Num Packets Transmitted */ +#define YU_TIR_OUT_1023_OCTETS 0x0000 /* Num Packets Transmitted */ +#define YU_TIR_OUT_1518_OCTETS 0x0000 /* Num Packets Transmitted */ +#define YU_TIR_OUT_MAX_OCTETS 0x0000 /* Num Packets Transmitted */ +#define YU_TIR_OUT_SPARE 0x0000 /* Num Packets Transmitted */ +#define YU_TIR_OUT_COLLISIONS 0x0000 /* Num Packets Transmitted */ +#define YU_TIR_OUT_LATE 0x0000 /* Num Packets Transmitted */ + +/* Receive Interrupt Register (RIR) */ +#define YUKON_RIR 0x0048 + +/* Transmit and Receive Interrupt Register (TRIR) */ +#define YUKON_TRIR 0x004c + +/* Transmit Interrupt Mask Register (TIMR) */ +#define YUKON_TIMR 0x0050 + +/* Receive Interrupt Mask Register (RIMR) */ +#define YUKON_RIMR 0x0054 + +/* Transmit and Receive Interrupt Mask Register (TRIMR) */ +#define YUKON_TRIMR 0x0058 + +/* SMI Control Register (SMICR) */ +#define YUKON_SMICR 0x0080 + +#define YU_SMICR_PHYAD(x) (((x) & 0x1f) << 11) +#define YU_SMICR_REGAD(x) (((x) & 0x1f) << 6) +#define YU_SMICR_OPCODE 0x0020 /* opcode (0 - write, 1 - read) */ +#define YU_SMICR_OP_READ 0x0020 /* opcode read */ +#define YU_SMICR_OP_WRITE 0x0000 /* opcode write */ +#define YU_SMICR_READ_VALID 0x0010 /* read valid */ +#define YU_SMICR_BUSY 0x0008 /* busy (writing) */ + +/* SMI Data Register (SMIDR) */ +#define YUKON_SMIDR 0x0084 + +/* PHY Addres Register (PAR) */ +#define YUKON_PAR 0x0088 + +#define YU_PAR_MIB_CLR 0x0020 /* MIB Counters Clear Mode */ +#define YU_PAR_LOAD_TSTCNT 0x0010 /* Load count 0xfffffff0 into cntr */ + +/* Receive status */ +#define YU_RXSTAT_FOFL 0x00000001 /* Rx FIFO overflow */ +#define YU_RXSTAT_CRCERR 0x00000002 /* CRC error */ +#define YU_RXSTAT_FRAGMENT 0x00000008 /* fragment */ +#define YU_RXSTAT_LONGERR 0x00000010 /* too long packet */ +#define YU_RXSTAT_MIIERR 0x00000020 /* MII error */ +#define YU_RXSTAT_BADFC 0x00000040 /* bad flow-control packet */ +#define YU_RXSTAT_GOODFC 0x00000080 /* good flow-control packet */ +#define YU_RXSTAT_RXOK 0x00000100 /* receice OK (Good packet) */ +#define YU_RXSTAT_BROADCAST 0x00000200 /* broadcast packet */ +#define YU_RXSTAT_MULTICAST 0x00000400 /* multicast packet */ +#define YU_RXSTAT_RUNT 0x00000800 /* undersize packet */ +#define YU_RXSTAT_JABBER 0x00001000 /* jabber packet */ +#define YU_RXSTAT_VLAN 0x00002000 /* VLAN packet */ +#define YU_RXSTAT_LENSHIFT 16 + +#define YU_RXSTAT_BYTES(x) ((x) >> YU_RXSTAT_LENSHIFT) -- cgit v1.3