HSPMg3F5 ?Nw RCOMx-Portprogrammierung mit Speed-Pascal/2  !"#$%&'()*+,-./0123  !"#$%&'()*+,-./012EinleitungCopyrightsAllgemeiner Zugriffffnen der SIZugreifen auf die SISchlieen des COM-PortsTreiberaufrufe41h - Bitrate setzen'42h - Leitungseigenschaften setzen) 43h - Setzen der erweiterten Bitrate 44h - Sende Byte sofort 45h - Break aus* 46h - Setzen der Modemkontrollsignale 47h - bertragung stoppen"48h - bertragung neu starten4Bh - Break an-53h - Schreibe Gertekontrollblock (DCB)754h - Schreibe Parameter fr den erweiterten Modus*61h - Abfragen der aktuellen Baudrate#62h - Leitungsstatus ermitteln,63h - Abfragen der Erweiterten Baudrate64h - SI-Status abfragen*65h - Abfragen des bertragungsstatus766h - Abfragen der aktuellen Modem-Ausgabe-Signale767h - Abfragen der aktuellen Modem-Eingabe-Signale968h - Anzahl der Zeichen im Empfangspuffer ermitteln=69h - Anzahl der Zeichen im bertragungspuffer ermitteln"6Dh - SI-Fehlercode ermitteln 72h - SI-Ereignis ermitteln)73h - Lesen des Gertekontrollblocks974h - Parameter fr den erweiterten Modus ermitteln Anhang Strukturen!Nichts zum bergeben"Typ Baudrate#Typ Leitungseigenschaften$Typ Erweiterte Baudrate%Typ Erweiterte Baudraten)&Typ sofort zu bermittelndes Zeichen'Typ SI-Fehlercode(Typ Modem Control Signale)*Typ TDCB+Typ Erweiterter Modus,Typ SI-Status-Typ bertragungsstatus.Typ Modem-Output/Typ Modem-Input0Typ Pufferbytes1Typ SI-Ereignis2Der SIO.SYS3DosDevIOCTL-Syntax456789:;<=>?@ABCDEFGHIJKLMgv7`| :q1h7W7T}0DXhASYNC_GETBAUDRATEASYNC_GETCOMMERRORASYNC_GETCOMMEVENTASYNC_GETCOMMSTATUSASYNC_GETDCBINFOASYNC_GETINQUECOUNTASYNC_GETLINECTRLASYNC_GETLINESTATUSASYNC_GETMODEMINPUTASYNC_GETMODEMOUTPUTASYNC_GETOUTQUECOUNTASYNC_SETBAUDRATE ASYNC_SETBREAKOFFASYNC_SETBREAKONASYNC_SETDCBINFOASYNC_SETLINECTRL ASYNC_SETMODEMCTRLASYNC_STARTTRANSMIT ASYNC_STOPTRANSMIT ASYNC_TRANSMITIMM Datentransfer)DCB 2DosDevIOCTLFunktion41h42h 43h 44h 45h 46h 47h48h4Bh53h54h61h62h63h64h65h66h67h68h69h6Dh72h73h74hIOCTL!keines ffnen des SISchlieen der SISI1SIO"TBaud 'TComError 0TComEvent +TComState)TDCB *TExtModes $TFixedBaud%TFixedBaudInfo&TImmByte #TLineCtrl ,TLineState.TMdmIn-TMdmOut (TModemCtrl /TQueueCountTreiberaufrufe $$System ProportionalCourier Helv       !"$'()*+,-./000000100020004000800100020004000800101000204060811011115K14151616Bytes18220284338K44041h42h4343h44h45h46h47h48h4Bh553h5454h5760066061h62h6363h64h6553565h66h67h68h69h6Dh772h73h7474h8809:;=>?@aaber abfragen Abfragen abgefragtAblaufACCESSaction Activate afunctionaktiv Aktiviere Aktivieren aktuelle Aktuelle aktuellen Aktuellen akzeptiertalleAlleallemalles Allgemeinen AllgemeineralsAlsoalsoanAnandandereanderenandereranderes angegeben angekommenankamAnruf ansonstenansteht AnwendungAnzahl APIENTRYAPIRETAPIsArt AsHandShakeASYNC AttributeauchaufAufbauaufgefaufhAufrufAufrufe aufrufen Aufruferauftrat auftrittAusausAusgabeausgeschaltet AusschaltenAVAILBBaud Baudrate Baudratenbauen beachten beantwortet bedeutet BedeutungbeendenbeendetBEGIN begrenzt behandelt BehandlungbeiBeibeidebeidenbeim Beispiel belastet beliebige Bemerkungben benutzenbenutztbereit bergeben bergelaufenberlauffehler berlinet bermittelndebermittelndes bermitteltbertr bertragen bertragungbertragungsaktivitbertragungsfehlerbertragungspufferbertragungsratebertragungsratenbertragungsspufferbertragungsstatus Beschreibung beschrieben bestimmtBetrieb bezeichnetbietetbindenbisBitBitflagBitrate BitratenBitsbitteBitteBlock blockiertbrBreakBreakersatzzeichenBreakersatzzeichensBreakReplacementBSEDEVBSEDOSButtonBYTEByteBytesC0CarrierCASE categoryceceBufferOverrunceFramingErrorceParityErrorceUARTBufferOverrunChangeAtOpenCloseChangedCHANNELCharCHARchstechteckcken ckgesetztClearCOM ComFlags ComHandle ComHandlesCOMxCONSTControlCountcountcscstrCSTRINGCTSCurrentdaDabeidabeidaherdanachDanndanndarfdasDas dasselbeData DataArea DataBitsDataInTransmitBufDataLengthInOutDataLengthMax DataPaketDatei DateiaktionDateigr Dateihandle DateinameDaten Datenbits Datenpaket Datenpakete DatenpaketesDatentransferdazudcbDCBDCBsDCDde Deactivate Deadlock Deaktiviere DEDICATE Dedizieredefault definiert DefinitiondemDendenDENYREADWRITEDerderdesDeshalbDetect Detected DevHandleDeviceDiediediesDiesediesediesemdiesendieserDieserdirektDISABLEDMA Dokument DOSCALLS DosClose DosDevIOCtl DosDevIOCTLDosOpenDosRead DosWritedr dringendDSRDTRdurchDynamic DynamischeseEAs ebenfallseheigenesEineinEineeineeinemeineneinerEinfachEingabe eingehen Einheiten einstellbare EinstellungEinstellungeneintrat einzelnenElementempfEmpfang Empfangen EmpfangsEmpfangshandshakingEmpfangspuffer empfohlenenENABLEEnableBreakReplacementEnableErrReplacementENDenden ENHANCED EnhFlagsens entdeckt entnehmenerEr EreignisEreignisbehandlung Ereignisbitsereignisgesteuerten Ereignisse Ergebniserh erhalten erhalteneerkannterkl erledigterm ermittelnErrorERRORErrorReplacementErsatzerst erwarteten Erweiterte Erweiterten erweiterten Erweitertes erzwingtesEsetriebsetwasEvenEvtl exklusiv explizitFfFAILFallsFDFDhFEFEhFehler FehlercodeFehlerersatzzeichenFehlerersatzzeichensFeldffnenffnensffnetFIFOFIFOsFILEFLAGSFlagsFlags1Flags2Flags3 FlowControlFlu Folgende folgende folgenden folgendermafolgendermassenfolgt Fractionfrei FullDuplex FUNCTION Funktion FunktionenFunktionsnummerFuntionggbarGegegehengehtgeladengenanntgenaugenauegenutztGergeradeGesamtperformance geschehen geschieht geschrieben gesendetgesetztGesetzt gesetztem gesichert GETBAUDRATE GETCOMMERRORGETCOMMSTATUS GETDCBINFOGETINQUECOUNT GETLINECTRLGETLINESTATUSGETMODEMINPUTGETMODEMOUTPUTGETOUTQUECOUNTgew gewartetgibtginggleich gleichengliche glichkeitglicht globalenGPFaultgrGrgtgutGwinnh Halbduplex HaldduplexhalfHalt HandbuchHandle handshake HandShake Handshaking HardwarehatherhereHFILEhierhierbeiHilfeHinweis hnlicheshrendhrten hsocietyhtHundertstelsekundenHWichIFIgnore ignoriere ignoriertihreihremimImmByteImmCharimmerImmerinInindex IndicatorIngoInitialisierung insbesondere installiert installierte Interface internenIOCtlIOCTL IsHandShakeistIsTransmittingjedejedeskKanalkannKapitel KategoriekehrenKeinkeinkeinekeines kleinste Konstanten Kontrolle kontrolleKontrollmoduskopiertlladenlcBreak lcParity lcStopBitsleer leichterenLeitungseigenschaftenLeselesenLesen LesezugriffeletztelevelsliegtLoad LONGWORDlsltltigltigeMmmalmanManMarkMaskeMaskenMaskOffMaskOnmaximal maximale Maximale MaximalzeitMaximumMBSmcDTRmcRTSmehrmeistmi MinimaleMinimumMitmitmoMODEModemModus momentanmuMumussnNachnachnachdemNachkommawertnatndernndertndigNeedForReceiveNeedForTransmitngtNichtnichtnichtsNILnilnnennntenochNone NormalesNoWaitForReadNoWriteTimeOutnschtenullNullNULLNullStrippingnunNurnuroobobenOddoderOEMOeserOESYOFOffohneOnONOneOPEN OperationOS ParameterParameterpaketParameterpaketeParameterpaketes ParamPaketParitParityParmLengthInOutParmLengthMax ParmListPascalPortPortNbPorts ProgrammProgrammierung ProtokollProtokollfehlerPuffer PuffergrQueuedRrRayRead ReadTimeOut ReadTimeout READWRITEReadyReadyToSendImmByte reagieren reaktiviert realisierenRECEIVEReceiveReceiverIsWaitingForDSRRechnerRECORDrelativrendRequest reserved ReserviertRIRingrlichertRTSrtsSsschlieSchlie schnellereSchnittstelleSchnittstellenschon Schreibe schreiben SchreibenSchutzverletzungseinseine Sekundenselbenselbst Selbsterkl selbsterklSendSendeSendensendenSerial SeriellenSet SETBAUDRATE SETBREAKOFF SETBREAKON SETDCBINFO SETLINECTRL SETMODEMCTRLSetzensetzenSHARE SharewareSIsichsieSiesiehesiehtSignalSignaleSignalssindSIOSizeSizeOfsosobaldsofort sofortigesolangesolchesollsolltesondernspSPSpaceSpeedssenststartenstartetSTARTTRANSMIT stattfand stattfindetStatusstehenstehtStelleStopbit Stopbits StopBitsstoppenStoppenstoppt STOPTRANSMITSTRING strippings StrukturSyntaxSYSSystemtTasteTBaud TComError TComEvent TComStateTDCBte teilweisetekontrollblocktentereTestenTextTExtendedModes TExtModes TFixedBaudTFixedBaudInfoThemenTHENtigtigtTimeOutTimeOutHandling TimeOuts TImmByteTja TLineCtrl TLineStateTMdmInTMdmOut TModemCtrlToToggleOnTransmitToStr TQueueCount TransBreak TRANSMIT TransmitTransmitBufEmpty TRANSMITIMMTransmitterIsSendingImmTransmitterIsWaiting2SendXonTransmitterIsWaitingForCTSTransmitterIsWaitingForDCDTransmitterIsWaitingForDSRTransmitterIsWaitingForXONTransmitterIsWaitingWhileBreakTreiberTreiberaufrufe TreiberstriggerTriggerts tsfehlertuntwoTypTYPEtzendetzttzteUARTuftULONG ultitaskingum umschaltenund undefiniert unendlichenUngung ungeradeUnits Unmittelbar unmittelbarunnunseresunterstUserUSESUSHORTuswVAR VariableVCOMVDMsververf Verhalten verharrt verlorenVersuch versuchen verwenden verwendetViele Vollduplexvollstvomvonvor VorteileVorwwWaitForReadOrTimeOutWaitingToSendXoffWaitingToSendXonWartewartenwartenswartet WartevorgangwasWechselwegenweil weiterenwelchewelcheswenigerWennwennwerdenWertewiederwirwird wirklichwobeiWORDWriteWriteRequestQueued WriteTimeoutwurdexXOffXoffXOffReplacementXonXOnReplacementXOnXOffystemzZahlZeichenZeigerzeigtZtZuzu zugreifenZugriff Zugriffezumzur zusammen ZusammhangZustandzweizweites zwischen_ +.h %& ( " *)  - "#!+ 1$(,' ^cw=@HLW\~&,4z K\,"   3 O/LK-      \z,AL,@ Pnp/<^yZJ-~uLG4C : 0VK5k86$ ,1.||A|\W{R23/fq' -   2hG 2>/=V;Ealo?@BHNXbchjklm  $+,9=DEM]dfqz   "#(/8IQRS`}n10(+ ! / 8'" 9:-.)&#,$)&* %;'AMYZhm0=?EWeyzT}2$B#" !      \]`c'=Une H}|5fC_WAaM7T3DR5)DGS DR5@) DP0X D /$ D QI1V D `+[D `+YK9&c\D /'DE^O)]DNLAaM4@JD )>D G>D?)>DTZ>D6`-D5!I(UD5!I:UD%5eF;>D%5eF`,>DTB>DT<>D"E^>]DLAaM4@J>#_dH28=*#Lb2W.78:;<=>?@BDHIKLNOPQRSUVX\cfqrsv*9=@AHWko}&Tz}~  (-45DGo|}67<+ "4 !' 7  26!5/(:8- 4 $. . 2  9%;  &;1  "-  +3-  #*0,) )    #*0)    \]^%)+AKWXbh7AFS@}8<+ #4 !' 7  26!5/(:8- 4 $. . 2  9%;  &;1  "-  +3-  #*0,) )    #*0)    \]^%)+AKWXbh7AFSY}:>-$5!) 9  38#71*<!6:/5&002   ;'=  (  $/  -4 /  %,2 .+ +    %,2 + "  9\]^%)+AKWXbh7AFSNx};J3<!/'-D ?$#F E*G8  A  :@&>70H$B5&<+662   C!,I  .I=  (5  3;5  )29"41 1    )29"1 %  \]^%)+-AJKWXbfh7?AFSWf}=G5/'>(C12,; '  A  < @&?80E$B>+772!  D"-F  .F:  )3  5  *49#63   =  *49#3%  \]^c!%)+=AJKWXbh57AFS A}>H4(?'>(D01,; '  B  < A&@8/F$C6?>+772!  E"-G  .G:  )6  4=6  *39#52   =  *39#2 %  \]^c!%)+=AJKWXbh57AS A]}@jgL!D'D-:W+\b& @/ha)R ZV +\G:Pc FB.:gG;9]O53> # YP+\ U84d6H Ze  1T Y [,I  _" ! S.^9]OEf4`$?NN20$  %b1Ai  CiX  <J  L =KQ2*MJ J  '  =KQ2*(J 7  ?\]^cd%')+@AHIJKLWXbfhjx,7?AFSfz 67<nu|}BUA!;!;%0H$JO P$JF8 Q'6 =9&0S>1/KD-+4  M  G&L/KD<R,N5CC2(  O)7T  :TI  2?  A  3@E*#B? ?  !  3@E*#"? .  \]^~%')+AHJKNWXbfhj#79?AFSfz)*|}FDG5!/'>(C12,; '  A  < @&?80E$B>+772!  D"-F  .F:  )3  5  *49#63   =  *49#3%  \]^c!%)+=AJKWXbh57AFS A}E<+ )4 !' 7  26!5/(:8- 4 $. . 2  9%;  &;1  "-  +3-  #*0,) )    #*0)    \]^%)+AKWXbh7AFSD}FGC1*;!-<)*: 4 >  8=%<6.A#?3;(552    @!+B  ,  &3  19 3  '07"2/ /    '07"/ $  C\]^%)+AKWXbh+7AFS%M}H;, !( "3 6   15!4/)97 3  % .  . 2  8&:  ':#  "*  ,  $+0-*   2  $+0*   \]^!%)+AKWXbh7AFS@}J;, !( #3 6   15!4/)97 3  % .  . 2  8&:  ':#  "*  ,  $+0-*   2  $+0*   \]^!%)+AKWXbh7AFSY}K<-!)%4 7  26#50*:!84&//2  9';  (  $+  -  %,1 .+   3  %,1 + "  J\]^!%)+AKWXbh7AFSO}L;, !( +3 6   15!4/)97 3  % .  . 2  8&:  ':#  "*  ,  $+0-*   2  $+0*   \]^!%)+AKWXbh7AFSC}NN;, !( ,3 6   15!4/)97 3  % .  . 2  8&:  ':#  "*  ,  $+0-*   2  $+0*   \]^!%)+AKWXbh7AFSZ}OE0!,-;9&@4C76  >  8=$<3-B"?;)222  A *D  +D'  %.  0  (/5!1.   :  (/5!. #  \]^!%)+AJKWXbh7AFS\}CQD0 !, .;9&@76B4  >  8=$<3-A"? ; )2 2 2  @ *C  +C'  %.  0  (/5!1.   :  (/5!.#  \]^!%)+@AJKWXbh7AFS[}R;, !( /3 6   15!4/)97 3  % .  . 2  8&:  ':#  "*  ,  $+0-*   2  $+0*   \]^!%)+AKWXbh7AFSa}T<- !) /4 7  26"50*: 8 4 &/ / 2  9';  (;$  #+  -  %,1.+   3  %,1+ !  \]^!%)+AKWXbh7AFSa}U;, !( '3 6   15!4/)97 3  % .  . 2  8&:  ':#  "*  ,  $+0-*   2  $+0*   \]^!%)+AKWXbh7AFSA}.Wh-N!E$0[)/+97M=14f& P HIKYJbeG XC5A\S 0W3!Zd^6M@(;  `  U*_8]RFf/a"[ ?QQ2,  #c-Bg  Dg<  :L  N  >MT.'OL "  $V"  >MT.'%L2  \]^c}!%)+=AHJKNWXbhil17?AFSVf!'=B|}X;, !( )3 6   15!4/)97 3  % .  . 2  8&:  ':#  "*  ,  $+0-*   2  $+0*   \]^!%)+AKWXbh7AFSD}JZ<-!)4 7  26#50*:!84&//2  9';  (  $+  -  %,1 .+   3  %,1 + "  W\]^!%)+AKWXbh7AFSL}Z   c=H[?}*[   c=H[?}[G      |=Hbh9 X}\N7$;3% <%  MJJIGJDB!B9BHJJIKJCBB@BEJJIFJL ,+/;4A> 5"( 0?.-1&=#;3'1) 6 % *2 :8@  '7:EHM]^ct{:HKw+;?c:@wx} `hL-SF.T gddcad^\)\Q\bddced]\%Z\#\bddced]\CM\#\bddced]\I\#\bddced]\"S!\#\_ddc`df /S:W-SF%Z         3US9CM   5CM   CMV   CM0   CM;    CMH    3US9I   I    I>/S9<%Z    J   3US9"S!=    +YX4"S!&    +YX("S!'2E R7= ? , ; H 8B B[[[1 P 6A @ NG$#D#K#O#*  '0358AITY\]^bcx(8:hw+9DEOPQ`agz$123:>Ybvwx}aU;!B7 $ DIOQQPRQJI ICIOQQPRQJI1IILQQPMQS *%B39*4)'.-5&+/$ G"%B3F'2EB@H:H0EBA(6 ?=8 , #     :K\]^cg:@GH_w+39?]clz:FNwxz{}qcC.4) B??>;?=86626@?=76 6$06@?=76%606@?=76#6069??>:?=A  - +% !5"',/4( 31 *&$ 0    K\]^cqr':@Hrw+9Gmnpwx:ENOwx}dP6#:4 $  OLLKILFDD8DJLLKMLEDC:DDGLLKHLN B:-/A,;&> =.C:10'@%!)< ">0(?:- ,3 9752 *  +    ';\]^c:=Pw'(+9Y:Wwx}~) C ^84&P5W['H) C ^4P5\['H) C ^4\7MX;D) C ^4\7O;D+ R2GN 0, / . - ZV` E%?_ +"KB I4$T%3! L#[F @A1J ',035<=@S\]^cu:=@Ahlmvw+9 +:Aptwx}~ joQ0UG 6V6 nkkjhkec-cScikkjlkdc)VI=0UGc cikkjlkdc)VI=0UGc cfkkjgkm +X,L`C "a5K;7_ _8 &)$ Z J L * a5K;Y]_ (^)O   \?IO(^ V 0UG#LM N:"/W  !#'0=O\]^cp~/:?HJ^bghw#+9Jchijkrs&:]wx}{r;_Z `RJr}%}( h -- x My Mz MsMKM M M -݊gӅ6VB-egӅ6VBxfHIc c._um? c._um3 c2jB G G!>-T:3~۳/G"bCG$[3EDG&b3iG' y9fHGAXpo.GG1_tEG!1_FG"1_LGG$0FHI'& \._um 0._um rXj F IzܜfHG0rʮ ~WpI5D ʛ  :fnCq7f= ^UP<I"5!vJ وv \v 0v d4@_wI&5$_vǘ  " )K G'vSraF  L] QrʮYcO, +Yc8 , +YT , +Yb , +Y[ , +Yb , #+rʮ{Y , +Y , +Yl , +Y , +Yk, +Y| , +YO, #+Y8 , *+Y , N+rʮY , +Y , +Y , +Y !#$&'()+-01356ABFTVYZ]^_cmno{~ .015:;AFH]^adhqwz|  !"&*+89<?BCEHIKNWXZ\_`dtz -9:TUV_dqw|}=u?1  -'92#) . 0,(6 !>)>"!>)>!>)>$!>)>7>!>)>7>!>)>7>!>)>/>854;:3:+*6&  = < %  %&(-./156GYZ\]^k.3H` &HI\DUrx}lxt[EbUGdG" sppompjh< h^hnppoqpihCFh/hnppoqpihY hchkppolpr CF-6DQeb`JfbI R' ZH" -(DQ.d:S*> 2:= (:= 4;:NEbU7= Y.d:S*a+ 2:a, (:a, 4;:NEbU8a, Y- >L:Q R' ZH" -!a+L:Q R' ZH" 5MT 1AgKg) & %?gAgP& %9g:gV & %?g:gV & %3g:gVg0& %9g:g]& %?g:g] & %3g:g]g0& %:gV & %:g] & #%_\&WB$/%X$O%@%  !#$&'()01356ADFTXZ\]^en567:<=HQRlwyz&+>]|~:Mcwxy|}T{|WBcND  {xxwuxrp>p`pvxxwyxqpRVp0psxxwtxz RV H=-:.TCQ?6",F j;R(=4e8b+g,F j;R(=AFLT\]^c~ 19:@AGH]hw+9 -:Cghijklmwx|}}_D0I=1 ^[[ZX[US/SFSY[[Z\[TSH$S'SV[[ZW[] H$ 8-& % 4 M.H"C; % 4 M*6H#@% 4 M,J2I!5% 4 M.AH"C; % 4 M-Q3NB% 4 M-P3NB% ?% ?+7< (:RO :R) :RJR9 :R> :RL :RK GE'  '035AFNT]^c':@hjw&+9:^,:Zwx|}~E2$6.& DAA@>A;9#949?AA@BA:9+  199H! *IC 0 +K! F< E 1:1 8! *&/ , +RS4 8-;A $(?T)?T0?TE?T,QN%  (1356AFPTZ\]^_'1:AC]how+.9?v}-:[^wx}:&*  +  9665360..(.466576/.-.,.466576/.#.,.1665268 $" )'! % ,    QR\]^c :Hbw&+:awx}܅HoRyeT" Kvl O~ l OZI3SPn@%2 V |I{zYCMEty02 V |L\ qJ2 V |Dx1[Z2 V |;rj = mU(^W2 V |>kg H mU(^W2 V |>6F ? mU(^W2 V |I5N2! V |Ic a(u `x/.2# V |I+* i 4$ h)4}]B-,_y:AYb <79d' &7f' &7s' &7=8' &7H8' &7?8' &75G' &7XQ' &7i8' &wp'~&   "',035AFTUY[\]^cv19:;=@ACD]huw{}+9RU  :BT^epswx|}~ P CGHC"/AG&L OC8 O<C8O >F-,IC( D:3B*13' $@45)9=!7#M5)9=!7/2BK%096 ;E.? +JN *-45\cdf{@Ohklt+129=?[ez <Jn|‰]Z5&(+ #CH<'TD2F:%U/  4*$; 9[,1  3VPSA\W @6YO JNW 8HQ-"LYMW =GY W 8HQ-"!YW =G)?  XVB IK0E>.R7  '2\]cly~ )*+ABEHLNSTVWXbmp )+-67acdu 0;} a2    0G %#;݊ '5<!b3euV    0G %#;    0G %#;ۋ6     c{4Hh9Vb , hlmo}\  J<z}     89}̌     'H.|} ^$     'H.|}Q ^w <z} <z}Ǎ <z} <z} <z}? <z}h  <z} <z} oA<َ Ks< Ks<f+2,|,=-01`2H679:<=C?AFCD:FG1IJK`MNHPQ/STUWcYZ[J[[J]`bc~ehjetuTyL|~)F|Ɋ$?n<r @aٍ)Q|ǎ " ?   W ? ? ;x   h ? Aa@  @H) R RX@  @ ? 8 S~`+0+00`)` 3b`1)'0)1)) b2z1zb"# (&''(+'z)*"z)"# +",(-.//'~0)*@b0 7 ? ?).#   1*1$)2)`)(%%"'0#2  @@!  )#)1.)0.0,/2   )   P@  P)' "1))0)  -+)* ,12))-)$ ).1'('*"  $!'0&&+&,`z,0%1,'.( 1 "@)~^(@"v" ) ))) &+/).0&20'''')0*0&)*2) 0.0 @ )/)+R%))"" @@P(.02#,22? #  2    )()R)`**#+0?)0*  (   +R2.002)   ?    1&**222    R$)) @ )&( Q1  @  .2)%10'? *`0)04*))2**).0+1@)00()2'0)1*1*1@&1)2#"+" $(((()))0)))`)))(01+1$@)2 ??   *#*0&&(#,'@B.$&).)1(2%1 @ ,")#2))&, 2"  !&@1)')*02))(i&&2) @?2.@11$2  ) _,")1* &(B@ ))#@%))()@)###00))&)1)$*,)#)#2( )21#(((($%%%(()2.%% @@-*-.*-))* )0'$1"( +)) )+! @ 1P#)))$)1)A)* @ l`)1'#  X1@&#(#(#*  2  #222 @?100'A/0 ))0).0,  *)+)%/*>.0."  5D`)1)2 @@)!/%.0B.0  )1@1 P0"+(  ڀ 1/ P,(,#(',R2###  )?2 1#  0+@%$1*@ % )0)) &!,.- (.0)`#*)0 +++++++ 1'0))0' #? @?*$$ x   ) Z}@())2#)#$*))  11*1 &()"(2)+0 (@ @1 )),,))++))++( @ ܀  #()!:&!A),) P) ),)$X))" A!1&  B@)   ???????%?????r