diff --git a/usr.sbin/Makefile b/usr.sbin/Makefile index ed0714e4ce3f..c325a5a24d67 100644 --- a/usr.sbin/Makefile +++ b/usr.sbin/Makefile @@ -151,7 +151,6 @@ SUBDIR= ac \ slstat \ ${_spkrtest} \ spray \ - ${_stallion} \ ${_sysinstall} \ syslogd \ tcpdchk \ @@ -273,7 +272,6 @@ _pppctl= pppctl _sgsc= sgsc _sicontrol= sicontrol _spkrtest= spkrtest -_stallion= stallion _wlconfig= wlconfig _zzz= zzz .endif diff --git a/usr.sbin/stallion/Makefile b/usr.sbin/stallion/Makefile deleted file mode 100644 index 4b017fca1192..000000000000 --- a/usr.sbin/stallion/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# $FreeBSD$ - -SUBDIR= bootcode stlload stlstats - -.include diff --git a/usr.sbin/stallion/Makefile.inc b/usr.sbin/stallion/Makefile.inc deleted file mode 100644 index 314a85b6dab4..000000000000 --- a/usr.sbin/stallion/Makefile.inc +++ /dev/null @@ -1,7 +0,0 @@ -# $FreeBSD$ - -BOOTDIR= /usr/libdata/stallion - -.if exists(${.CURDIR}/../../Makefile.inc) -.include "${.CURDIR}/../../Makefile.inc" -.endif diff --git a/usr.sbin/stallion/bootcode/2681.sys.uu b/usr.sbin/stallion/bootcode/2681.sys.uu deleted file mode 100644 index db3dd28dc079..000000000000 --- a/usr.sbin/stallion/bootcode/2681.sys.uu +++ /dev/null @@ -1,690 +0,0 @@ -begin 444 2681.sys -M```````````````````````````````````````````````````````````` -M``````!E`0`````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M`-(1SV0``````````````````````````````````````!``````8V1K:"YC -M```F`````````````````.P5````````````````&`8```,````````````` -M;F\@96-P86YE;"!D7!E("`@("`@("`@("`@("`@("`@ -M("4R9"`@("`@("`@("`@($-O9&4@5F5R2!4;W1A;"`@("`@("`@("`@,'@E,#9L>"`@("`@("`@("`@ -M($UE;6]R>2!5"4P-FQX("`@("`@("`@("`@365M;W)Y($UA<"`@ -M("`@("`@("`@("`@,'@E,#9L>`H`("!#;V1E(%-I>F4@("`@("`@("`@("`@ -M(#!X)3`V;'@@("`@("`@("`@("!$871A(%-I>F4@("`@("`@("`@("`@("`P -M>"4P-FQX"@`@($-O9&4@4V5G;65N="`@("`@("`@("`@("`P>"4P-'@@("`@ -M("`@("`@("!$871A(%-E9VUE;G0@("`@("`@("`@("`@(#!X)3`T>`H`("!3 -M=&%C:R!396=M96YT("`@("`@("`@("`@,'@E,#1X("`@("`@("`@("`@17AT -M"4P-'@*"@`@($%S>6YC:')O;F]U -M+*4LK"RS++HLP2S(+,\LUBS=+.0L -MZRSR+/DL`"T'+0XM%2T<+2,M*BTQ+3@M/RU&+4TM5"U;+59%0U]&055,5"`H -M)60@)60@)60@)60@)60@)60@)60@)60@)60@)60@)60@)60@)60@)60@)60I -M```R-C@Q+F,``!H%`````````````#(```!+````;@```(8```"6````R``` -M`"P!``!8`@``L`0```@'``!@"0``P!(``(`E````2P```)8```#A``!@`&`` -MX`!@`&``X`!@`&``8`!@`.``8`!@`&``X`!@`&``````````$0`B`#,`,P!$ -M`%4`9@"J`(@`F0"[`,P`S`#,```````0`(``D````1`!@`&0`0`"$`(@`C`" -M0`)0`F`"<`(``!``@`"0```!$`$@`3`!0`%0`6`!<`&``9`!H`&P`<`!T`'@ -M`?`!``(0`B`",`)``E`"8`)P`H`"D`*@`K`"0`!``#1-%D@``-8OIC&:,@`` -M%#H,`18.`*$,`(L6#@"Y4&*)#A@`@\$?@^'PB_&+^2O!@]H`P>@$ -MP>(,"]".PD].C,B.V/WSI/P&:/H`R[@``8[8N5`?B_&+^8O9B1XD``,>(`"# -MPP^#X_"+P\'H!"O0CL).3_WSI/R,P([8CL".T(OC@^P$OU`&,\"Y4!^)#AP` -M*\_\\ZJ,R*,&`(S8HP0`+J-P`8S0HPH`C,"C"`",V,'@!*,4`(S8P>@,HQ8` -MZ#8>Z_X``,@$``!75HM&")F+'GX'.5<07\G#R!`` -M`%=6BQY^!XM'$HM7%#D6%@!W'W(&.084`',7H10`BQ86`"M&!!M6!M'JT=@# -M1@035@8K1@0;5@:)1O")5O(K_XM'#HM7$(E&](E6]CO7=00[QW0-4E#_=O+_ -M=O#HA%Z+^`O_=`B+1O8+1O1U#[\!`(M&\(M6\HE&](E6]HM&"-'@`\B4;XBT8(T>`#QVH`4/]V\O]V\.@Q7HE& -M_HM&^#E&_G8&BT;^B4;X/8``2A\FBT<$HTX?)HI''"4!`#T!`!K`_L"B6``F -MBT<2)@M'$'0*)HM'$*-K1V-'JT=B*3NZ# -MX0^)#EX'HV`'@4;N@`"#5O``:(``4%'H62>#Q`;$'EX')L='!@$`Q!Y>!R;' -M1T+_`,0>7@7@7@2A\FBT<,B4;DBQY^ -M!XL'+1<`?`1(2'X.H4H`HT`?QP84'VA9ZQ)H60!H9P'_-BX`:@+HX1J#Q`B+ -M1N1`HU(&Q!Y>!R:)1U*A4@9(F3/"*\+!^`,SPBO"0*,$'Z%2!@4'`)DSPBO" -MP?@#,\(KPD`D_HE&[(M&[HM6\,0>7@!R:)1UPFB5=>BT;L*](!1NX15O!0Q!Y>!R:+1U@FBU=:T>K1V-'J -MT=C1ZM'8T>K1V":*5UB#X@^+RE!1Z$TF@\0&_W;LQ!Y>!R:+1UPFBU=>T>K1 -MV-'JT=C1ZM'8T>K1V":*5UR#X@^+RE!1Z!TF@\0&H5(&B4;LN`8`]V;LB4;L -MBT;NBU;PQ!Y>!R:)1U0FB5=6BT;L*](!1NX15O#$'EX')HM'5":+5U;1ZM'8 -MT>K1V-'JT=C1ZM'8)HI/5(/A#XE.Z(E&ZO]V[%!1Z+TE@\0&BQY^!XL'+1<` -M?`1(2'X(QP92```#ZQ#'!E(```&+'GX'@W\H`'0(QT;\`0#K!I#'1OP"`&B2 -M`/]V\/]V[N@?_(/$!HE&[HE6\(M&_,1>Z":)!XM&[HM6\,1>Z":)1P(FB5<$ -M:)(`BT;NBU;PT>K1V-'JT=C1ZM'8T>K1V(I6[H/B#XO*4%'H,26#Q`:!1NZ2 -M`(-6\`"#1N@&BQY^!X-_*`!^$(M&Y"M'*)GW?RB)1O3K!I#'1O0``(-^]`!] -M!<=&]```QT;^``#'1N8``"OVZ0(!D(M^_M'GBT$8BT[T0??I.T;F?@O$7N@F -MQP<`!.L)D,1>Z";'!P``BT;NBU;PQ%[H)HE'`B:)5P1HO`"+1NZ+5O#1ZM'8 -MT>K1V-'JT=C1ZM'8BE;N@^(/B\I04>B*)(/$!H%&[KP`@U;P`/]&YHM^_M'G -MBQY^!XM!&(M.]$'WZ3M&YG]YQT;F``#_1OZ#?OX(?&O$'DH?)HM'%(E&\B:+ -M1QB)1O:#?O(`=`D+P'4%QT;V``&#?O8`=`N#?O(`=07'1O(``8-^\@!U&X-^ -M]@!U%?]VY/]V\/]V[NA;^X/$!HE&\HE&]L0>7@OJ#Q`:)1NZ)5O"+1N:+?O[1YXL> -M?@Z";'!R``Z>S^1H-&Z`8Y-E(&?P/IH@#$7N@F]P?@_W3H -M)HM'`B:+5P31ZM'8T>K1V-'JT=C1ZM'8)HI/`H/A#XE.^(E&^O]V\O]V\/]V -M[N@)^H/$!HE&[HE6\,1>^":)A[(`)HF7M`"+1O+$7O@FB8>V`(M&\BO2`4;N -M$5;P_W;V_W;P_W;NZ-'Y@\0&B4;NB5;PQ%[X)HF'I@`FB9>H`(M&]L1>^":) -MAZH`BT;V*](!1NX15O#I4/]J`&H$:*P*:@SH#B>#Q`B+1NZ+5O"CP`:)%L(& -MHQ``B182`"O`7E_)PY#(%@``5U9K!E(&*E#HF1J#Q`*C>`:)%GH&BQY`'_\7 -MH7H&"P9X!G42:(\`:#H"_S8N`&H"Z(T6@\0(:P92!BI0_S9Z!O\V>`;HB"*# -MQ`;$'EX')HM'5":+5U;1ZM'8T>K1V-'JT=C1ZM'8)HI/5(/A#XE.[HE&\,=& -M]#``H7@&BQ9Z!HE&^HE6_,=&_O__QT;R`0`K_ROVZ8@!)HM'!":+5P:)1NJ) -M5NS$7NHFBX>R`":+E[0`T>K1V-'JT=C1ZM'8T>K1V":*C[(`@^$/Q%[Z)HE/ -M"":)1PK$7NHFBX>F`":+EZ@`T>K1V-'JT=C1ZM'8T>K1V":*CZ8`@^$/Q%[Z -M)HE/#":)1P[$7OHF]T`/]&_HM>_M'CB;=*!XM& -M_HL>?@7@K1V-'JT=@FBD]8@^$/B0X&'Z,('R:+1UPFBU=>T>K1V-'JT=C1ZM'8 -MT>K1V":*3UR#X0^)#F('HV0'QT;V8@+'1O@``,1>]B;&!PW$7O8F@#\`=0/I -MY`#K\BO_B7[RB\^B:)!R:) -M5P*+'D`?@W\"`'08C4;T4,1>^B;_=P(F_S>+'D`?_U<"@\0&1XM>_M'C`QY^ -M!SE_&'\%QT;R`0!&@T;Z*H-&[@8Y-E(&?P/I$?_$7OHFB7[B:+1P(FBU<$T>K1V-'JT=C1ZM'8T>K1V":*3P*#X0_$7OHFB4\$ -M)HE'!HO&P>`#F?<^4@:+R+`!TN#$7OHFB$7@7@!R:`?V$`=&`K_^LGA7;X -M=!1K1OHJ`P9X!HL6>@924.@0`8/$!/]&^M'FBT;^.4;Z?-I'.3X$'WXOQ!YB -M!R:*`9B)1O@+P'3JB\?!X`.)1OH%"`")1OXY!E(&?0:A4@:)1OZ^`0#KPY#$ -M'EX')H!_8`!U`^F)`,=&]@``*__K09"%=OAT+6M&^BH#!G@&BQ9Z!E)0Z#(( -M@\0$"\!]%6M>^BH#'G@&C@9Z!B:*1R@JY`E&]O]&^M'FBT;^.4;Z?,%'.3X$ -M'WXNQ!X&'R:*`9B)1O@+P'3JB\?!X`.)1OH%"`")1OXY!E(&?0:A4@:)1OZ^ -M`0#KPXI&]L0>7@7\G#R"P``%=6Q%X$)HM'!":+5P:)1NB)5NHF -M]DZ":`/P!U`^E]`2:+ -M1P(FBU<$B4;@B5;B*\`FB4<$)HE'`L1>Z";&!P"+'D`?.4<&=#O$7N@F_W<$ -M)O]W`O]V_O]V_(L>0!__5P:#Q`B+^(/_`70F"_]\`XU%`8E&W)G$7N@FB4<" -M)HE7!.L.D,1>Z";'1P(!`":)1P2+'D`?@W\*`'4#Z0!__5PJ#Q`R+^(/_`74B:!L#:*@`Z%X7@\0$B\=(=1%H -M'`/_-BX`_S;V`.A(%X/$!@O_?'[V1O`$=2*`3O`$Q%X$)H!/$`C$7N@FBX>V -M`+D%`"O2]_'$7@0FB4<2]D;P`G4,@$[P`L1>!":`3Q`0]D;Q`74,@$[Q`<1> -M!":`3Q"`Q%X$)O9'$)AT((U&[(O(BQ8$`%)1:@!H#F'_=O[_=OR+'D`?_U<* -M@\0,Q%X$)H!G$)O'!E0``0#$7@0FBD\D@.$'L`'2X":+7R3!ZP,#'@8?C@8( -M'R8(!\1>!":*1RC$'EX')@A'8,1>Z":+1PPF"T<*=0/I[P+$7N@FBT<*)HM7 -M#(E&X(E6XHM&X(M6XB8Y1PIUXR8Y5PQUW2O`)HE'$":)1P[$7N@FB4<,)HE' -M"HE&Y(M&X.E1`9"+1NB+5NH%$@")1MB)5MK$7M@F]D<$!'43Q%X$)H!/$`C$ -M7M@F@$\$!.L)D,1>!":`9Q#WQ%[8)O9'!`)U$L1>!":`3Q`0Q%[8)H!/!`+K -M",1>!":`9Q#OQ%[8)O9'!0%U%,1>!":`3Q"`Q%[8)H!/!0'I!P&0Q%X$)H!G -M$'_I^P"0Q%[H)HM'$HE&Y/]VY/]V!O]V!.CF"X/$!NG>`,=&Y`(`@7[@#&%U -M!H-^X@!T#8%^X`IA==6#?N(`=<^`3N0!Z\F0QT;D`@"!?N`'874&@W[B`'0- -M@7[@!6%U"H-^X@!U!(!.Y`'_=N3_=@;_=@3HBPN#Q`:+1NB+5NH%$@")1MB) -M5MK$7N@FBX>V`,1>V"8Y1R1R$<1>Z":+A[8`2$C$7M@FB4Z":+A[8`N04`*]+W\>L$)HM'),1>!":)1Q+K+9`M`6$]#0!W)-'@DR[_ -MI]@/^@[T#_0/;@\\#SP/00_T#_0/%@\6#QL/]`]X#HL>0!^#?PH`=0/IW0#_ -M=N+_=N#HU`J#Q`0+P'0-Q%[H)HM'$B:+5Q3K"8M&Z(M6Z@42`(E&V(E6VE)0 -M_W;B_W;@_W;^_W;\BQY`'_]7"H/$#(OX"_]U8XM&X"T2875;BT;HBU;J!1(` -MB4;4B5;6BT;H!;(`4E#H]02#Q`3$7M0F`0>+1NB+5NH%I@!24.B -MU"8!1P+$7N@FBX>V`$C$7M0F`4<$Q%[H)HN'J@!(Q%[4)@%'!H/_`70="_]\ -M!8U%`>L"B\>)1M29Q%[H)HE'#B:)5Q#K(9!HI@-HN`#HVQ.#Q`3K$L1>Z";' -M1PX!`";'1Q```+___\<&5``!`,1>!":*3R2`X0>P`=+@)HM?),'K`P,>!A^. -M!@@?)@@'Q%X$)HI'*,0>7@ -M!";_=P(F_S?H=P2#Q`S'!E8```#$7@0F]D<0!'0#Z<@!BT;HBU;J!;(`4E#H -MR0.#Q`2+\`OV?P/IK@'$7@0F.7<2=P4F@&<0W\1>!":`9Q"_QT;>``"`/E@` -M`'0QBQY`'X-_"@!T)XU&X!90:@!H$V'_=O[_=OR+'D`?_U<*@\0,/0$`&\!` -MB4;>"\!T""O`B4;BB4;@@W[>`74,:-H#:,@`Z*42@\0$BT;B"T;@=`/I-@&+ -M'D`?@W\0`'4#Z2D!Q%[H)HN'M@`FBX^Z`"O!.\9W#R:+A[H`)HN_M@`K^.L# -MD(O^5\1>!":+1P@FBU<*Q%[H)HN/N@`#P5)0_W;^_W;\BQY`'_]7$(/$"HE& -MU`O`?07'1M0``#EVU'TS.7[4=2Z+QBM&U%#$7@0F_W<*)O]W"/]V_O]V_(L> -M0!__5Q"#Q`J+^`O_?0(K_P%^U.L"*_^#?M0`?P/IC@`Y=M1T",1>!":`3Q`$ -M*W;4Q%[H)HN'N@`!1M2+1M0F.8>V`'<#B7[4BT;4)HF'N@#$7@0F.7<2=E4F -M]D<0*'5.*\")1O*)1O")1O:)1O2)1NZ)1NPF]D<0('4)@$[P!":`3Q`@QP96 -M``$`C4[LBQ8$`%)1:@!H#V'$7@0F_W<")O\WZ*("@\0,QP96````Q%[H)H!_ -M`0!U`^F6`":+1P8FBU<(B4;@B5;B*\`FB4<()HE'!L1>Z";&1P$`BQY`'SE' -M"'0K_W;^_W;\_U<(@\0$B_B#_P%T)0O_?`.-10&)1M29Q%[H)HE'!B:)5PCK -M#<1>Z";'1P8!`":)1PC'!E0``0#$7@0FBD\D@.$'L`'2X":+7R3!ZP,#'@8? -MC@8('R8(!\1>!":*1RC$'EX')@A'8"O`7E_)P\@$``!6Q%X$)HM'!":+5P:) -M1OR)5O[$7OPF@+^2``!T![C__U[)PY#$7@0F]D<0`71`:A`%E`!24(O#C,(% -M%`!24.A8%H/$"L1>!":*1Q`D@CP"=0G$7OPF@(^9``'$7OPFQH>2``'$7@0F -M@&<0_NNPD":*1Q`D@CP"=3QJ$(M&_`64`%)0Z$@6@\0&Q%[\)H"/F0`!BT;\ -MBU;^!90`4E!J`&@/8<1>!";_=P(F_S?H/@&#Q`SI:?_$7OPFBT<$)@M'`G0# -MZ5G_)HM'""8+1P9T`^E,_R:+1Q`F"T<.=`/I/__$7@0F]DR7\G#)HM'!"O&`T;^7E_)PY#(`@``5U;$7@0FBW<&)HM_!CO^ -M=`J+]R:+?P8[_G7V)HM'"(E&_CEV_G<)B\8K1OY>7\G#)HM'!"M&_@/&7E_) -MPY!5B^Q6BW8(@_X!=2"+1@2+5@8%L@!24.BD_X/$!,1>!"8KA[8`]]A(7LG# -MD(M&!(M6!@6F`%)0Z$+_@\0$Q%X$)BN'J@#KWI#(%```5U:#?@3_=0:#?@;_ -M=!.+1@2+5@8JTCW__W4?@?H`_W49:.H$_S8N`/\V]@#HE0Z#Q`:X__]>7\G# -MD(M6!BK`*M(]`/]U1CO0=4(K]NL!1CDV4@9^%HI&!"KD:]XJ`QYX!HX&>@8F -M.4.*1@0JY&O>*@,>>`:.!GH&)CE')G0%:/,$ZYYKQBKK79"+1@2+5@:* -MQ(K6*O8JY(E&_HI&!(E&\(-^_@!\#(M&_HL>?@,YATP'?P9H``7I1/^+1O`#QFO`*@,&>`:+ -M%GH&B4;RB5;TQ%[R)HM'!":+5P:)1OJ)5OR!?@@/870#Z?T"@WX*`'0#Z?0" -MBT8."T8,=1*+1@X+1@QT`^D%_V@*!>GQ_I"+1@R+5@Z)1O:)5O@F]D]B;V1P4!=0/I]@!J`/]V_/]V^NA+_H/$!HE&[`O`=0O$ -M7O(F@$\0`NG6`,1>^B:+AZH`)HN/K``KP3M&['<.)HN'K``FB[^J`"OXZP.+ -M?NQ7Q%[R)HM'#":+5P[$7OHFBX^L``/!4E#_=@;_=@2+'D`?_U<.@\0*B_`+ -M]GT"*_8+]GXQ._YU+8M&["O&4,1>\B;_=PXF_W<,_W8&_W8$BQY`'_]7#H/$ -M"HOX"_]]`BO_`_?K`BO_.7;L?B%J`/]V!O]V!(L>0!__5Q*#Q`8+P'4+Q%[R -M)H!G$/WK"9#$7O(F@$\0`@OV?AC$7OHFBX>L``/P)CFWJ@!W`HOW)HFWK`"# -M/E8``'0#Z:``Q%[V)O='!`8!=0/ID@`F]D<$!G0(Q%[R)H!G$/O$7O8F@&<$ -M^\1>]B;V1P0"=!6+1OJ+5OP%L@!24.C7_(/$!`O`?PK$7O(F]D<00'0(Q%[V -M)H!G!/W$7O(F]D<0$'0(Q%[V)H!G!/W$7O(F]D<0@'0(Q%[V)H!G!?[$7O8F -MBT<")@L'=1HFBT<*)@M'"'40)HM'!B8+1P1U!BO`7E_)P\1>^B:`OY(``'4# -MZ:H`Q%[R)O9'$`%U$6H0B\.,P@44`%)0Z+D1@\0&Q%[V)HL')HM7`L1>\B8) -M1Q0F"5<6Q%[V)O9'!!YT",1>\B:`9QCAQ%[V)O9'!1YT",1>\B:`9QGAQ%[V -M)HM'!":+5P;$7O(F"4<8)@E7&L1>]B:+1P@FBU<*Q%[R)@E''"8)5Q[$7O8F -MBT<*)@M'"'03)HM'#":+5P[$7O(FB4<@)HE7(L1>\B:`3Q`!ZR!J$(O#C,(% -ME`!24/]V#O]V#.C?$(/$"L1>^B;&AY(``<<&5``!`,1>\B:*3R2`X0>P`=+@ -M)HM?),'K`P,>!A^.!@@?)@@'Q%[R)HI'*,0>7@^B:)1PXFB5<0ZUB0@7X(`6=U(X-^"@!U -M'8-^#@!\`_]&#(M&#(M6#L1>^B:)1P(FB5<$ZRZ0@7X(`F=T`^G&^X-^"@!T -M`^F]^X-^#@!\`_]&#(M&#(M6#L1>^B:)1P8FB5<(QP94``$`Q%[R)HI/)(#A -M![`!TN`FBU\DP>L#`QX&'XX&"!\F"`?$7O(FBD!R8(1V"#/E(``'4# -MZ2K^@SY4``!U`^D@_FH`_S92`.BD#X/$!,<&5````.D+_I!5B^R+1@0M`&%\ -M"4A(?P6X`0#)PRO`R!":+1P0FBU<&B4;ZB5;\ -M]\8!`'0JQ%[Z)HN'K``FB8>N`,1>^B:+AZX`B4;^BT;^)CF'K`!UWL1>!":` -M9Q#]]\8"`'1+Q%X$)O9'$!!U%\1>^B:+A[H`)CF'N`!T",1>!":`3Q$!Q%[Z -M)HN'N``FB8>Z`,1>^B:+A[@`B4;^BT;^)CF'N@!UWL1>!":`9Q";_W;XZ#X2 -M@\0"*\!>R@:)1OR)5OZ+P@M&_'4'*\!>7\G# -MD&H,C4[PBQ8$`%)1Z/4.@\0&QT;T___'1O;__ROVZUR0Q%[\)O9')B!T+HL> -M0!^#?PH`="2-1O"+R(L6!`!246H`:`EABU[\)O]W`B;_-XL>0!__5PJ#Q`R+ -M'D`?@W\(`'04Q%[\)O]W`B;_-XL>0!__5PB#Q`1&@T;\*CDV4@9_GU?HBQ&# -MQ`+I;O^0R`H``%=6QP9^!Q8?QT;\``+'1OX``,1>_":!/Z?R=`/I*`$F@7\" -M2:%T`^D=`2:!?P128W0#Z1(!)H%_!B'Q=`/I!P$FBT<4HQ8?ZT^0QP8H'P`` -MQP8J'P$`QP8D'P!`QP8F'P``QP8:'PX`ZU+'!B@?``#'!BH?`0#'!B0?``#' -M!B8?`0#'!AH?$`#K,L<&*!\``,<&*A\"`.O>2#T*`'<>T>"3+O^G`!W$'*0< -MQ!S$'*0'VH`:@124.AK0J,@'XD6(A_$7OPF@W\:`'00 -M)HM'&HE&]L<&/A\0`.L.D":+1PZ)1O;'!CX?```K]NL"D$:#_A!]"XO.BT;V -MT^`+P'7O`38^'\<&+!\!`*$^'Z,N'\=&^``"QT;Z``#$7O@F@3]%0W0#Z0`! -M)H%_`E`A=`/I]0#'!A8?%P"#/EP'`'0=@SY^":+1P:C&!_'!AP?0'C'!AX??0%J -M`&H$_S8>'_\V'!_H:T&C(!^)%B(?QP8^'P``QP8L'P``*_;K!2O``_!&@_X( -M?4K$7OB#PP@FB@`JY(E&]CW_`'0WBD;V)0<`.\9U+8I&]B4@`#T!`!O_@^?X -M@\<0`3X^'XL>+!_1XXF_+A__!BP?@_\0=;&X`0#KKBO`7E_)PU6+[/]V"/]V -M!HM>!-'C_[BZ!8/$`O\V2@1HNP'HK06#Q`3_-D@$_S86'VC0`>B`/\V'`#_-AH`_S88`&BW`NA1!8/$"O\V!`#_-@8`:`0#Z$`%@\0&_S8( -M`/\V"@!H4P/H+P6#Q`;_-CX?_S8L'VBC`^@>!8/$!FCT`^@5!8/$`L.0Z*_\ -MZ)(.Z#D+Z$3CZ`\`Z$3HZ#O_Z*8-Z7L*D,.0R`0``*$4`(L6%@`K!A``&Q82 -M`*-L!XD6;@>A#`"+%@X`*P9L!QL6;@>C1!^)%D8?H1``BQ82`-'JT=C1ZM'8 -MT>K1V-'JT=B*#A``@^$/B4[\B4;^H6P'BQ9N!\1>_":)!R:)5P+$7OPKP":) -M1P8FB4<$Q%[\)HE'"B:)1PB+1OR+5OZC>@>)%GP'HPP?B18.'RO`R<.0R`0` -M`*%Z!XL6?`?K"9`FBT<$)HM7!HE&_(E6_HO""T;\=!:+1@2+5@;$7OPF.5<" -M!":)1P0F -MB5<&Q%X$*\`FB4<*)HE'"*%\!PL&>@=U$(M&!(M6!J,,'XD6#A_K$Y"+1@2+ -M5@;$'GH')HE'"":)5PJ+1@2+5@:C>@>)%GP'*\#)PY!5B^R+1@8+1@1T9\1> -M!":+1PHF"T<(=1(FBT<$)HM7!J-Z!XD6?`?K%9`FBT<$)HM7!B;$7P@FB4<$ -M)HE7!L1>!":+1P8F"T<$=1,FBT<()HM7"J,,'XD6#A\KP,G#)HM'"":+5PHF -MQ%\$)HE'"":)5PHKP,G#R!0``(M&!(M6!H#D#XK$BN**UBKVT>K1V-'JT=C1 -MZM'8T>K1V`-&!(/2`(E&^(E6^L1>!":+!R:+5P(#1O@35OJ)1NR)5NZA>@>+ -M%GP'ZTB+1O2+5O8Y1OAU-3E6^G4PQ%X$)HL')HM7`L1>_"8!!R815P+_=O[_ -M=OSH#?^#Q`2+1OR+5OZ)1@2)5@;IB`"0)HM'!":+5P:)1OR)5OZ+P@M&_'1R -MBT;\@.0/BL2*XHK6*O;1ZM'8T>K1V-'JT=C1ZM'8`T;\@](`B4;PB5;RQ%[\ -M)HL')HM7`@-&\!-6\HE&](E6]HM&\(M6\CE&['0#Z5W_.5;N=`/I5?\&4^B* -M_H/$!,1>_":+!R:+5P+$7@0F`0_":+!R:+5P(K1O0;5O:)1OB)5OH+TG4%/0P`K1V-'JT=C1ZM'8`\.#T@`#1O035O;1ZM'8T>K1 -MV-'JT=C1ZM'8BD[\`D[T@^$/B4[\B4;^BT;XBU;ZQ%[\)HD')HE7`O]V_O]V -M_.@1_8/$!/]V\NA("HM&](M6]L1>[B:)!R:)5P*#1NX$BT;TBU;V`09$'Q$6 -M1A\I!FP'&19N!XM&[HM6\,G#R`X``(M&!(M6!H#D#XK$BN**UBKVT>K1V-'J -MT=C1ZM'8T>K1V`-&!(/2`#D6$@!W%G(&.080`'<..186`'<-<@8Y!A0`8B_B#_R5T,@O_=1(Y?@9T!HM>!L8' -M`"O`7E_)PY"#?@8`=`J+7@:(!_]&!NO*5_]V!.A;_X/$!.N^BUX(@#\E=1*# -M?@8`=`B+7@;&!R7KV6HEZ]N`/RUU"_]&",=&]@$`ZP:0QT;V``"+7@B`/S!U -M"_]&",=&_`$`ZP:0QT;\``"+7@B`/RMU"_]&",=&^@$`ZP:0QT;Z``"+7@B` -M/R!U"_]&",=&]`$`ZP:0QT;T``"+7@B`/R-U`_]&""OVZQ6#_SE_((O&P>`" -M`\;1X`/'+3``B_"+7@C_1@B*!YB+^(/_,'W;@_\N=16+7@C_1@B*!YB+^(/_ -M,'P%@_\Y?NL]9`!U`^G[`'X#Z0P"/54`=0/I(P%^`^GG`2U$`'4#Z18!+0L` -M=0/I#@'I'`*#?O8`=2S'1O@!`.L/D&H@_W8$Z$[^@\0$_T;X.7;X?1&#?@8` -M=.>+7@;&!R#_1@;KYX-^!@!T'HM>\HH'BUX&B`?_1@:#?O8`=0/IS@''1O@! -M`.LCD(M>\HH'*N10_W8$Z`#^@\0$Z]R0:B#_=@3H\OV#Q`3_1O@Y=OA\`^F< -M`8-^!@!TY(M>!L8'(/]&!NODD&H`:@#_=O;_=OQ6:@*+7O)J`/\WC48&4/]V -M!.AT`8/$%.EF`6H`:@#_=O;_=OQ6:A#KVI!J`&H`_W;V_W;\5FH(Z\J0_W;T -M_W;Z_W;V_W;\5FH*BU[RBP>94E#KMY!J`&H`_W;V_W;\5FH*ZZ"0BUX(_T8( -MB@>8B_B#_T%\"(/_6G\#@\<@B\<]:0!T5W]M+6(`=`9(2'1,ZR)J`&H`_W;V -M_W;\5FH"BU[R_W<"_S>-1@90_W8$Z-D`@\04@T;R`NG'`)!J`&H`_W;V_W;\ -M5FH0Z]20:@!J`/]V]O]V_%9J".O$D/]V]/]V^NL$:@!J`/]V]O]V_%9J"NNL -MD"UO`'33+08`=.8M`P!TN>NOD(M>\HL'B4;^BU[^_T;^B@>8B_@+_W1E@WX& -M`'0+BUX&B`?_1@;KX9!7_W8$Z)7\@\0$Z]0M6`!U`^DO_RT*`'4#Z:[^2'4# -MZ1;^ZS`M:0`]#P!W*-'@DR[_IRPH!B=,*$PH,"=,*$PH]B9,*$PH3"C0)TPH -M("=,*$PHYB:#1O("Z:G\D,@F``!75HM&"(M6"HE&_(E6_@O2?0KW7OR#5OX` -M]U[^*_:+1@R94E#_=O[_=OSHUS>+V`,>7@2*!XA"W$:+1@R94E"-1OQ0Z-@V -M@W[^`'_2?`:#?OP`=+'\8'((M>!O\'Z^:0 -M@WX6`'4&@WX4`'08@WX*`'T2BUX&@S\`="J+'\8'+8M>!O\'@WX4`'0S@WX* -M`'PMBUX&@S\`=!J+'\8'*XM>!O\'ZQEJ+?]V!.A0^X/$!.O3D&HK_W8$Z$+[ -M@\0$@WX6`'0>@WX4`'48@WX*`'P2BUX&@S\`=!N+'\8'((M>!O\'@WX2`'4_ -M@WX0`'0YB_[K&Y!J(/]V!.@"^X/$!.OBD&HP_W8$Z/3Z@\0$1SE^#GX5BUX& -M@S\`=.>+'\8',(M>!O\'Z^:0C43_B4;:ZQB+7MJ-1MP#V(H'F%#_=@3HO/J# -MQ`3_3MJ#?MH`?""+7@:#/P!TVHM>VHU&W`/8B@>+7@:+'X@'BUX&_P?KUX-^ -M$@!T*HO^ZPQJ(/]V!.A^^H/$!$!H,_`'3GBQ_&!R"+7@;_!^OF -MD"O`7E_)PX,&@`!L1^",5V!(M.#(O&,\>I`0!U$_?&`0!T!@O) -M=`ND2='I\Z6#T0#SI`<`&Z*O_M4(N'R@;O^_\&$A__EX0> -M^KHB_[@`@.]8NBK_[X/$`@G^8+M&`.GB_F"[2`#IV_Y@NTH` -MZ=3^8+M,`.G-_F"[3@#IQOY@NU``Z;_^8+M2`.FX_F"[5`#IL?Y@NU8`Z:K^ -M8+M8`.FC_F"[6@#IG/Y@NUP`Z97^8+M>`.F._F"[8`#IA_Y@NV(`Z8#^8+MD -M`.EY_F"[9@#I`#I,_Y@NWH`Z2S^8+M\`.DE_F"[ -M?@#I'O[ZNBK_[8O8N`<`[_N+P\/ZNBK_[8O8N`8`[_N+P\/ZNBK_[8O8N`4` -M[_N+P\/ZNBK_[8O8N`0`[_N+P\/ZNBK_[8O8N`,`[_N+P\/ZNBK_[8O8N`(` -M[_N+P\/ZNBK_[8O8N`$`[_N+P\/ZNBK_[8O8N```[_N+P\/ZB]R+1P*Z*O_O -M^\.Z*O_M]]`E!P##^L/[PYSZ6,.+W/]W`IW#S,,`PY!5B^S_=B#_=A[_=AS_ -M=AK_=AC_=A;_=A3_=A+_=A#_=@[_=@S_=@K_=@C_=@;_=@1HX`3H>O;)P\@( -M``!6:`"`:"+_Z#[\@\0$:`"`:"+_Z#+\@\0$:/T`:"C_Z";\@\0$:@!H*O_H -M&_R#Q`1J"&@X_^@0_(/$!&H(:#K_Z`7\@\0$:@AH//_H^ON#Q`1J"&@^_^CO -M^X/$!"OVB][1X\>'A!X$+HO>T>/'A\H&``!&@_Y`?.8KP(E&^HE&^"OVCD;Z -MB][1XXN'8`2+#@8`BU[X)HD')HE/`D:#1O@$@_Y`?.`KP%[)PU6+[(-^!`!\ -M$H-^!$!]#(-^"`!\!H-^"`=^!;C__\G#N`@`*T8(B48(/0<`?@7'1@@'`(M& -M!HM>!-'CB8>$'HM&"$B+7@31XXF'R@:+1@3K;Y#_=@AH,O_H0_N+Y>F(`(-^ -M"@'U&\`E$``+1@A0:#C_Z^60@WX*`?4;P"40``M&"%!H.O_KT9"#?@H!]1O` -M)1``"T8(4&@\_^N]D(-^"@'U&\`E$``+1@A0:#[_ZZF0_W8(:#3_ZZ#_=@AH -M-O_KF"T(`#T+`'<@T>"3+O^GNB_2+](OFB^B+THO7B]R+X8OTB_2+](O/"\K -MP,G#R`(``%=6BWX$@>?_`'P&.3X0'W\'N/__7E_)PVGWN`"!QH0']H2!`(!U -MZO:$@``!=`8KP%Y?R<.`C($`$(U%`3L&0A]]`Z%"'Z-"'\=$!(`EQT0&``#' -M1`B`)<=$"@``QD0V`,9$-`C&1#4`QT0,@!#'1`X``"O`B402B400B406B404 -MB40>B40)1"BA=@:)1"JA -M9@>)1"RAQ`:)1"ZA"A^)1##'1OX``(M>_L9`/0#_1OZ#?OX+?/`KP(E$5HE$ -M5(E$6HE$6(E$7HE$7(E$9HE$9(E$:HE$:(E$;HE$;,:$F0`!QH28``")A(8` -M4%!6Z)41@\0&5NAX$(/$`CET>'46BX24``4<`%#H?OF#Q`+'1OX``.L&D,=& -M_@$`BUQXBX>4``4(`%#H8/F#Q`**3OZ`P0+3^"4!`#T!`!K`]MB(A)P`BUQX -MBX>4``4(`%#H.?F#Q`**3O[3^"4!`#T!`!K`]MB(A)X`:B"+A)0`!00`4.@, -M^8/$!&H!BX24``4$`%#H_/B#Q`1J!(N$E``%!`!0Z.SX@\0$@(R```&`I($` -M[\1<=":#!P$F@U<"`.EC_I#(!```5U:+?@2!Y_\`?`8Y/A`??P>X__]>7\G# -M:?>X`('&A`?VA(```74'*\!>7\G#D/:$@`"`=`=6Z-<3@\0".71X=0N+7'B` -MIZ(`^>L)D(M<>("GH@"?BUQXBH>B`"KD4/^TC`#H9OB#Q`1J((N$E``%!`!0 -MZ%;X@\0$QH28``#HRON)1O['A*8```#'A+0```#'A+8```#'A*P```#'A*X` -M``!6Z)<4@\0"*\")A((`B82``(F$A`!6Z`(/@\0"_W;^Z(O[@\0"H4(?2(E& -M_.L0D&E>_+@`]H<$"`%U"?]._(-^_`!]ZXM&_$"C0A_I./^0R%0``%=6BD8$ -M*N2)1O@+P'P&.080'W\(N/__7E_)PY!I\+@`@<:$!\=&^@``BT8(Z2T#D/]V -M#%;HBR"#Q`3I5P.0_W8,5NC!%.OPD(M&#(M6#HE&\(E6\E:-=`3$?O"Y(@#S -MI5[I,`.+1@R+5@Z)1O")5O+$7O`F]D<$$'0;Z-GZB4;V@*2``/=6Z(T3@\0" -M_W;VZ,CZ@\0"Q%[P)O9'!"!T&^BT^HE&]H",@``(5NB:$X/$`O]V]NBC^H/$ -M`L1>\";V!R!T&.B0^HE&]FH`5NB?$H/$!/]V]NB"^H/$`L1>\";V!Q!T&.AO -M^HE&]FH!5NA^$H/$!/]V]NAA^H/$`L1>\";V1P1`=0/IBP)J`8O#!0D`4/]V -M!O]V!.AP"(/$".ET`BO_@7X(!6%U!3E^"G0,@7X(!V%U"#E^"G4#OP$`@7X( -M!6%U!H-^"@!T#8%^"`9A=0F#?@H`=0.#SP)75NAC'X/$!(M&#(M6#HE&\(E6 -M\E:-?JR-=`2,T([`N2(`\Z5>BT;PBU;R5AZ-?`2+\!X'CMJY(@#SI1]>C4:L -M%E!6Z#X.@\0&Z>X!_W8._W8,5NC&'^ON_W8._W8,5N@*$^OB5N@J(H/$`E;H -M:2"#Q`*+1@R+5@Z)1JR)5JY6C71(Q'ZLN08`\Z5>BUZL)L='!#\`)L='!@`` -M@&1)?^F9`9`K_X%^"`IA=04Y?@IT#(%^"`QA=0@Y?@IU`[\!`(%^"`IA=0:# -M?@H`=`V!?@@+874)@WX*`'4#@\\"5U;HAQZ#Q`2+1@R+5@Z)1JR)5J[$7JPF -M]D<$!'0:)HI'""4$`#T!`/4;P"4$``P!4%;H12*#Q`3$7JPF]D<$`74#Z1D! -M)HI'""4!`#T!`/4;P"4$``P!4%;H[B+IHOV0BT8,BU8.B4:LB5:N5HUT5,1^ -MK+D(`.FO_9"+1@R+5@Z)1JR)5JY6'HU\5(OP'@>.VKD(`/.E'UZ-1`0>Z<;^ -MD(M&#(M6#HE&K(E6KHM$=(M4=E8>B_".VL1^K+DZ`/.E'UX&_W:L5NA`(.F= -M_I"+1'8+1'1U`^F%`,1<=":+1W")1O9J=/]T=O]T=.@+]8/$!HM&]IG$7'0F -MB4=P)HE77\G#D,@,``!75HM>#(L'B4;VBUX$BX>H`(N7J@") -M1OJ)5OR+1@XK1@H;R2/!`T8*B48.BT<,B4;XBD;X)0@`/0$`&\!`B4;^*_;K -M.XI&])@M"@!T!RT#`'0:ZPKV1O@0=`3&1O0-BD;TQ%X&_T8&)H@'ZQ+V1O@@ -M=`;&1O0*Z^;V1OA`=.!&.78.?D+$7OJ+?O8FB@&(1O3_1O:+1O8Y!A0&=P7' -M1O8``(!^]"!\G8!^]'Y_EX-^_@!TJX!^]$%\I8!^]%I_GX!&]"#KF9"+1O:+ -M7@R)!XM&#EY?R<.0R`@``%=6BD8$*N2)1OQI\+@`@<:$!_:$@``!=0>X__]> -M7\G#BX2L`(E&_HN$K@")1OJ+1OXY1OIW"(OX*W[ZZPJ0B_@K?OH#/A0&.7PL -M-1OI0_W8,_W8*_W8(5NBY_H/$#(E&#.FM`(M&##O' -M?@*+QXE&#`O`?P/IF@"A%`8K1OH[1@Q^`XM&#(E&^`O`=1%H+`/_-B(%_S;V -M`.CT[(/$!J$4!CE&^'(1:"T#_S8B!?\V]@#HV^R#Q`;_=OC_=@K_=@B+A*@` -MBY2J``-&^E)0Z*3R@\0*BT8,.4;X?1TK1OA0BT8(BU8*`T;X4E#_M*H`_[2H -M`.A_\H/$"H-^#`!^%"M^#(M&#`%&^J$4!CE&^G(#*4;ZH10&.4;Z!(N'L`"+ -ME[(`B4;\B5;^H18&B4;>BT<0BU<2B4;FB5;HBH>D`"KDB4;@QT;T``#'1NP` -M`(I&YB4!`#T!`!O`0(E&]O9&YX!T$?9&Z`%U"\9&\`#'1NH%`.L7]D;G@'4& -M]D;H`70&QD;P?^OGQT;J`P#'1NP``.L)_TX._T;@_T;LBT8*.4;L?`/IK@+$ -M7@;_1@8FB@>(1MH\('PR/'Y_+H-^#@!U`^F1`H-^]@!T##QA?`@\>G\$@&[: -M((I&VL1>_":(`$8Y=MYWKBOVZZJ+1N")1N3'1MP``,=&\@``BT;JB4;XBD;P -MB$;ZBD;:F.D_`9#V1N9`=`K'1MP%`,=&\@$`@W[@`'\#Z4$!_T[@Z3L!D/9& -MYA!T`^G.`/9&Y@)U`^FD`/9&Y@AT"8-^X`!U`^FV`,9&X@V`3O@(Z:L`]D;G -M`G0BBD;@)0<`+0@`]]C1^(E&W`O`?@:X`@#K`Y`KP(E&\NLPD/9&YP1T#,=& -MW`H`QT;R`@#K'?9&YPAT%\=&^`0`BD;@)0<`+0@`]]B)1O+&1OH@BT;@#`=` -MB4;@Z:L`D/9&YH!U`^FA`,=&W,@`QT;R___IE`#V1N]D;G('0(QT;<"@#K[)#V1N=`=`K'1MP/ -M`,=&\@0`QT;@``#K'9`M"``]!0!W%-'@DR[_IP0[MCD".M8Y9CI\.H(ZQT;N -M``#V1O@!=`/_1N[V1O@(=`/_1N[V1O@$=`:+1O(!1NZ+1@XY1NY^#XM&Y(E& -MX,=&#@``Z;4`D(-^W`!^(/9&^`)T&H-^[`!U"XM>!/>'@``"('0)BT;DB4;@ -MZ8X`]D;X`701BD;:Q%[\)H@`1CEVWG<"*_;V1O@(=!&*1N+$7OPFB`!&.7;> -M=P(K]H-^W`!^'O9&^`)T&(M>!("/@0`@BD;E`/]&[.L]D(-^\@!^ -M+/9&^`1T)HM&\D@!1O3K!)#_3O*#?O(`?A.*1OK$7OPFB`!&.7;>=^@K]NOD -MBT;N*48.Z47]D(M&]`-&[)F+7@3$7W0F`4<$)A%7!HI&X(M>!(B'I`"+7@R) -M-XM&[%[)P\@*``!75HI&!"KDB4;\:?"X`('&A`?VA(```74'N/__7E_)P^BE -M\8E&^O:$@0`(=`>+A*8`ZP60BX2T`(E&_HN$M@")1OC_=OKHA/&#Q`*+1OXY -M1OAW"XL^%@8K^`-^^.L%BW[X*_A/.4;X=06`I(0`@*$6!BO'0#M$*G,%@*2$ -M`/>#[P0Y/A8&X__]> -MR<.0:48$N``%A`>+V/:'@0"`=>@+]G41_S84!@6H`%#HXAJ#Q`1>R<.#_@%U -M"?\V%@8%L`#KZ(/^`G4'H10&2%[)PX/^`W4%H18&Z_(KP%[)PY#(!@``5U:+ -M=@3VA($`('07BH2E`/Z,I0`*P'0&*\!>7\G#@*2!`-_VA(```G4<]H2```1T -M#H!,:`*`C(``(("DA`"`@*2``/OKTO:$@0`(=`>+A*8`ZP60BX2T`(E&_HN$ -MM@")1OR+1OXY1OQW"(OX*W[\ZPJ0BSX6!BM^_`/X.7PH+^"M^_.L) -MBSX4!BM^_`/XB\ -M!,1?=":#1R0!)H-7)@"+7@2`3VH0]\8@`'07BUX$Q%]T)H-'+`$F@U -M!(!/:B#WQD``=!>+7@3$7W0F@T!,1? -M=":#1V0!)H-79@"+7@2`3TF`BUX$@$]I@/?&\`!T"(M>!("/@``@BUX$BH>? -M`"KD]]`C\(J'H``JY(7&=`H`(N7J@")1OR)5OZ+OZP`BX>N -M`(E&^CO'=PNA%`8KQP-&^NL#D"O'B4;X_T[XBH>A`"KDA<9T2H-^^`-](HM> -M!,1?=":#1S`!)H-7,@"+7@3$7W0F@T_":(`4!(F_K`"+7@2`CX``0.DR_Y#( -M`@``5U:+7@2+=WB-O+@`BIVC`"K_T>.+AVX%B4;^]X2```$0=`Z`3OX$]D0< -M('0$@$[^`?>%@``!$'0.@$[^"/9%'"!T!(!._@+_=OZ+A)0`!0@`4.BVZ(/$ -M!%Y?RL5@'PT!W4&@\\"ZPJ0@'PT"'4#@\\#]D0<$'0$ -M@<^``&H0BT;^!00`4.A*Z(/$!%?_=O[H0.B#Q`0K__9$'"!T`[\0`(!\-0)U -M!8//#^L/@'PU`74&@\\(ZP20@\\']D08$'0$@<^``%?_=O[H!^B#Q`16Z/'^ -M@\0"7E_)P\@4``!75HMV!(M$>(E&_(U\!,=&_@``]D4)$'0$@$[^)12B#?2H`=`BA%`8Y12IR!J'$!HE%*H-]+`!T"*$4!CE%+'(& -MH0H?B44LQT;X``#K!)#_1OB#?O@1?1F+!8M5`HM>^,'C`CF7+`5RYG<&.8@W[X$74#_T[X@SXD!0!T!NA;ZHE&^HM&"`M&!G0.Q%X&)HM'&":+5QKK -M!Y"+11B+51I24%;H?`&#Q`:+1@@+1@9T%8M%"(M5"L1>!B8Y1PAU!B8Y5PIT -M5/9%"`%T&CEV_'4+BU[\@*>B`/GK(Y"+7OR`IZ(`G^L8.7;\=0N+7OR`CZ(` -M!NL)D(M>_("/H@!@BU[\@(^B`("+7OR*AZ(`*N10_[2,`.A&YH/$!(M&"`M& -M!G1"BD4RQ%X&)CA',G4VBD4P)CA','4MBT48BU4:)CE'&'4A)CE7&G4;BD4Q -M)CA',742BT44BU46)CE'%'4&)CE7%G0'5NA&_8/$`HM%`@L%=0/IE@"+1@@+ -M1@9T$XL%BU4"Q%X&)CD'=08F.5<"='N*1OB(A*,`:@!J9&H`:@7_=0+_->A# -M'%)0Z#X<0(F$E@`Y='AT'%;HE/R#Q`**G*,`*O_1X_^WD`6+A)0`0$#K,Y#_ -M=`;_=`1J`6@`PN@*'(E&\(I&\2KD4(N$E``%#`!0Z&GE@\0$BD;P*N10BX24 -M``4.`%#H5>6#Q`3HS`R#/B0%`'0)_W;ZZ,7H@\0"7E_)PU6+[%:+=@2+1!R+ -M5!XQ1@8Q5@CVA(``@'1$]D8&$'03]D0<$'0$:@+K`FH&5NCD$8/$!/9&!@)T -M%/9$'`)T!6H`ZP.0:@%6Z(@`@\0$]D8&0'0I]D0<0'0::@+K&)#V1@80=`EJ -M!E;HJA&#Q`3V1@9`=`EJ!E;H:Q*#Q`1>R<.058OL5U:+=@3VA(``@'0^Z"CH -MB_CV1!P"=`EJ`5;H,@"#Q`3V1!P0=`EJ!E;H91&#Q`3V1!Q`=`EJ!E;H)A*# -MQ`2`I(``?U?H].>#Q`)>7\G#D,@"``!75HMV!(-^!@!T%8I$.HA&_L1<=":# -M1S@!)H-7.@#K$XI$.8A&_L1<=":#1SP!)H-7/@#_M)``Z#7D@\0"J`1T$8I& -M_IA0_[22`.@8Y(/$!.M`B[RV`/:$@0`(=1B`C($`"(N$M`")A*8`B;RT`%;H -M,@"#Q`(YO+0`=0D+_W4$BSX6!D_$G+``BD;^)H@!B;RV`,1<=":#1P0!)H-7 -M!@!>7\G#D%6+[%:+=@2#?`(`=2&A)@6)!,=$`B8%@SXF!0!T!XL>)@6)=P*) -M-B8%@(R```)>R<.058OL5HMV!(-\`@!T)X,\`'0(BT0"BQR)1P*+!(M<`HD' -MQP0``,=$`@``@(R```2`I(``_5[)PY#(!```5HMV!(M$'(M4'HE&_/9&_`)T -M"6H`5NC1_H/$!/9&_!!T"6H"5N@$$(/$!/9&_$!T"6H"5NC%$(/$!(",@`"` -M7LG#58OL5HMV!%;H&P^#Q`+$7@8KP":)1P(FB0?VA(``"'0(Q%X&)H!/`@'V -M1!P@=`[V1%`(=0C$7@8F@$\"!%[)PU6+[%=6BW8$Z$7FB_B#?@;^=1UJ<(N$ -ME``%!`!0Z+'B@\0$@*2!`/O'A(H```#K-H",@0`$:F"+A)0`!00`4.B/XH/$ -M!(-^!O]T#HM&!KD*`"O2]_&)A(H`Q%QT)H-'8`$F@U=B`%?HZN6#Q`)>7\G# -MD,@"``!75HMV"(-^!/]U!H-^!O]T$XM&!(M6!BK2/?__=0R!^@#_=08KP%Y? -MR<.*1@0JY(E&_@O`?`BA$!\Y1OY\"+C__UY?R<.0:7[^N`"!QX0'"_9TZXL$ -MB45ZZ\I5B^Q75BO_B_?K$I#1__9&!&#Q`1J!VC" -M`NA.X8/$!&C\`&C"`NA"X8/$!&B``&C``N@VX8/$!&H5:,0"Z"OA@\0$:B!H -MQ@+H(.&#Q`1J`&C&`N@5X8/$!&H%:,8"Z`KA@\0$5FC&`N@`X8/$!&B``&C$ -M`NCTX(/$!&H5:,@"Z.G@@\0$:BAHR@+HWN"#Q`1J`6C*`NC3X(/$!&H%:,H" -MZ,C@@\0$5VC*`NB^X(/$!&B``&C(`NBRX(/$!%Y?PY#(&```5U:A$!\]$`!^ -M`[@0`(E&^,=&Z@``*__I]`%J=%+_='3HW."#Q`:+QR3^B4;^:<"X``6$!XE& -M]HO'T>`%U`6)1O2+1O[1X`74!8E&Z(O8BP<%"@")A(X`BU[HBP<%"@")A(P` -MBU[HBP<%"@"+7O:)AXX`BU[HBP<%"@"+7O:)AXP`BU[TBP>)A)0`BU[HBP>+ -M7O:)AY0`BU[TBP=`0(F$D`"+7O2+!P4&`(F$D@"+1O:)1'B+QRKDF8#._XE$ -M?(E4?HO'N1``F??YB\>+RIDSPBO"P?@$,\(KPHO8T>.X`(#3Z(6'Q@9U`^D! -M`H-^Z@!]`^GX`8M&[(M6[M'JT=C1ZM'8T>K1V-'JT=B*3NR#X0^)C+``B82R -M`,>$I@```,>$M````,>$M@```*$6!BO2`4;L$5;NBT;PBU;RT>K1V-'JT=C1 -MZM'8T>K1V(I.\(/A#XF,J`")A*H`QX2L````QX2N````H10&*](!1O`15O(Y -M='AU3U*+A)0`!1H`4.@FWX/$!&HCBX24``4<`%#H%M^#Q`1JW(N$E``%'@!0 -MZ`;?@\0$:-T`BX24`$!`4.CVWH/$!&IOBX24``4(`%#HYMZ#Q`0Y='AU!2K) -MZP.0L0&`P0*X`0#3X%"+7'B+AY0`!1X`4.C`WH/$!#ET>'4%*LGK`Y"Q`;@! -M`-/@4(M<>(N'E``%'@!0Z)W>@\0$1SD^$!]_`^GE`&GWN`"!QH0']\K1V-'JT=C1ZM'8`T;P@](`!0\`@](`)/")1O")5O*+1NR+5NZ`Y`^*Q(KB -MBM8J]M'JT=C1ZM'8T>K1V-'JT=@#1NR#T@`%#P"#T@`D\(E&[(E6[FITZ/O5 -M@\0"B41TB51VB\(+1'1T`^DN_<>$@```@,>$@@```.D2_Y"A%`;!X`*Y!0`K -MTO?QH\0&H10&*P;$!CT0`'8(H10&+1``ZP6A%`9(2*,*'Z'$!CD&"A]S!J$* -M'Z/$!J$4!M'HHVH'H10&*]+W\:-F!Z$6!BO2]_&C:`>A%@;!X`(KTO?QHW8& -M*\!>7\G#R!8``%=6QT;X``+'1OH``,1>^":+1PZCQ@8FBT<:H\@&)HM'$*-0 -M!J'&!HE&\*'(!HE&\L=&]!\`ZQJ0BT;TF3/"*\+!^`0SPBO"B_C1Y]%K\/]. -M](-^]`!\&8M&])DSPBO"P?@$,\(KPHOXT>?V0_`!=,B+1O1`HQ`?/2``?@;' -M!A`?(`"#?O(`=2#'1O0``(M>]-'CBX>T!8M>]-'CB8?4!?]&](-^]!!\Y<<& -M)@4``,<&*`4``&H`:@5H?EIJ".CRX(/$".B@^H,^$!\`?E^#/E`&`'0Z:@!J -M!6A]7FH@Z-+@@\0(:@!J!6B07FHAZ,/@@\0(:@!J!6@0/FH-Z+3@@\0(:B)H -M.O_H1]R#Q`3K'FH`:@5H?5YJ#>B8X(/$"&H`:@5HD%YJ#NB)X(/$"(,^$!\$ -M?AYJ`&H%:*->:B+H<^"#Q`AJ`&H%:+9>:B/H9."#Q`B#/A`?"'X>:@!J!6C) -M7FHDZ$[@@\0(:@!J!6C<7FHEZ#_@@\0(@SX0'PQ^'FH`:@5H[UYJ)N@IX(/$ -M"&H`:@5H`E]J)^@:X(/$"(,^$!\0?GAJ`&H%:!5?:BCH!."#Q`AJ`&H%:"%? -M:BGH]=^#Q`AJ`&H%:"U?:BKHYM^#Q`AJ`&H%:#E?:BOHU]^#Q`AJ`&H%:$5? -M:BSHR-^#Q`AJ`&H%:%%?:BWHN=^#Q`AJ`&H%:%U?:B[HJM^#Q`AJ`&H%:&E? -M:B_HF]^#Q`BA(!^+%B(?B4;\B5;^QT;T``!J`&H*_S90!?\V3@7HCQ%24/]V -M_O]V_.@Z$(M>]-'CB8=4!O]&](-^]`I\U,=&]`H`:@!J"HM>],'C`O^W+`7_ -MMRH%Z%@14E#_=O[_=OSH`Q"+7O31XXF'5`;_1O2#?O01?,['!A0&``#'!A8& -M``"#/A`?`'YGH1`?T>"94E"#/A`?$'X%N%``ZP.X*`"9BPYL!XL>;@ZB;'!S!:)HE'`L=&ZDP`QT;L``"A!@#$7NHFQP=&6B:)1P+' -M!B0%`0`KP%Y?R<.0R`0``%:+=@2#?'H`=`F+7'J#?PP`=0N`I(``WRO`7LG# -MD(M$5(M45B%$9"%49HM$6(M46B%$:"%4:HM$7(M47B%$;"%4;HM$9@M$9'40 -MBT1J"T1H=0B+1&X+1&QTN8U$9!Y0:@!H#V'_='[_='R+7'K_5PR#Q`PKP(E$ -M9HE$9(E$:HE$:(E$;HE$;.N*D,@"``!75FD&0A^X``6$!XE&_BO_:38P!K@` -M@<:$!^M@.7;^=P.^A`?VA(```71,]H2```9T!U;H"NV#Q`+VA(``0'0'5NB^ -M[8/$`H"\F@``=`=6Z,@`@\0"@[R*``!T#?^,B@!U!U;H"@>#Q`+VA(``('0' -M5NCZ_H/$`H'&N`!'.3Y"'W^:H4(?.08P!GP-QP8P!@``*\!>7\G#D/\&,`8K -MP%Y?R_M'C_[=4!FA2_^@QV(/$!&H`:%#_Z";8@\0$7E_)PY#(!```5HMV!.A_ -MVXE&_HM<>(N'E``%"`!0Z/G7@\0""H2:`(A&_,:$F@``_W;^Z%W;@\0".71X -M=0N`9OQ5:@%J!.L)D(!F_*IJ`FH(BD;\4%;H!@"#Q`A>RR!B:)1P;HO]F) -M1O[_-A8&C82P`%#H_@2#Q`3$7@8FB0?_-A0&C82H`%#HZ02#Q`3$7@8FB4<" -M_W;^Z(_9@\0"Q%X&*\`FB4<*)HE'"/:$@``"=`:X`0#K!)"X`@`KTL1>!B8) -M1PCVA(``0'0%N``!ZP.X``+$7@8F"4<(]H2``(!T!;@`0.L"*\#$7@8F"4<( -M]H2```AT",1>!B:`3PH!7LG#D,@(``!75HMV!(U\2(IE`24`@(D%QT4"``#H -M"-F)1OS_-A8&C82P`%#H1P2#Q`2)1OC_-A0&C82H`%#H-02#Q`2)1OK_=OSH -MW]B#Q`+VA(```G0%N`$`ZP.X`@`KT@D%]H2!``1T!KB``.L#D"O`"07VA(`` -M"'0$@$T"`?9$'"!T"O9%"`AU!(!-`@3V10('=`.`#4"+1O@Y1"AR`X`-!(M& -M^#E$*G<#@`T(H18&*T;X2'4#@`T0]H2``$!T!;@``>L#N``""07VA(``@'0& -MN`!`ZP.0*\`)!8M&^CE$+'($@$T!!(M&^CE$+G<$@$T!"(M&^CE$,'<$@$T! -M(*$4!BM&^DAU!(!-`1!>7\G#D%6+[%:+=@0+]G4#Z9L`BT8("T8&=0/ID`!6 -MZ(\`@\0"5NC._H/$`HM$2(M42L1>!B:)1VPFB5=NBT10BU12Q%X&)HE':":) -M5VK_-A8&C82P`%#H#P.#Q`29Q%X&)HE'#":)5P[_-A0&C82H`%#H]`*#Q`29 -MQ%X&)HE'$":)5Q+$7@8FBT<,)HM7#B8I1P0F&5<&Q%X&)HM'$":+5Q(F`4<( -M)A%7"H!D27]>R4``4(`%#H -MT=.#Q`*)1OXY='AU!\=&_```ZP7'1OP!`(I._(#!`M/X)0$`/0$`&\#WV(E& -M^(I._(M&_M/X)0$`/0$`&\#WV(E&^O9$&`AT"X!,4`B#?OH`ZPV0"\!T!(!, -M4`B#?O@`=`2`3%`"]D080'0$@$Q0`O9$&`1T"("\G0``ZQB0@+R=``!T!X!, -M4`3K!9"`9%#[@+R;``!T!(!,4`&`3%`07LG#R`8``%=6BW8$BWX&]D08!'0# -MZ;8`]\<"`'4&Z(C6B4;Z]\(N'E``%'`#K(,:$G0``.71X=00JR>L"L0&X -M`0#3X%"+7'B+AY0`!1X`4.A[TH/$!,1<=":#1U0!)H-75@#WQP(`=0G_=OKH -MXM6#Q`)>7\G#D,@$``!75HMV!(M^!O?'`@!U!NC!U8E&_O9$&`1T",=&_``` -MZP:0QT;\`@#WQP0`="?&A)L``3ET>'4%*LGK`Y"Q`0)._+@!`-/@4(M<>(N' -ME``%'`#K))#&A)L``#ET>'4$*LGK`K$!`D[\N`$`T^!0BUQXBX>4``4>`%#H -MV-&#Q`3$7'0F@T=,`2:#5TX`]\<"`'4)_W;^Z#_5@\0"7E_)PU6+[%:+=@1J -M<(N$E``%!`!0Z*'1@\0$@*2!`/O'A(H```!>R<.058OL5U:+=@3H`]6+^("D -M@`#O:@2+A)0`!00`4.APT8/$!%?H[-2#Q`)>7\G#D%6+[%=6BW8$Z-74B_B` -MC(``$&H(BX24``4$`%#H0M&#Q`17Z+[4@\0"7E_)PY!5B^Q75HM>!(MW!(M_ -M!CO^=PB+QBO'7E_)PXM&!BO'`\9>7\G#D,@&``!75HMV!.B`U(OX:<:X``6$ -M!XE&^HO8BX>``(N7@@")1OSV1OP0=`=3Z$__@\0"@WX&"G4IB][1XXN'U`5` -M0%#HT="#Q`*H!'3K:@V+WM'CBX?4!04&`%#HK]"#Q`2+WM'CBX?4!4!`4.BH -MT(/$`J@$=.O_=@:+WM'CBX?4!04&`%#HA="#Q`3V1OP0=!Z+WM'CBX?4!4!` -M4.AXT(/$`J@$=.O_=OKH`/^#Q`)7Z-W3@\0"7E_)PP`````````````````` -M8!X&+HX><`'H0P"Z(O^X`(#O!Q]ASV`>!BZ.'G`!NB+_N`"`[XL64`"#^@!U -M'/\&4`"Z*O_M4+@$`._[Z#D'^EBZ*O_O,\"C4``''V'/NR8%BQ^#^P!T+HN7 -MD`#LJ`1T\(N/M`"+O[8`._ET'L2WL``FB@6+EY(`[D<[/A8&=`>)O[8`Z\O# -M,__K]?>'@```"'0:BX^F`(F/M`"!IX``__<[^70(]X>```@`=,"+?P*+-XDU -M@_X`=`.)?`+'1P(``,<'``"#CX``!(.G@`#]B][K@(.E@`#W@WT"`'484U:[ -M)@6+-X/^`'0#B7P"B3^)-8E=`EY;PX.-@``(]X6````(=1Q35HM=`HLUB3># -M_@!T`XE<`EY;QT4"``#'!0``PXN5E`"#P@CLBN`D4'0$"(6:`(OW@<:X`(#D -MH'0$"*2:`.L7D(N5C``SP.Z+E8X`["*%H@"+Z*B`=<;WQ08`=0/I9P'$A:@` -MB[6L`(N=K@`[\W('B\8KP^L(D"O>H10&*\,[12YR$?>%@`"``'4)!E?H6NN# -MQ`('BYV4`(/#!HN-D`"+T>R*X/;$`74#Z?,`B]/L]L3P=`/IS``\`'4']T4. -M`@!UW?=%#`0`=`(D?XI5'/;"`74#ZU"0BK6``#I%.70M.D4Z=!#VQ@AT//;" -M!'0WZ-[^ZS*0B],&Q%UT)H-'0`$F@U="``>+VNC%_NN3B],&Q%UT)H-'1`$F -M@U=&``>+VNC1_NEZ__:%H0#_=!@\_W44)H@$1CLV%`9U!"LV%`8[M:X`=!H10&*\,[12YR$?>% -M@`"``'4)!E?HYNF#Q`('BYV4`(/#!HN-D`"+T>R*X/;$`74#Z?,`B]/L]L3P -M=`/IS``\`'4']T4.`@!UW?=%#`0`=`(D?XI5'/;"`74#ZU"0BK6``#I%.70M -M.D4Z=!#VQ@AT//;"!'0WZ&K]ZS*0B],&Q%UT)H-'0`$F@U="``>+VNA1_>N3 -MB],&Q%UT)H-'1`$F@U=&``>+VNA=_>EZ__:%H0#_=!@\_W44)H@$1CLV%`9U -M!"LV%`8[M:X`=!!(L'BU<" -MBTX&Z/,!BUX$B0>)5P*+Y5W"!```58OL5U93,_^+1@8+P'T2]]>+5@3WV/?: -M'0``B48&B58$BT8*"\!]$O?7BU8(]]CWVAT``(E&"HE6"`O`=1:+3@B+1@8S -MTO?QB]B+1@3W\8O3ZSR0B]B+3@B+5@:+1@31Z]'9T>K1V`O;=?3W\8OP,])2 -M4/]V"O]V".@T`3M6!G<'<@@[1@1V`X/N`3/2B\8+_W0']]KWV(/:`%M>7XOE -M7<((``!5B^Q35S/_BT8&"\!]$O?7BU8$]]CWVAT``(E&!HE6!(M&"@O`?1"+ -M5@CWV/?:'0``B48*B58("\!U&HM."(M&!C/2]_&+1@3W\8O",](+_W5%ZTJ0 -MB]B+3@B+5@:+1@31Z]'9T>K1V`O;=?3W\3/24E#_=@K_=@CHD0`[5@9W!W(+ -M.T8$=@8K1@@;5@HK1@0;5@8+_W4']]KWV(/:`%];B^5=P@@`58OL4U:+1@H+ -MP'46BTX(BT8&,]+W\8O8BT8$]_&+T^L\D(O(BUX(BU8&BT8$T>G1V]'JT=@+ -MR77T]_.+\#/24E#_=@K_=@CH'``[5@9W!W((.T8$=@.#[@$STHO&7EN+Y5W" -M"```58OLBT8&BUX*"]B+7@AU"XM&!/?CB^5=P@@`]^.+R(M&!/=F"@/(BT8$ -M]^,#T8OE7<((`#+MXP;1X-'2XOK#`(,&O`8!@Q:^!@#_!G`'@SYP!V1S`^F! -M`(,&=@+%G0' -M*P:`!QL6@@=24.AO_U)0Z`3_HT@?@SY('P!\!X,^2!]D?@;'!D@?``"#/DX? -M`WP-_S9('VA`!NB.PH/$!(,^3A\"?`EH0P;H?L*#Q`(KP*."!Z.`!^F2J``` -*`````````````.B. -` -end diff --git a/usr.sbin/stallion/bootcode/Makefile b/usr.sbin/stallion/bootcode/Makefile deleted file mode 100644 index febb8e2f59ba..000000000000 --- a/usr.sbin/stallion/bootcode/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# $FreeBSD$ - -.SUFFIXES: .uu -.uu: - rm -f ${.TARGET} - uudecode ${.IMPSRC} - -FILES= 2681.sys cdk.sys -FILESDIR= ${BOOTDIR} -CLEANFILES= ${FILES} - -MAN= stl.4 -MLINKS= stl.4 stli.4 -MANSUBDIR=/i386 - -.include diff --git a/usr.sbin/stallion/bootcode/cdk.sys.uu b/usr.sbin/stallion/bootcode/cdk.sys.uu deleted file mode 100644 index f8b33edccb06..000000000000 --- a/usr.sbin/stallion/bootcode/cdk.sys.uu +++ /dev/null @@ -1,733 +0,0 @@ -begin 444 cdk.sys -M```````````````````````````````````````````````````````````` -M``````!@`0`````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M`-(1SV0``````````````````````````````````````!``````8V1K:"YC -M```F`````````````````.`5`````````````,($``!F!0,``````````&YO -M(#(V.#$@9')I=F5R(&EN7!E("`@("`@ -M("`@("`@("`@("`@("4R9"`@("`@("`@("`@($-O9&4@5F5R2!4;W1A;"`@("`@("`@("`@,'@E,#9L -M>"`@("`@("`@("`@($UE;6]R>2!5"4P-FQX("`@("`@("`@("`@ -M365M;W)Y($UA<"`@("`@("`@("`@("`@,'@E,#9L>`H`("!#;V1E(%-I>F4@ -M("`@("`@("`@("`@(#!X)3`V;'@@("`@("`@("`@("!$871A(%-I>F4@("`@ -M("`@("`@("`@("`P>"4P-FQX"@`@($-O9&4@4V5G;65N="`@("`@("`@("`@ -M("`P>"4P-'@@("`@("`@("`@("!$871A(%-E9VUE;G0@("`@("`@("`@("`@ -M(#!X)3`T>`H`("!3=&%C:R!396=M96YT("`@("`@("`@("`@,'@E,#1X("`@ -M("`@("`@("`@17AT"4P-'@*"@`@ -M($%S>6YC:')O;F]U+"4L+"PS+#HL02Q(+$\L5BQ=+&0L:RQR+'DL -M@"R'+(XLE2R<+*,LJBRQ++@LORS&+,TLU"S;+.(LZ2SP+/"D*`&-D -M,30P,#H@#`+K8I"Y6M`S]H[&)J$``":)#@`` -MO@`0BQ8``([&)CD.``!T"H'&`!"!_@"`L$ -M`]A#CL,FH0``)HD.``"+%@``)CD.``!U"2:C``!#.]YRX3/`HPP`QP8.```` -MB]/!X@0!%@P`@Q8.``"+T\'J#`$6#@"A#`"+%@X`N3!JB0X8`(/!'X/A\(OQ -MB_DKP8/:`,'H!,'B#`O0CL)/3HS(CMC]\Z3\!FCZ`,NX``&.V+D0.HOQB_F+ -MV8D>)``#'B``@\,/@^/PB\/!Z`0KT(["3D_]\Z3\C,".V([`CM"+XX/L!+\` -M!C/`N1`ZB0X<`"O/_/.JC,BC!@",V*,$`"ZC<`&,T*,*`(S`HP@`C-C!X`2C -M%`",V,'H#*,6`.@F'NO^``#(!```5U:+1@B9BQXP.3E7$')O=P4Y1PYR:(MW -M!)F+^(O:`WX$$UX&@^\!@]L`B\X*R70(T>O1W_[)=?B+QYF+SXO:BT8$BU8& -MB4[\B5[^B\X*R70(T>K1V/[)=?@[1OQU!3M6_G0YB\>9B\X*R70(T>#1TO[) -M=?B)1@2)5@;K()"0F3E7$'<8<@4Y1PYS$6C?`/\V+@#_-J@`Z)4B@\0&BT8$ -MBU8&7E_)P\@0``!75HL>,#F+1Q*+5Q0Y%A8`=Q]R!CD&%`!S%Z$4`(L6%@`K -M1@0;5@;1ZM'8`T8$$U8&*T8$&U8&B4;PB5;R*_^+1PZ+5Q")1O2)5O8[UW4$ -M.\=T#5)0_W;R_W;PZ&IFB_@+_W0(BT;V"T;T=0^_`0"+1O"+5O*)1O2)5O:+ -M1@C1X`/'*]+W]XOP"_9U`[X!`&H`5O]V]O]V].@M9HE&^(M&"-'@`\=J`%#_ -M=O+_=O#H%V:)1OZ+1O@Y1OYV!HM&_HE&^#V``',%QT;X@`"+1OA>7\G#D,@< -M``!75L=&[@`#QT;P``#'!@@Z@`+'!@HZ``#$'@@Z)HM'!*,,.B:*1QPE`0`] -M`0`:P/[`HE8`)HM'$B8+1Q!T"B:+1Q"C5@[H"AF+1NZ+5O#1ZM'8T>K1V-'J -MT=C1ZM'8BD[N@^$/B0Y8#J-:#H%&[H``@U;P`&B``%!1Z$DG@\0&Q!Y8#B;' -M1P8!`,0>6`XFQT="_P#$'E@.)L9'3`'$'E@.)L9'30#$'E@.)L9'3@#$'@@Z -M)HM'#(E&Y(L>,#F+!RT7`'P$2$A^%&A7`&A\`?\V+@!J`NC?&H/$".MS:@!J -M`&H`:`=#:O]J__\6<`6#Q`P+P'TPBQXP.8-_*`!T)J%(`*/V.8O8@W\6`'0/ -M:@%J!?]W%FH-Z)0J@\0(QP;*.3Q?ZRR0H4P`H_8YB]B#?Q8`=`]J`6H%_W<6 -M:@WH;BJ#Q`C'1N0``(L>,#G'1R@``(M&Y$"C$`;$'E@.)HE'4J$0!DB9,\(K -MPL'X`S/"*\)`H[XYH1`&!0<`F3/"*\+!^`,SPBO"0"3^B4;LBT;NBU;PQ!Y8 -M#B:)1U@FB5=:BT;L*](!1NX15O"+1NZ+5O#$'E@.)HE'7":)5UZ+1NPKT@%& -M[A%6\%#$'E@.)HM'6":+5UK1ZM'8T>K1V-'JT=C1ZM'8)HI76(/B#XO*4%'H -MUB6#Q`;_=NS$'E@.)HM'7":+5U[1ZM'8T>K1V-'JT=C1ZM'8)HI77(/B#XO* -M4%'HIB6#Q`:A$`:)1NRX!@#W9NR)1NR+1NZ+5O#$'E@.)HE'5":)5U:+1NPK -MT@%&[A%6\,0>6`XFBT=4)HM75M'JT=C1ZM'8T>K1V-'JT=@FBD]4@^$/B4[H -MB4;J_W;L4%'H1B6#Q`:+'C`YBPZ":)!XM&[HM6\,1>Z":)1P(FB5<$:)(`BT;NBU;PT>K1V-'JT=C1ZM'8 -MT>K1V(I6[H/B#XO*4%'HN22#Q`:!1NZ2`(-6\`"#1N@&BQXP.8-_*`!^$(M& -MY"M'*)GW?RB)1O3K!I#'1O0``(-^]`!]!<=&]```QT;^``#'1N8``"OVZ0(! -MD(M^_M'GBT$8BT[T0??I.T;F?@O$7N@FQP<`!.L)D,1>Z";'!P``BT;NBU;P -MQ%[H)HE'`B:)5P1HO`"+1NZ+5O#1ZM'8T>K1V-'JT=C1ZM'8BE;N@^(/B\I0 -M4>@2)(/$!H%&[KP`@U;P`/]&YHM^_M'GBQXP.8M!&(M.]$'WZ3M&YG]YQT;F -M``#_1OZ#?OX(?&O$'@@Z)HM'%(E&\B:+1QB)1O:#?O(`=`D+P'4%QT;V``&# -M?O8`=`N#?O(`=07'1O(``8-^\@!U&X-^]@!U%?]VY/]V\/]V[NCS^H/$!HE& -M\HE&]L0>6`XFBT=4)HM75HE&Z(E6ZBOVZT60D$:#1N@&.7;D?HMHO`#_=O#_ -M=N[H$OJ#Q`:)1NZ)5O"+1N:+?O[1YXL>,#DY01A_`^G1_L1>Z";'!R``Z>S^ -M1H-&Z`8Y-A`&?P/IH@#$7N@F]P?@_W3H)HM'`B:+5P31ZM'8T>K1V-'JT=C1 -MZM'8)HI/`H/A#XE.^(E&^O]V\O]V\/]V[NBA^8/$!HE&[HE6\,1>^":)A[(` -M)HF7M`"+1O+$7O@FB8>V`(M&\BO2`4;N$5;P_W;V_W;P_W;NZ&GY@\0&B4;N -MB5;PQ%[X)HF'I@`FB9>H`(M&]L1>^":)AZH`BT;V*](!1NX15O#I4/]J`&H$ -M:!0+:@SH8":#Q`B+1NZ+5O"CN@V)%KP-HQ``B182`"O`7E_)PY#(%@``5U9K -M!A`&*E#H(1J#Q`*C$@:)%A0&BQ[V.?\7H10&"P82!G42:'``:#<"_S8N`&H" -MZ!46@\0(:P80!BI0_S84!O\V$@;H$"*#Q`;$'E@.)HM'5":+5U;1ZM'8T>K1 -MV-'JT=C1ZM'8)HI/5(/A#XE.[HE&\,=&]#``H1(&BQ84!HE&^HE6_,=&_O__ -MQT;R`0`K_ROVZ8@!)HM'!":+5P:)1NJ)5NS$7NHFBX>R`":+E[0`T>K1V-'J -MT=C1ZM'8T>K1V":*C[(`@^$/Q%[Z)HE/"":)1PK$7NHFBX>F`":+EZ@`T>K1 -MV-'JT=C1ZM'8T>K1V":*CZ8`@^$/Q%[Z)HE/#":)1P[$7OHF]T`/]&_HM>_M'CB;=$#HM&_HL>,#DY1Q9^!3T(`'Q\BQXP.8M? -M%M'CB;=$#L0>6`XFBT=8)HM76M'JT=C1ZM'8T>K1V-'JT=@FBD]8@^$/B0[` -M.:/".2:+1UPFBU=>T>K1V-'JT=C1ZM'8T>K1V":*3UR#X0^)#MXXH^`XQT;V -M8@+'1O@``,1>]B;&!PW$7O8F@#\`=0/IY`#K\BO_B7[RB\^B:)!R:)5P*+'O8Y@W\"`'08C4;T4,1>^B;_ -M=P(F_S>+'O8Y_U<"@\0&1XM>_M'C`QXP.3E_&'\%QT;R`0!&@T;Z*H-&[@8Y -M-A`&?P/I$?_$7OHFB7[B:+1P(FBU<$T>K1V-'J -MT=C1ZM'8T>K1V":*3P*#X0_$7OHFB4\$)HE'!HO&P>`#F?<^$`:+R+`!TN#$ -M7OHFB$6`XF@']A`'1>*__K)H5V^'03:\`J`P82!HL6%`924.@-`8/$!/]&^M'F -MBT;Z.4;^?]M'.3Z^.7XNQ![>.":*`9B)1O@+P'3JB\?!X`.)1OH%"`")1OZA -M$`8Y1OY^`XE&_KX!`.O$D,0>6`XF@']@`'4#Z8<`QT;V```K_^M`D(5V^'0L -M:\`J`P82!HL6%`924.CS!X/$!`O`?15K7OHJ`QX2!HX&%`8FBDP#DFB@&8B4;X"\!TZHO'P>`#B4;Z!0@` -MB4;^H1`&.4;^?@.)1OZ^`0#KQ(I&]L0>6`XFB$=@@SY0``!T&8,^4@``=!)J -M`/\V4`#HZ1V#Q`3'!E(```"+'O8Y@W\4`'0#_U<4*\!>7\G#R"H``%=6Q%X$ -M)HM'!":+5P:)1NB)5NHF]DZ":`/P!U`^EL`2:+1P(FBU<$B4;@B5;B*\`FB4<$)HE'`L1>Z";&!P"+ -M'O8Y.4<&=#O$7N@F_W<$)O]W`O]V_O]V_(L>]CG_5P:#Q`B+^(/_`70F"_]\ -M`XU%`8E&WIG$7N@FB4<")HE7!.L.D,1>Z";'1P(!`":)1P2+'O8Y@W\*`'4# -MZ;H`C4;LB\B+%@0`4E%J`&@-8?]V_O]V_(L>]CG_5PJ#Q`R+^(/_`741:/\" -M_S8N`/\VJ`#H%Q>#Q`8+_WQ^]D;P!'4B@$[P!,1>!":`3Q`(Q%[H)HN'M@"Y -M!0`KTO?QQ%X$)HE'$O9&\`)U#(!.\`+$7@0F@$\0$/9&\0%U#(!.\0'$7@0F -M@$\0@,1>!";V1Q"8=""-1NR+R(L6!`!246H`:`YA_W;^_W;\BQ[V.?]7"H/$ -M#,1>!":`9Q";QP92``$`Q%X$)HI/)(#A![`!TN`FBU\DP>L#`Q[`.8X&PCDF -M"`?$7@0FBD("Q%[H)HM'"B:+5PR) -M1N")5N*+1N"+5N(F.4<*=>,F.5<,==TKP":)1Q`FB4<.Q%[H)HE'#":)1PJ) -M1N2+1N#I4@&0D(M&Z(M6Z@42`(E&VHE6W,1>VB;V1P0$=1/$7@0F@$\0",1> -MVB:`3P0$ZPF0Q%X$)H!G$/?$7MHF]D<$`G42Q%X$)H!/$!#$7MHF@$\$`NL( -MQ%X$)H!G$._$7MHF]D<%`744Q%X$)H!/$(#$7MHF@$\%`>D'`9#$7@0F@&<0 -M?^G[`)#$7N@FBT<2B4;D_W;D_W8&_W8$Z+@+@\0&Z=X`QT;D`@"!?N`,874& -M@W[B`'0-@7[@"F%UU8-^X@!USX!.Y`'KR9#'1N0"`(%^X`=A=0:#?N(`=`V! -M?N`%874*@W[B`'4$@$[D`?]VY/]V!O]V!.A="X/$!HM&Z(M6Z@42`(E&VHE6 -MW,1>Z":+A[8`Q%[:)CE')'(1Q%[H)HN'M@!(2,1>VB:)1R3$7MHF@W\D`'41 -MQ%[H)HN'M@"Y!0`KTO?QZP0FBT"3+O^G -M^@\<#Q80%A"0#UX/7@]C#Q80%A`X#S@//0\6$)H.BQ[V.8-_"@!U`^G/`/]V -MXO]VX.BF"H/$!`O`=`W$7N@FBT<2)HM7%.L)BT;HBU;J!1(`B4;:B5;<4E#_ -M=N+_=N#_=O[_=OR+'O8Y_U<*@\0,B_@+_W5CBT;@+1)A=5N+1NB+5NH%$@") -M1M:)5MB+1N@%L@!24.C'!(/$!,1>UB8!!XM&Z(M6Z@6F`%)0Z&X$@\0$Q%[6 -M)@%'`L1>Z":+A[8`2,1>UB8!1P3$7N@FBX>J`$C$7M8F`4<&@_\!="\+_WP% -MC44!ZP*+QXE&UIG$7N@FB4<.)HE7$.L3D,1>Z";'1PX!`";'1Q```+___\<& -M4@`!`,1>!":*3R2`X0>P`=+@)HM?),'K`P,>P#F.!L(Y)@@'Q%X$)HI'*,0> -M6`XF"$=@Q%X$)O9'$0%T3\=&\`(`QT;R```KP(E&]HE&](E&[HE&[":`9Q'^ -MQ%X$)H!/$"#'!E0``0"-3NR+%@0`4E%J`&@/8<1>!";_=P(F_S?H5P2#Q`S' -M!E0```#$7@0F]D<0!'0#Z:@!BT;HBU;J!;(`4E#HJ0.#Q`2+\`OV?P/IC@'$ -M7@0F.7<2=P4F@&<0W\1>!":`9Q"_@#Y6``!T*(L>]CF#?PH`=!Z-1N`64&H` -M:!-A_W;^_W;\BQ[V.?]7"H/$#`O`=`@KP(E&XHE&X(M&X@M&X'0#Z38!BQ[V -M.8-_$`!U`^DI`<1>Z":+A[8`)HN/N@`KP3O&=P\FBX>Z`":+O[8`*_CK`Y"+ -M_E?$7@0FBT<()HM7"L1>Z":+C[H``\%24/]V_O]V_(L>]CG_5Q"#Q`J)1M8+ -MP'T%QT;6```Y=M9],SE^UG4NB\8K1M90Q%X$)O]W"B;_=PC_=O[_=OR+'O8Y -M_U<0@\0*B_@+_WT"*_\!?M;K`BO_@W[6`'\#Z8X`.7;6=`C$7@0F@$\0!"MV -MUL1>Z":+A[H``4;6BT;6)CF'M@!W`XE^UHM&UB:)A[H`Q%X$)CEW$G95)O9' -M$"AU3BO`B4;RB4;PB4;VB4;TB4;NB4;L)O9'$"!U"8!.\`0F@$\0(,<&5``! -M`(U.[(L6!`!246H`:`]AQ%X$)O]W`B;_-^BB`H/$#,<&5````,1>Z":`?P$` -M=0/IE@`FBT<&)HM7"(E&X(E6XBO`)HE'"":)1P;$7N@FQD]CDY1PAT -M*_]V_O]V_/]7"(/$!(OX@_\!="4+_WP#C44!B4;6F<1>Z":)1P8FB5<(ZPW$ -M7N@FQT<&`0`FB4<(QP92``$`Q%X$)HI/)(#A![`!TN`FBU\DP>L#`Q[`.8X& -MPCDF"`?$7@0FBD!":+1P0FBU<&B4;\ -MB5;^Q%[\)H"_D@``=`>X__]>R<.0Q%X$)O9'$`%T0&H0!90`4E"+PXS"!10` -M4E#H5!:#Q`K$7@0FBD<0)((\`G4)Q%[\)H"/F0`!Q%[\)L:'D@`!Q%X$)H!G -M$/[KL)`FBD<0)((\`G4\:A"+1OP%E`!24.A$%H/$!L1>_":`CYD``8M&_(M6 -M_@64`%)0:@!H#V'$7@0F_W<")O\WZ#X!@\0,Z6G_Q%[\)HM'!"8+1P)T`^E9 -M_R:+1P@F"T<&=`/I3/\FBT<0)@M'#G0#Z3__Q%X$)O9')A]U%8M&_`6F`%)0 -MZ"T`@\0$"\!T`^D@_\1>!":*3R2`X0>P`=+@]M`FBU\DP>L#Q#;`.28@`"O` -M7LG#R`(``%=6Q%X$)HMW"":+?P@[_G0*B_V`/?82%[)PY"+ -M1@2+5@8%I@!24.A"_X/$!,1>!"8KAZH`Z]Z0R!0``%=6@WX$_W4&@WX&_W03 -MBT8$BU8&*M(]__]U'X'Z`/]U&6C&!/\V+@#_-J@`Z)$.@\0&N/__7E_)PY"+ -M5@8JP"K2/0#_=48[T'5"*_;K`48Y-A`&?A:*1@0JY&O>*@,>$@:.!A0&)CE' -M)G7CBD8$*N1KWBH#'A(&C@84!B8Y1R9T!6C/!.N>:\8JZUV0BT8$BU8&BL2* -MUBKV*N2)1OZ*1@2)1O"#?OX`?`R+1OZ+'C`Y.4<6?P=HUP3I:?^0B]C1XXNW -M1`Z#?O``?!"+1O`#QHM>_M'C.8=&#G\&:-P$Z43_BT;P`\9KP"H#!A(&BQ84 -M!HE&\HE6],1>\B:+1P0FBU<&B4;ZB5;\@7X(#V%T`^G]`H-^"@!T`^GT`HM& -M#@M&#'42BT8."T8,=`/I!?]HY@3I\?Z0BT8,BU8.B4;VB5;X)O9')A]T`^D* -M`2;V1Q`"=0W$7O8F]D<%`74#Z?8`:@#_=OS_=OKH2_Z#Q`:)1NP+P'4+Q%[R -M)H!/$`+IU@#$7OHFBX>J`":+CZP`*\$[1NQW#B:+AZP`)HN_J@`K^.L#BW[L -M5\1>\B:+1PPFBU<.Q%[Z)HN/K``#P5)0_W8&_W8$BQ[V.?]7#H/$"HOP"_9] -M`BOV"_9^,3O^=2V+1NPKQE#$7O(F_W<.)O]W#/]V!O]V!(L>]CG_5PZ#Q`J+ -M^`O_?0(K_P/WZP(K_SEV['XA:@#_=@;_=@2+'O8Y_U<2@\0&"\!U"\1>\B:` -M9Q#]ZPF0Q%[R)H!/$`(+]GX8Q%[Z)HN'K``#\"8YMZH`=P*+]R:)MZP`@SY4 -M``!T`^F@`,1>]B;W1P0&`74#Z9(`)O9'!`9T",1>\B:`9Q#[Q%[V)H!G!/O$ -M7O8F]D<$`G05BT;ZBU;\!;(`4E#HU_R#Q`0+P'\*Q%[R)O9'$$!T",1>]B:` -M9P3]Q%[R)O9'$!!T",1>]B:`9P3]Q%[R)O9'$(!T",1>]B:`9P7^Q%[V)HM' -M`B8+!W4:)HM'"B8+1PAU$":+1P8F"T<$=08KP%Y?R\B;V1Q`!=1%J$(O#C,(%%`!24.BU$8/$!L1>]B:+!R:+5P+$7O(F"4<4 -M)@E7%L1>]B;V1P0>=`C$7O(F@&<8X<1>]B;V1P4>=`C$7O(F@&<9X<1>]B:+ -M1P0FBU<&Q%[R)@E'&"8)5QK$7O8FBT<()HM7"L1>\B8)1QPF"5<>Q%[V)HM' -M"B8+1PAT$R:+1PPFBU<.Q%[R)HE'(":)5R+$7O(F@$\0`>L@:A"+PXS"!90` -M4E#_=@[_=@SHVQ"#Q`K$7OHFQH>2``''!E(``0#$7O(FBD\D@.$'L`'2X":+ -M7R3!ZP,#'L`YC@;".28(!\1>\B:*1RC$'E@.)@A'8.F!`(%^"`!G=2.#?@H` -M=1V#?@X`?`/_1@R+1@R+5@[$7OHFB4<.)HE7$.M8D(%^"`%G=2.#?@H`=1V# -M?@X`?`/_1@R+1@R+5@[$7OHFB4<")HE7!.LND(%^"`)G=`/IQON#?@H`=`/I -MO?N#?@X`?`/_1@R+1@R+5@[$7OHFB4<&)HE7",<&4@`!`,1>\B:*3R2`X0>P -M`=+@)HM?),'K`P,>P#F.!L(Y)@@'Q%[R)HI'*,0>6`XF"$=@@SY0``!U`^DJ -M_H,^4@``=0/I(/YJ`/\V4`#HH`^#Q`3'!E(```#I"_Z058OLBT8$+0!A?`E( -M2'\%N`$`R<,KP,G#R`@``%:+=@CHQA*)1OC$7@0FBT<$)HM7!HE&^HE6_/?& -M`0!T*L1>^B:+AZP`)HF'K@#$7OHFBX>N`(E&_HM&_B8YAZP`==[$7@0F@&<0 -M_??&`@!T2\1>!";V1Q`0=1?$7OHFBX>Z`"8YA[@`=`C$7@0F@$\1`<1>^B:+ -MA[@`)HF'N@#$7OHFBX>X`(E&_HM&_B8YA[H`==[$7@0F@&<0F_]V^.@Z$H/$ -M`BO`7LG#R!```%=6Z!H2B_BA$@:+%A0&B4;\B5;^B\(+1OQU!RO`7E_)PY!J -M#(U.\(L6!`!24>CQ#H/$!L=&]/__QT;V__\K]NM_";V1R8@="Z+'O8Y -M@W\*`'0DC4;PB\B+%@0`4E%J`&@)88M>_";_=P(F_S>+'O8Y_U<*@\0,BQ[V -M.8-_"`!T%,1>_";_=P(F_S>+'O8Y_U<(@\0$1H-&_"HY-A`&?Y]7Z(<1@\0" -MZ6[_D,@*``!6QP8P._":!/Z?R=`/I)P$F@7\"2:%T -M`^D<`2:!?P128W0#Z1$!)H%_!B'Q=`/I!@$FBT<4H\PYZT['!MXY``#'!N`Y -M`0#'!MHY`$#'!MPY``#'!M`Y#@#K4L<&WCD``,<&X#D!`,<&VCD``,<&W#D! -M`,<&T#D0`.LRQP;>.0``QP;@.0(`Z]Y(/0H`=Q[1X),N_Z?R'+8_":#?QH`=!`FBT<: -MB4;VQP;T.1``ZPZ0)HM'#HE&]L<&]#D``"OVZP*01H/^$'T+B\Z+1O;3X`O` -M=>\!-O0YQP;B.0$`H?0YH^0YQT;X``+'1OH``,1>^":!/T5#=`/I_@`F@7\" -M4"%T`^GS`,<&S#D7`(,^5@X`=!V#/E8.&'4)QP;,.1@`ZPZ0@SY6#AEU!L<& -MS#D9`*',.2T8`'05QP;:.0`0QP;<.0``QP;0.0P`ZQ.0QP;:.0``QP;<.0$` -MQP;0.1``QP;>.0``QP;@.0(`Q%[X)HM'!J/..<<&TCE`>,<&U#E]`6H`:@3_ -M-M0Y_S;2.>A?2:/6.8D6V#G'!O0Y``#'!N(Y```K]NL6@P;T.0B+'N(YT>/' -MA^0Y"`#_!N(Y1H/^"'TWQ%[X@\,()HH`*N2)1O8]_P!T)(I&]B4'`#O&=1KV -M1O8@=,*#!O0Y$(L>XCG1X\>'Y#D0`$;KORO`7LG#D%6+[/]V"/]V!HM>!-'C -M_[?:`/\VX@#HW06+Y8U&#%#_=@IJ`&H`Z`D&B^5HV`#HAP4KP,G#D&@:`>BZ -M!8/$`O\V_`-H;0'HK06#Q`3_-OH#_S;,.6B"`>B`/\V -M'`#_-AH`_S88`&AI`NA1!8/$"O\V!`#_-@8`:+8"Z$`%@\0&_S8(`/\V"@!H -M!0/H+P6#Q`;_-O0Y_S;B.6A5`^@>!8/$!FBF`^@5!8/$`L.0Z+/\Z%P.Z#D+ -MZ%3CZ`\`Z+SHZ#O_Z*8-Z7L*D,.0R`0``*$4`(L6%@`K!A``&Q82`*/B.(D6 -MY#BA#`"+%@X`*P;B.!L6Y#BC^#F)%OHYH1``BQ82`-'JT=C1ZM'8T>K1V-'J -MT=B*#A``@^$/B4[\B4;^H>(XBQ;D.,1>_":)!R:)5P+$7OPKP":)1P8FB4<$ -MQ%[\)HE'"B:)1PB+1OR+5OZC+#F)%BXYH\0YB1;&.2O`R<.0R`0``*$L.8L6 -M+CGK"9`FBT<$)HM7!HE&_(E6_HO""T;\=!:+1@2+5@;$7OPF.5<"!":)1P0FB5<&Q%X$ -M*\`FB4<*)HE'"*$N.0L&+#EU$(M&!(M6!J/$.8D6QCGK$Y"+1@2+5@;$'BPY -M)HE'"":)5PJ+1@2+5@:C+#F)%BXY*\#)PY!5B^R+1@8+1@1T9\1>!":+1PHF -M"T<(=1(FBT<$)HM7!J,L.8D6+CGK%9`FBT<$)HM7!B;$7P@FB4<$)HE7!L1> -M!":+1P8F"T<$=1,FBT<()HM7"J/$.8D6QCDKP,G#)HM'"":+5PHFQ%\$)HE' -M"":)5PHKP,G#R!0``(M&!(M6!H#D#XK$BN**UBKVT>K1V-'JT=C1ZM'8T>K1 -MV`-&!(/2`(E&^(E6^L1>!":+!R:+5P(#1O@35OJ)1NR)5NZA+#F+%BXYZTB+ -M1O2+5O8Y1OAU-3E6^G4PQ%X$)HL')HM7`L1>_"8!!R815P+_=O[_=OSH#?^# -MQ`2+1OR+5OZ)1@2)5@;IB`"0)HM'!":+5P:)1OR)5OZ+P@M&_'1RBT;\@.0/ -MBL2*XHK6*O;1ZM'8T>K1V-'JT=C1ZM'8`T;\@](`B4;PB5;RQ%[\)HL')HM7 -M`@-&\!-6\HE&](E6]HM&\(M6\CE&['0#Z5W_.5;N=`/I5?\&4^B*_H/$!,1> -M_":+!R:+5P+$7@0F`0_":+!R:+5P(K1O0;5O:)1OB)5OH+TG4%/0P`K1V-'JT=C1ZM'8`\.#T@`#1O035O;1ZM'8T>K1V-'JT=C1 -MZM'8BD[\`D[T@^$/B4[\B4;^BT;XBU;ZQ%[\)HD')HE7`O]V_O]V_.@1_8/$ -M!/]V\NA("HM&](M6]L1>[B:)!R:)5P*#1NX$BT;TBU;V`0;X.1$6^CDI!N(X -M&1;D.(M&[HM6\,G#R`X``(M&!(M6!H#D#XK$BN**UBKVT>K1V-'JT=C1ZM'8 -MT>K1V`-&!(/2`#D6$@!W%G(&.080`'<..186`'<-<@8Y!A0`8B_B#_R5T,@O_=1(Y?@9T!HM>!L8'`"O`7E_) -MPY"#?@8`=`J+7@:(!_]&!NO*5_]V!.A;_X/$!.N^BUX(@#\E=1*#?@8`=`B+ -M7@;&!R7KV6HEZ]N`/RUU"_]&",=&]@$`ZP:0QT;V``"+7@B`/S!U"_]&",=& -M_`$`ZP:0QT;\``"+7@B`/RMU"_]&",=&^@$`ZP:0QT;Z``"+7@B`/R!U"_]& -M",=&]`$`ZP:0QT;T``"+7@B`/R-U`_]&""OVZQ6#_SE_((O&P>`"`\;1X`/' -M+3``B_"+7@C_1@B*!YB+^(/_,'W;@_\N=16+7@C_1@B*!YB+^(/_,'P%@_\Y -M?NL]9`!U`^G[`'X#Z0P"/54`=0/I(P%^`^GG`2U$`'4#Z18!+0L`=0/I#@'I -M'`*#?O8`=2S'1O@!`.L/D&H@_W8$Z$[^@\0$_T;X.7;X?1&#?@8`=.>+7@;& -M!R#_1@;KYX-^!@!T'HM>\HH'BUX&B`?_1@:#?O8`=0/IS@''1O@!`.LCD(M> -M\HH'*N10_W8$Z`#^@\0$Z]R0:B#_=@3H\OV#Q`3_1O@Y=OA\`^F<`8-^!@!T -MY(M>!L8'(/]&!NODD&H`:@#_=O;_=OQ6:@*+7O)J`/\WC48&4/]V!.AT`8/$ -M%.EF`6H`:@#_=O;_=OQ6:A#KVI!J`&H`_W;V_W;\5FH(Z\J0_W;T_W;Z_W;V -M_W;\5FH*BU[RBP>94E#KMY!J`&H`_W;V_W;\5FH*ZZ"0BUX(_T8(B@>8B_B# -M_T%\"(/_6G\#@\<@B\<]:0!T5W]M+6(`=`9(2'1,ZR)J`&H`_W;V_W;\5FH" -MBU[R_W<"_S>-1@90_W8$Z-D`@\04@T;R`NG'`)!J`&H`_W;V_W;\5FH0Z]20 -M:@!J`/]V]O]V_%9J".O$D/]V]/]V^NL$:@!J`/]V]O]V_%9J"NNLD"UO`'33 -M+08`=.8M`P!TN>NOD(M>\HL'B4;^BU[^_T;^B@>8B_@+_W1E@WX&`'0+BUX& -MB`?_1@;KX9!7_W8$Z)7\@\0$Z]0M6`!U`^DO_RT*`'4#Z:[^2'4#Z1;^ZS`M -M:0`]#P!W*-'@DR[_IQPH]B8\*#PH("<\*#PHYB8\*#PH/"C`)SPH$"<\*#PH -MUB:#1O("Z:G\D,@F``!75HM&"(M6"HE&_(E6_@O2?0KW7OR#5OX`]U[^*_:+ -M1@R94E#_=O[_=OSHS3^+V`,>$`2*!XA"W$:+1@R94E"-1OQ0Z,X^@W[^`'_2 -M?`:#?OP`=+'\8'((M>!O\'Z^:0@WX6`'4& -M@WX4`'08@WX*`'T2BUX&@S\`="J+'\8'+8M>!O\'@WX4`'0S@WX*`'PMBUX& -M@S\`=!J+'\8'*XM>!O\'ZQEJ+?]V!.A0^X/$!.O3D&HK_W8$Z$+[@\0$@WX6 -M`'0>@WX4`'48@WX*`'P2BUX&@S\`=!N+'\8'((M>!O\'@WX2`'4_@WX0`'0Y -MB_[K&Y!J(/]V!.@"^X/$!.OBD&HP_W8$Z/3Z@\0$1SE^#GX5BUX&@S\`=.>+ -M'\8',(M>!O\'Z^:0C43_B4;:ZQB+7MJ-1MP#V(H'F%#_=@3HO/J#Q`3_3MJ# -M?MH`?""+7@:#/P!TVHM>VHU&W`/8B@>+7@:+'X@'BUX&_P?KUX-^$@!T*HO^ -MZPQJ(/]V!.A^^H/$!$!H,_`'3GBQ_&!R"+7@;_!^OFD"O`7E_) -MPX,&-#D!@Q8V.0#K]`````````````#ZNB+_N`"`[[HH_[!M[NL`NF;_,\#O -MZP`SP([8CM".P.H``/__B]R+5P**1P3NPXO!L1^",5V!(M.#(O&,\>I`0!U$_?&`0!T!@O)=`ND2='I -M\Z6#T0#SI`<`&Z*O_M4(N'Q`WO^_\&R#G_ESHY^KHB_[@` -M@.]8NBK_[X/$`@G^8+M&`.GB_F"[2`#IV_Y@NTH`Z=3^8+M, -M`.G-_F"[3@#IQOY@NU``Z;_^8+M2`.FX_F"[5`#IL?Y@NU8`Z:K^8+M8`.FC -M_F"[6@#IG/Y@NUP`Z97^8+M>`.F._F"[8`#IA_Y@NV(`Z8#^8+MD`.EY_F"[ -M9@#I`#I,_Y@NWH`Z2S^8+M\`.DE_F"[?@#I'O[Z -MNBK_[8O8N`<`[_N+P\/ZNBK_[8O8N`8`[_N+P\/ZNBK_[8O8N`4`[_N+P\/Z -MNBK_[8O8N`0`[_N+P\/ZNBK_[8O8N`,`[_N+P\/ZNBK_[8O8N`(`[_N+P\/Z -MNBK_[8O8N`$`[_N+P\/ZNBK_[8O8N```[_N+P\/ZB]R+1P*Z*O_O^\.Z*O_M -M]]`E!P##^L/[PYSZ6,.+W/]W`IW#S,,`PY##D,@(``!6:`"`:"+_Z'3\@\0$ -M:`"`:"+_Z&C\@\0$:/T`:"C_Z%S\@\0$:@!H*O_H4?R#Q`1J"&@X_^A&_(/$ -M!&H(:#K_Z#O\@\0$:@AH//_H,/R#Q`1J"&@^_^@E_(/$!"OVB][1X\>'.CGT -M+8O>T>/'A\0-``!&@_Y`?.8KP(E&^HE&^"OVCD;ZB][1XXN'(`2+#@8`BU[X -M)HD')HE/`D:#1O@$@_Y`?.`KP%[)PU6+[(-^!`!\$H-^!$!]#(-^"`!\!H-^ -M"`=^!;C__\G#N`@`*T8(B48(/0<`?@7'1@@'`(M&!HM>!-'CB8?N+Y>F(`(-^"@'U&\`E$``+1@A0:#C_ -MZ^60@WX*`?4;P"40``M&"%!H.O_KT9"#?@H!]1O`)1``"T8(4&@\_^N]D(-^ -M"@'U&\`E$``+1@A0:#[_ZZF0_W8(:#3_ZZ#_=@AH-O_KF"T(`#T+`'<@T>"3 -M+O^G="^,+XPO5"]<+P0O&"\L+T`OC"^,+XPO]BXKP,G#R`0``%:+1@2+5@:* -MQ(K6*O8JY(OPT>:+'KHYBT`6B4;^BD8$*N2+\-'FBU[^BT`TB4;\B]CV1W>` -M=`7'1OP``(M&_%[)PU6+[%=6BW8(@WX$_W4&@WX&_W03BT8$BU8&*M(]__]U -M#8'Z`/]U!RO`7E_)PY#_=@90Z(7_@\0$B_@+_W4(N/__7E_)PY`+]G3TBP2) -M173KUI!5B^Q75H-^!/]U$8-^!O]U"X`.O@T!*\!>7\G#_W8&_W8$Z$/_@\0$ -MB_`+]G4(N/__7E_)PY#V1'8!==K'!(`EQT0"``#'1`2`)<=$!@``QD0R`,9$ -M,`C&1#$`QT0(@!#'1`H``"O`B40.B40,B402B400B40:B408QT0@"@#'1"(( -M`,9$,Q/&1#01QD0U$\9$-A&A.#F)1"2A(#F)1":A,CF)1"BA(CF)1"JAW#B) -M1"PK_XO?`][&1SD`1X/_"WSR*\")1%*)1%")1%:)1%2)1%J)1%B)1&*)1&") -M1&:)1&2)1&J)1&B)A(X`BT04BU06)']24&H`:@!6Z&$/@\0*5NC`*X/$`E;H -M-RR#Q`)6Z$XF@\0"@$QV`<1<<":#!P$F@U<"`.GN_E6+[%=6@WX$_W45@WX& -M_W4/*\"CP`VCO@TKP%Y?R<.0_W8&_W8$Z!?^@\0$B_`+]G4(N/__7E_)PY#V -M1'8!=-E6Z)0K@\0":@-6Z"LC@\0$5N@>+(/$`E;H;RR#Q`+H,_R+^,>$I@`` -M`,>$J````,>$G@```,>$H````,:$E@``QH27``#'1'8``,=$?@``5^@%_(/$ -M`NN!N/__P\@0``!75H-^!/]U(H-^!O]U'/]V#O]V#/]V"O]V"/]V!O]V!.C5 -M_X/$#%Y?R7\G#D,=&_@``BT8(Z2$# -MD/]V#O]V#%;H/B:#Q`:)1O[I10.0_W8,5NAM(H/$!.DW`Y#_=@Q6Z)\HZ_"0 -MBT8,BU8.B4;XB5;Z5L1^^+DB`/.E7ND3`Y"+1@R+5@Z)1OB)5OK$7O@F]D<$ -M$'0AZ$7[B4;\@&1W]_]V_.@\^X/$`E;H.2J#Q`)6Z(PI@\0"Q%[X)O9'!"!T -M!U;HURF#Q`+$7O@F]@<@=`EJ`%;H.16#Q`3$7O@F]@<0=`EJ`5;H)Q6#Q`3$ -M7O@F]D<$0'4#Z9D":@&+PXS"!0D`4E#_=@;_=@3H!0>#Q`KI?P*0*_^!?@@% -M874%.7X*=`R!?@@'874(.7X*=0._`0"!?@@%874&@WX*`'0-@7X(!F%U"8-^ -M"@!U`X//`E=6Z&\A@\0$BT8,BU8.B4;XB5;ZBT08BU0:B4;TB5;VBT04BU06 -MB4;PB5;RBT;XBU;Z5AZ+_HOP'@>.VKDB`/.E'U[_=O+_=O#_=O;_=O16Z-\, -MZ6G__W8._W8,5NA,)8/$!NG>`5;HRB.#Q`)6Z!DF@\0"BT8,BU8.B4;PB5;R -M5HUT1,1^\+D&`/.E7HM>\";'1P0_`";'1P8``(!D17_IH0&0*_^!?@@*874% -M.7X*=`R!?@@,874(.7X*=0._`0"!?@@*874&@WX*`'0-@7X("V%U"8-^"@!U -M`X//`E=6Z)$@@\0$BT8,BU8.B4;PB5;RQ%[P)O9'!`1T&B:*1P@E!``]`0#U -M&\`E!``,`5!6Z+LA@\0$Q%[P)O9'!`%U`^DA`2:*1P@E`0`]`0#U&\`E!``, -M`5!6Z&0BZ_W06_W04_W0:_W08ZB_".VL1^\+DZ`/.E'UX&_W;P5NB@$^FM_I"+1'(+1'!U -M`^F%`,1<<":+1W")1OQJ=/]T7\G#D,@$``!75HMV",=&_```_W8&_W8$Z-GY@\0$B_@+_W4(N/__ -M7E_)PY#H&?B)1OX+]G4*_S:L!(V%F@#K#8/^`741_S:N!(V%H@!0Z+LH@\0$ -MZQ.#_@)U!:&L!.L(@_X#=0>AK@1(B4;\_W;^Z-KW@\0"BT;\7E_)P\@&``!6 -MBW8$Z,'WB4;^@&1V?_]V_NBX]X/$`H-\=`!T"8M<=(-_#`!U!BO`7LG#D(M$ -M4(M44B%$8"%48HM$5(M45B%$9"%49HM$6(M46B%$:"%4:HM$8@M$8'40BT1F -M"T1D=0B+1&H+1&ATOHU$8!Y0:@!H#V'_='S_='J+7'3_5PR#Q`PKP(E$8HE$ -M8(E$9HE$9(E$:HE$:.N/D,@B``!6Q%X,)HLWBUX$BX>B`(N7I`")1OR)5OZA -MK@2)1N*+1PR+5PZ)1NB)5NJ*AYD`*N2)1N3'1O8``,=&[@``]D;I@'01]D;J -M`74+B&;RQT;L!0#K&)#V1NF`=0;V1NH!=`;&1O)_Z^;'1NP#`,=&[@``ZPG_ -M3A#_1N3_1NZ+1@HY1NY\`^FN`L1>!O]&!B:*!XA&WCP@?#(\?G\N@WX0`'4# -MZ9$"]D;H`70,/&%\"#QZ?P2`;MX@BD;>Q%[\)H@`1CEVXG>N*_;KJHM&Y(E& -MYL=&X```QT;T``"+1NR)1OB*1O*(1OJ*1MZ8/0H`='=^`^F8`0O`=0/I?P$M -M"`!T!DAT?^L:D/9&Z$!T"L=&X`H`QT;T`0"#?N0`?@/_3N3'1O```/9&^`%T -M`_]&\/9&^`)T!(-&\`/V1O@$=`^`?OH`=0/19O2+1O0!1O"+1O`Y1A!\`^E1 -M`8M&YHE&Y,=&$```Z=$!D/9&Z!)T`^FK`/9&Z"!TJL=&X!0`QT;T`@#KGI#V -M1ND"="**1N0E!P`M"`#WV-'XB4;@"\!^!K@"`.L#D"O`B4;TZS"0]D;I!'0, -MQT;@%`#'1O0"`.L=]D;I"'07QT;X!`"*1N0E!P`M"`#WV(E&],9&^B"+1N0, -M!T")1N3I.O^0]D;H@'4#Z3#_QT;@_P#'1O3__^DC__9&Z0'KZ/9&Z`1T`^ED -M__9&Z`AT"8-^Y`!U`^E@_O9&Z1!T*HM&Y,'@`@4*`#T4`'T#N!0`B4;@BT;D -M!3(`P>`%/0(`?0.X`@")1O3K(O9&Z2!T#,=&X!0`QT;T`@#K$/9&Z4!T"L=& -MX!X`QT;T!`#'1N0``.FK_O]&Y.FE_L9&^@#'1O0!`,=&^`0`Z93^D"T+`'4# -MZ5+_2'4#Z6+_2'4#Z6+_+0X`=,_I=_[V1O@!=!&*1M[$7OPFB`!&.7;B=P(K -M]H-^X`!^-?9&^`)T+\1>_";&``!&.7;B=P(K]L1>_";&`()&.7;B=P(K]HI& -MX,1>_":(`$8Y=N)W`BOV@W[T`'XL]D;X!'0FBT;T2`%&]NL$D/].](-^]`!^ -M$XI&^L1>_":(`$8Y=N)WZ"OVZ^2+1O`I1A#I1?V0BT;V`T;NF8M>!,1?<"8! -M1P0F$5<&BD;DBUX$B(>9`,1>#":)-XM&[E[)PY#("```5U;_=@;_=@3H:?6# -MQ`2+\`OV=0BX__]>7\G#D/9$=@%T\NBC\XE&_(N$I@")1OZ+A*@`B4;Z_W;\ -MZ)#S@\0"BT;^.4;Z=PN+?OHK^`,^K@3K!8M^^BOX3SE&^G4$@&1^@*&N!"O' -M0#M$)G,$@&1^]XM$#(M4#B3Y"]!T'%>-1OX64/]V#/]V"O]V"%;H"?R#Q`Z) -M1@SIN0"+1@P[QWX"B\>)1@P+P'\#Z:8`H:X$*T;^.T8,?@.+1@R)1O@+P'41 -M:#8%_S:J!/\VJ`#HNNF#Q`:AK@0Y1OAR$6@W!?\VJ@3_-J@`Z*'I@\0&_W;X -MBX2B`(N4I``#1OY24/]V"O]V".AJ[X/$"HM&##E&^'T=*T;X4/^TI`#_M*(` -MBT8(BU8*`T;X4E#H1>^#Q`J#?@P`?B"+1@R9Q%QP)@%'!"815P:+1@P!1OZA -MK@0Y1OYR`RE&_J&N!#E&_G(1:$H%_S:J!/\VJ`#H(>F#Q`;H6_*)1OR+1OZ) -MA*8`BX2H`(E&^HM&_CE&^G<(B_@K?OKK"I"+^"M^^@,^K@0Y?"1S!(!D?OM6 -MZ(8@@\0"_W;\Z!_R@\0"BT8,7E_)PY#("```5U;$7@PFBP>)1OJ+7@2+AYH` -MBY><`(E&_(E6_HM&$"M&"AO)(\$#1@J)1A`K]NLYQ%[\BW[Z)HH!B$;X_T;Z -MH:P$.4;Z<@7'1OH``(!^^$%\"H!^^%I_!(!&^""*1OC$7@;_1@8FB`=&.780 -M?\*+1OK$7@PFB0>+1A!>7\G#R`H``%=6_W8&_W8$Z"OS@\0$B_`+]G4(N/__ -M7E_)PY#V1'8!=/+H9?&)1OR+A)X`B4;^BX2@`(E&^O]V_.A2\8/$`HM&_CE& -M^G<'B_@K?OKK"8L^K`0K?OH#^(E^^#E\*',$@&1_^_9$"`AT'5>-1OH64/]V -M#/]V"O]V"%;H_OZ#Q`Z)1@SIM@"0BT8,.\=^`HO'B48,"\!_`^FB`*&L!"M& -M^CM&#'X#BT8,B4;V"\!U$6C;!?\VJ@3_-J@`Z([G@\0&BT;V.0:L!'<1:-P% -M_S:J!/\VJ`#H=.>#Q`;_=O;_=@K_=@B+A)H`BY2<``-&^E)0Z#WM@\0*BT;V -M.48,?B"+1@PK1O90BT8(BU8*`T;V4E#_M)P`_[2:`.@5[8/$"H-^#`!^&"M^ -M#(M&#`%&^HM&^CD&K`1W!J&L!"E&^HM&^CD&K`1W$6CQ!?\VJ@3_-J@`Z/CF -M@\0&Z#+PB4;\BT;ZB82@`(N$G@")1OXY1OIW"(OX*W[ZZPJ0BSZL!"M^^@/X -M.4;Z=0J`9';W@&1_@.L,BT;X.48,=02`9'_^.7PJ=@2`9'_WQX2.````.7PH -M<@=6Z(X)@\0"_W;\Z-/O@\0"BT8,"\!]`BO`F<1<<"8!1P@F$5<*BT8,7E_) -MP\@*``!75HMV"/?&`0!T%XM>!,1?<":#1R0!)H-7)@"+7@2`3W@!]\8$`'07 -MBUX$Q%]P)H-'+`$F@U!(!/>`+WQ@(`=!>+7@3$7W`F@T!,1?<":#1V0!)H-79@"+7@2`3W@(]\9P`'1TB\8D -M<#P@=1"+7@3$7W`F@T=$`2:#5T8`B\8D<#P0=3^+7@3$7W`F@T=``2:#5T(` -MBUX$]D=W"'0F@&=W]XM>!(!/=@)J!O]V!.A])(/$!"3]#`10:@;_=@3HA22# -MQ`:+QB1P/'!U*(M>!/9'"@AT'X!/>!"+7@2*AY(`*N3WT"/PBH>3`"KDA<9T -M&NL2D)"+7@3$7W`F@T<(`2:#5PH`*\!>7\G#BX>:`(N7G`")1OR)5OZ+OYX` -MBX>@`(E&^CO'=PNAK`0KQP-&^NL#D"O'B4;X/0(`?2#$7W`F@T_";&`0!'.3ZL!'=]*__K>8I'.\1>_":(`4_";&`0%'.3ZL!'<"*__$7OPFQ@$!]\8!`'0'Q%[\)H`)`O?& -M!`!T!\1>_":`"03WQ@(`=`?$7OPF@`D(]\8(`'2?Q%[\)H`)$.N6D/?&#P!T -M$_?&"`!T!HI'..L$D(I'-YB)1@:*1@;$7OPFB`%'.3ZL!'<"*_^+7@2)OYX` -MBUX$@$]V".G0_L@P``!75HMV!(O^@[R```AR`^E6!HN<@`#1XXN'NCF)1N`+ -MP'4#Z4(&BYR"`-'C`]B+1Q:)1OX+P'4#Z2T&*L"(1MZ(1N*(1NJ(1NZ(1O"( -M1M2(1M:(1OJ(1OR(1N:(1MCV10D0=`2`3M@']D4(@'0$@$[8",9&]@#V10D@ -M=`2`3O8']D4)`70$@$[V"/9%"@AT!X!.V'#K"Y#V10H"=`B`3O9P@$[J@,9& -M\@#V10E`=`2`3O(']D4)`G0$@$[R"(-])`!T"*&N!#E%)'(&H3@YB44D@WTF -M`'0(H:X$.44F<@:A(#F)12:#?2@`=`BAK`0Y12AV!J$R.8E%*(-]*@!T"*&L -M!#E%*G(&H2(YB44J@WTL`'0(H:P$.44L<@:AW#B)12SV110!=`2`31@0]D44 -M`G0$@$T8(/9%%!!T!(!.[A#V110@=`2`3NX$BD4R*N1(=`Q(="E(="Q(="_K -M!9"`3O#`@'TQ`G4H@$[P"(!],`5T.H!],`9U)(!.\`'K+H!.\$#KWH!.\*#K -MV(!.\"#KTH!],0%UUH!.\`3KT(!],`=U!H!.\`+K!(!.\`/V110(=`:`91A? -MZPKV11@@=`2`3NX"]D44!'0$@&48K_9%&`%T$H!.[D"`3NH0]D48!'0$@$[N -M@/9%%$!U(O9$6`)T'/9%%`AT"H!._$"`3OI`ZPB`3OR`@$[Z@(!.UH#V110( -M=1+V1%@(=`R`3OQ`@$[Z0(!.UH"+7N"#?P(4=0:#?PH&=0F+7O[V1P@(=2;V -M1%@0=`R`3OP0@$[Z$(!.UH#V1%@@=!*`3OP@@$[Z((!.UH#K!(!E&?SV1M:` -M=02`3M2`]D4(!'0$@$[>@/9%"$!T!(!.XH#V10@@=`2`3N)`]D4($'0$@$[B -M(/9%#`)T!(!.W@+V10P$=`2`3MX!]D4(`G48@'[R`'02]D4*$'0&QD;L`NL* -MQD;L`>L$QD;L`,9&W/^#?0(`=06#/0!T98-]`@-W7W(&@3T`A'=7_W4"_S6+ -M7O[_=PS_=PKH9"6)1M")5M+'1N@``.L$D/]&Z(-^Z`5]+XM>Z-'CBX>X!)E2 -M4(M>Z-'CBX?^.9D#1M`35M)24.@L)8E&VCT``7/.BD;HB$;<@'[<_W44*\") -M10*)!8E%!HE%!,9&W`")1MIJ`&C0!_]U`O\UZ/C;)(E%(J'F.#E%(G8#B44B@WT@`'4%QT4@"@"*13J(1O0* -MP'0$/`QV!,9&]`B*1O0JY#E%(G,,@WTB`'0&BD4BB$;TBD;T"$;J/`QS`_Y& -M](%](/L$<@;&1N;_ZPV+12"Y!0`KTO?QB$;F]D4(`70'@$[4$.L%D(!.UA"+ -M10R+50XD^0O0=`2`3NX@Z$OIB4;HBH2&`"4#`%!J:%;H[AZ#Q`;_=@S_=@K_ -M=@C_=@96Z#D"@\0*:@96Z+H>@\0$"$;6BD;4]M`@1M9J`&H&5NB\'H/$!O9$ -M=D!T!(!.[B#&1N0`BD;P*N10:@A6Z+H>@\0&"\!T!(!.Y$**1NXJY%!J"5;H -MHQZ#Q`8+P'0$@$[D1(I&ZBKD4&H*5NB,'H/$!@O`=`2`3N1(BD;B*N10:AY6 -MZ'4>@\0&BD;>*N10:A]6Z&8>@\0&:A56Z"H>@\0$)0\`"D;\4&H55N@R'H/$ -M!HI&^BKD4&H65N@^'H/$!HI&YBKD4&HA5N@O'H/$!HM%`@L%=#:*1MPJY%!J -M=E;H&1Z#Q`;_=MIJ%;H\AV# -MQ`:*1O0JY(F$D`"*1MB(A)(`BD;VB(23`(I&\HB$E`"*1NR(A)4`BD4VF%!J -M&E;HOQV#Q`:*13684&H;5NBQ'8/$!HI%-)A0:AQ6Z*,=@\0&BD4SF%!J'5;H -ME1V#Q`;V10H(=!6*13F84&HB5NB!'8/$!HI%.9A0ZPUJ`&HB5NAO'8/$!FH` -M:B-6Z&0=@\0&@'[D`'065NCR%X/$`HI&Y"KD4&H%5N@M'8/$!O9%&`%U&/9& -M!@%T$E;HT!>#Q`)J&&H%5N@/'8/$!O9$=P%T'O9%"`%T&%;HLA>#Q`)J$6H% -M5NCQ'(/$!H!D=_[K(O9$=P%U'/9%"`%U%E;HCA>#Q`)J$FH%5NC-'(/$!H!, -M=P%6Z'@7@\0"BD;6*N10:@96Z,X<@\0&_W;HZ/KF@\0"7E_)PY!5B^Q6BW8$ -MBT08BU0:,48&,58(BT04BU06,48*,58,]D1V$'1%]D8&$'04]D08$'0%:@+K -M`Y!J!E;H\`Z#Q`3V1@8"=!3V1!@"=`5J`.L#D&H!5N@"`8/$!/9&!D!T*?9$ -M&$!T&FH"ZQB0]D8&$'0):@96Z+8.@\0$]D8&0'0):@96Z'!B:+1PPFBU<.)BE'!"895P;$7@8FBT<0)HM7$B8!1P@F -M$5<*@&1%?U[)P\@B``!75HM>!(L'B4;LBUX&T>,#7@2+1Q:)1OZ+V(M'!L'H -M`HE&\&H`:,@`BT<*BU<,BL2*XHK6*O;1ZM'84E#H51^(1OS'1O@``.MND$>! -M_Q`G?2B+1NX%0`!0_W;ZZ+/@@\0$BT;Z!0@`4.BPX(/$`HA&]CQ`^-'C`U[^BT<4B4;ZBU[X -MT>.+A[`$B4;NBU[XT>,#7OZ)1R2+1NX%0`!0_W;ZZ!W@@\0$:@"+1OH%"`!0 -MZ`[@@\0$BT;N!04`4/]V^NC^WX/$!&B!`(M&^@4(`%#H[M^#Q`0K_^D@_Y"* -M3OBX`0#3X(M>_@E'$HM&[@5+`%#_=OKHRM^#Q`1J`(M&^@4(`%#HN]^#Q`2+ -M1NX%?@!0_W;ZZ*O?@\0$BD;\*N10BT;Z!0@`4.B8WX/$!.DU_Y"+7OZ`3PX! -MBU[^BT<&B4;RQT;>```+P'\#Z:H`H:P$]V;R!1``4.B5UX/$`HE&Z(E6ZJ&N -M!/=F\@40`%#H?]>#Q`*)1N")5N*+1NH+1NAT!XO""T;@=07'1M[__XM&Z(M6 -MZH#D#XK$BN**UBKVT>K1V-'JT=C1ZM'8T>K1V`-&Z(/2``4/`(/2`"3PB4;H -MB5;JBT;@BU;B@.0/BL2*XHK6*O;1ZM'8T>K1V-'JT=C1ZM'8`T;@@](`!0\` -M@](`)/")1N")5N(K_^E]`9!J=(O?P>,"`U[^_W=V_W=TZ`K?@\0&BT;LB82` -M`(M&!HF$@@")O(8`BD8&*N29BO**U(K@*L"+3NR`S?^+V`O*B\_HM'=(M7=HE$<(E4 -M_HM' -M)(F$B@"+7OC1XP->_HM'%(F$B`"+7OZ*3OBX`0#3X(5'$G4#Z0X!B\`'T#Z><`BX2D``N$H@!U.XM& -MX(M6XM'JT=C1ZM'8T>K1V-'JT=B*3N"#X0^)C*(`B82D`,>$I@```,>$J``` -M`*&N!"O2`4;@$5;BBX2<``N$F@!U.XM&Z(M6ZM'JT=C1ZM'8T>K1V-'JT=B* -M3NB#X0^)C)H`B82<`,>$G@```,>$H````*&L!"O2`4;H$5;J1XM>_CE_!GY< -M:388!:H`@<9<#O\&&`6+W]'C`U[^B7_HM'=@M'='0#Z2C^QT1V`(#K -MG)"AK`2Y!0`KTO?QHS(YH:P$P>`"*]+W\:,B.:&L!"L&(CD]$`!V"*&L!"T0 -M`.L%H:P$2$BCW#BA(CDY!MPX7\G#R!8``%=6H0`&_P8`!@O`=`],='#@``BU[TQT<0@`"+7O3'1Q(` -M`(M>],='%```BU[TQT<(``#'1OR``,=&\`@"QT;R``#'1OX``,9&^``K_^GS -M`(I&^B0'.D;X=`/I`@%I]_0`@<8:!L<$``"+1OZ)1`**1OHE?P")1`C'1`I` -M>,=$#'T!BT;\B404BT;\B406BU[TBU\(T>,#7O2)=R:+7O3_1PCV1OH@=&"+ -M1OP%!@!0Z*W;@\0"BD[Z*NT[P74$@$P(@,=$!A``BT;\!1``B408BT;\!1`` -MB40:@T;\((M>](M?"-'C`U[TB7` -M1O@"ZQW'1`8(`(-&_!"*7O@J_P->\(Y&\HI$"":(!_Y&^(M>]/]'!(M>_M'C -M`U[TB7<6BT0&BU[T`4<&_T;^1X/_"'T7BT;\!00`4.@-VX/$`HA&^CS_=`/I -M\?['!JP$``#'!JX$``"+7O2#?P8`=%N+1P;1X&H`4*'B.(L6Y#AK3P0H*\&# -MV@!K3P9X*\&#V@!24.@^&8E&ZHE6[`O2=04]``QV"<<&K`0`#.L8D`O2=0X] -M0`!S"<<&K`1``.L&D"3PHZP$H:P$HZX$*__K`I!'BU[T.7\$=@Q74^A>^8/$ -M!`O`?>N+7O2`3PP#*_^+W]'CBX>X!)DKPM'XB]_1XXF'_CE'@_\%?.7_!KPY -MBU[TBU\6BTZL9',0"+ -M7NHKP(E'&HE'&(M>ZO]W%O]W%%!04^@?\(/$"O]VZNA\#(/$`L=&ZC0`QT;L -M``"A!@#$7NHFQP?:8R:)1P+I;/V0*\##D,@(``!75J&Z.8E&^@O`=08KP%Y? -MR<.A&@6)1O['1O@``.MID$>+7OPY?P9^68O?T>,#7OR+=S0+]G3I]D1V`73C -M]D1V!G0'5NCI`(/$`H-\>`!T!U;H?`"#Q`*`O)8``'0'5N@$`X/$`O9$=@AT -M!U;H5P&#Q`+V1':`=*A6Z`3E@\0"ZY^0_T;^_T;XBT;XBU[Z.4<$?B6+1OXY -M1P1_!<=&_@``BU[^T>,#7OJ+1Q:)1OP+P'30*__I:O^0@SX:!0A\"<<&&@4` -M`.E$__\&&@7I/?^0R`0``%:+=@3H<=R)1OR+1'B)1O['1'@``(!,=H#_=OSH -M7=R#Q`+V1OX!=`2`3&80]D;^`G0$@$QF(/9&_@1T!(!,9D#V1OX(=`B`3$6` -M@$QE@/9&_A!T!(!,9H!>R<.0R`8``%=6BW8$Z!#`(E&_HN$H`")1OJ+1OXY1OIW!XOX*W[ZZPF+^"M^^@,^K`2+QRN$ -MC@#V1'\!=1TYA(P`_":(`4R<.0R`8``%=6BW8$BWX&]\<"`'1NQ%QP)H-' -M'`$F@U<>`.CZV(E&^O\VK@2-A*(`4.BO"8/$!)G$7'`F*4<$)AE7!HN$I@") -MA*@`@&1^P(J$A@`E`P!0:FA6Z'8.@\0&5N@E"8/$`FB"`&H%5NAC#H/$!E;H -M$@F#Q`+_=OKHH]B#Q`+WQP$`=0/IS0#$7'`F@T<@`2:#5R(`Z(/8B4;ZBH2& -M`"4#`%!J:%;H)@Z#Q`9J"E;H!0Z#Q`2(1OPE\0`,`5!J"E;H"PZ#Q`96Z+H( -M@\0":DAJ!5;H^0V#Q`;_=OKH0-B#Q`+H-MB)1OJ*A(8`)0,`4&IH5NC9#8/$ -M!HI&_"KD4&H*5NC*#8/$!E;H>0B#Q`)J2&H%5NBX#8/$!O\VK`2-A)H`4.BY -M"(/$!)G$7'`F`4<()A%7"HN$G@")A*``@&1_P(!D=O=6Z(CQ@\0"_W;ZZ,W7 -M@\0"7E_)P\@$``!75HMV!/9$%`1T`^FZ`/9&!@)U%NBGUXOXBH2&`"4#`%!J -M:%;H2PV#Q`;V1@8!=`C'1OP``NL&D,=&_``$]D8&!'0+BT;\]]`A1';K!Y"+ -M1OP)1';V1'<&=1;V1!@0=!!J%5;H]`R#Q`0+A)``ZPR0:A56Z.0,@\0$)/!0 -M:A56Z/`,@\0&]D8&!'0/]D1W!G4)@$Q,!&H"ZP>0@&1,^VK]:FU6Z,P,@\0& -M@(R6``+$7'`F@T=4`2:#5U8`]D8&`G4'5^C]UH/$`EY?R.+A[HYB4;ZZ$/6B4;\BH2&`"4#`%!J:%;H -MY@N#Q`9J;%;HQ0N#Q`2(1OAJ;5;HN0N#Q`2(1O[_=OSH%=:#Q`**1$PE!`") -M1$S'1$X``/9$%`AT$(!,3`CV1!1`=2OV1OA`ZR/V1OA`=`2`3$P(BU[Z@W\" -M%'4&@W\*!G0,]D040'4&]D;X@'0$@$Q,`O9$%`1T!_9&_@+K%9#V1OX"=`:` -M3$P$ZP2`9$S[]D;X`70$@$Q,`8M>^H-_`A1U!H-_"@9U#XN\@@#1YXM9%O9' -M"`AU&/9&^!!T!(!,3!#V1O@@=`R`3$P@7E_)PX!,3!!>7\G#R`8``%:+=@3H -M4=6)1OZ*A(8`)0,`4&IH5NCT"H/$!FH+5NC3"H/$!(A&^FIL5NC'"H/$!(A& -M_/]V_N@CU8/$`L1>!BO`)HE'`B:)!_9&^@1T#O9&^@)U",1>!B:`3P(!]D08 -M('0.]D;\0'4(Q%X&)H!/`@1>R<.0R`0``%:+=@2AK@0%"P#$7@8FB4<$H:P$ -M2,1>!B:)1P;HP=2)1O[_-JX$C82B`%#H=@6#Q`3$7@8FB0?_-JP$C82:`%#H -M806#Q`3$7@8FB4<"BH2&`"4#`%!J:%;H.0J#Q`9J"U;H&`J#Q`2(1OS_=O[H -M=-2#Q`+$7@8KP":)1PHFB4<(]D1V`G0&N`$`ZP20N`(`*]+$7@8F"4<(]D1V -M"'0&N``!ZP20N``"Q%X&)@E'"/9$=A!T!K@`0.L#D"O`Q%X&)@E'"/9&_`1T -M#O9&_`)U",1>!B:`3PH!7LG#R`@``%=6BW8$C7Q$BF4!)0"`B07'10(``.CJ -MTXE&_/\VK@2-A*(`4.B?!(/$!(E&^/\VK`2-A)H`4.B-!(/$!(E&^HJ$A@`E -M`P!0:FA6Z&D)@\0&:@M6Z$@)@\0$B$;^_W;\Z*33@\0"]D1V`G0%N`$`ZP.X -M`@`KT@D%]D1V0'0%N(``ZP(KP`D%]D;^!'0*]D;^`G4$@$T"`?9$&"!T"O9% -M"`AU!(!-`@3V10('=`.`#4"+1O@Y1"1R`X`-!(M&^#E$)G<#@`T(H:X$*T;X -M2'4#@`T0]D1V"'0%N``!ZP.X``()!?9$=A!T!;@`0.L"*\`)!8M&^CE$*'($ -M@$T!!(M&^CE$*G<$@$T!"(M&^CE$+'<$@$T!(*&L!"M&^DAU!(!-`1!>7\G# -MD,@"``!75HMV!(M^!NC-THE&_H!,=B"#__]U#<:$EP`"QH28``#K+)"#__YU -M!\:$EP`#Z^P+_WX;QH27``&Y!0"+QYGW^8OX/?\`?@.X_P"(A)@`5NCG`(/$ -M`O]V_NB`TH/$`H/__G0-Q%QP)H-'8`$F@U=B`%Y?R<.0R`(``%:+=@1J"5;H -M\`>#Q`0,("KD4&H)5NCZ!X/$!E;HJ0*#Q`)J1&H%5NCH!X/$!E;HEP*#Q`*` -M3'9`*\!>R<.0R`(``%:+=@2+1`R+5`XD^0O0=3!J"5;HH@>#Q`0DWRKD4&H) -M5NBL!X/$!E;H6P*#Q`)J1&H%5NB:!X/$!E;H20*#Q`*`9':?*\!>R<.058OL -M5U:+=@2+?@9H5Q!H'`7_-MP`_S;B`.AVR(/$"%=6Z&[(@\0$:"4%Z&7(@\0" -M7E_)P\@"``!75HMV!/9$=PAU2>B,T8OX@$QV`HJ$A@`E`P!0:FA6Z"P'@\0& -M:@96Z`L'@\0$)/T,!"KD4&H&5N@3!X/$!O9$%(!T"6H&5NB.^8/$!%?H3=&# -MQ`)>7\G#R`(``%=6BW8$Z#;1B_B`9';]@$QW"(J$A@`E`P!0:FA6Z-(&@\0& -M:@96Z+$&@\0$)/DJY%!J!E;HNP:#Q`97Z`31@\0"7E_)PY!5B^Q75HMV!.CM -MT(OXBH2&`"4#`%!J:%;HD0:#Q`96Z$`!@\0":AAJ!5;H?P:#Q`97Z,C0@\0" -M7E_)PY!5B^Q75HMV!.BQT(OXBH2&`"4#`%!J:%;H50:#Q`96Z`0!@\0":A1J -M!5;H0P:#Q`96Z/(`@\0"5^B%T(/$`EY?R7\G#D%6+[%=6BW8$Z+_/B_B*A(8`)0,`4&IH -M5NAC!8/$!FH`:@96Z%@%@\0&5^BASX/$`EY?R<-5B^Q75HMV!"O_ZP%'@?_H -M`WT1:@56Z!D%@\0$"\!U[%Y?R<-H91%H)P7_-MP`_S;B`.@AQH/$"/^TA@#_ -MM((`_[2``&@P!>@,QH/$"&AC!>@#QH/$`EY?R<-5B^Q75HM>!(MW!(M_!CO^ -M=PB+QBO'7E_)PXM&!BO'`\9>7\G#D,@$``!6BW8$BT08BU0:B4;\]D;\`G0R -M:@56Z)4$@\0$"\!U1VHD:@56Z)X$@\0&Q%QP)H-'/`$F@U<^`,1<<":#1P0! -M)H-7!@#V1OP0=`EJ`E;H__:#Q`3V1OQ`=`EJ`E;HP/>#Q`2`3'807LG#R!`` -M`%=6@SZ\.0!U!RO`7E_)PY"ANCF)1O8+P'4(N/__7E_)PY"+7O:+1Q:)1OX+ -MP'3K@WX$`'SEBT8$BU[^.4<&=MJ+V-'C`U[^BW!_Q`G?0UJ!5;HD0.#Q`0+ -MP'7L_W8&:AU6Z)D#@\0&:B1J!5;HC@.#Q`8K_^L"D$>!_Q`G?0UJ!5;H80.# -MQ`0+P'7L@WX&"G4N:@UJ'5;H9`.#Q`9J)&H%5NA9`X/$!BO_ZP%'@?\0)WT- -M:@56Z"T#@\0$"\!U[(I&\"KD4&H=5N@R`X/$!O9&\@AU!U;HM?R#Q`**1OPJ -MY%!J:%;H%@.#Q`;_=OCH7_":`3P0! -MZQ+$7OPFB@_";V!P1T#(,^?@4`=`4F@$\$!"O`R"";&1PD`B\8K1@29*\+1^,1>"":(1PJ*1O[$7@@FB$<+QT;\``"+ -M=@2+_@-^!NFG`)`K]NMSD)!'1SE^!GY1BT8$`\=0Z(O'@\0"B$;Z._YU"(I& -M_CA&^G4*._YTVH!^^@!TU(O&F2O"T?C$7@@FB$<(BD;^Q%X()HA'"8O'F2O" -MT?C$7@@FB$<*BD;ZZXN0T&;^@'[^`'4<:@"+1@0#QE#H)<>#Q`1&1CEV!G\# -MZ77_QD;^`8I&_BKD4(M&!`/&4.@%QX/$!"O_Z6[_:/\`5NCVQH/$!$9&._Y_ -M\(M&_%Y?R<.0B]R+7P*+EX@`BX>*`(O<`T<$[H/"".S#B]R+7P*+EX@`BX>* -M`(O<`T<$[HM'!H/"".[#B]R+7P*+EX@`BX>*`(O<`T<$[H/"".P[1P9T"(M' -M!NZX`0##,\##8!X&+HX><`'H"P"Z(O^X`(#O!Q]ASS/;NH0`[*B`=#F#Z@2P -MY^Z#P@CLBN"#Z@BP9^Z#P@CL"L1T'(D>\@6)%O0%T>.+OPXYJ`%U):@"=2>H -M!'4@T>N#Z@2#PA!#.Q[P.'*XPXL>\@6+%O0%@^H$ZZKIG`'IOP*#P@0SP.R+ -MV('C^`#!ZP*+>30D!SP"=57W178@`'5L"BWDT)`<\`W72,\F+E8@`BH6*``0.[H/"".R*R`K)=0/K -M8Y"+M9X`BY6@`#OR<@>+QBO"ZPB0*]:AK`0KP@/!.T4JM)D#/VZ]E6!L1U<":#1#`! -M)H-4,@`F@T0T`2:#5#8`!U[BG^O`]L0"=`HZ13MUM+``ZP60//]UJSOS=,HF -MB`1&.S:L!'6=,_;KF?=%=A``=0E15^CG]X/$`EGI3_^+E8@`BH6*``1B[H/" -M".PSVXK8,\#L4U!7Z"K7@\0&Z6[_@\(&,\#LB]B!X_@`P>L"BWDT)`<\`70/ -M8%!HR@7H=+V#Q`1AZR.0BY6(`(J%B@`$3.Z#P@CL"(66`(N5B`"*A8H`!&#N -M@\(([NGB_%6+[(M>!/]V"/]V!O]W`O\WZ"X`BUX$B5<"B0>+Y5W"!@!5B^R+ -M7@2+!XM7`HM.!NCS`8M>!(D'B5<"B^5=P@0``%6+[%=64S/_BT8&"\!]$O?7 -MBU8$]]CWVAT``(E&!HE6!(M&"@O`?1+WUXM6"/?8]]H=``")1@J)5@@+P'46 -MBTX(BT8&,]+W\8O8BT8$]_&+T^L\D(O8BTX(BU8&BT8$T>O1V='JT=@+VW7T -M]_&+\#/24E#_=@K_=@CH-`$[5@9W!W((.T8$=@.#[@$STHO&"_]T!_?:]]B# -MV@!;7E^+Y5W""```58OL4UM*D(O8BTX(BU8&BT8$T>O1V='JT=@+VW7T]_$STE)0_W8*_W8(Z)$` -M.U8&=P=R"SM&!'8&*T8(&U8**T8$&U8&"_]U!_?:]]B#V@!?6XOE7<((`%6+ -M[%-6BT8*"\!U%HM."(M&!C/2]_&+V(M&!/?QB]/K/)"+R(M>"(M6!HM&!-'I -MT=O1ZM'8"\EU]/?SB_`STE)0_W8*_W8(Z!P`.U8&=P=R"#M&!'8#@^X!,]*+ -MQEY;B^5=P@@``%6+[(M&!HM>"@O8BUX(=0N+1@3WXXOE7<((`/?CB\B+1@3W -M9@H#R(M&!/?C`]&+Y5W""``R[>,&T>#1TN+ZPP"#!A8&`8,6&`8`_P8>.8,^ -M'CED

