[comp.os.os9] Sbreak V0.1

rh2y+@andrew.cmu.edu (Russell E. Hoffman, II) (09/30/90)

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 <stdio.h>
X#include <sg_codes.h>
X#include <sgstat.h>
X#include <errno.h>
X#include <strings.h>
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   ,    ,%@  #$"<V)R96%K   M1H 0+4: %#U#
XM@!@(*P % !1G#BU,@!IF""UY     ( :2H5G'@@%  !F%$'U6 !*:/_^9@I9
XMB$GH__QP 6 F0C58_R!-U^L #$*G+PMT 2 \   ; $Z[" !@=D/H  0M28N$
XM=  B8"X)9PS3S4(I__\@B5*"8.Y3@&?@2H)F$$IH__YG"D(H__\D2%B(8 8@
XMC21(4H)2@DJ49Q@H5$H<9ORUS&,>#!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;"!T<F%P(&AA;F1L97(@*BHJ*@T ("HJ*BH@ &UA=&@      "(\
XM0"\(0?K_P&$ _T8B?/__@O33SD'Z_]9A*"!?4XEA(D'Z_\I3B6$:$WP #?__
XM('S__X+TT<YA /\83D  !DY   82V&;\3G5.50  2.? @" \____K&$ _LQ1
XMCW "L*\ "&\B(&\ #"\00?H!!B((0>Z#+" (80 $#%B/(#P   #780 <PB!O
XM  P@:  $#!  +684(&\ #"!H  0,*  _  %F!&$  (Q!^@#C(@@@;P ,("@
XM!&$  PPO0  $2J\ !&8F(&\ #"\H  0@;P 0+Q!!^@"[(@A![H,L( AA  .D
XM4(]P &$ '%X@;P $,&@ #B (80 ! $J 9AP@;P $<"# :  ,2, N@" O  1A
XM  NV(!=A !PP("\ !&$ "ZAP &$ '")0CTSM 0#__$Y=3G5.50  2.> @" \
XM____O&$ _>)!^@!?( AA  +R0?H <2 (80 "Z$'Z (L@"&$  MYP &$ &^!,
XM[0$ __Q.74YU)7,Z($UU<W0@<W!E8VEF>2!D979I8V4A( T =P E<SH@97)R
XM;W(@;W!E;FEN9R E<PT 4WEN=&%X.B @('-B<F5A:R!;+V1E=FEC95T- $9U
XM;F-T:6]N.B!S96YD(&)R96%K(&]N(%-#1B!D979I8V4- $]P=&EO;G,Z("!N
XM;VYE#0  3E4  "\(($$B/    !U.0 ".901"@& *(#S_____+4& #"!?3EU.
XM=4Y5  !(YX"@1>Z"]& 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#!( <F<&#!( 9&8$< %@ G "
XM@6L #" K  0R*P 22,'0@2=   @F@" +8 )P $SM# #_^$Y=3G5.50  2.?,
XM,"1 )D%Z & :#"L *P "9@1P!V "< 0J &   (IZ V   (00*P !2( ,0 #_
XM8F9* &<  '(,   K9^(,  !X9\A@4B %",   & ^( 4(P  !(@ @"F$ %UXH
XM '+_LH!G$$AX  )R " $80 8KEB/8%H@!0C   $B " *80 7IF 0(#P   "!
XM@(4B " *80 7)B@ 8#9/[?_H+7P   #+@ QP_V H$!-(@ Q  ')GE&(2#
XM9&?*8MP,  !A9P#_C&#2#$  =V>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<$</]@!" N@'!,[0$ __Q.74YU3E4  $CGP( M5X!00JZ
XM<$AO !1"IR(O  Q!^@3D( AA5E"/(%<(*  %  UG!'#_8 0@+H!P3.T! /_\
XM3EU.=4Y5  !(Y\" +5> 4$*N@'!(;P 40J<B+P ,0?H$Q" (8190CR!N@%!"
XM$" N@'!,[0$ __Q.74YU3E4  $CGS[@F0"1!3^__]$JO #QG""HO #Q\ & 6
XM*B\ 0'P!8 Y*!&<  F00!$B 2,!.DQ@:# 0 )6;J&!IP "]   @N  P$ "UF
XM!' !8 )P "U @&A*KH!H9P(8&@P$ #!F!' P8 )P("U @&Q@&" '<@IA !+X
XM$@1(@01! #!(P="!+@ 8&A $2(!(P$'NBXD0, @ 2( (   #9M(,!  N9@1P
XM 6 "<  O0  $2J\ !&<T8!H@+P (<@IA !*P$@1(@01! #!(P="!+T  "!@:
XM$ 1(@$C 0>Z+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+P<B#" +80 ".%B/8   A! $2( $0 !%#$  ,V( _B+0
XM0# [  9.^P "_SK^%O\Z_A;^%OX6_A;^%OX6_A;^%OX6_A;^%OX6_A;^%OX6
XM_A;^_/X6_A;^%OX6_A;^%OX6_A;^%OX6_WC^X/\Z_SK_.OX6_A;^%OX6_A;^
XM%OX6_N[^%OX6_A;_F/X6_R+^%OX6_OQ*AF8 _;)\ 2HO $!@ /VH3^\ #$SM
XM'?#_X$Y=3G5.50  2.?(H"@ 1>Z 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!>L<ME]D(20>Z 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+84<S__&$6$N\
XM)V$  /1"$4'N@;0@"$S? WQ.=4H#9Q9![H&T#"$ ,&8$L<EE]@P1 "YG E*)
XM3G5G  "8- 1(0C0\ ! L/   $PY.NVCX2D!N1!+\ #!*1&>T$OP +D1 2D-F
XM#KA ;@(P!)A 8 02_  P4<C_^F "$MA7S/_\2D1M#E.)2@-F"!+\ #!1S/_Z
XM88I@ /]Z4T 2V%?(__Q*0&T*4XD2_  P4<C_^DI$9P#_7DI#9P9*$&< _U02
XM_  N4T1**/__9K!*0V>\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<F2'@  4'O  <B"#!J  X@""!J !A.D%B/<O^R@&9&
XM".H !0 -8#HP*@ ,2, (   (9@8@"F$  4@@4E*2$*\  R 2L*H "&0.""H
XM!P -9A1P#;"79@X@"F$  21*@&<$</]@ B 73.T% /_X3EU.=4Y5  !(Y\@@
XM*  D02(*( 3@B&$ _T(B"B $80#_.DSM!!#_^$Y=3G5.50  2.> H$7N@O1@
XM"B *81C5_    !Q![H9TL<IB[DSM!0#_^$Y=3G5.50  2.>(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/<O^R@&8$</]@ G  3.T-,/_L3EU.
XM=4Y5  !(Y\  0J=R " O  1A /[V6(],[0 "__Q.74YU3E4  $CGX* D0" *
XM9PAP \!J  QF!'#_8$0P*@ ,2, (   /9@8@"F$  #Y(>  !<@ 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* &<P#$  _V,J,!BP66?P90X,0 #_8Q9P 2!?PXE.=0Q  /]C
XM"'#_(%_#B4YU2BG__F;R<  @7\.)3G7#B7  $!BP&5;(__IEW%) (%_#B4YU
XM+P@@0$H89PQ*&&<(2AAG!$H89O"1P" (4X @7TYU+P@@0,.)$-EG#!#99P@0
XMV6<$$-EF\"!?PXE.=2\(($##B4H89PQ*&&<(2AAG!$H89O 16?__9LY@W"\(
XM($##B1#9:OQ"$ (@ '\@7\.)3G5.50  2.>  #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<MCOG  3.T- O_P3EU.=4Y5  !(Y\@P(#P   '_T)<"@/__
XM_@ H " $YXAA  I^)$!P_["*9R@@+HM\YH@H "9*)T0 !":\AV6KS2 +80#_
XM8DJ 9@XB"B NBWQA  IH< !@#" +4(!A  )N("Z,$DSM#!+_\$Y=3G5.50
XM2.>,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(<B!^>))X 8!" 'YXC0BRB 8 0@12B0)T< !"U,C!(@"U" 8%0@*P $4X N
XM " *80  P"A ( 1A /Y:+ !*AF<L( ?GB"\ (@H@!F$  H98CR ,9R(@!E&
XM)D"YRV42("L !.>(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<MCX'  3.T- O_P3EU.=4Y5  !(Y\X@*  J 2 $(@5A  )(+ !A
XM /RD)$!*@&<,+P9R " *80 !S%B/( I,[01P__!.74YU3E4  $CGS+@D0"9N
XMC!JUTV4>(!,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<K__%)"
XM4X)D]'0 3G40VE'*__Q20E."9/1T $YUU<+1PC *"    &<$$2)3@C ("
XM &8DXHID!F$$$2).=>**9 8Q(F "(2)1RO_\4D)3@F3T= !.=1$B4<K__%)"
XM4X)D]'0 3G5.50  2.?(,"1 )D$H+P <8!H0$K 39Q 0$TB $A)(@9) 2,$@
XM 6 .4HI2BR $4X1*@&;>< !,[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.<X "0
XM)@!(0R@!2$3 P<+#Q,3&Q$A T$%X ->$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.<X "0!9@:!_   8&Y3@6=J* $B +2!90QG
XM!'  8%QP 9*"8%8F FOVQH1F$N**=O_BBE7+__Q$@^:HPH1@/'  =O_C@FH&
XMM(%B"F ,M(%4R__R9P12@^**1(-@!.. XHJ2@F404H!1R__T8 [C@.**TH)E
XM\%'+__;2@DS? !Q*@$YU*E]3A65B$!AG^ P   UG6 P  "!G[ P   EGY@P
XM "QGX%*"#   (F<P#   )V<J2&C__U.%93 0&&?&#   #6<2#   (&<,#
XM"6<&#   +&;@0BC__V"H2%!3A64($ABP 6;V8.P@3TA7+P)3@F<0Y8(@,"@
XM(9 H "# 48)B\D[53E4  $CG8(#!04J!9T(, 0 !9RX, 0 &9SH, 0 "9Q ,
XM 0 %9PIRT  \  %@  ,>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&<LM@  #P4H'"/ #^)"Z+>)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 R<L]@  !^3E4  $CG8(!2@, \ /XB -"N@!0@24Y   ?#2&4  %XM
XM0( 4TZZ $" (D($@0'0 Y(ED!C#"8 (@PE')__Q205.!9/0@ &   #).5?_\
XM+HI.0  H91PM0(M\( HD;?_\3EU.=4Y5__PNBB1!3D  *63J</\M08 ,8.)D
XM#"U!@ QP_V $9?9P $SM 0;_]$Y=3G5.50  (@!A   >80#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'XT<H $)$2$3H1,A\!_^8? /_R?Q-$$A$YT1#^@+Z
XML+%  &(.90:RL4 $9 911&#N4$2PL4 (90AB]K*Q0 QD\$1$9Q(D,4  )C%
XM!$1$YD3>1&$ ",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!"-]
XMF<Q0;5<'=:.1U6O<A@K(!BADK&]"#AJL"_FYYEL1;9RGG8E&*13 <!O5)[27
XM&!(_\&[JA'D;9$+D^V<98!ZV?IP2>VYT(@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&$ "<AA  #$P4(B V$
XM +PB " "3-\ #$YU2.=  &$  (IA"F$  *1,WP "3G5(YS\ > !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.<M '@ 80 *<'( = +BB.*14<K_^F$
XM"LQ,WP"T3G5(YRT >@!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.</ 'H +@ L D)'2$="1DA&*CP #___P(7$A7H4"\ +
XMPGH/"X=G!$2!0( +AF<$1(- @NA.Z$\$1@/_!$<#_WH . >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<D1##$, -F0  -@,0P 49"CFN.:Y= !Z )9\ "!$0P?%4X4H!4:%
XMRH$D!<*$*@1&A,B P(6"A& D) $B '  !$, %.:YYJIX )9\ "!$0P?$4X0J
XM!$:$R('"A82$*#P_\   @(1*@VH$",  'TS? #Q.=3H#=  ,0P V9'AX  1#
XM !1B3$1#!\30A @  !5G(E)%XHCBD60:4H%D$E* #(  (   90SBB.*14D5@
XM! (! /[:? /_Z4U(14)%2H-J! C% !\(@  4@(5,WP \3G5$0P9# " 'Q-*$
XM9*Y2@&"J H"     <@  @#_P  !,WP \3G4@!$S? #Q.=7( (#R_\   3-\
XM/$YU2.<_ "@ M80N "P"0D=(1V<  ;Y"1DA&9P !MDJ$:@0(QP ?*CP #___
XMP(7$A7H4"\ +PLQ\?_#.?'_PG'P_\-Y&:0 !.F\  8@,@  0  !F#$J!9@@@
XM B(#8  !1@R" !   &8$2H-G\"\'>@!^ #P!S,,\!4A&2$,X <C#W(3;1TA!
XM2$,X <C#W(3;1S\&/ 5(1GH . #(P]R$VT=(0S@!R,/<A-M'2$$X <C"W(3;
XM1S\&/ 5(1GH 2$(X <C"W(3;1TA!2$(X <C"W(3;1S@ R,/<A-M'2$!(0S@
XMR,/<A-M'/P8\!4A&>@!(0S@ R,/<A-M'2$ X ,C"W(3;1TA". '(PMR$VT<_
XM!CP%2$9Z #@ R,+<A$A 2$(X ,C"W(1(0L#"2$#0ADS? (9V!"@\\     @
XM !EG#MY\ !!K/'8%*#SX    YKCFN>: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<Y%GD;>
XM?#_P:<IO  %*+P<(@@ 4>@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."<?8 V_*>@ )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.<M 'H > !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!<J!@(4J!$:%PH7(@H*$8"+HN>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