home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / alt / sys / amiga / demos / 1952 < prev    next >
Encoding:
Text File  |  1992-12-11  |  16.8 KB  |  287 lines

  1. Newsgroups: alt.sys.amiga.demos
  2. Path: sparky!uunet!spool.mu.edu!umn.edu!doug.cae.wisc.edu!pochanay
  3. From: pochanay@cae.wisc.edu (Adisak Pochanayon)
  4. Subject: Simple OS Friendly ScrollPane Source
  5. Organization: U of Wisconsin-Madison College of Engineering
  6. Date: 11 Dec 92 15:24:10 CST
  7. Message-ID: <1992Dec11.152411.7626@doug.cae.wisc.edu>
  8. Sender: pochanay@cae.wisc.edu
  9. Lines: 276
  10.  
  11.      First of all, I'll most likely get flamed by the "real" demo coders
  12. here, but I seem to notice a lot of people who are interested in learning
  13. to program demos who'd like to write code using C and perhaps even be
  14. OS friendly and multitask (oooohhhh! scares the living daylights out
  15. of euro-coders).  I've also noticed that most of the people who respond
  16. to these posts asking for help do not give any help at all.  As a matter
  17. of fact, they simply prove to us that they need serious help removing the
  18. stick up their A**!!!
  19.  
  20.      So for people beginning to code in C and using system friendly
  21. routines.... here's a little idea to get you started (with source)...
  22.  
  23. --------------------- cut here ---------------------------------
  24. begin 640 scroller.lha
  25. M'C<M;&@U+4H-``"D$P``%;=T&0``"$A37TE37TE"7X8+X7ON^ZM-QT'][QX;
  26. M]X'`<**\6PP?ZTZ4'7PW)TTS#'!X)(1TQ7)0E72K3KO,'Y^;T8_>OFR`1`1P
  27. MO*2K6J\8O;M.FJLNJJZ]KPKIKV641U4YS=426Z=*36JJK*:PO*]`[<6PA*HB
  28. M3`_?O_O,D)N5^%DMO@[Z#]W>LD:;DW@"@[`-?J"?6:/GE#[\:($XHXW[2WX.
  29. M=BSG<%V'C=HJ$]P0.W0V4/P+@2R'`\Q(VLYOD<]C4KMVA\5="0Z%MDH9BP.A
  30. MRWX0O:G=';]LS\BPV=7Y*Y&CWL5LM$2`S'K))E/7<`..AS[C\H9*@!D$I<?^
  31. M\(#:8(G,KD4..3@!D]+G]+GNHP.?A][X?>(:N%-X%=XR'3S.)Y<PU$3%%#YX
  32. M.<BB)68!D+VF+&YZAIMQ,BN"LS09[X!*:DB(H^:0V[F?%Q-C[8`-G&%K^SL?
  33. M<`A;8UNB&['_`@$,\CWV--R-]\>E@BSMBAQUN'=3.EDH<>U_<&_%S9D^OT!$
  34. M\Q\#M$CP':E0]D4>](BZK0%YV/5'+Y[HMG&=/`(IX+LK&_0-_]8Y/R*47[/.
  35. M(CXD8#P]<D@04^#(0_`2,#NNC`<ATX650=6%E'>TL"1Q'P'5\A#XGP$>H35#
  36. MB(PL>%E4*XH?NW`QG4>%.73T14X1_IC9Y[-G\993C7ANA(1:_BI4P@/SJ.!O
  37. MYL_+KW0K8Y=X2KN>IP\6%?Q%95?(CWB\-?"&0CZD(].@*41$7LA#/&7\T3'/
  38. M9`<]H!G7GVM280.IH_AMO8%E=_OMV]_FA7\+R6/J@YU`;M]"AA+`TDEGVAGC
  39. M)DV'^07SSQ>ETAH/8(@>E]K4!D#6/%'RZY$Z`RCS+70.VNWT#I*Q[1^PC:Z"
  40. M&FM$%%]JU[15$A^W'!7(61Y;(UY&*8L?S$5)!&_-U`V-W,900:`9W%UD7#-6
  41. M/]Q%2V(V@S<R84-Z\SI373>#S?V\0IG\/-^&:L#_8OD0IVB5T^"GG@O<*[JW
  42. M2Y=UNDO1+?+IQ\1RN%N9]97<]1&;"^["OWU(+H[\1W:SW/K2OZ,#=$71Z`U_
  43. M46NND')(:(TQ$/J_IY]=!.2'V(*KORRQGUNI\9]&#G4IN*9P@P0MKYCLP_3P
  44. MZ>XMU'$]@=*[MTM'TO>GRK_V=(K50U_%!F09OBHL:1,,/T9IBR,URNCRC(H!
  45. M_G#!C?]/=+>%[B,4W<;JXMRTSX0Z%"E8+'@==>7N5G.4C?`'H';D'.]R3CQ]
  46. M<#ZY)(./S-0*T8;G+@,_?7IMF>.U.#-SAD*`,Q1^RQV2UN=C"R@FW0MFL?RA
  47. MIBV2P76XVCU"L_C18[/+M8KVM"U9X;Q?T^NPR\/!SAFO?'.8.#]V;;>P^/A9
  48. M1MSN^L#BPW)S](&'_>>LGV6-(KVC'W1:C[##5BPPG>^.K_0GR!=6V2=!)(HB
  49. M\3ORETWC7\_UR1%UTI]9=/?0AAJ=4L?X.=`"6"[W!;H`I4C)GZ>"^?_BZ7-\
  50. MC_1CMO\;I<W6]2HN#M"UEQ_(Z#`LB%3"OQX*;\H&W?U[X*BL5"I>COD?-QWL
  51. MQM]NQX5Z**<LPEMCW@\SM`H+Y@:+YCGF>N5\WS9]1OG@O;E&HEOO`'<[DJ%4
  52. MS24-SU'&:4C:_+0Q)P$G<CP!UMW,>A<6_`?EFSG#-FB.>/SPN*%3P3Z$#HM/
  53. MW<=\_/*/_X[[=CI)Z!3O_E;?;L6_UQMK\.HO!@YQC^LO@/Q06)S)D@><5SWR
  54. MY.48HX70&ELO1#IE.NO/2SW/?*7CIO^SB77&M?H8P>ES7<%=T.7677GN_/'+
  55. MHBW5"I.E<=]%<"_)D+*[?9WV[2_';;)+UF4/OV1ERR,T11EE/ZHIYJ3844&,
  56. M.XXRC8H^/**SRRE;_5[=M_6(7[-S]#B8Q(+H7[L(R*@<Z@COG<#RZGI&N9MW
  57. MQ(G;(@5#@YP;2LD4>X)1J4[N[=?R$K@/UN46LN$L\NZFC@C[N+GJ7(%FO2N2
  58. MS7&:=2\GS7,Q]]NZQ$E&S->J?4(S!\4LOPS2R_K>]+\ZYZA^C^^7]`4/<[K0
  59. M0>BP>U/\4>ZO91:T:S`V2A""$X_Y0<C-GBJ4S(RY'VI%\?4*.UEVESV7_TRR
  60. M_/F_O&_XJ81L@Z@W8M?6BP_NCTAY1A![R<ETW=T=8V>L]%+&8\!9C*F1:0O2
  61. MR/.CDK4(]Z>\+IO@Z'UZ$^Z/VAI1\1MV\UQ\)I1\E#=S!(VU8$\CYE:)'R^\
  62. M1]^T1W$Q2BNVO7"501LE3D.S.*E2.F\L*PW671WWZA8_F%,W'<*]ZZ;ST'IK
  63. M`*','@1;B@GK`4CN.-P'7,R4*V14D;M:^[CE'@I2:UWI32'I'K(%8E8*^K:T
  64. M)F&ZWPYY_#OT:\#>,6^.GLC)WX(Z>_=A8Y>M%*D%[_='6;3PLK49VCE86'RV
  65. MH;T&@U\7\9G@%./M%/^,N.&=Z`^_>'WA3_C7:0^_\#E)^:9B;G<M^,QVOFXW
  66. MV/L<;YNUB&&7U\9Z3'.\VPQ,2P_.P-_$L/-YS#./86#-:MI:,Y]]X7]K#!AG
  67. M6ZQAC#&(5)Q&&.QU]7$,H"H_6YVQ93\35[778,XGP9WP<0P4[D_!G"GE7]87
  68. M5I>2U?F99;ZJE!^+58_L0\=/9_F88M"@-HPQ0&:NJ*O:4OZ>OU_TTMH89V,[
  69. ML#?Q+#TN=SO2L,2TJ_U?-\WZJNT_@L/,3\?P-FP5F"L=P[02_L=K5::!ACK?
  70. M!R1P>LQ.:_,=W3.EV^VD-4V:7P*V=.+X`.Y?Q_'OX(7D5Q4/XMN#C%TN1H>7
  71. M3"D$S9K*O`P\O&+7C9>'``>M##@0,/>N0<N</#<N2R.;MBYSEG\6RV+?-;"'
  72. MI39@8<[D>W.'J6-MITXT956_1Y&1V1[2]QEY&1.D!40(WOSIPS*^?J^MZW,]
  73. M,`LL7_7(]1P5I_1]31S0"1.91P2TLC\.I@E'XL5EES%&:W,"0RS[MG\RT\B`
  74. M+#HS?Z.1HI"?8V5E:>"#:JP<_/P:IMC3F@\KJXV7N`&^R[#./EY;->.,("Y^
  75. M1\OE@$Z<Y<SIPBQ4D2AQ2&XT[4*CN8'TLI^,:VI`G8K^H?XLX4Y)_4"GE7]8
  76. M7QQ8=F_P[`M_'X^I%-")V?;Y'1N1><H",:=08.BKS=&RI*2RT9LZ<XJ'`WRN
  77. M:5X9N;M*JJVF;-_7E^CR/;ZO1`K,%8Z9-$O<-C6F@&!PQT2?N0,:_%A#-S2#
  78. M2=6/'EE5&S-2=3.K.I`*FS=.MM3LUY`G8UO'EC4`%-BSLB:B!NR^WX?AU=B0
  79. MKSDLZH0!US.87;Z;0&&?HYA7'/J=LZ+&\9KC59V;D]^*19V9&4\H^)/X5I5^
  80. M&[LA%ZBR=N[2K\)U9V=,2`4GL7CRO+*\F'.=#7969IH^A`LFS:R'31`LVU0V
  81. MLX`.MM4LE%A]MNSC[2LK[':5A=-^'].,SJ8*^Q7^^DNH]&9,FHHS`]GV?)\D
  82. MOH?>'@OH.YL$>E^(^'_GX[_W*!#3,1#C:Z6.SP[:ZXSQ"U4K%+YU*&P"C'B>
  83. M/:O\NE]783'"U$DAO&;^G2Z.PS*/E46.?,+?/TPT0S`Y0>J#5]@&`_W#\X?W
  84. M!YQ;X*AKB`K_WZ6EV&PHZ.BHCV;])PMA0T;9!LW;4-"=FMQ_MEON^@5.F_R7
  85. MWIO\/@]7ROE2L^_[/E=%*SS/8Y/)S>'UO$^_5Z+'^5[EU?:8Y?F3:5ACT;#1
  86. M;L,<7P-,:8GOX.7P[-.OPNKBU7\.UL-"SJ?!SZGY*N`W(4947AK1H][WOJ"%
  87. MYCS1AQ0@W!`6EI`V(\SM0%2/TL_#"N"O#:A8@B%N%R%V'\H7@?S@N'"#S0]`
  88. M/Z@Y(O+^8A-[&CRB#Y#)$3OE9,J6O#EQU9)%8I/&DWJZ=\G)EPY!+N]75D2-
  89. MY#DIDC*KQ^$JSBRF<6/)4)@1Y<8D.22/)EIKR$X?!3B$MH\OQX:U>0GC2RD*
  90. MRZHN)?7PY-_**IRXR9-U/=8ERTZQ(M_)O2L!*)*5908T->)@0UT^XOE6A#HT
  91. M>)$3DDBKJWS*/W!Y<3&VARH][#D2,)Z+L<&.G@+*KLL)*3EDEJD65%J"0Y?_
  92. M;9$BBZJN`-^\PA7VGE)>7\6*R.6LIDP[K^*WM[?KRGI$^"F+@[/;$6CX*<@<
  93. M`J,T)>(+_R"P]9.4UQC@+I1]:,(E3+W"R,]3WA4T6O%AR2EHZXQMB*X$D<Y=
  94. M6_4C$OAE:OA"QOW(R<EE4EIX++Q18\F/*C)Q'O>@L1=,7Z:;C7F7#DB\::D<
  95. M8W0U(<>37S]"&NA1RJBZ:9+R/+6:92(FF6:UJ,QTUR7JJRPQ`CRF3T70AE<X
  96. M8R7L:')439,KU60J+YCI4+=O!DS*)/>N&L+1++QQ52##^666XPEE1V=`HDV\
  97. M%NNYHON4XLLGCJB<$MK^7+'51@1QDVG@QRAL>4SK%UG%+;)@0_^M/0S1M8D>
  98. M5#X!-XJ5H(>$UKLNX\@3VW5P27:L67]PLG:W;U^SL+#:5PAT(9"Q55QE)?%U
  99. M9IC$JO'\0A(*8Z*FI\WBL3")8UT_S>C,P9ZB]3TF$K?DO1TU**CL]$!DJX#2
  100. MZ0*`O%V/&>A"#_[\@L'__YGXY;9KXY93-`>9<Z"/N_'T>9\Y[K_';'O,.'X"
  101. M!Q^M\=M$*#]P-?YO^D`@&2UL:#4MHAH``+],```'MW090``*2%-?25-?24(N
  102. M8\U\$O6$TNV;;C??[QUH!^;F9W)+@R@`"008JIF)(DMG_4VEB2;Z]CQX\")!
  103. M1']DD&``M)=U=TV_O???O@`"2DUS[ND[)))?#MR:`KX%T#70A=%5T2SO>W61
  104. MMMN;^]NJ/^]'1[\`^<5C"7KCDE5T</0JU8<;VM_:WQA=.2.96./+$K#)FT#]
  105. MS*CGFBRXU:<^*)-=QGL+"E=$>;1E[E1=L6'3/$-0J&8@+"J;#+'HG5CEDS#U
  106. M`*S0Y\2LL>>)0&<_=HB5/DB3`ZHLLG89%\G'8!#<G&KS=3BO-AP@(>;XU%GM
  107. M=0V'P5?Y^7TC==7[<-B2G-I\O?#-F'MR8.+GX>?[CU.7#8'Z/RAS1]<)^O3R
  108. MT;)7JY;M[B]?G5T>GAY.3C'HGC=X>GA5=O7\'JO*]_OS0QY^#W^^>//W%Y;7
  109. M[],<^UN[VUM?LCSX<NG%$I7^1(,WB.":QD_=X9`&TL,L?AF=<L.C)'AFWNO'
  110. MV_KE=4,T7ZYV:'#+)_`-89-&B*7],WXQQ=FS+R0RXNR&6+>PZ9IY,WZ9N+-#
  111. MU!B/9G:)9)Y-XCT^F0P;EF;6]NE_*5YXL\4L.57Q"(H>H,][T4^$V&>'%'-#
  112. M\%<TF')#GA[I,_US$S')ERJQ19I%*,`[S`57_(WPM@W!>Z$]O#3;VU-/+IPS
  113. MJ\^/MX@F96ZOPW_U"BO/R<O%P\BPG^(4B[9XI<ZO7]O+SW5='3EBS]<^0PDK
  114. MSK0$JD=^P*$8"Y,N(O;?9EX=$N6.:<\O-W<G+?:'ZZ/1?HT'KXY-'(FATS12
  115. MHNX"IA!<7W=-Y6.$/AFCCFASQ>WW;^O.3*Z1AEE4*8O'HPIGGDTAOT0%-9O>
  116. MSEP70X_+%UPR]<RKLL/9R13C*VT"V[T3PRSM+$GQARZ8MS^25T=R_5*_[,46
  117. M,H'G)>O]/IY?7T7E;>WN[;!=N*;[>K'$VVYN*^H>=EO<\G`?Z6-%>CAY[OV\
  118. M//>V&0M)7&;>!HL1OM%8J^WB4Y8>5TR:(?O#2^>=4';`J6+1+%-%GGBQ"(`(
  119. M=N73FSS*[(Y\BIY-!8?IZ.)1+GTYYH^O.-.&QY3_$T035[8/=P;7X;2E./.-
  120. M#_=M-/W"^6VG'K33MJTT,QVS<:=&4>$\7P_$8)9);TLPO]NXGUIRS;9O7+@P
  121. M`'K5LP^7TO*"G0,WJ\DB*&S[\U8;&AM6_IF..-/O%\_,<#1O`NGW*#7M)O77
  122. MKA_3\ZLI96L)LOM6<[9`ILEL7EZ9[O)8PH1"_0LS!SQI#0#IG#(&`V->"[+]
  123. ME[UYS3EJG05%GL._^B2G"`Z`K^&^=@&^@\-\6Z;>!W.$7P^L1@/H8Z&X;<:L
  124. MD>URM&#[VI)U*J"_3S2))-)M)IELQLKEI$167#\W#WJT&FH=Y/W6@U9AAH@S
  125. M9+[9ML-U`T:8%MDE]'F\XL-.FS4XX\9FVR5\1IUL`6OFPW0/+9G=4JA&+KE:
  126. M+^]F2H`&TD2^P`=0(J(&RU_'Z>B;:U_Z\*X^-`V?T>5&0Y<=/[7XGE66Z`QK
  127. M\E[AY\(F`3<LG]&XMNIEACMQL`MT'RU93TMKV[A8XVMD?L@D`+<LB`M24[PV
  128. MPV[")HQ[0%YXX"#VK)+V/&&=:H-H$W!99AKWA8#ZSW?/XZFB3UI"(B$OUCY>
  129. MMJ^-TIJ?KU;K3])\A-!I5#J*`9U$BD?3EN!/,8:P8-V_2LUIUF.$>.MOIM;)
  130. M(\?-*:\U]'KBR3S2TK:TH(?KC8!PV#`TY0:[H)ETD?/NI]N#SM4&Z^VBK1L#
  131. M#UHDR=['+AK+`')B:DS"(-U98^!+HT<6X,+$R^2)FZTK&R&WL8%2$'LQG$7`
  132. MW!\V'0R_L^?-C8;>U6M-]&?7'H$:CLK<Q-KY:02W<#Y_72;B870$39^KI-CO
  133. M(:CQ,1G-NI=(^B%MC<;"A?7G:M_WMZ?F'ST=R#]-!9J?V\2`(H'72>B8Q@S>
  134. MFC!GJQ0ZRSU%&]2J8EW-.U:)WQ)8UENO?H6KQN3$"&V1#R:BLP,@V.OTDDS:
  135. MW&:#46'>=G]DFZV"_IOCDU>.^)_-U&Y2>(8Y$VCYEM;-(?DMOZG7_!>+M*B7
  136. M:($^HUBT9%.3WA#HO`O<L>I":0I'._>:W%-CJS`Z2)3;6'RTW1&O(.NK9R7'
  137. M@.'*\D+^AWGYL/K=<@,#4*M<)=+NIZ^I!],>>F+2FZ8^4E).S_K@M+,1YVF!
  138. M2/6!H%J/CYFPZPDV)I$J5X)-'I1#%'B/<8H^&L#PR$?C8JJK+05'$WH7C2U\
  139. MCW3I0BUR5BH6Q4V6S^.%N'G?%SP8A#BJ)D1"%'6N-M5'<ZTE)NY<</*\&LX"
  140. M*>T9LZHF5,I^@%OF,RFX$GU!]5D/.^!*UHWJ2@\=>0\AS/HUQ1LC;(2.&O2'
  141. M2I(`2'YH1*!Y6E"TQ:EG7'].,TADD0U<O)\W4J/$\:T9&E/I?;:IF0%C&U)9
  142. M:/QM+H75L'05I%38&L6WX`=LV?7R*Y/-OOHICB):XJ%;I=<PYCE#T'?1N%+:
  143. M)V5;M(]EX*+^%#07V"T7S5ZLO/=H[R'!C5W2:5:,L.=4F<7_\>?K5#G[CN8H
  144. M<(NVYAQL\_9%%G)T%1<<:*IU4><N.'`#3A3)Q>#-"[/S2?%..@QC$D["!GEW
  145. MMWRV%\@_V1CA=X<6)7^SG^8NX4U,8X!\@1']XX^,R.%W!)BBL*Y1GR]D<Q\A
  146. M"-]ISYXL,4TT,O<5XW\8A^\8X/C1%)HRD1@X+X@F/S27UC:IX>)36UKE]^$(
  147. MC_&=_C._QG?_9WTO-G':)GKE=!:E?G;=7/<IN_?&>-9*W7HCH#-`)@;+X7BY
  148. M17O+C*N-OLEI-[+D`X^+T!_:BF@79&KC8G9*U5NT"X\5?F8O?3B92X7R`?M^
  149. MTGTL-TY9(-<KS,CM+Z5+752[KJ'7X&M7I0CF#5)LJJN[,'?\UD@1&%*!@<61
  150. ME!(;`M5]IMO#JCBJ_7TJFGZ%PI0X,X09ZFC<<+@S2KG(+)VVMNJY?/++Z_`=
  151. MO7!L8A9<7.U*23DD7SLJDH1TX1E]+R5?"H)4N6:R^+_8A'5=[/-:KO(CFLH1
  152. M]1'%8H4*L/A>:LQ^N[JU>B!%?`L'8+6DO?K=SQRRX^(<4H.,;8APF<C;T\=T
  153. MX=/L=G"=)39KO)SX8^`^"?M/T7DQ^*^"V/.&FU99.\GD/P:KU\B'M0:@L6<7
  154. M$P)2_E^BT+`X@W/9IH#XHT[]!8>+S)[_YW[>R]G+C,4(TN1/<+F<B9J`A9`8
  155. MJKAR?7LNUM`)5BFX`M\37F'DW%OO#>[,U872KI9PYE+>E'#M.ZMRP24!Q*Y.
  156. MG+/@.T#5R"K*8(65_%0O9P:=,/W9>JL%97B3R-$&_L^R'*=9DY`@3N045I#,
  157. MJTA+G7XNZ\HVA6$BY!1F6W3XM6H*%FG>OIPS!O])R5(;K?3C7SP;3M/&RT.8
  158. M:H==I#@HXZ%=WB=;S!9IXTBXDG1]D=S58X$,GDTFK*-"[.(*=?JS#)T[=.F5
  159. M"C![IWGQ\)&O@6'+;[+BUVY1S.!1ZUVIYVKRYD;.:A@_'CMB9+?H:%JO*%WH
  160. M!RL;:$[7E&D]DIYVS1EE$\*V*J"A9URRS@;ZQDE\TCUU/)^&FQ8:*<1<7>T6
  161. M2M3[*-2-LO:W]5S_:_&^WK=FU7SR;2DX7]>76]XXZ[7=#6GZWGH$DUTQW*GG
  162. M76ME]RQR[7S>53S#]?/F.P5O+O-TR6K:<>2?+E%Q"SB)D=IN%V0FWSXN(AQ<
  163. MLTT/+$,(Y]X\((QY.XWKRC,%CR9'#!2,K3]84,95\Y:O.7"DU\TTEVI`SGTZ
  164. M>6]#<!+:._VM&Z;<=^CPE=^]K>$@@UY6MX2S5F:GA*/.N_I<.0.673$!\'@M
  165. M7!T)1\W#X"0PF#A;VMI+HO_R^#'<N?&.33,KR[N]_[?!?(=X>#[&GZ!W\Q'/
  166. MIT;.`OQD/.N6'1DCPS+[U?2.\F!(2RQ89\O<1#H?&:28$KFT22SPCO4YIXM!
  167. M%_@SX0@:*>'*KH-#7-"._QR22Q_>.]Z&*B,`+;``EZ;1%ACAR@,!/.&)6!4.
  168. M:A0H3*#"RQ0_$=[YU1SYH=!I*BEBQR2Q!.$)(B`'GR#6@#2883-F*'#DI+\U
  169. M:QYXYP*8_O+/1/,67%,%ZC/G5"0%CS`*8%`P89T6/4@,)RZ\LG4#"^,,L</5
  170. ME&',2Q!O9"(>96:'N-#(&44,T9&K$1^=A@N+//'+4$E39)-.4&R/&*<*-!N8
  171. M"U.=60'D1(2,6FKZE2:(@=\DI8O6->6*&3`34Q)XU%:KL("FD<F6^X*=S*ED
  172. MTA#D4P$Q)$J5XQ!6/P1P/N&3-F!=18K!N>IF*XHY_3#H5Q#\<*N#:_`N'A]4
  173. MD\7[5MUCYL6`FQ\GD\B@!AK57B%<H0X6K`O-@8/"6;*NKNG"7<L@55U:9U=D
  174. M2LVD,W9M.6>/0-*1V*8!TW:LL6?KGR#='FY].;JBE(T@QP3[P!X8TI)$F!E_
  175. MP`XET6=UYI1`_U_;R\]T8W$1"<T4O/)V;[!7TZ@T"\F5BDBFS_7/286:&<",
  176. MF&\`4$F&2QG+%)9^B3LB#X#2HTA`=@;35UR&TVB],4L)O)L5JC-&')%A^`28
  177. MP#D:6'+'HT#5-&"<T?7D",26L`3,;%!/:2$H]:*D,&Q0?;C2C/FD^P><V^F8
  178. MW3F<7W=-X?N_EAZV9KWAFW8M$^3Y[M88T0XEY:8_-R</JO<W3SJYC5'[8/<Q
  179. M-?#UPQYVE9Y#>*A1O!:R>J+KC.-@MA&*AP)9PG%.0#DP$;)P<_-FZ:2L%80A
  180. M8/`UM4Z)2=KR]UBMA_ZJ89WM;]S6S!LV?#"@@/"]7KY.3^O[.,VMUCGAFP9\
  181. M<A?M7`K\&:DR(-&2].JC4[OJ$GUB->A<!E;S^B0S8)?Q^10ZBCR?-YA710_J
  182. MAWF^TUX#5>MW4_;!MTG)V^,.7242DI)],>@$>&Q.O(J%<<0GHX<7_\/HEFH`
  183. M#4C'VQ90J_&36H*%%3T1^,!Q%EMI"&>#*%-FQPHG"93;[S@>%`UP",3BCQ]R
  184. MN?MY4"9."8<D8=Y5Y1,AQ=@AO^5@`I*_'+)F4V6M<M(2@A%B0C+8IAN''0AF
  185. M[CDMK`"19L<L<6?$'\^R'N(!B+-EB**"I@RJF!I!16`*'Z@VW1.%RQ]4I3\<
  186. M4A)7,;]DDOP,;Y(\22'5@!;?E`G#9``^;-0:B4328BX`%;<9I.I9IZ/1R\_2
  187. M7JQ(#7/W)X&O:IK3V1Q=G,))BO9S&UH;")4>)RX$9Y6L[.&K*=>(?V!(?E95
  188. MK,U6(4J"Z`UC]"OB-T4K<I8V`0T5=<.9<"#&)VQSJF(/_&AV:V($2F5DQSKF
  189. M[`(YQ!8\&%*"R[`I;()BH"T><4`0I&R;S.AB#0@C^QR9[#$I:WO&.BT`Q;W:
  190. MOYZ[CDRR2F[JSQW_YZ[1R1B9<K=NS:,&>;?_J'6:[HT2_WUW'EJUU4'L2OBJ
  191. MP]!1<,I:KO@^^M@#FK@YF)%TJ!3\83KA<_6C<6$CYF(`X8I23T58!/'A*?R;
  192. MFB0M2':#IK>W6%E0+]TO%"S08>@F>LL<4U<CSXQS1BG>5DB.">2VNR/$*%M<
  193. MF.F/)8I/F=E2O_HU]RL0J2<\P8'V5G13@NJ:3+IG)P@J\R.?NH8K>+CD1>G(
  194. MF]COMW[2';5WT&1M#%??%T%8GE`G,@L4<PEN]S(I5#_6'2"+"AB=#877/1$S
  195. M&A[CI\2V:XKFJ*/=[OG%'IC>]4FG"=;WCQD0Y1CRQLL4YVHJ6F*W4#?9L>$'
  196. MQJF#Y0?K(/5VB#TL9G85"@=JMM%V)I%>5<YI#TXFB^CA]+0?:RX^J6.<5\$4
  197. M^&Q31/4C)E%%Z2WN^K5_,3@D?R3.2SJ*SY=.&2.D(N;00IF8F+!]:%0=0B<M
  198. MM$A+LOU>7%%CA$-_RHLM9.7'1?'4DXNE=Z##7-+&(;4\<5+UFPRUZX0FHI1/
  199. MDW_`RQ$[DEQ`>L511"3!-"D0*S@+R.U3BU5N(G]'36JQ0SPI%/91%LH;SKKM
  200. M4?=;-J].D40]!,S0X/"B3L5TOY4B'A",HI`U^"T';)32?A=E*:Q,D,VJ$JEP
  201. MA*"TVR?N-<"(8&L)JS<68&Q$JW:1:.!313Z3OFBAA6/!D`&'[.9K88-,@EGC
  202. MO[(OM6LPZ)3BG[O)RW^/1*4-+?_WUG1Z-6LH@<&_4&P,0H+D1#K@;E-AOQ"F
  203. M1QRQ&P4F\7`,.F"99>DX*?!<K?>1#GEFR1B:OB\MBFUD/JAD*;(1[,?6:8_1
  204. MOU-1?]/PZGVZGV5L2:D&'"?![E'GYH3A<3%+,Q&P4A[LCR]14QBY28!?K2%?
  205. MQ0E(7/<^WW"S+-G-2OP;[6RZD3MOW[Y?D<4>/R>#=/\\1_GA/\P-M_(T0\\6
  206. M)#$[]]Q'ON$]\76C]O';/?/E^;EI>^Y93F=_0`WS`-\P#=,@.(P#<,@(%@'[
  207. MHCKR/Q`,!@%LP"V8!;,`MF2K;`#YY2XSC\@!?,`'^;MTP!Q&`+A@"!`!TZ9?
  208. MWZ9!Q@>]P_OTP_0$MOG^6T_)@ELP2WPG^5@GB$5E7Y(-@/\F`+I@#B,`<)@"
  209. M!@`YM,I5/^[O*^8"O6^$]Y:/>/DH8_S;/\VF[7R(`]&&$0WY];/;*'2/-#UQ
  210. M,H839=[(Q0Y;.,"7=:,I)E5S?RV>:$G>!8=QE9`EP(>>FU)1YS0`#]94%Y9H
  211. MGP"==*R52G#@IQQ1;'CYO6?(\DX&`(>Q.Y=`KF2/RA;EP@AO5+IQS_CK3AMA
  212. M*$*RH%`#Q^C!S*Y^'TEYI)]7%&(J+&R)>MU/`0@NB320TXI=,V3V^[7Q.-:(
  213. MS(Y?$R!_[M;LWC:1MT_H\=SBM$V".QB/]<=].<N[7F^'C&`[?N%^GF[?&F/;
  214. M?O&LJY=O#]/MO7E@=^^F/QZ\>ZWPVR8&OW#8?;MWTQ[U]VV;?SBV=%X_$^.[
  215. MJ#Y+Z8]RC'@'-^#'1M^_?9CP7GKB01+>O'?</'@V8[]GC)J*W!QFTO?84[]I
  216. MTBXMW#-ZW><7CO6B[*CM>N7C0/><6@=SAO(C"Z?ZOO+1NW;=V)G4I;<O_?\.
  217. M1[]G+@NJXPNG/>[8Y]O<3FSCGH+O.RX>0K805M0XQ<:C2?-*]@<L+C;R:*$J
  218. M85O"-.=10GE\QNODX"C7B6MM^SFL,M;/)P-[BKXAE,P*\S<!QIL?/C[>*&:(
  219. M];QY9)HN1+[K;VUSD5^ZMW<7JDW?+ZO?T<W/@Z;P\XB-=L8_R6=N`<UMT3AZ
  220. M0':1-2CB^9BI84<<RR2:&O@1%;Y082]BE0LYJ%5/1W_I_;3'<>70$%H40J5]
  221. MK^JBT/-AZ<##C7[@X]JH+L03Y6<&M87P:WE:;W-S@)&-:U_[L;&)N@^<_IX3
  222. M0IU]TN`\2VJ'01_\LRJ5)EQ%2'<"S+\W[N'#/&6#OC,^V&.?IY;Y%(#;OWV*
  223. M[1"`0C4PW0A6F_`6A;SQ3T,F0?1`*E<DD.+G\_%9VRJ-OJKH6F_<7)!04HG1
  224. M`/KT%?.!P$[NLD!EM$'@K.Z#?X\'JP=.W7>5.-MD3''Z1U7^K(VRYX/<^K"*
  225. M\Z3-8Q9H1P>[7%@Z>/DY_];OIX6'[N"E4X^+3FT5[PS$(A=LFEN!S?-I[R<$
  226. M">'V?8B"_P6Q1QDEG6/'+>Z6IW/,(@7\1$7\!-MFX-P.[ZC\#$Y^+!16+#&'
  227. M]#M.G=]I@+W-5I^(D_<O(H($PC_`GU*^6TS\\=[U7=6DH?L]4783,QOU4]E+
  228. MJAOEY1)U4$WA?IGP56*323_*3V$ZZU=?]7U9NWZ&<A)5PU$VX5"SGD5CRQCH
  229. M9I2@E280(1V(Q456:'MCS:<Q<#6`'D*Z_B2\/3CEP\'B+"('XQQKT5'8^B]5
  230. MA^$7L*S?#9PU30;4W/!T\XLB%9MYNX6<OCBBS./%//'(VD#;%5H@>4-(S*JL
  231. M_MI7?K1I"M.J,FG659/IEZPZNA;T/,FJAF$Q8#(-Q0>UK%VOFL#L+LP:.7-'
  232. M";Y\/<NF<[BZV[1IG/D1#Y%4;\<7&?)!5U#FSJ'J>I]G"9RZ-O#$G77^$C*[
  233. M&7%'@/?=P.-?:1%->GN0N!;`\#9'`EI=T=/-(.*@&JX&VAZ0RSIG'US`B2C@
  234. MBZH07#+*=QV+U5-J?#Z0CI\I8>J0,HBUDPG`0,\CZX"AAZ8CRPK*+B+/B]KU
  235. MDJ>@WMB[]%IUJRU:'?HW&G'&G!<E6VG3[_-V!IYUIZVU9<:LOM6G6K1T2Q?S
  236. M]EH6CMM]J!YJXXU<@$.Q\``KHET<;<0)`<L@*6A]?'VW<5\JXK64^,BYH2ZY
  237. M::1?)O#CRI8A&P&'FD+)'&53GS'##2H?-7$'VS39P.M[ZC\104+\?-YMS6X.
  238. MB6^`1U.F&;X#A[=N_'GQ%YB@<:>;KC\\@A&JTCN6\NLB,@[=,0#.RLDAPNP@
  239. M-;?D5R7K_3Z>7U]%YD8.D[6=U<S@#$Y8.N1^7]4;E&Z16Q[R<N?EZHI^PJ6"
  240. M?L'$C1YHY^\"'0@F@'[."EI83#7GA,.J:H\U/GOU;M$H%,[_GJQ.29P,_`ME
  241. ML]U[JURZ(A8?!KU'"F=@NWYG'Z^A'7U!U$.'8:-3I/V<%O?/@?*.;$#_2^X[
  242. M+MF1>M;TQC1?":(]:PVZ@3^[@<?KEA4%G@HZEKT4E"LO__PE%%UM`+Y99ZRI
  243. MV%;Y@(ZY91]?[87VRC?N^P35_TS7/Y9KJ9M!9W2N0Q1):<Q73*N0^8>7P\/#
  244. M--%FZA#$9#5^99%ODV>WWE$'Q@FJ4+D]J&MTAH3VTPQ/=[O:D,3W5M:8!8.Q
  245. M?648].0%RPB/WA0GPP;"OFP+%BQXD:;8'V?8@6#6\&YM5W8GX4N-'W6%'5_H
  246. M$_$('5F41:?Y%&L!KD*9AT)8N^?R*;652T'`KNCIRQ9^N?)N;-767//$OM<*
  247. MNCV.AG3O@X2[Z7\QDLS*)(>_XY^Q8G!K[V;^VQ<U[$=\-_;9.Z]D.^F_'99H
  248. MLP/?;IU`Z)U[=''-M[G?KOEM?EZ_+77.DD*KN=:>Q9DIZ51.@`*#I:V)3'-O
  249. MV&=L-P5/;T,2<8?]CSC>,N`TD)<D6.<<GN4A?B20OH%-UK@&4E1SQ"H=SE)^
  250. M%"/-\!JSZ&?NJUWYRDTE8DZP`;F#"=56(H[L4<MM']\2<-9+IT3IVF=%ME2(
  251. M:KO*IZ?U"4L<IM<-\GW*R6U4O-6WJ-(=#!I-HI.;M(?%:VU`6BG87<!&NL2/
  252. M5]AM54)IP!Q]BKMTUY5A>%15;'5XKQ)MME7GXU<Q\U.98%F:Z\02(O&O!I+7
  253. M\JQ^O%V5>IB[4+S0A_P)-E94G!C:KKWY;0`C)2UL:#4M7P(``!8&```%G@@9
  254. M`@`-2%-?25-?24(N:6YF;Q_Y`BEJ8]8VM7?O7W%ZP/BWG0K`IU\PF+U.!*@F
  255. MW9,)8&FX/)@8#"P:#4,#[MV-5#C-B;\&`Q&(R&!U*P$&AM,[FILC!:F@V!@W
  256. MWO6[=:H,%,#%S'P,9G,S^X-C'+)A<`P+IL*@:P5PH@<#&['ONE]]2[CF*@YZ
  257. M,?Q!/1R^M3M4]+/[6!T*`&^3+[[UY.;HKA@GMG/V?P9_J41Z>VLFMQAAFMS3
  258. MG!TF7B_>K`J%3EV`!#0>!6W2:NZ85=#PI!6X'_%;N;$$"%*:<<@0X"SN<I&;
  259. M(>X&4P*#(]0Q8NA*MN@5N=9P9)N@"(`D4H7'._3"0#%X#9!S4QMQ8J[?'-+R
  260. MN=>@^;4YS-J?BG+FE5/!HZCB^+-SE[8(N5F;EU%GNC/;[U'\GYZ&:;4VKT:)
  261. MSGD[2+DE6_[-<YVMCZ(BQ/<>"]$>E8Y$*QHF5#?/5LI0K:2:%5\]?&1NY#J@
  262. ME%VG.>_33V89+YZS2SV".(]:DE$8V=-18G3JI1O5J\*BRMO$E'FQ5&Y=&IP7
  263. M[V-'7H/G//J?^.9&7G'\^'_<X\YM1+QRI(PY%F.2#.<?;&IKRR$<1QDP<`WE
  264. M$=\X<&`1O+@[QCJ$0C*W;AAB;C%O?D_6;V@L^"/*>J7>?G,+5OQC:]UI9TL"
  265. M4B.`5F)''JR<K#%)L`L\G"W;3W(]J2W_/;__YQ_8W17J7I,-]FJ[S#LB+[NB
  266. M\[KY(-]]_NO]LC;(])YY^LN/$77B-=N[1HK1D?TY6:4)MU[(9WC0]!PX</%8
  267. MPS2K@\-B'=];[[RYO9L0W/KR'Q+@WR/9?.S!YIE<5CD-*']YK]7.,";O+6QH
  268. M-2V]`@``9P<``#6$3AE``!!(4U])4U])0E]A<VTN87-M$TT"?V.7LB3K./W@
  269. M#^RX%`>>0#FL5EDJ<!8R-4B+9+A$_QN\=T-[='=T%?'+=W0#F6MLE6.1<&Y=
  270. MP7!O@'<H[K6FGK#>`SF*3IQBJF)GZWNF0D`DY,-\`MQ;\&R&Z4:%T'*IT!R$
  271. MH4.8,*,DXG'O0?W*!61*#&[P(6E$6V7DB"UP\-L,5!M)4X$=P8D3+[126"`-
  272. M?).B]?A##UW>;ED@?-^O(''?TZ.6\&/&DN44Y5`%Y(]O,5:RIK==WZ]5\+&)
  273. M8I7"#^W2)M!:^ND]0&WF03&H/E"9**0%2BTRF[^+97HV6?R'5V$LAMY4!_WF
  274. MP#ZIZ%!D00H+',QB!!3:];3`D(DJGLV(1QV+@4'9<QBCI*34!W:%_,<X"<C&
  275. MCSE.1LR@X+G*^^@SMMLD($8D[1_(@VBDX(FV4/=8A*F#;I34(+0%+*0`SE94
  276. MX@5..<JHO2R_5#_]@_M#^XA9G]/QVX/\?A`)UP&/EI'*6\*Q:@]U.A4\%4IQ
  277. M52E*-):8C-P0M[Q+F\2.'=K8L->#[P?8Z#]MF$EMOBXPP,<+!0_&]BSW3"?,
  278. MKRE(XX26MDI0?(DM)3K5!KU];33'&E95@&0C/YGG!"2."`AL;L3P"5:EQ2NS
  279. M,80V7TO).7)F:]:BE"B8)F5&X9J$Y6"*GZ"FQGE?,!SH=AL'L\#Z[R8K_3?^
  280. M3=/8ZO,S+`/1:X1M?H!Z,&#SMF-EM7'T+S,O_5G-\`M>^Q<W;3M+G4U.6C+.
  281. MMJ!.2MX'%VM#:PVJ^Y#6&S7J(F:WBXA`EJ$;-7I)+-KZ;D.H/\:<>,$MN%74
  282. MY(R]V[<L?4H:#D*EVL#9Q7[-OP+?^5E2-3RE[ENP[>]W@OF_9>OGY7W@:OKY
  283. M0V?R12I%3@SZ+!`O9H$S<@$'+XX\?QCVF+ZO97'V]\<.O0+5J`Z'9]>WZW6;
  284. 1N9N0Z]W*H)+=@'=-_GO0```'
  285. `
  286. end
  287.