.0``H28Y"P8D.70H_S8F.?\V)#EJ`&ID -MH20YBQ8F.2L&-#D;%C8Y4E#H;_]24.@$_Z/\.8,^_#D`?`>#/OPY9'X&QP;\ -M.0``@SX,.@-\#?\V_#EH]@7HF+J#Q`2#/@PZ`GP):/D%Z(BZ@\0"*\"C-CFC -+-#GIZJ`````````V -` -end diff --git a/usr.sbin/stallion/bootcode/stl.4 b/usr.sbin/stallion/bootcode/stl.4 deleted file mode 100644 index ea983355a8cb..000000000000 --- a/usr.sbin/stallion/bootcode/stl.4 +++ /dev/null @@ -1,327 +0,0 @@ -.\" Copyright (c) 1996 Greg Ungerer (gerg@stallion.oz.au). -.\" 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 Greg Ungerer. -.\" 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 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$ -.\" -.Dd December 2, 1996 -.Os -.Dt STL 4 i386 -.Sh NAME -.Nm stl , -.Nm stli -.Nd "drivers for Stallion Technologies multiport serial controllers" -.Sh SYNOPSIS -.Cd "stl0 at isa? port tty irq " -.Cd "stli0 at isa? port tty iomem iosiz flags " -.Cd "stli0 at eisa? port tty iomem iosiz flags " -.Sh DESCRIPTION -This is a kernel driver for Stallion Technologies multiport serial boards. -There are two drivers, each supporting a different class of boards. -The -.Nm -driver supports the EasyIO and EasyConnection 8/32 -boards, while the -.Nm stli -driver supports all other types, including -ONboard, Brumby and EasyConnection 8/64. -.Sh CONFIGURATION -Each board installed in the system needs a configuration entry in the -kernel configuration file. -Slightly different options and parameters are required for each of the -different board types. -Depending on the type of board one of the -.Nm -or -.Nm stli -drivers will be used. The -.Nm -and -.Nm stli -drivers can support up to 8 boards. -.Pp -Configuration of the hardware - DIP switches, jumpers, etc - varies -from board to board. -Consult documentation supplied with the board for hardware -configuration details. -Alternatively the board documentation is available on Stallion -Technologies WWW site at http://www.stallion.com. -.Pp -The EasyIO and EasyConnection 8/32 families of boards use the -.Nm -driver. -ISA board configuration entries for the -.Nm -driver take the general form of: -.Pp -.Cd "stlX at isa? port tty irq " -.Pp -.Ar X -is the unit number assigned to the board. -Any unique value between 0 and 7 is valid. -.Pp -The I/O address used by the board is specified by -.Ar . -Each of the EasyIO and EasyConnection 8/32-AT boards can use -an I/O address in the range from 0 to 0x400. -.Pp -All EasyIO and EasyConnection 8/32 boards require an interrupt, -and this interrupt is specified by -.Ar . -Legal IRQ values for the ISA boards are 3, 4, 5, 7, 10, 11, 12 and 15. -Interrupts are software programmed on all boards except the EasyIO-8M. -.Pp -The EasyConnection 8/32-AT board uses a secondary I/O address region, -and this is fixed at address 0x280 in the driver code. -All EasyConnection 8/32-AT boards may share the same secondary address -region. -.Pp -EasyConnection 8/32 PCI boards are detected automatically by the -system on boot up. -No configuration information is required in advance for these -board types. -During boot up the -.Nm -driver will issue messages to indicate that an EasyConnection 8/32 -PCI board was found, and some information about it. -.Pp -Following are some examples of configuration entries for each of the ISA -boards supported by the -.Nm -driver. -Each example also describes some important details about each of the -board types. -.Pp -Each EasyIO board requires 8 bytes of I/O address space and 1 IRQ line. -A configuration entry for an EasyIO board would look like: -.Pp -.Cd "stl0 at isa? port 0x2a8 tty irq 15" -.Pp -This entry specifies an EasyIO board at I/O address 0x2a8 using IRQ 15. -The I/O and IRQ values can be modified as required. -.Pp -Each EasyConnection 8/32-AT board requires 2 sets of I/O addresses -and 1 IRQ line. -The primary I/O address range is 2 bytes in size, and must be unique -to each EasyConnection 8/32-AT board in the system. -The secondary I/O address range is 32 bytes in size, but can be shared -by multiple EasyConnection 8/32-AT boards. -This secondary I/O address is set at 0x280 in the driver code. -A configuration entry would look like: -.Pp -.Cd "stl0 at isa? port 0x2a0 irq 10 tty" -.Pp -This specifies an EasyConnection 8/32-AT with primary I/O address 0x2a0, -secondary I/O address of 0x280 and IRQ 10. -.Pp -The ONboard, Brumby and EasyConnection 8/64 families of boards use the -.Nm stli -driver. The -.Nm stli -driver supports the ISA and EISA members of these families. -.Pp -ISA board configuration entries for the -.Nm stli -driver take the general form of: -.Pp -.Cd "stliX at isa? port tty iomem iosiz flags " -.Pp -.Ar X -is the unit number assigned to the board. -Any unique value between 0 and 7 is valid. -.Pp -The I/O address used by the board is specified by -.Ar . -Each of the different supported board types has restrictions on valid -I/O addresses and also the amount of I/O space required varies between -the boards. -.Pp -All boards using the -.Nm stli -driver require a shared memory region to operate. -Depending on the board type the region required varies in size -from 4 kbytes to 64 kbytes. The size of the board region is specified -by field -.Ar -of the configuration entry, and the address of the region is specified by -.Ar . -.Pp -The flags field specifies the particular board type that this entry -applies to. -Not all board types are distinguishable by the driver at runtime, -so this field is required by the driver. -Valid board types are: -.Bd -literal -offset indent -BOARD NAME TYPE I/O SIZE - -Brumby 2 0x4000 -ONboard 4 0x10000 -ONboard/E 7 0x10000 -EasyConnection 8/64-AT 23 0x1000 -EasyConnection 8/64-EISA 24 0x10000 -.Ed -.Pp -Following are some examples of configuration entries for each of the -boards supported by the -.Nm stli -driver. -Each example also describes some important details about -each of the board types. -.Pp -The EasyConnection 8/64-AT board requires 4 bytes of I/O address space and -4 kbytes of memory space. -A configuration entry would look like: -.Pp -.Cd "stli0 at isa? port 0x2a0 tty iomem 0xcc000 iosiz 0x1000 flags 23" -.Pp -The flags field of this entry specifies that this is an -EasyConnection 8/64-AT board. -It is set to I/O address 0x2a0 and memory address 0xcc000. -The -.Ar iosiz -parameter specifies a memory region size -of 4 kbytes. -.Pp -The EasyConnection 8/64-EISA board requires a 64 kbyte region of -memory space. -This region can be anywhere in the 32 bit memory address space. -A configuration entry would be like: -.Pp -.Cd "stli0 at eisa? port 0x2000 tty iomem 0x80000000 iosiz 0x10000 flags 24" -.Pp -The flags field is used to specify that this is an EasyConnection 8/64-EISA -board. -The I/O (port) address resource is derived from the EISA slot that -the board is in. -Each EISA slot is allocated a section of the I/O address space by the -hardware of the system. -That address being 0xX000 where X is the slot number. -The example board is at memory address 0x80000000 which is 2 Gbyte. -The -.Ar iosiz -parameter specifies the size of the memory region, -in this case 64 kbytes. -.Pp -Each ONboard ISA board requires 16 bytes of I/O space and a 64 kbyte -section of memory address space. -Valid ONboard I/O addresses are in the range 0x200 to 0x300. -A configuration entry for an ONboard ISA would look like: -.Pp -.Cd "stli0 at isa? port 0x240 tty iomem 0xd0000 iosiz 0x10000 flags 4" -.Pp -This entry specifies an ONboard ISA by setting flags to 4. -It uses I/O address 0x240 and a memory region of 64 kbytes at memory -address 0xd0000. -.Pp -Each ONboard/E board requires a 64 kbyte memory region, and this -can be anywhere in the 32 bit address space (that is from 0 to 4 Gbyte). -A configuration entry would look like: -.Pp -.Cd "stli0 at eisa? port 0x3000 tty iomem 0xc0000000 iosiz 0x10000 flags 7" -.Pp -The specifies an ONboard/E in slot 3 using a shared memory address -of 0xc0000000 (3 Gbyte). -.Pp -Each Brumby board requires 16 bytes of I/O address space and a 4 kbyte -region of shared memory space. -The valid Brumby I/O addresses are in the range 0x300 to 0x400. -The shared memory region of the Brumby must be in the 0xc0000 to -0xdc000 region of the memory address space. -A configuration entry for a Brumby would be like: -.Pp -.Cd "stli0 at isa? port 0x360 tty iomem 0xc8000 iosiz 0x4000 flags 2" -.Pp -This specifies a Brumby board at I/O address 0x360 using a shared memory -region at address 0xc8000. -.Sh NOTES -When building the device nodes for the ports be sure to use the correct -driver name, -.Nm -or -.Nm stli . -Each driver has a separate major number allocated, -so even though the port device names are the same for each driver, -the major number of the device node is different. -Use the -.Xr MAKEDEV 8 -script to create the devices. -Use the ttyE and cue tag for the -.Nm -driver, and -the ttyEi and cuei tags for the -.Nm stli -driver. -.Pp -The intelligent board types (ONboard, Brumby and EasyConnection 8/64) -require a firmware download before the ports will be operational. -This is achieved by using the -.Nm stlload -command. -See its manual page for details on usage. -.Sh FILES -.Bl -tag -width "/dev/staliomem?" -compact -.It Pa /dev/ttyE? -standard callin devices -.It Pa /dev/ttyiE? -initial-state callin devices -.It Pa /dev/ttylE? -lock-state callin devices -.It Pa /dev/cue? -standard callout devices -.It Pa /dev/cuie? -initial-state callout devices -.It Pa /dev/cule? -lock-state callout devices -.It Pa /dev/staliomem? -board control device -.El -.Pp -Note that the port numbers start at 0 for port 0 of board 0. -Each board has 64 port slots allocated for it. -So the second boards ports start at 64 and go through 127. -Use the -.Xr MAKEDEV 8 -script to create the devices. -Use the ttyE and cue tag for the -.Nm -driver, and -the ttyEi and cuei tags for the -.Nm stli -driver. -.Sh SEE ALSO -.Xr stty 1 , -.Xr termios 4 , -.Xr tty 4 , -.Xr comcontrol 8 , -.Xr MAKEDEV 8 , -.Xr stlload 8 , -.Xr stlstats 8 -.Sh HISTORY -This driver was originally developed by -.An Greg Ungerer Aq gerg@stallion.com . diff --git a/usr.sbin/stallion/stlload/Makefile b/usr.sbin/stallion/stlload/Makefile deleted file mode 100644 index d53e932cfce5..000000000000 --- a/usr.sbin/stallion/stlload/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -# $FreeBSD$ - -PROG= stlload -MAN= stlload.8 -MANSUBDIR=/i386 - -CFLAGS+= -DBOOTDIR=\"${BOOTDIR}\" - -.include diff --git a/usr.sbin/stallion/stlload/stlload.8 b/usr.sbin/stallion/stlload/stlload.8 deleted file mode 100644 index b1e398230ddc..000000000000 --- a/usr.sbin/stallion/stlload/stlload.8 +++ /dev/null @@ -1,133 +0,0 @@ -.\" Copyright (c) 1996 Greg Ungerer (gerg@stallion.oz.au). -.\" 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 Greg Ungerer. -.\" 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 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$ -.\" -.Dd December 2, 1996 -.Os -.Dt STLLOAD 8 i386 -.Sh NAME -.Nm stlload -.Nd "Stallion Technologies multiport serial board down loader" -.Sh SYNOPSIS -.Nm -.Op Fl vhVR -.Op Fl i Ar image-file -.Op Fl c Ar control-device -.Op Fl r Ar rx-buf-size -.Op Fl t Ar tx-buf-size -.Op Fl B Ar boot-banner -.Op Fl b Ar unit-number -.Sh DESCRIPTION -The -.Nm -utility -is used to download the firmware code to Stallion Technologies intelligent -multiport serial boards. -A firmware download is only required for those boards that use the Stallion -.Nm stli -driver. -This includes the EasyConnection 8/64, ONboard and Brumby families of boards. -.Pp -Different board types require different firmware images. -If the wrong firmware is loaded into a board it will fail to operate. -.Pp -The Stallion EasyConnection 8/64 Host Adapter PCI cards DO NOT require -firmware to be loaded. -.Pp -The download process is achieved through the Stallion -.Nm stli -driver control device, -.Pa /dev/staliomem? . -This device implements a file type device that can read and write into the -boards shared memory region. -It also implements a number of special -.Em ioctls -that reset and restart the board. -.Pp -The options are: -.Bl -tag -width indent -.It Fl v -Verbose output generation. -Trace is generated at each phase of the download and startup process. -.It Fl h -Output usage information. -.It Fl V -Output version information. -.It Fl R -Reset the board only. -Does not proceed to download firmware to the board. -.It Fl i Ar image-file -Specify the firmware image file to download. -The default firmware image is -.Pa /usr/libdata/stallion/cdk.sys . -.It Fl c Ar control-device -Specify the board control device through which to download the firmware -and start up the board. -The default is -.Pa /dev/staliomem0 . -.It Fl r Ar rx-buf-size -Specify the size of the boards shared memory Receive Data buffer. -By default the buffer is dynamically sized to use the maximum -available shared memory. -.It Fl t Ar tx-buf-size -Specify the size of the boards shared memory Transmit Data buffer. -By default the buffer is dynamically sized to use the maximum -available shared memory. -.It Fl B Ar boot-banner -Enable the slave debug trace flag during download. -This enables debug trace output from the firmware code. -This trace is output on port 0 of the board, -and the port is set to 9600 baud, 8 data bits, no parity and 1 stop bit. -.It Fl b Ar unit-number -Specify the unit (board) number to be downloaded. The default is to -download board 0. -.El -.Pp -The -.Nm -utility would typically be run from -.Pa /etc/rc.serial . -.Sh FILES -.Bl -tag -width /usr/libdata/stallion/2681.sys -.It Pa /usr/libdata/stallion/cdk.sys -firmware code to EasyConnection 8/64 class boards -.It Pa /usr/libdata/stallion/2681.sys -firmware code to ONboard and Brumby class boards -.It Pa /dev/staliomem? -driver board control device -.El -.Sh SEE ALSO -.Xr stl 4 , -.Xr stli 4 , -.Xr stlstats 8 -.Sh HISTORY -This program was originally developed by -.An Greg Ungerer Aq gerg@stallion.com . diff --git a/usr.sbin/stallion/stlload/stlload.c b/usr.sbin/stallion/stlload/stlload.c deleted file mode 100644 index 6f327f890ee3..000000000000 --- a/usr.sbin/stallion/stlload/stlload.c +++ /dev/null @@ -1,503 +0,0 @@ -/*****************************************************************************/ - -/* - * stlload.c -- stallion intelligent multiport down loader. - * - * Copyright (c) 1994-1996 Greg Ungerer (gerg@stallion.oz.au). - * 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 Greg Ungerer. - * 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 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. - */ - -/*****************************************************************************/ - -#ifndef lint -static const char rcsid[] = - "$FreeBSD$"; -#endif /* not lint */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -/*****************************************************************************/ - -char *version = "1.0.0"; -const char defdevice[] = "/dev/staliomem%d"; -char *image = BOOTDIR "/cdk.sys"; -char *oldimage = BOOTDIR "/2681.sys"; - -char *memdevice; -char devstr[128]; -int brdnr = 0; -int verbose = 0; -int reset = 0; - -/* - * Define a local buffer for copying the image into the shared memory. - */ -#define BUFSIZE 4096 - -char buf[BUFSIZE]; - -/* - * Define the timeout length when waiting for slave to start up. - * The quantity is measured in seconds. - */ -#define TIMEOUT 5 - -/* - * Set up a default feature area structure. - */ -cdkfeature_t feature = { 0, 0, ETYP_CDK, 0, 0, 0, 0, 0 }; - -/* - * Have local copies of the board signatures ready. - */ -cdkecpsig_t ecpsig; -cdkonbsig_t onbsig; - -/*****************************************************************************/ - -/* - * Declare internal function prototypes here. - */ -static void usage(void); -int ecpfindports(cdkecpsig_t *sigp); -int onbfindports(cdkonbsig_t *sigp); -int download(void); - -/*****************************************************************************/ - -static void usage() -{ - fprintf(stderr, "%s\n%s\n", -"usage: stlload [-vhVR] [-i image-file] [-c control-device] [-r rx-buf-size]", -" [-t tx-buf-size] [-B boot-banner] [-b unit-number]"); - exit(0); -} - -/*****************************************************************************/ - -/* - * Given a boards signature determine how many ports it has. We need to - * know this to setup the slave feature arguments. This function is for - * ECP boards only. - */ - -int ecpfindports(cdkecpsig_t *sigp) -{ - unsigned int id; - int bank, nrports; - - nrports = 0; - for (bank = 0; (bank < 8); bank++) { - id = (unsigned int) sigp->panelid[bank]; - if (id == 0xff) - break; - if ((id & 0x07) != bank) - break; - if (id & 0x20) { - nrports += 16; - bank++; - } else { - nrports += 8; - } - } - - return(nrports); -} - -/*****************************************************************************/ - -/* - * Given a boards signature determine how many ports it has. We need to - * know this to setup the slave feature arguments. This function is for - * ONboards and Brumbys. - */ - -int onbfindports(cdkonbsig_t *sigp) -{ - int i, nrports; - - if (sigp->amask1) { - nrports = 32; - } else { - for (i = 0; (i < 16); i++) { - if (((sigp->amask0 << i) & 0x8000) == 0) - break; - } - nrports = i; - } - - return(nrports); -} - -/*****************************************************************************/ - -/* - * Download an image to the slave board. There is a long sequence of - * things to do to get the slave running, but it is basically a simple - * process. Main things to do are: copy slave image into shared memory, - * start slave running and then read shared memory map. - */ - -int download() -{ - unsigned char alivemarker; - time_t strttime; - int memfd, ifd; - int nrdevs, sigok, n; - - if (verbose) - printf("Opening shared memory device %s\n", memdevice); - if ((memfd = open(memdevice, O_RDWR)) < 0) { - warn("failed to open memory device %s", memdevice); - return(-1); - } - -/* - * Before starting the download must tell driver that we are about to - * stop its slave. This is only important if it is already running. - * Once we have told the driver its stopped then do a hardware reset - * on it, to get it into a known state. - */ - if (verbose) - printf("Stoping any current slave\n"); - if (ioctl(memfd, STL_BSTOP, 0) < 0) { - warn("ioctl(STL_BSTOP)"); - printf(" (Perhaps you're trying to download firmare to a PCI card that\n doesn't require this?)\n"); - return(-1); - } - - if (verbose) - printf("Reseting the board\n"); - if (ioctl(memfd, STL_BRESET, 0) < 0) { - warn("ioctl(STL_BRESET)"); - return(-1); - } - if (reset) - return(0); - -/* - * After reseting the board we need to send an interrupt to the older - * board types to get them to become active. Do that now. - */ - if (verbose) - printf("Interrupting board to activate shared memory\n"); - if (ioctl(memfd, STL_BINTR, 0) < 0) { - warn("ioctl(STL_BINTR)"); - return(-1); - } - /*sleep(1);*/ - - if (verbose) - printf("Opening slave image file %s\n", image); - if ((ifd = open(image, O_RDONLY)) < 0) { - warn("failed to open image file %s", image); - return(-1); - } - -/* - * At this point get the signature of the board from the shared memory. - * Do a double check that it is a board we know about. We will also need - * to calculate the number of ports on this board (to use later). - */ - sigok = 0; - if (verbose) - printf("Reading ROM signature from board\n"); - - if (lseek(memfd, CDK_SIGADDR, SEEK_SET) != CDK_SIGADDR) { - warn("lseek(%x) failed on memory file", CDK_FEATADDR); - return(-1); - } - if (read(memfd, &ecpsig, sizeof(cdkecpsig_t)) < 0) { - warn("read of ROM signature failed"); - return(-1); - } - if (ecpsig.magic == ECP_MAGIC) { - nrdevs = ecpfindports(&ecpsig); - if (nrdevs < 0) - return(-1); - sigok++; - } - - if (lseek(memfd, CDK_SIGADDR, SEEK_SET) != CDK_SIGADDR) { - warn("lseek(%x) failed on memory file", CDK_FEATADDR); - return(-1); - } - if (read(memfd, &onbsig, sizeof(cdkonbsig_t)) < 0) { - warn("read of ROM signature failed"); - return(-1); - } - if ((onbsig.magic0 == ONB_MAGIC0) && (onbsig.magic1 == ONB_MAGIC1) && - (onbsig.magic2 == ONB_MAGIC2) && - (onbsig.magic3 == ONB_MAGIC3)) { - nrdevs = onbfindports(&onbsig); - if (nrdevs < 0) - return(-1); - sigok++; - } - - if (! sigok) { - warnx("unknown signature from board"); - return(-1); - } - - if (verbose) - printf("Board signature reports %d ports\n", nrdevs); - -/* - * Start to copy the image file into shared memory. The first thing to - * do is copy the vector region in from shared memory address 0. We will - * then skip over the signature and feature area and start copying the - * actual image data and code from 4k upwards. - */ - if (verbose) - printf("Copying vector table into shared memory\n"); - if ((n = read(ifd, buf, CDK_SIGADDR)) < 0) { - warn("read of image file failed"); - return(-1); - } - if (lseek(memfd, 0, SEEK_SET) != 0) { - warn("lseek(%x) failed on memory file", CDK_FEATADDR); - return(-1); - } - if (write(memfd, buf, n) < 0) { - warn("write to memory device failed"); - return(-1); - } - - if (lseek(ifd, 0x1000, SEEK_SET) != 0x1000) { - warn("lseek(%x) failed on image file", CDK_FEATADDR); - return(-1); - } - if (lseek(memfd, 0x1000, SEEK_SET) != 0x1000) { - warn("lseek(%x) failed on memory device", CDK_FEATADDR); - return(-1); - } - -/* - * Copy buffer size chunks of data from the image file into shared memory. - */ - do { - if ((n = read(ifd, buf, BUFSIZE)) < 0) { - warn("read of image file failed"); - return(-1); - } - if (write(memfd, buf, n) < 0) { - warn("write to memory device failed"); - return(-1); - } - } while (n == BUFSIZE); - - close(ifd); - -/* - * We need to down load the start up parameters for the slave. This is - * done via the feature area of shared memory. Think of the feature area - * as a way of passing "command line" arguments to the slave. - * FIX: should do something here to load "brdspec" as well... - */ - feature.nrdevs = nrdevs; - if (verbose) - printf("Loading features into shared memory\n"); - if (lseek(memfd, CDK_FEATADDR, SEEK_SET) != CDK_FEATADDR) { - warn("lseek(%x) failed on memory device", CDK_FEATADDR); - return(-1); - } - if (write(memfd, &feature, sizeof(cdkfeature_t)) < 0) { - warn("write to memory device failed"); - return(-1); - } - -/* - * Wait for board alive marker to be set. The slave image will set the - * byte at address CDK_RDYADDR to 0x13 after it has successfully started. - * If this doesn't happen we timeout and fail. - */ - if (verbose) - printf("Setting alive marker to 0\n"); - if (lseek(memfd, CDK_RDYADDR, SEEK_SET) != CDK_RDYADDR) { - warn("lseek(%x) failed on memory device", CDK_RDYADDR); - return(-1); - } - alivemarker = 0; - if (write(memfd, &alivemarker, 1) < 0) { - warn("write to memory device failed"); - return(-1); - } - -/* - * At this point the entire image is loaded into shared memory. To start - * it executiong we poke the board with an interrupt. - */ - if (verbose) - printf("Interrupting board to start slave image\n"); - if (ioctl(memfd, STL_BINTR, 0) < 0) { - warn("ioctl(STL_BINTR) failed"); - return(-1); - } - - strttime = time((time_t *) NULL); - if (verbose) - printf("Waiting for slave alive marker, time=%x timeout=%d\n", - strttime, TIMEOUT); - while (time((time_t *) NULL) < (strttime + TIMEOUT)) { - if (lseek(memfd, CDK_RDYADDR, SEEK_SET) != CDK_RDYADDR) { - warn("lseek(%x) failed on memory device", CDK_RDYADDR); - return(-1); - } - if (read(memfd, &alivemarker, 1) < 0){ - warn("read of image file failed"); - return(-1); - } - if (alivemarker == CDK_ALIVEMARKER) - break; - } - - if (alivemarker != CDK_ALIVEMARKER) { - warnx("slave image failed to start"); - return(-1); - } - - if (lseek(memfd, CDK_RDYADDR, SEEK_SET) != CDK_RDYADDR) { - warn("lseek(%x) failed on memory device", CDK_RDYADDR); - return(-1); - } - alivemarker = 0; - if (write(memfd, &alivemarker, 1) < 0) { - warn("write to memory device failed"); - return(-1); - } - - if (verbose) - printf("Slave image started successfully\n"); - -/* - * The last thing to do now is to get the driver started. Now that the - * slave is operational it must read in the memory map and gets its - * internal tables initialized. - */ - if (verbose) - printf("Driver initializing host shared memory interface\n"); - if (ioctl(memfd, STL_BSTART, 0) < 0) { - warn("ioctl(STL_BSTART) failed"); - return(-1); - } - - close(memfd); - return(0); -} - -/*****************************************************************************/ - -int main(int argc, char *argv[]) -{ - struct stat statinfo; - int c; - - while ((c = getopt(argc, argv, "hvVRB:i:b:c:t:r:")) != -1) { - switch (c) { - case 'V': - printf("stlload version %s\n", version); - exit(0); - break; - case 'B': - feature.banner = atol(optarg); - break; - case 'h': - usage(); - break; - case 'v': - verbose++; - break; - case 'i': - image = optarg; - break; - case 'R': - reset++; - break; - case 'b': - brdnr = atoi(optarg); - break; - case 'c': - memdevice = optarg; - break; - case 't': - feature.txrqsize = atol(optarg); - break; - case 'r': - feature.rxrqsize = atol(optarg); - break; - case '?': - default: - usage(); - break; - } - } - - if (memdevice == (char *) NULL) { - if ((brdnr < 0) || (brdnr >= 8)) - errx(1, "invalid board number %d specified", brdnr); - sprintf(devstr, defdevice, brdnr); - memdevice = &devstr[0]; - if (verbose) - printf("Using shared memory device %s\n", memdevice); - } - - if (verbose) - printf("Downloading image %s to board %d\n", image, brdnr); - -/* - * Check that the shared memory device exits and is a character device. - */ - if (stat(memdevice, &statinfo) < 0) - errx(1, "memory device %s does not exist", memdevice); - if ((statinfo.st_mode & S_IFMT) != S_IFCHR) - errx(1, "memory device %s is not a char device", memdevice); - - if (stat(image, &statinfo) < 0) - errx(1, "image file %s does not exist", image); - -/* - * All argument checking is now done. So lets get this show on the road. - */ - if (download() < 0) - exit(1); - exit(0); -} - -/*****************************************************************************/ diff --git a/usr.sbin/stallion/stlstats/Makefile b/usr.sbin/stallion/stlstats/Makefile deleted file mode 100644 index 1902900e17b5..000000000000 --- a/usr.sbin/stallion/stlstats/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -# $FreeBSD$ - -PROG= stlstats -MAN= stlstats.8 -MANSUBDIR=/i386 - -DPADD= ${LIBNCURSES} -LDADD= -lncurses - -.include diff --git a/usr.sbin/stallion/stlstats/stlstats.8 b/usr.sbin/stallion/stlstats/stlstats.8 deleted file mode 100644 index 5863b737eafa..000000000000 --- a/usr.sbin/stallion/stlstats/stlstats.8 +++ /dev/null @@ -1,144 +0,0 @@ -.\" Copyright (c) 1996 Greg Ungerer (gerg@stallion.oz.au). -.\" 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 Greg Ungerer. -.\" 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 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$ -.\" -.Dd December 2, 1996 -.Os -.Dt STLSTATS 8 i386 -.Sh NAME -.Nm stlstats -.Nd "Stallion Technologies multiport serial statistics display" -.Sh SYNOPSIS -.Nm -.Op Fl hVi -.Op Fl c Ar control-device -.Op Fl b Ar board-number -.Op Fl p Ar port-number -.Op Fl d Ar port-device -.Sh DESCRIPTION -The -.Nm -utility -is used to display statistical information about the ports on Stallion -Technologies multiport serial boards. -.Pp -The -.Nm -utility normally runs as a full screen menu driven application. -A help line is displayed at the bottom of each screen with the valid -input keys for this screen. -.Pp -Generally the digit keys ('0' through '9') specify the number of the -device to display statistics for. -Where digits alone are not enough to access all possible devices -(for example on 16 port panels) then the first letters of the alphabet -are used to access the remaining devices. -The letters 'a' through 'f' are used to access devices 10 through 15. -.Pp -The 'q' key is always used to move back to the previous level screen. -The escape key can also be used to move back to the previous screen. -.Pp -The first screen is a display of all ports on panel 0 of board 0. -Values displayed on this screen are a summary of the information for -each port. The statistics displayed are: driver and TTY state flags, -termios flags (cflags, iflags, oflags, lflags), RS-232 signal values -(as per TIOCM signal defines), total transmit and receive character -counts. -.Pp -From this screen you can look at summary information -about each panel and board installed in the system. -Each board is accessed by the digit keys ('0' through '7'), -while panels of each board can be cycled through using the 'n' key. -.Pp -The per port screen displays some detailed information about a -particular port. -This is accessed from the board screen using the 'p' key. -The first port displayed will be port 0. -To display other ports use the digit and alphabetic keys -('0' through '9' and 'a' through 'f'). -This screen displays: driver and TTY state flags, hardware ID, -termios flags (cflags, iflags, oflags, lflags), -total transmitted and received character counts, -current transmit and receive characters buffered, -receiver error counts (overruns, parity, framing, lost), -software flow control characters transmitted and received, -hardware flow control actions taken, -count of transmitted and received breaks, -modem signal transitions and -current RS-232 signal states. -.Pp -The options are: -.Bl -tag -width indent -.It Fl h -Output usage information. -.It Fl V -Output version information. -.It Fl i -Output only the board type information. -This output is useful for scripts or other programs that need to know -a little bit about the board (for example an automated download script). -The -.Nm -utility will not enter full screen interactive mode. -.It Fl c Ar control-device -Specify the board control device through which to gather port statistics. -The default is -.Pa /dev/staliomem0 . -.It Fl b Ar board-number -Specify the board number to display first. -The default is to display board 0. -.It Fl p Ar port-number -Specify the port number to display first. -The -.Nm -utility -will go straight into the port display screen (bypassing board display) -when this option is used. -.It Fl d Ar port-device -Specify the port special device file (the -.Pa /dev/ttyXXX -file) to -display first. -The board screen is bypassed and the port statistics screen is shown -immediately on start up. -.El -.Sh FILES -.Bl -tag -width /dev/staliomem0 -.It Pa /dev/staliomem0 -driver control device used for statistics collection -.El -.Sh SEE ALSO -.Xr stl 4 , -.Xr stli 4 , -.Xr stlload 8 -.Sh HISTORY -This program was originally developed by -.An Greg Ungerer Aq gerg@stallion.com . diff --git a/usr.sbin/stallion/stlstats/stlstats.c b/usr.sbin/stallion/stlstats/stlstats.c deleted file mode 100644 index 160a12f49ccc..000000000000 --- a/usr.sbin/stallion/stlstats/stlstats.c +++ /dev/null @@ -1,580 +0,0 @@ -/*****************************************************************************/ - -/* - * stlstats.c -- stallion intelligent multiport stats display. - * - * Copyright (c) 1994-1996 Greg Ungerer (gerg@stallion.oz.au). - * 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 Greg Ungerer. - * 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 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. - */ - -/*****************************************************************************/ - -#ifndef lint -static const char rcsid[] = - "$FreeBSD$"; -#endif /* not lint */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -/*****************************************************************************/ - -char *version = "1.0.0"; -char *defdevice = "/dev/staliomem0"; - -char *ctrldevice; -int ctrlfd; -int displaybrdnr = 0; -int displaypanelnr = 0; -int displayportnr = 0; -int displayportbank = 0; - -#define MAXBRDS 8 -#define MAXPORTS 32 - -combrd_t brdstats; -comstats_t stats[MAXPORTS]; - -char *line = " "; - -/*****************************************************************************/ - -/* - * Declare internal function prototypes here. - */ -static void usage(void); -void useportdevice(char *devname); -void localexit(int nr); -void menuport(); -void displayport(); -void menuallports(); -void displayallports(); -void getallstats(); -void getbrdstats(); -void clearportstats(); -void clearallstats(); - -/*****************************************************************************/ - -static void usage() -{ - fprintf(stderr, "%s\n%s\n", - "usage: stlstats [-hVi] [-c control-device] [-b board-number]", - " [-p port-number] [-d port-device]"); - exit(0); -} - -/*****************************************************************************/ - -void useportdevice(char *devname) -{ - struct stat statinfo; - int portnr, portcnt; - int i; - - if (stat(devname, &statinfo) < 0) - errx(1, "port device %s does not exist", devname); - if ((statinfo.st_mode & S_IFMT) != S_IFCHR) - errx(1, "port device %s is not a char device", devname); - - displaybrdnr = (statinfo.st_rdev & 0x00700000) >> 20; - portnr = (statinfo.st_rdev & 0x1f) | - ((statinfo.st_rdev & 0x00010000) >> 11); - getbrdstats(); - if (brdstats.ioaddr == 0) - errx(1, "device %s does not exist", devname); - - for (portcnt = 0, i = 0; (i < brdstats.nrpanels); i++) { - if ((portnr >= portcnt) && - (portnr < (portcnt + brdstats.panels[i].nrports))) - break; - portcnt += brdstats.panels[i].nrports; - } - if (i >= brdstats.nrpanels) - errx(1, "device %s does not exist", devname); - displaypanelnr = i; - displayportnr = portnr - portcnt; - if (displayportnr >= 16) - displayportbank = 16; -} - -/*****************************************************************************/ - -/* - * Get the board stats for the current display board. - */ - -void getbrdstats() -{ - brdstats.brd = displaybrdnr; - if (ioctl(ctrlfd, COM_GETBRDSTATS, &brdstats) < 0) - memset((combrd_t *) &brdstats, 0, sizeof(combrd_t)); -} - -/*****************************************************************************/ - -/* - * Zero out stats for the current display port. - */ - -void clearportstats() -{ - stats[displayportnr].brd = displaybrdnr; - stats[displayportnr].panel = displaypanelnr; - stats[displayportnr].port = displayportnr; - ioctl(ctrlfd, COM_CLRPORTSTATS, &stats[displayportnr]); -} - -/*****************************************************************************/ - -/* - * Zero out all stats for all ports on all boards. - */ - -void clearallstats() -{ - int brdnr, panelnr, portnr; - - for (brdnr = 0; (brdnr < MAXBRDS); brdnr++) { - for (panelnr = 0; (panelnr < COM_MAXPANELS); panelnr++) { - for (portnr = 0; (portnr < MAXPORTS); portnr++) { - stats[0].brd = brdnr; - stats[0].panel = panelnr; - stats[0].port = portnr; - ioctl(ctrlfd, COM_CLRPORTSTATS, &stats[0]); - } - } - } -} - -/*****************************************************************************/ - -/* - * Get the stats for the current display board/panel. - */ - -void getallstats() -{ - int i; - - for (i = 0; (i < brdstats.panels[displaypanelnr].nrports); i++) { - stats[i].brd = displaybrdnr; - stats[i].panel = displaypanelnr; - stats[i].port = i; - if (ioctl(ctrlfd, COM_GETPORTSTATS, &stats[i]) < 0) { - warn("ioctl(COM_GETPORTSTATS) failed"); - localexit(1); - } - } -} - -/*****************************************************************************/ - -/* - * Display the per ports stats screen. - */ - -void displayport() -{ - mvprintw(0, 0, "STALLION SERIAL PORT STATISTICS"); - mvprintw(2, 0, - "Board=%d Type=%d HwID=%02x State=%06x TotalPorts=%d", - displaybrdnr, brdstats.type, brdstats.hwid, brdstats.state, - brdstats.nrports); - mvprintw(3, 0, "Panel=%d HwID=%02x Ports=%d", displaypanelnr, - brdstats.panels[displaypanelnr].hwid, - brdstats.panels[displaypanelnr].nrports); - - attron(A_REVERSE); - mvprintw(5, 0, line); - mvprintw(5, 0, "Port=%d ", displayportnr); - attroff(A_REVERSE); - - mvprintw(7, 0, "STATE: State=%08x", stats[displayportnr].state); - mvprintw(7, 29, "Tty=%08x", stats[displayportnr].ttystate); - mvprintw(7, 47, "Flags=%08x", stats[displayportnr].flags); - mvprintw(7, 65, "HwID=%02x", stats[displayportnr].hwid); - - mvprintw(8, 0, "CONFIG: Cflag=%08x", stats[displayportnr].cflags); - mvprintw(8, 29, "Iflag=%08x", stats[displayportnr].iflags); - mvprintw(8, 47, "Oflag=%08x", stats[displayportnr].oflags); - mvprintw(8, 65, "Lflag=%08x", stats[displayportnr].lflags); - - mvprintw(10, 0, "TX DATA: Total=%d", stats[displayportnr].txtotal); - mvprintw(10, 29, "Buffered=%d ", stats[displayportnr].txbuffered); - mvprintw(11, 0, "RX DATA: Total=%d", stats[displayportnr].rxtotal); - mvprintw(11, 29, "Buffered=%d ", stats[displayportnr].rxbuffered); - mvprintw(12, 0, "RX ERRORS: Parity=%d", stats[displayportnr].rxparity); - mvprintw(12, 29, "Framing=%d", stats[displayportnr].rxframing); - mvprintw(12, 47, "Overrun=%d", stats[displayportnr].rxoverrun); - mvprintw(12, 65, "Lost=%d", stats[displayportnr].rxlost); - - mvprintw(14, 0, "FLOW TX: Xoff=%d", stats[displayportnr].txxoff); - mvprintw(14, 29, "Xon=%d", stats[displayportnr].txxon); -#if 0 - mvprintw(14, 47, "CTSoff=%d", stats[displayportnr].txctsoff); - mvprintw(14, 65, "CTSon=%d", stats[displayportnr].txctson); -#endif - mvprintw(15, 0, "FLOW RX: Xoff=%d", stats[displayportnr].rxxoff); - mvprintw(15, 29, "Xon=%d", stats[displayportnr].rxxon); - mvprintw(15, 47, "RTSoff=%d", stats[displayportnr].rxrtsoff); - mvprintw(15, 65, "RTSon=%d", stats[displayportnr].rxrtson); - - mvprintw(17, 0, "OTHER: TXbreaks=%d", - stats[displayportnr].txbreaks); - mvprintw(17, 29, "RXbreaks=%d", stats[displayportnr].rxbreaks); - mvprintw(17, 47, "Modem=%d", stats[displayportnr].modem); - - mvprintw(19, 0, "SIGNALS: DCD=%d DTR=%d CTS=%d RTS=%d " - "DSR=%d RI=%d", - (stats[displayportnr].signals & TIOCM_CD) ? 1 : 0, - (stats[displayportnr].signals & TIOCM_DTR) ? 1 : 0, - (stats[displayportnr].signals & TIOCM_CTS) ? 1 : 0, - (stats[displayportnr].signals & TIOCM_RTS) ? 1 : 0, - (stats[displayportnr].signals & TIOCM_DSR) ? 1 : 0, - (stats[displayportnr].signals & TIOCM_RI) ? 1 : 0); - - attron(A_REVERSE); - mvprintw(22, 0, line); - attroff(A_REVERSE); - - mvprintw(24, 19, "(q=Quit,0123456789abcdef=Port,Z=ZeroStats)"); - refresh(); -} - -/*****************************************************************************/ - -/* - * Continuously update and display the per ports stats screen. - * Also checks for keyboard input, and processes it as appropriate. - */ - -void menuport() -{ - int ch, done; - - clear(); - done = 0; - - while ((ch = getch()) != 27) { - switch (ch) { - case ERR: - break; - case ' ': - refresh(); - break; - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - ch = (ch - 'a' + '0' + 10); - /* FALLTHROUGH */ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - ch -= '0'; - if (ch >= brdstats.panels[displaypanelnr].nrports) { - beep(); - } else { - displayportnr = displayportbank + ch; - clear(); - } - break; - case 'Z': - clearportstats(); - clear(); - break; - case 'q': - done = 1; - break; - default: - beep(); - break; - } - - if (done) - break; - - getallstats(); - displayport(); - } -} - -/*****************************************************************************/ - -/* - * Display the all ports stats screen. - */ - -void displayallports() -{ - int i, nrports, portnr;; - - nrports = brdstats.panels[displaypanelnr].nrports; - - mvprintw(0, 0, "STALLION SERIAL PORT STATISTICS"); - mvprintw(2, 0, "Board=%d Type=%d HwID=%02x State=%06x TotalPorts=%d", - displaybrdnr, brdstats.type, brdstats.hwid, brdstats.state, - brdstats.nrports); - mvprintw(3, 0, "Panel=%d HwID=%02x Ports=%d", displaypanelnr, - brdstats.panels[displaypanelnr].hwid, nrports); - - attron(A_REVERSE); - mvprintw(5, 0, "Port State Tty Flags Cflag Iflag Oflag Lflag " - "Sigs TX Total RX Total "); - attroff(A_REVERSE); - - if (nrports > 0) { - if (nrports > 16) - nrports = 16; - portnr = displayportbank; - for (i = 0; (i < nrports); i++, portnr++) { - mvprintw((6 + i), 1, "%2d", portnr); - mvprintw((6 + i), 5, "%06x", stats[portnr].state); - mvprintw((6 + i), 12, "%06x", stats[portnr].ttystate); - mvprintw((6 + i), 19, "%08x", stats[portnr].flags); - mvprintw((6 + i), 28, "%05x", stats[portnr].cflags); - mvprintw((6 + i), 34, "%05x", stats[portnr].iflags); - mvprintw((6 + i), 40, "%05x", stats[portnr].oflags); - mvprintw((6 + i), 46, "%05x", stats[portnr].lflags); - mvprintw((6 + i), 52, "%04x", stats[portnr].signals); - mvprintw((6 + i), 58, "%10d", stats[portnr].txtotal); - mvprintw((6 + i), 69, "%10d", stats[portnr].rxtotal); - } - } else { - mvprintw(12, 32, "NO BOARD %d FOUND", displaybrdnr); - i = 16; - } - - attron(A_REVERSE); - mvprintw((6 + i), 0, line); - attroff(A_REVERSE); - - mvprintw(24, 14, - "(q=Quit,01234567=Board,n=Panels,p=Ports,Z=ZeroStats)"); - refresh(); -} - -/*****************************************************************************/ - -/* - * Continuously update and display the all ports stats screen. - * Also checks for keyboard input, and processes it as appropriate. - */ - -void menuallports() -{ - int ch, done; - - clear(); - getbrdstats(); - - done = 0; - while ((ch = getch()) != 27) { - switch (ch) { - case ERR: - break; - case ' ': - refresh(); - break; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - displaybrdnr = ch - '0'; - displaypanelnr = 0; - getbrdstats(); - if (brdstats.state == 0) - beep(); - clear(); - break; - case 'n': - if (brdstats.panels[displaypanelnr].nrports > 16) { - if (displayportbank == 0) { - displayportbank = 16; - clear(); - break; - } - } - displayportbank = 0; - displaypanelnr++; - if (displaypanelnr >= brdstats.nrpanels) - displaypanelnr = 0; - clear(); - break; - case 'p': - if (brdstats.panels[displaypanelnr].nrports > 0) { - displayportnr = displayportbank; - menuport(); - clear(); - } else { - beep(); - } - break; - case 'Z': - clearallstats(); - clear(); - break; - case 'q': - done = 1; - break; - default: - beep(); - break; - } - - if (done) - break; - - getallstats(); - displayallports(); - } -} - -/*****************************************************************************/ - -/* - * A local exit routine - shuts down curses before exiting. - */ - -void localexit(int nr) -{ - refresh(); - endwin(); - exit(nr); -} - -/*****************************************************************************/ - -int main(int argc, char *argv[]) -{ - struct stat statinfo; - int c, useport; - char *portdev; - - ctrldevice = defdevice; - useport = 0; - - while ((c = getopt(argc, argv, "hvVb:p:d:c:")) != -1) { - switch (c) { - case 'V': - printf("stlstats version %s\n", version); - exit(0); - break; - case 'h': - usage(); - break; - case 'b': - displaybrdnr = atoi(optarg); - break; - case 'p': - displaypanelnr = atoi(optarg); - break; - case 'd': - useport++; - portdev = optarg; - break; - case 'c': - ctrldevice = optarg; - break; - case '?': - default: - usage(); - break; - } - } - -/* - * Check that the control device exits and is a character device. - */ - if (stat(ctrldevice, &statinfo) < 0) - errx(1, "control device %s does not exist", ctrldevice); - if ((statinfo.st_mode & S_IFMT) != S_IFCHR) - errx(1, "control device %s is not a char device", ctrldevice); - if ((ctrlfd = open(ctrldevice, O_RDWR)) < 0) - errx(1, "open of %s failed", ctrldevice); - -/* - * Validate the panel number supplied by user. We do this now since we - * need to have parsed the entire command line first. - */ - getbrdstats(); - if (displaypanelnr >= brdstats.nrpanels) - displaypanelnr = 0; - - if (useport) - useportdevice(portdev); - -/* - * Everything is now ready, lets go! - */ - initscr(); - cbreak(); - halfdelay(5); - noecho(); - clear(); - if (useport) { - menuport(); - clear(); - } - menuallports(); - refresh(); - endwin(); - - close(ctrlfd); - printf("\n"); - exit(0); -} - -/*****************************************************************************/