Path: utzoo!attcan!uunet!know!cs.utexas.edu!sdd.hp.com!usc!julius.cs.uiuc.edu!apple!rutgers!rochester!pt.cs.cmu.edu!o.gp.cs.cmu.edu!andrew.cmu.edu!rh2y+ From: rh2y+@andrew.cmu.edu (Russell E. Hoffman, II) Newsgroups: comp.os.os9 Subject: Sbreak V0.1 Message-ID: Date: 29 Sep 90 21:26:08 GMT Organization: Carnegie Mellon, Pittsburgh, PA Lines: 408 Here is a little utility I was working on this weekend that sends a BREAK signal on any serial port. (i.e. it holds the RS-232 to a logic zero for 250 milliseconds -- useful for some modems and wierd protocols.) Below is a shell archive that contains the C source, the assembler 'glue' code that makes the support for the SS_Break SetStt, and the uuencoded exectuable. P.S. Many thanks to Ric and Ryan at Microware for their help! -------- cut here -------- : This is a shar archive. Extract with sh, not csh. echo x - sbreak.c sed -e 's/^X//' > sbreak.c << '' X#include X#include X#include X#include X#include X X Xmain(argc,argv) Xint argc; Xchar *argv[]; X{ X static char temp[50]; X FILE *outfile; X int err; X void help(); X if (argc<2) X { X fprintf(stderr,"%s: Must specify device! \n",argv[0]); X exit(E_BPNAM); X } X if (argv[1][0]=='-' && argv[1][1] == '?') X help(); X outfile=fopen(argv[1],"w"); X if (outfile==NULL) X { X fprintf(stderr, "%s: error opening %s\n",argv[0],argv[1]); X exit(0); X } X if (!_ss_break(fileno(outfile))) X { X err=ferror(outfile); X fclose(outfile); X exit(err); X } X fclose(outfile); X exit(0); X} X Xvoid help() X{ X printf("Syntax: sbreak [/device]\n"); X printf("Function: send break on SCF device\n"); X printf("Options: none\n"); X exit(0); X} echo x - ss_break.a sed -e 's/^X//' > ss_break.a << '' X******************** X* Stacked parameter defs X* Arguments from 'C' beyond 2 are passed on the stack X* and hence the definitions below. X* usage: move.b arg3+params(a5),d0 X* Xparams equ 8 offset from a5 to stacked parameters Xarg3 set 0 Xarg4 set 4 Xarg5 set 8 Xarg6 set 12 Xarg7 set 16 X X** _ss_break() X** X** 'C' bindings for SS_Break setstat X** X* X* Function: _ss_break - send break on serial line via SS_Break setstat X* X* X* int _ss_break( path ) X* int path; /* path number to the device as returned by open() */ X* X* Returns: 0 if all went well X* -1 on error, errno set to error number from driver X* X* Description: X* Attempts to do a SetStt of SS_Break on the specified path. Returns -1 X* if an error occurs. X* Caveats: X* Garbage in.... Garbage (possibly crash) out X* X X psect _ss_break,0,0,0,0,0 X X_ss_break: X link a5,#0 set stack frame (for symbolic debuggers, ect.. ) X move.l a0,-(sp) X move.l d1,a0 the command pointer X move.l #SS_Break,d1 SS_Break code X os9 I$SetStt X bcs.s _ss_breakerr X clr.l d0 return all ok X bra.s _ss_breakex X X_ss_breakerr X move.l #-1,d0 set error flag for return X move.l d1,errno(a6) set errno to value from driver X_ss_breakex X move.l (sp)+,a0 X unlk a5 X rts X X ends X X echo x - sbreak.uu sed -e 's/^X//' > sbreak.uu << '' Xbegin 777 sbreak XM2OP 0 ,1X 2 55 0' 0 ' XM $ & 4 ;H PB , ,%@ #$"#!P _&884HPF5-?-8!0,+0#\ )F""9M XM 37S6 $U^L #"$++PA"*/__+P(@? $O1.NX@ 90 !'&$@3-\ YO-+RZ+ XMA"!\ !3$Z[B !P "!\ >/DZ[B @?/__C"+1SBU(@ 0M3X +4^ "" \ XM____!-"/L*Z "&4"3G6PKH $908M0( (3G5!^@!P81 O/ 0$@? '@Y. XMNX@ /P%R9' "3D C#(?3G4@+H D*Z "$YU("Z ")"N@ 1.=4CGP/ P+P > XM!$ @.1 #$ #V8,0?H :W( 3D (60,(GP !W,3KN8 &5D3-\/ U"/69=. XM=4K[ % J*BHJ(%-T86-K($]V97)F;&]W("HJ*BH- "HJ*BH@0V%N)W0@:6YS XM=&%L;"!TZ#+" (80 $#%B/(#P #780 @" \ XM____O&$ _>)!^@!?( AA +R0?H <2 (80 "Z$'Z (L@"&$ MYP &$ &^!, XM[0$ __Q.74YU)7,Z($UU2!D979I8V4A( T =P EZ"]& 2< / :@ ,9@0@"F 8U?P <0>Z&=+'*8N8M? XM ,B #' 3.T% /_X3EU.=4Y5 !(Y\ P)$$F;P 8( MF!&&P)D @"V=*-V\ XM @ .#"H *P !9P@,*@ K )F" !K , #& 6#!( H8,H@!$SM###_\$Y=3G5.50 2.? $*G XM(B\ "" O 1A /Z>6(].74YU3E4 $CGR+ D0"9!(@L@"F$ _O0H '+_LH!F XM!)'(8 Y"IR(+( 1A /YN6(\@0" (3.T-$/_P3EU.=4Y5 !(Y\BX)$ F02AO XM "0@#&$ "+0B"R *80#^L"@ ; 21R& .2%0B"R $80#^+EB/($ @"$SM'1#_ XM[$Y=3G5.50 2.? @$'N@Q M2(!00JZ <$AO !1(;P ((B\ "$'Z!20@"&$ XM )90CP@N 6#'6<$ 4$*N@'!(;P 40JZ+B1 P" !(@ @ -FS@P$ &QF $.&!I@ $(+P<@15B%(!!A XM &<8$8O!R!%6(4@$&$ B1@."\'$ 1(@$C 0>Z+B1 P" !(@ ) )(P"( XM($58A2 080 "/& 2+P<@15B%(A!![H!4( AA &:(@!@ "B2J\ !&8&< 8O XM0 (2H9F!BHO $!\ 2Z%+P=(;P $(B\ $! $2(!(P&$ U!8CR( ( MA *H XM6(\J%V /)*AV<0+P=(> !( 58A5: (@!@/B!%6(4@$$Z38 TB!%6(4H XM4$JO 1G,B], 1@!DH49PY2C" O A3KP (2H!F[B\'( R0KP (+P B+P , XM( MA 'J4(]@ "4+PZ 5$J$;!X@!$2 * !L$D'Z! HB"$'N@%0@ XM"&$ "<9@$!3\ "TB!" *81!![H!4( A,[042__!.74YU3E4 $CGR+ H 4?N XM@%Y@&" $<@IA !#@!@ ,!; <@H@!&$ $-HH ' )L(1EXB17<##0!!3 8 (4 XMXT'N@%ZQRV7V0A(@%TSM#1#_\$Y=3G5.50 2.>(L"@ 1>Z 5$?N@%YP!\ $ XM!@ ,!; YHQF\F "%.-![H!>LZ 5" (3.T-$/_P3EU.=4Y5 !( XMY\ZP* J 4J%9P1P06 "<&%R"I"!*@!'[H!>< _ A"P $@!P";"&; 0@!6 " XM<##2 !;!Z(QFY$7N@%1@ A3C0>Z 7K'+9?9"$D'N@%0@"$SM#7#_Z$Y=3G5. XM50 2.?,,"9 )$$H+P @*B\ ))J$2JZ :&8:8 8@+H!L3I,@!5.%2H!N\F ( XM$!I(@$C 3I,@!%.$2H!F\$JN@&AG$& &("Z ;$Z3( 53A4J ;O),[0PP__!. XM74YU3E4 $CGR# F0"1!*"\ '" *80 (+)B 2JZ :&8:8 8@+H!L3I,@!%.$ XM2H!N\F ($!I(@$C 3I-*$F;T2JZ :&<08 8@+H!L3I,@!%.$2H!N\DSM#!#_ XM]$Y=3G5.50 2.? "(N@% @%V$ C92KH!P3.T O_\3EU.=4Y5 !(YX" XM(&Z 4%*N@% 0KP #4JZ <$SM 0#__$Y=3G5.50 2.?.("@ *@$D;P @2H5L XM'GH 8!I\ 6 \>$5\_V V>$5@ GAE? !*A68J>@%@)@P$ &5GYF(0# 0 1V?B XM8A8,! !%9]1@#@P$ &=GUF(&# 0 9F? $ 1(@$C +P O!B(%(!)0DF$,4(], XM[01P__!.74YU2.<^P"@!($!,T #0>Z =$/N@;1V $J ; 02_ M2B\ (VQ< XM)#Q__P 4D0T!"P\ 3;$Z[:/A30!+84P1G#!+\ "Y@ A+84T$OP +D1 2D-F XM#KA ;@(P!)A 8 02_ P4\4XE@ /\^2H!G)G8!)#Q__P - 0L/ $G).NVCX XM#$#__&\ _P"P1&X _OI@ /]4> !@B,"\ #__TI :@@2_ M1$!@!!+\ "N XM_ !D9P@&0 P$L!"0$A @/P "@9 # 2P$A !D ,!+ 3G4M,C$T-S0X,S8T XM. !.50 2.? H"1!,"H #$C H ( B#( ( "9Q1P(L!J P,0 "9@ XM<" *80 #K@@J ( #6 H$7N@O1@ XM"B *81C5_ !Q![H9TL(H"1 > @"F=B XM,"H #$C " #V<0""H 0 -9PX@"F%6* !@!DIJ QG"C!J X@"&$ #9PP XM*@ ,2, ( )9P@@*@ $80 'J' )4 ""2 )4 !$)J Q":@ 2< E0 8 XM)4 %" $8 )P_TSM!1#_]$Y=3G5.50 2.> ("1 ( IG#' BP&H # Q )G XM!'#_8!8P*@ ,2, ( /9@8@"F$ C8@"F$*3.T$ /_\3EU.=4Y5 !(Y\R@ XM)$ P*@ ,2, ( (9AX@$K"J AG%D*G( IA &:(@ P:@ .( AA XX6(\@ XM$I"J 0H $J$9T(P*@ ,2, ( (9S8DJ@ $8"PO!"(2,&H #B ((&H &$Z0 XM6(\J '+_LH!F#@CJ 4 #22J 1P_V BF(7;DDJ$;M (Z@ P@*@ $)( R XM*@ 22,'0@25 AP $SM!3+_[$Y=3G5.50 2.?,L"1 * $@"F< -AP \!J XM QG #.,"H #$C " #V8*( IA %48 FC J Q(P @ AG(B *80#^ XMV@)J_O\ #" J 0R*@ 22,'0@25 @D@& &P@$K"J AD8BH$8#H@"F$ XM *B:@$J%; 8@!42 8 (@!3(J !)(P;"!;BP@$M"%)D"WZ@ $92"WZ@ (9!HD XMBP)J_^\ #&!&("\ )$J 9[X,@ %GOG !L*\ )&8(("H ")"2F( DJ@ ( XM FK_[P ,+R\ )"($,&H #B (80 ,Y%B/ !<@ P:@ .( AA XM QP6(\B # J Q(P @ AG!B J 1@!" J @D$I2 TH(@ 4SM!0;_\$Y= XM3G5.50 2.? H"1 ,#P P,!J QF+$_O_X!(5S!J XB"' 80 *&%B/#!< XM 68(".H !P -8 8(Z@ & U/[P" ".H !P ,""H !P -9PY!^@N()4@ %$'Z XM"[I@#$'Z"YHE2 40?H+Q"5( !A*:@ 29A8(*@ ' UG"#5\ @ $F &-7P! XM 22JH !&8L""H @ -9P1P & *,&H $B (80 "@B( ( IA :""H P - XM9P8(Z@ ! Q,[04"__1.74YU3E4 $CGP" D0# J Q(P @ AG!B *80#\ XMOC J Q(P @ EG#B J 1A 0B FK]_P , FK^\P ,)6\ ! $9Q0(Z@ # XM U*:@ 29APU? ( !)@%' 0T(HE0 $".H @ --7P 0 2("H !#(J !)( XMP="!)4 ""2 3.T$ /_\3EU.=2\(($"S @ !F4@@! ##B6<8L0EE,&(@ XM2BC__V8,8#1* & #U\ $&# $)N@P(]? "@QP] XM? !@QX]? "@S@]? "@SI.74YU3E4 $CGP+ D0$?NAVQ@.DJ39@HFBB=J XM 0 !& F("H !.>(T(JPDV8$)HI@#B 3(BL !.>)T(&PBF8,("H !-&K 0@ XM"F ,48M![H9TL,L"@ 2H1G/" $7H#FB%* *@!*KHP29A1![HP*+4B,$BU(AW0M? ("' XM>"9NC!)@&+7NC!)F$" %80#_5"1 2H!F!' 8#(F2B13NJH !&+@NJH !&8$ XM)I)@$)NJ 0@*@ $YXC5P"5% 0DO(=EJ\TM2XP2( I0@$SM#3#_[$Y=3G5. XM50 2.?/N"1 * $@"F8*( 1A /]B8 !1$J$9@@@"F$ 41@%$JNC!)G#B * XM9PH@"F$ BA*@&8&< !@ $>( I1@"9 ( 1>@&P"7H#F@%* +@"^JP $9RJ^ XMJP $9"H@!^>(T(LH0"B\AV6KS2 K 20ARE 0G1P $( Q0@&$ .0@"F XM -0H;HP28 (H5+?,8P:WU&4*8 2WU&3PN=1E["H4("L !.>(T(NPA696("L XM!"!%T*@ !+"'94@@*P $($70J $L(=C*"!%( ?GB">0" @*P $($70J $ XMD())X 8!" 'YXC0BRB 8 0@12B0)T< !"U,C!(@"U" 8%0@*P $4X N XM " *80 P"A ( 1A /Y:+ !*AF(T(NPC&(,8 0@#&<&( QA &:( 9,[1WP_^!.74YU3E4 XM $CG@# D0$JNC!)G'B *9QH@"F$ -Y*@&<0( IA3"9 ( MG!B +80 !8$SM XM# #_^$Y=3G5.50 2.>( "@ 2H1L"BU\@ (P68!1*A&P"7H3FA R$ " XM &T$+42,%DSM !#__$Y=3G5.50 2.>,N"1 ( I1@"9 * LH;HP28 (H5+?, XM8P:WU&4*8 2WU&3PN=1E[" K 3GB-"+L)1F$"!4("@ !-&K 0@5":08 (F XME" L 3GB-",L(MF#B K 31K $*),H#& "*(LM3(P2($0@+HP6L*@ !&($ XM($1@ I'(( A,[1TP_^A.74YU3E4 $CGP+ D0$'NAW2QRF(:0>Z+=+'*8Q(@ XM"E& )D ,DX=EJ\UF*G !8"A'[H=L8!A*DV<2M=-E#B 3(BL !.>)T(&PBF32 XM48M![H9TL(!,B*P $YXG0@2(J 3GB=**L(%C""U+C!I@ ",M=-F !P("H XM!+"K 1E9"ANC!)@ BA4M=1F^K7NC!)F!"U,C!(@*@ $L*L !&8&*))X & > XM("L !.>(T(HH "B ("H !)"K 0@1"% 0@1""2(@H@*P $YXAA 9"0I-" XMJP $)$1*A&<>( IA /]@8!9![H9T48NQRV,$1^Z';+?NC!IF /]63.T=,O_D XM3EU.=4Y5 !(Y^#@($ D020M AG F$*3.T'!__H8 V$J"9TJQRF)(9T0P XM"@@ !G!!#:4X(P" @ !F).**9 9A!!#:3G7BBF0&,-I@ B#:4**9 8Q(F "(2)1RO_\4D)3@F3T= !.=1$B4< !,[0P0__1.74YU3E4 $CGSB D0"@!*B\ (' XM$ 0L & "%,8@!5.%2H!F]DSM!'#_\$Y=3G5.50 2.?.("1 * $J+P @< 0 XM!"P 8 YP ! 2L(9F!" *8 Q2BB %4X5*@&;J< !,[01P__!.74YU2.$T$+7A$A 0D%(04)"2$+2@M*#2H!, XMWP <3G4O G0 2H!J!$2 = -*@6H&1($* @ !82+B"F0"1(#B"F0"1($D'TJ XM3G5AU,%!2H!.=6$&P4%*@$YU2.3D C64 Q8@;0 ((()@ ,43D C64 P0@ 6 XM OP@;0 (3D C6 O!.50 2.=@@,%!2H%F""!M AR & ,# $ F:N)"T XM"'("3D CF L9.50 2.=@@"! , %.0 "$90 "M$Y (]@ *T3E4 $CG XM8( @0# != !.0 "$8 "E$Y5 !(YV" 3D CV H1.50 2.=@@"! <()T XM $Y (5@ )X3E4 $CG8( @0" !(B\ %"0O !A@XDY5 !(YV" ($ P 2(O XM !0D+P 83D @V CQ.50 2.?@@"! , $"00 D $$ W0 3D @R!?9 " XM' P! -IF (6,"\ FL @X"0 '3D A&4 @)T '("3D CF0 ?0T 4Y XM (\R F >I.50 2.=@@"! , %.0 "'8 !WDY5 !(YV" ($!P DY (=@ XM '*3E4 $CG8(!.0 ""8 !L$Y5 !(YV" ($$B+0 (3D B60@#$$ TV8 XM 99@ &:3E4 $CG8( @02(M A.0 "+9> @ 6 79.50 2.=@@"!!(BT XM"$Y (IDYF 6!.50 2.=@@"!!(BT "$Y (QDSF 4A.50 2.=@@!(M XM MG)@P! %G%@P! )G!G++8 !*'("3D C60.8/)R!4Y (UD!&#H= #4 XMER("3D B&7<( %@ $ 3E4 $CG8( B &8&)2! XM91 @+HMTTZZ+=).NBWA@ ""("Z,'K"!8@(@ 2!*3D *,5(90 O"U(BW0M XM0(MXT:Z $&"^3E4 $CG8( B %*!PCP _B0!TJZ !&42LJZ "&0,("Z !"U! XM@ 0B F R80#O2F (3E4 $K\ XM(@!.0 &WJW>K0 \ %.=4YU+P5Z $J :@1Z"$2 80A$Q4S? "!.=4CG00 O XM"-'\ "A"\ !@$"(\ "F$ ^SX& 0 P$0$,@ IDZ 8 # 1 "X( XMGI]@!!$\ #!1S__Z3-\ @4YU+P%A 48809,WP "3G5(YQ_ >@ (@ ?9P)Z XM"$CG) N &< -1"1TA'Z$\$1P/_;PX,1P0 90@@/'_P !R ,_\!-%(1T/Z XM B+G1["Q< !B#F4&LK%P!&(444=@[E!'L+%P"&4(8O:RL7 ,8O!$1V\"44=G XM$"0Q< F,7 $80 )'$1'XT1&$ ",0L $A&Z$X$1@/_ H" #___", %& $XX'CD%'.__HL'U)' XM) !(0N@*E#P "FT.$/P ,5)'U#P ,!#"8 ;4/ Z$,(F!DA#2,-(Q]:';B1M XM'@R @ &46$"C__[ \ #1C#!%\ #'__T(04D=@=$(@8'!(QKR#;P(L U.& XM8"#C@>.0) F >.!XY#C@>.0TH/1@B0 2$+H"@8" # 0P@* ___U'._]A" XM$")(#( " 92X0(+'O !AG#E( # .6,<$+P ,&#J4@ , Y8PYP,1" XM<# 2P$(14D=@ A" , =(P"H?1,5,WP/X3G4 #1CCN;-T%H!"-] XMFVYT(@CY5TW/BG E6[H(SXR7G"BNR&:W XMG@RZ+ $6@%[_KJHO4OBL%TUA(S*E#_U$]*<]-?=B3XIV+]@Y2?8CU:BG,CR< XMTK*7V(F\/_ !#0<-Y-^" $:3N+6U!6X62>7E,:"AR'--.$\#Z3_Y XM]E"*_.]1\/M@4]WV=6+8LVA7,*'UN!,D:5J"=TCY,!TT7=2 5SBU&GAA)L+4 XM)6_\QF1Y1112,+-[9\P.'O&G).]K'R7!AJ;P3VYQ2E+?_&>:<<,R--YZU^1U XM%4_=?W._/'AGJ3HI5/.Z>[I$WX,KC4A_#2H;Y 2/D'_P !/&<.]49& XMU)<\G-*RE]B)O3S2 Z^>YU86/0:$FX:A*YP]/"7":$EV@SUQEYF!+>H2/:7] XM?^%Y9)<]VWS?V=>]O3X1+@OH)M:6/D5YCN(PC#L^>M?RFKRO2CZPQO>@M>V. XM/N3XM8CC:/$_&C;BZQQ#+3]08DW2\:G\/X1ZX4>N%'L_N9F9F9F9FC_P XM 0"0 ! 60 $"/0 0,.( ! ^&H $$N XMA( 06,2T !!E]>$ $'-S64 0@*@7R !"-TAVZ XM $)M&I2B 0J(PG.5 !"UKS$'I $,,:_4F- 0T'#>3?@@ !#=C17 XMA=B@ "\!80 )/&$ 0HB'TYU+P%A E>80 _"(?3G5(YT 80 T&$ "59, XMWP "3G5(YT 80 OF$ "7A,WP "3G5(YS 80 K&$ " !A L(#$?_ XM_VX<;1(@/#_P !R $J$:E@(P ?8%)P '( /@!@2GPTG$=O*'8 8 QD!(8\ XM %21^*(XI%1SO_R9!)2@60$4H!@"@@# !F! (! /Y*@&8$2H%G%+"\ ! XM &0(XXGCD%-'8.AA KL3-\ _$YU2.@!X &$ "FIT N.)XY!1RO_Z2H%J&E* #(& 9@0" XM #^#( ! 903BB%)'80 *=$3%3-\ M$YV3G5*@F<$"$( 'TJ"9@1*@$YU XM2H!F"" "(@-*@$YU2.81F=P:@A$1,%" XMPT//1GP #$0 -F,4* "A( !J!D2&0(% @& ( ,1 @90X$1 @+ ,F XM EO"2()(P@Q$ !!E$ 1$ ! \ S8"2$9(0TA"2,(,1 (91111!P#%@+@@N"; XMX)Y@!N*"XI/BEE',__A@ GP > #2@]&":@PH/( !$AD"!0( D!DJ 9A8@ XM 68*( 9G% 1' $!@!@1' " B G0 81QA EX2H!F! C% )J! C% -$Q4S? XM /!.=DYU2H!F#$J!9@A*@F8$?@!.=0R " &4*XHCBD>*24D=@WK"\ ! XM &0*XXKCD>.04T=@[DJ":B)2@6024H ,@ @ !E%.*(XI%21V ,#(* XM9@0" 0#^ CS_^TYU2.<\ '0 2H!K %<)@ (@P ?0D-(0V< G0H &H$",, XM'P* ___PC !3H2P1# _]B #,9V0(0P ?1$,,0P V9 "2 Q# !1B'G0 XM4T/BB.*1XI)1R__X-CP $2!0(#0O 0 !@,B0!(@!P()!#9!)$0%- XHGB XMDE'(__I@"..*XY%1R/_Z< !$@D"!0(#0O 0 V/ "( %$J 9@I*@68& XM3-\ /$YUXXKCD>.04T,( 49_)*@FHB4H%D$E* #( ( 913BB.*14D-@ XM# R"@ &8$ @$ _@B !36? /_Z4M(0TI#:@0(PP ?0D. @TS? #Q.=0Q# XM #9D %^>@"6? 48A)$0P?%1$.0A684<@!,WP \3G5T()2#!<5T )*%D8(( XM 49@;CB>.04T/6? 03 H #___Z4M*@VH$",, #TA#0D. @TS? #Q.=4CG XM/ !T $J :P#^J"8 "(, 'T)#2$-G $$* !*@&H$",, 'P* ___PC !3H XM2P1# _]D@!^ #P!S,,\!4A&2$,X @!(0S@ R,/:J*@3*@82%*@1&A<*%R(""A,"%2H)J XM/%*!9"Q2@ R " &4NXHCBD=Y\ !!J)'H"(#Q_\ <@!*AVHZ",4 0C XM !]@, R"@ &8$ @$ _@* ___TA'2D=J! C !]"1X"'>@!*@&8$",4 XM FH$",4 T3%3-\ _$YV3G5P "( 8.!(YS\ * "UA"X + )"1DA&9A8@/'_P XM !Z TJ$:@ !? C !]@ %T0D=(1V< 69*A&H$",< 'SH\?_#,1 XM?#_P:@OKJF8&2H-G #ZZ[OKJ.NY*CP ?_* '(A;F! XM@(0H \B%N8.$A'H?"\ +PGP ?@ O""!#>#]*!&\ ,QV'Y*(D8)J>D2!0(!* XM@&8HF#P (&0,V#P ( G'4X=@ "J"<93AB !8 +CB%O+__QR 0# !]@%N.) XMXY!;R__Z>@ $ P @# 0 (&0."@ )Q=J%8!0)QM@#"<7:A0P$ "!E XM!)R%8 13AIZ%2@1O5G8?DHB1@DJ :HY$@4" 2H!F(@0$ "!D"-@\ " )QV V XM"<8@ 6 "XXA;R__\<@ $ P ?8!CCB>.06\O_^@0# " ,! @9 0)QV ""<;8 XM V _S9^ & 8( 8B!WX = !A '>"( %)Y\ OI3R!?*!_81PQ$?_!L /Z6 XM2$1*1&H&",0 'T)$P+P #___@(1@!' <@!Z $J 9@0(Q0 ":@0(Q0 #1,5, XMWP#\3G9.=4J":Q1*@&H"8"2P@F8>LH-F&D3\ 1.=4J :P)@%K2 9@JV@68& XM1/P !$YU8@9$_ (3G5$_ 3G5*@&<$"$ 'TJ 3G5(YPT > B &<@:@8( XMQ ?1(%P 'XT8 ;CB>.04T<,@ 0 !E\F$ FY,WP"P3G5(YPT > B &?P XM8-8O!"@ 82YH!A@\ )@!!@\ !*@&<4:@0(1 ?" 0 'V<("$ 'P $ )$ XMQ$S? !!.=DYU2. !A ',9TH,AP ! !F$B \?____TJ$9P)&@ \ XM )@,G0TE$=G(FL.XH#BD5-"9OA*@&<48 X,0O_@;PCC@>.04D)F^ $ (@ XM 4J$9P)$@$3$3-\ M$YV3G5(YP_ > !A %L2D=J#F$ ;0D "8!< !R &!6 XM($ B07PTG$=N!G0 )@)@0B0\_____PQ& "!O% 1& "#MJL""<@#!B,.)1H+ XM@F .[:K"@L&(PXEP $:"PH(O!W0 81AA %B) F 2 ((@DN'V$ 51,WP/P XM3G5(YQP > F &<$>"!@!B8!9P M$A#2D-G!M@\ !!@ DA##$,! &4$>@]@ XM GH'"P-6S?_\V 7>1)Y\ #28/ @9 C8/ @P4+!00F F#P %&(@1 3IJ.FY XMZ;IZ G%4X4H!BXF#P ($0$>@ )Q5.%1H4H XM!4:$RH# A"0!PH2S@H*%", %$J":B)2@6024H ,@ @ !E%.*(XI%21V , XM#(* 9@0" 0#^>@%,WP X3G5*@F<.P4(F )Y\ $!X(& _SY^ $S? #A. XM=2X XX]G0$A'X$\$1P!_2,<"@(!___\(P 78!HN ../9R1(1^I/!$<#_TC' XM H" #___", % B !]G$ A$ !]$_ (3G5$_ $3G5$_ 3G5(YS "( XM%V=2!D< ?R0\?X _Q8\ =@&$CG, (@ 49S@&1P/_)#Q_\ ?_%CP !$I' XM;@AP % 1@#+Y"91 @ @) " A'( 4 F *YV](1T)'@(> A$S? Q. XM=0 "X "B "] D 0$! 0$! 0$!$1$!$1$! 0$! 0$! 0$! 0$! XM 0$! 0$P(" @(" @(" @(" @(" @2$A(2$A(2$A(2" @(" @("!"0D)"0D(" XM @(" @(" @(" @(" @(" @(" B @(" @($1$1$1$1 0$! 0$! 0$! 0$! 0$ XM! 0$! 0$(" @( $ '= " !VP " 0N$ X3 ,,"@P:"X "&,P X Xend exit