IMD 1.16: 8/06/2007 8:18:20 TNT LBR TNT LBR !TNT LBR!"#$%&'()*+,TOWERS BQS-.TPA COM/TRAP COM0TREKINSTBQS#123TSORT LBRh456789:;<=>?@ABTTYPE LBRCDEFGHIJKLMNOPQRTTYPE LBRSTUVWXYZ[\]^_`abTTYPE LBRcdefghijklmnopqrTTYPE LBRcstuvwxyTURBOPMPLBRz{|}~TURBOPMPLBRTURBOPMPLBRTURBOPMPLBRTURBOPMPLBRWTURBOPMPTST -PUBDOM 064 O^CIPHER TXTu$CYCLE AQM DECIPHERAQM$ 'ENCIPHERAQM1 EXTRACT AQM> INIT AQMKIOBUFF ASMgIOLIB AQMk.KEYGEN AQM,MAIN AQMhNXTBLK AQM-xPARAMS AQM?7HPERMF AQMvPERMG AQM6PLAIN TQT DHREAD MQ dRESIDUE AQMRIPL0 AQMXSHUFFLE AQM NSPLICE AQM/SUBSF AQM `SUBSG AQM STNT CQM1TNT DQC0-)TNT IQX]TNT SQM^BUPTACK AQMc?READ ME u,TSI#m~rU.idHp#˽׽[>Ot\/%,plvXPq#Ѷ^% #'"V :Sh=ǏsPP? o}a;]Na lQZCs$ztYw3#HMmyX#q<1AEkQz27>I|YOO%? ]bu ^l]B5!HM;|/ 3RŊ5UrtيSB561i-\mUm5zR^icNfN ҭka_xX9y-tB,9}x?^q-[JD2EyheQ=\S2h# l/LT h^q,/G7rK^sn>oPc5،.Kd\zqNyq:٥`yY!sdr+` LtD?j{6dEjޫYws㹭&'05zU]cLZ?봄Sщ7Ϟ"nj ~*Tb}` 02WZ\fP#kj??۷LyBXp}tJ1 yu^.`7,zNgxh`MZښ$.L>x'Lx畇aoʕ%p]C.[ (;O=f5 PI.vKN`2+Uɡv`u #g ^YMFIغW%tz p.^LTCI! ub-w+D>m5 `Q>{Uw'-]AМn,QMq#N1Kp4yno@lEGvY@Ϡ 6X^Ȯ5 Te qbX^a6,Uő]5 fb.ڭf(U؅= eQs, WgPՌ3y,*, WgPk3jͼ EGvUdqdW}^\AU6Alf^׉bW<\g@f T1-1LzȮ&qsSSf;\M[OsJ>mvՏXX@TY@TE, gs U{rEسc@ԁ}aa0X>, gs l䊰gaɏ.쁨=ra|Uf#m[pчY@n6) 483 2526 NET-WORKS ACE-NET, Leesville, LA............!(318) 537 0276 NET-WORKS Advenvy[DECIPHER.ASMN o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMyYPsJkBd89v *У4F ׭E 0rtꉒ4Cޟ9=?il?h}Gz Crk/Ns%h%i`0m8EqBEK V$ɨ?6~idVNEK}e2TeYJ |Ŭ y P4~0Izbn䔄d/Fum_t'0(u>)d.,aj#BQ)NvpW)j?kz,),?,8[,N;Yf3P@=M(5!м1QPJ@4/UlMݤi%$vno !w;A< ~)[[Z? !o~wPAҨL < ;5+Lsb ,( [eH+kcG [ eVYcOy[lHvLgCpfE';:alK:~:yRjŐҽ+To 5J /\ ŹEz=^j*V9>׮V3fݤkКE5b,dVzׄ6-X]&N؟6|Q@s$I7')Xjw錰qtg Y%mV\#l3Vz\udU8nY’fuY۾/Kn\r۷]rm߂v- ȕԴ 0XVQN[\0{jX , ?tf?s+k,icjEbBAX}.qW0{:P-n@쯯QB, PӂX5XKnkAW>a:+7iUcur~U 5Xbuցe jRЕoK5X(:۾ZЕţ5X`u, Wn:P.qY7 WE0{UXbA)} ie`Pӣwc=* , ח @W>dX@.@MH3|43XO AV\LAM m y V9/AV85A\w܀jErIL@M mFr,Al3VzIIyjXerӁt1+cr,Avֿ;mƾCm5zԤj2sY.f wھFW"蓙(fmՖ5+}֫&V?.ӘdUruҁ, W]1ɪ䒘tXwf+mY@.h1&?~00=el`azYq37bx,' ՘~F15rIL@MrIL@MrIL@͌䒘ldaIcUg+-q2o, Wn:P.fݘdUz0X}_BMfUΚeYvIV, We# 18XXfe= 18tt c#pe5XqY7@ڃ.X@ycn,Ucu=fݘdU~`ucU9tqr1e=_ƞdzPC< Gig7lrh3٩&&!)n䃎:74̨$Г*6jMtTUS~oIܢ$o=cHnT:! \8l~(WƛC#̈%3#4g5AfŅOlz+9ՍWdP5쌳{ ,xo(f7^(5pW&gY~{:Ȗ*PE4R Q챑 rFBíy9Ucv CYCLE.ASMS o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRfIŀ  o -VҷO Mt;MҷO MtMG :KzQ5.}Di9eX n6,jY"E?@ABCDEFGHIJKLMNOPxY</*j#Org d~KYN>+~سxKXZz‡Qva|JtqiZjyzY¬̮AŃxzң$I}, D5g񠗮X0  gų\\hj䢻YQ5@lK7Cor n}Gq}/7ìxcaMq䢻O\t׵}r]ׂ-  TOvOxܱ௯{y'v@oY@jga&\PbG=)O,q$G˒P3`JS'޲\Px~b}m*]l`j-odVڰ\t׵} !}HX@Tɐ7 Wi[JW'X@._:]gXYY@.Zо]>YAƆrŦpr~ EPQHl`,y<^_: r 3Yx=V*A~'JdUJ=Zal e kw+Kzߴ L5luڍ\ L5t 2g P:~KxvEw^g]bʡ*#z[ ̬Jdf ^ ̬\dԵ΀jzbUFxUЮ6 3z|;7$$.}l+|^gЮGaa*XXXXXXXXXXXXX̐we[XXXXXXXXXXXXXXX.Xfeo_, /s߷le Net, Chicago, IL.............vlINIT.ASM_ o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^:a`^lU4R#*G6apDFT+Ѝv\D 08"Z-uh+MT '@#VKF(6@-v&b @vSԈʑ~`O rhmڨ:a:]mdl-A8kQ9үЕ#إFk݃b'@R#*G1"8]jإ3y,~:a:"Z-uG{V!4=j|MEPQbQ1- e7 <'So4{T*5EsЕo FPQxJOk X۳\X@.J"P݂|[3Vڰ\( > @{LzT}=`5яP; 6, Wl*PgEҼ\( оu_A5[mva jTk5T/3Kk"*kQO=^c&@+__*Qըr;'Q\f, Dr;'Q\f, %nAWؠ㤬aw>.$}VF+m 5헛aVħS:-bztJrQ$9 EIg, %?Y@<25R\ZV=auǿX@nӴ1+M@/>{cC5kQOPdY@Yheo?@ABCDE.apQj.5VaVA6[ ;iW`Jg((aJ,R_nPp Br:kإKW=H9a:Mv2 - R}ֆ;C΂PN؁N+  ;W'@uEWU3<.FAW:a4aЂ]Tנ8a:@7 @1/N؁N"I8Ic)Ye `=)Kg'@I%Ad1~}v:aaZ T^3m&, RÓ]fրiL* Rq4XgI2?L3f¦10H O9h;_AjxA۝0H O9hAjxA۹0Hec4~0}w#ڨlB T66x7C2oпi`DFb:ET+aΤA T66x>IA*(6_MEW3pֶ]jtxvF'EXQ9үpp(, R.0H9 BXmdl B tAL8AʁnH{s71> <>0H9пςߛy|) _~w T66x>1Go#r_}Z$OI^{aPA Xa6 *aӘt6~Iw-< T=(.@.lZm 3i3a k)ӌAt?0H O9h;ݺ+Gh D_YTAll@`8{P<~B5(6Igw e{aӘtvw% R"@$KSCeUuW+t07{( R؀$ Z[䵿7{󈨴@2_ v& zO Ux3a78 ԬAiL:YL⹰iL:J (LFGHIJKLMNOPQRSTUV^ia z50OH[$Kn%*ws sXu!VA%ꀯz֠WZXu(ѷ \ wCp>b@ZX~Ucu/G85h_dNgC=őr=;ĵC*2ZX>b P?#f.~J k~GY®9֠wzwJA'x[|./ ha {LA=>G-A3yqх% 3i3hſ aan`<,}3(7Idf'h7 AfzRv0^O Юi}Jn, 2؀u:]enQ =;Jd.)@OloFIl ̤l@頮}ubǷ}0JgCTAfZ߀ҦAfR6tU У[$W{bG1(*aiKPZtXXۻ{*Qd=r 3Ysʅ/6O 37z+V9$jJ }zzje,0{n* 2`J aVxXFdf 7:$/^V*' 2mՀUYl@zby'vBέ@i+ 2]# 2mՀUY,@6r;ĎbPٹU TPZ̴EL;\x=V*K@\vUw^gaij@頮}ubmO3\m*z0 fKP3J_-@OOO_bKi}J]=ͱN;d-<~xvEw^+ra2υA*߀b?ɅA*P<)= 0j=TgFBEɠ7dBmao]nA T66x>"Ig 宵EIzo6@kP T P\?<nKP蠅Ag o@q6)AYbӘtv)ӌA\4&A*߀|2gx>-0Hf [߷65BF]P T^ ԰9օچ~aQS5IgSQM 5x. Rz0H !( ԰a" R 'Y:^gF*-R}W0n_Qi6N/K:y.ԝp~0H O9hݺ{J`EP0A*P܁-VUCl2بll@|C:HAj]2oaZY&f@E߂tA*P<Ơn.pvlEW6K}}' R؀b?yA*P! R70Ho (MGo]Fm,MA*P DWUNq~au+ Rzw[F+,҆A% Ry'Y:؍l]U<-ƭ (Ƣq"]>ƭ INb,x^*8iycøR!JZl,x^*I5}<[/I5}<[/n-X0nTJꥉazPZ3X0nTpֺƯuc '-BTB3}<[/jh۸OIKti4Vjh1taU==9I$%LL嫐~z=nKwh@:zGZrBi:G#}Ϯ$!SHZ ]]J@ˣ3/IMbBu0CG#/Cv% ۸XVS ˣxWٹ4fl_ˣx}~4aY"{y4@-/qUݤw;y4>i6Xc mEɣxՇAk:JhKy4~( j*H__KX'yYwhܣ_YJZ{v%ɊG#5՟]IBI n1v_dEɣx꫓Z}E_ʣxWw.d(iEG#W%58I8˯Ϯ$1ش늾G#p},,'P~ug NuF4 y쉵t\l=/:ikЗˆ>|FπC/K˻PNZޅ0Nˆ>_/ƢӲO/3㐫G3k.w1 }z_5IЗh^?+ߥ]LX MpR[uiKy4m\WqVm㺢O }ZCП}GXsvm\WqK̡/ƶqsv%O_}rh㾉#9[C tZkh1taU==^ c*M=ҕ$LL+ҖҮLNbr sz68b.v%/)w($':H ﯄AjxA۝0HecwF#L8ll@wSЩ{UڨPYa'/ut:u1 }W0HM Э[T B4ilz% R/Ơ¯Aq. R}ZA[/ R~=^z 埚wiTA?5@$Kg?؍l]U<-2X ԰0H%TX4EVx% RwT~R'o_MA*P<ә0HM Э[T B!+MA* U5(΅AO1hAʯǠ _A\S} gSaCPd +gׅa^cChh2ja2An6hQ0H%E9]9խ&Q鮵h2`& RO;Pd0H=%kP`"+a=;aJpRp?7 A7w[wvl" Ժ._Km}Eu p^ 'E|tuu\L:$ΤAOGaZy^79^ #0H<4~06t0H<O$] i3;aZy^7eK> g|uu\浟] 絟 Ԡp^٥p^h{͝0H /'Żɗ;aʼIAjXANNJ.....................(201) 994 9620* NET-WORKS MAGIE, Galesburg, IL...............(309) 343 3799* ;---------------------------------------------------------------; ; 7zxc=}7q}c> N%&qXt8b,: ca310ij负 P/crϮ$ɕve[M%4cѩa[B40CzO~ $}GXsv'y4ڸ9[zOwoJ8Ik$N֥Q"s> xc=M!-;oG*_^})pDq.icBnXX7ث^O߸ d+.E=BF`PCuE!")PG%kE=z!|e}9;j[2b@:ggeͽCiu_%svƢS Pgѵ?N[Tj| -6 ed,:%m:yQ.\%}GXsv'y1$mI]3T"g\!WZآ贇/T/u.R۸E2EOoѧCПĖ8* 9& Yb,:-}GHuKK0d,: Xt)m뜝负 /l5>J[lXtw:ci? _E{s0S-N5R`,:}{-ln'`g>PE=|U5-Nu}KdUEOoѧCП|4H#s.583p}$W$9;cѩBD\9?N*&gӸE:FK$,,% uƢӧӚ\GO>PVb0>BM?yQ.В :gg,:;|)ǙZrS쌭uT|aɻҮYؤwJ -ЍE ; ; IOBUFF: Creates read/write buffer which the linker will ; ; place at the end of code. ; ;---------------------------------------------------------------; DSEG PUBLIC IOBUFF IOBUFF DS 1 ;buffer is actually 4k bytes END  $START0K 5DU x MOD0vYIOLIB.ASM^ o  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]zzͿWwFXy7-K_mC~?ͅ1&7֣~q{Nb _{c=j؄[#~-ܻ,.4.coGo'=ycѩFN-Kel,wX{c=7Ï%&0nTzޤ[x{',NbQܩTE7֣{c~5}<[/ή$1}<[/uX0nTƢ{s0>p=؃c[ueͽC'AJKyB|J2jXt *̏ÒPؒT贇P/dc) qsvc NalXtcn |j[210N{8r!NRTs-!|PHZ ]E! l,: a6cI26擠,2|ꜝ4qXto 0_XtZlCIL3p }cqN{8‚>N+rꜝ4E''XcXX/ͅ1&/=9\8Vv,b¹9 s5o[ZC_c{1,}'ɵ$.NgfcϹOПRD -._ci?@.ܯNaL8y4JLƢSͽöh,:喁>:g|-K=ҩsv,Ƣf! ,Ƣ6cI2X7֣7ËqsaL |ᗮ$dbi.9\8R B -. w\KL⢱负 /T_s%_'itXtw89;(m$ci? _+j|/MXEcѩ\P㣴E! 诼cI2X7֣7ËqsaL {m8IEPZ>@5џPp_5IЗh^?+ߥ]LX Mp8b,: ca310ij负 P/crϮ$ɕve[M%4cѩa[B40CKEYGEN.ASMe o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd=^}WrVC307N0 ĸQ0֙(YVrQp , sgan:ȝzCƅ)Ų bYRПCrueb|P)^ҥC!j^whPT)˲˲{JACgquta_0`9/r_>&zaR衂qrU|*n'l3ڸ0Es^؃C!4E5?xa7Um. 65A\Cܸ3Q@=q=9*{A4U/ z6.D7C:zazut"?^؃xD7ؔrՋ*ZCqtc {}n3߫ϿS;e9q %4AKZ>5825-Qn_yc=zxcXcpC_ S~T`6J{,ƢRPEO-S! ;Khb,:9Iozzx1n.4sAZd-]8! k$FJ4>Ik}>Jɵ$甕cYK[7֣756 10}'ɵ$.NgXEa3lƢ~*@iTs-!NCXt,Ƣ`6$c7zxc=zxc=7T?{zYKsZ78)w@ZoG=J9eXgySbxc=zxcXckQwgч>ZbEa3,Ƣ06ci?^=DYE{m XtlƢ`10$ky1n.4ݏw{KHt<(uDJ-oH$a3CIpr-1Ƣ0ci 4q!ETzaN54XtlƢ`10$kŸ0҄W=rD, 9Da-]Zޅ҅qoGN֍,Nb#nၤѵȓ~4SVZџ⤦>\ɧ\z޺ܢ7zxcNr0f$8Eci 4qXtOEVcѩa[B404XE! l,:9Iozzx1n.4_=>&!;cLR. }iB_XKZޅmaq$8YIFz絸xgI,49.-BiYwXsL3$H]<J9e%B џҥ]XDZHț-X1×>Fi {\lA5k@=s j/Aoo/, A^d( ]`lʋeOdz얓&헃 ,Ӳ7 YOGLۨL]Ja-e (֗›}( `:v lw9ka.31r0g %P5/iܨ5>v lN@*CT1n9mA}@$ QgT!T9PmB;]wW:٨jq 6x7̵zQz Í: lTlnʋ=ùVJ5)+UUmA6Pm܃؏,'?/hAv4"}a|4Vs衂38Z/V*٨jq,{?kw\堇 P9ܨ0Fuf馼x}q8Wj[&EXEYd:eI=x7 jRWp/ Ie-P9~}qSJC\ lTlew/ CIXxY\GE}ٶxeeڂ) =TB jP6=X$0ȶ(KVX7X'-8l,: ca3S'-﫱Ts-!NCXtƢdFoGo˜J^o"i>9yYiI,%~:џ~Ӫ]Z|#G^?kp4yHe[XX7(i3r C<Ng،Ea3,Ƣ0fcM,Nb$>NBN54ч~KY?$Fcѩ)v_NK^ }8_NCXtlƢ`gcI2X7֣7ËqsaL ><{H^" Njp ;i҅֍)wxc=-BXL^'1Ikk /"aD0$N[x[qx.E2oqUb\ǎܢ7zxcu8l,: ca11ΰNƢSͽöh,: a6ciNCXtr5b\Si/<{~JHhB YXKsZ7J4>܁7֣HPG%=I@Z䭸Z%u]IrvV\ YܹDE7֣75T0fci 4qXtOή$YE{m XtlƢ`10$kŸ0҄_>~JH ,%~a-]X]e#\Kk]ɉ4 xc=-/)_$.nHi|KWDڸo+NjpK4\KL[x it-7֣2-G4SV2gW GutN[z=ƞZ:މ=N593v% Njp[2GI=_E'ޢ߼4ƹq.8jXiݼE:`C&oNjpn-5J,;wcI2Xt_dM$~:TT[a-P;uP.5}4* mpjlЫALd/㲸Jc5GsrwF70Fuʒ4%e- QY)/A6PN( PiXˮ20F}*n'LId:e?%0Fuʒt, hEb W/ XTTA6PNw_xBp %A_d:eI/E^dۇ 7ބj*8 o(ˢ?( Ieot^j>Tz_0Fuf:*F?qyQ4*8r0 ([;a_EHJWV4T\@8t (`^n@Sw/Fd:eq' QA6PAY +jUypr="S% COxOP9~a7mEI/> hEcݬ샬W*fz# QYy`^* mN]CNW C; *8C8ϧJ_,= @0Ȏ-zUK+?WҹL J?%dz=AvTm+~ UqWs+`ٕ{: hۢ\qr mWv`tutQѶE NW_ q+wX\W&m\(@zQѶEz9'WnV!ơ <*~ ^w ;*ڶWA/)+᠗5dzMXdGE=j,+j;qCPyPx,{QѶE,'P)l*:w:^Uq(?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab ]fZd:eq' QA+:PK;xDQK:a4_,0]F%SE>UOzI' QYN y80QN5~A6PNb}y{ >o\7YPd:eIڟNdG(ۨ}ytB4v50A*̕;䱊5^ cw*V. Id:eI̋:_Cxs]lTlnʋkaǝ0FI٨@Yd*T V9!©tpO0ȶ([?A/& (8}$@Dz7 YYi5*LoA6P6KQ1ڀ>8̋B ©tܩ\d t\ lTl>A6J0vE |}o( N pn m|O0Fufi{: lTlVd:eIۯj];B S ;D8]F0>6ﰭzV?k/8 lT,I0FufiP/ooN >l@15vf!<(0ȶ(-H1Z @ _p0~@YPl@au"4 jP6={c 엶erbQdI :&g/ F#8/8 lЫAYzaFs]sSZ9a z5(~u#4+7U* lt$ VqXSE5UCgqa* z`\A ĩ0~<;aNa('a~, >l@fk6.L1B7 6.NA0vr0g (KҶHAq* 6Ӭ0FufipٶxeS /bAv$lzlҨbmp0jQ $I@Y cdefghim"EzH8ou[ӰFGV_NwtA)зvO|]G|uO=Q> qnn}y$R$o V=08rb h/ۑO/?@H&R$o[痸wypu-7'ЫD6"}3ii?.f~v&]͊ڤYڭ(C?g H<E"EzH,^ow|d.܇:` ֻzH^|f{`xf{`0WaKLD*G \Q^w= )зuػa>2Z77 0uj76U UG|@20Z}9 ["Ev&]ah] ڻyhz ڡz-"}+kw|d.܇硵ޅ[. "XBD-Vwn ǟ9^2u:AU"Ee>'4׬X{`>T u21SjAvAY^ lЫo>V4*ueba zuP lWt,=o'iA+:P6=o'ЬT lWtl- ɗwб_A_.Ar,?C\©FxP.GamP֦T`X ?kS;LPG_A6AZdQ fg V M' 6NZd^ fgT4榊r / ;*ڶWm@*xs]b @;aam[~,HiHt*Hi((L *ӬPQ;RTf=[- ~df< hZf,_@'лe8w΂՗RnZU?%`( ,r~ \Ѣ#uj7|tв$օƍsG)A2}`̃QzVT}* >bhsb e-WeI Rfw4RHRQl hefL .`M_ e)*g}RTZf鴐2B bc@(3 )@H܄|-j? e)*g"ZIRQl h^ J TŠwI{p`砪}w-HE1eCkfPgh~2>HRfrHM6K uށUMvE]HRQl hYfb I{ps;[X5kOX J TR}TEw z|'504讥)MAU9[evN'a}sW,HE1mN )@~U>$y;m(F 2T.H%NrhEGв 9Jmw-HE1e e)*g}[uɘ_#8 HE1mN )@*-,)MAU9Z bc@,RzV]7}HNSN[)Hmw}=pi>LY 2e tQf N'OOX TR}Tm"5™E``5|̭ e)*g"ZDr:|0fb KRQl h*V J TR}Tm"5R٦h_a4(6̺"@6Gh7>0D`Q=KR ƀx t /aZ߻f,HE1e ƀQfR\V_ډ.`[]}1-Ӭ@* A %~G)@*3P% %Z 5RsгxeS)@H/l4ZA bc@(3 )@*-^ J TRsгxeS)@*-,(62B bc@2pxI +Ea2 $%#׌[?9ja! $ө#x5C'>\IRAUfEz> xyZ 19*]ZnA">Ok ɁWR٦v@*a௨cmڏ,Hݯwj]V2ڥF 2Tr@"a௨Çܢ#K.r{#Hm [- hx =0ky]rSLu,HE1eVfE$ e):nuXT2q>XX j'HE1eڧSЇaӰFuc՗]dyku8f-1p'>\qȟ0Q{X)@HN9.E #H& [^7fz̯4U4LW )@ʔ1*ӬAU z2rhnP; Rsгvi}NNKFZ?9J 2Tr@"a4Мs)@lSPun20Y7n,4NGp)H/RPy}HuМpaěGhn^7Y _@"6Ej [>K-ctn"EGHRf,VwH%O}7aR٦fEв=C&v2R6AU,Hm1ͦh зa\kZuTͱ]F 2T_oރ>'ynZEGF,HE1mN )@lSPUEr2B bc@(3 )@HO`[Fݞ} ׍t:N#~Pjy#tEG b KR,U Ơ\Do^>'`ε`uz@4Ν=n)@lSPUn"Z}|=K Çܢ##{ups;[ e):E(H/RPOk41h)MAU9ͦh%HE1e+zЇ=pjdnQ=)@*3P%nn'sA',HAմXkHY)@lSPUn"ZT}@4k_qRTZF묓>U u?UbA"Ap6U6.H%a}sW,HE1eYzN< ϝRzV]7bZw 蟓ڇ|/9.aOv2R٦8-ɇAs˗/gR٦fE[гd[ HAU4{#HE1庻 e)*gt(6, SL H2p ,'RTZFYO HZ͹eXO%j? AjN_-KRsPeEÕ=h]h85k)@j3AUH$ycqD^8矠9odu`hn)".Mn(6rKRQl hYIRqX /".AFG>U]r>Ouz@(U+)@".M(2+F Zw*E 458 p54||ln!H} b)@9Yї s6TYm@&9k[A L_q>6М,He&ZbL{Z7ڇF ڂC/'ֻW|tCp>kR4~Bs_|ߠRNy]LEm 1g}7]f R~_#8|^׬)MAqv_@˄džgha:=HRʊ|*EMiHRf,VwH% [46YKqF m.i'85k)@lSPUVA|47 a)njnw#H6Gr%H6Gвvw#hy6UٛR) -G>ny]vT]U vj%H2UeUrZ0`pˉ.HRqX }E&HEsPUQ; A˕ AR mQ ro L+HE1mN )@*-,)MAU9[ǛkH&}<՘7RTZf鴐)gQhs`F-A bc@gR٦mvqTl@*h,ޠ-7RTZf鴐}15i_>'Gn-R)cPun{}.r@s>224N s:o Wc~bAU,H?=W]6J.l:e̓ e)*g诟>JRQl h. N'a0֡u h&yRTZFY>$)Z7ZjRHRfro/@*h,&'V bc@,RTZFYHRfr7 Ly1n(6i!H/RPϢ !l::\[s} ƀ1Τ)MAU9؀T2>XA3[n(6i!HE1bjҾ}NZ7Z/)SƠ*#H%<\=亁|x+HE1ediu047DJRqX zl z|'5\/u˚)@lSPUL_?}!HE1庻.Dr:xlx{xKX.-KRQl hefN< h8rk_J!Hm Y.d}hX)@*-otZHRQl hef!Hm :\D2>X< G6K HAU<2ЇD0rmRTZF86UlbRD`$o6K ƀI9i8rkaLWw Kp ƀɦqj@yX+H} b)@9Y)U}paf;,k)MAU93EF'eYp4{L]KRf )@ʔi{wOZ}9<|tYKRnR٦yjsHbʸU%]r4 vvT2@J ({ہ%sN#WѵR/ {`phy][)@j@.l:`|ak W|^׬)SƠjfj85RTǠ*fYOAFpV 2Tgi[,>>L?Aucuz8)@j}x $锇vjy]F=Wpu-Hm1ZfZHqeE\>L>+ Ura?g WCs@s>HRTf1H&yR{˰bK)@lSPUn"ZIRQl hy-R# uށEj u;JF&Gpj~d)! %4%C;v2RN< O2j?2|+7R}HMq#Hm m6]D+)@*-#m Ы]ps;[~d)@ʔ1*ӬAU,HAUߥ}YlAXp%Hm1J"Z}|-kv5 ͭw')@j3AUڭ47IRfrv'PN猗[֡#KRf,VwJRf/?~+H2ͤ)MAU9KbR=a0WXy]vw#hYJRf,b+H/RP~+HE1庻 v=vB bc@M1-1H$/Z=5KRfrE6ˊ*yeÇBs HE1edMzN< hG0R]ڗF 2Tr@"=#7R)cPU2>U1]2Ȗᴿ!KoRhYshy_#8|>Z ?a)@H& {QȇAsKI]F 2e-Kл=pA' JRq. Xj1pGA'V zV2Jÿcpb}hRT\75Zyz/HE1mt3Ыd}V Z_*ݜIRQl hyLXٍ [PU%烅un,CBg)@j}h H&EGF,/7R)-hYJR.Ug8mf .YL$oY bc@gRlfx#HTwI!RTe*t)@j}xv3Ы-K怐y`/',HE1mt3)@j}h$7ht͍ ex ZRTKAΤgtٽ6:ƙtٽ~ J)@2PIRsPenF ʊ $ifEtg {`phz!zfh o}1-Ӭn)MAU9+d~b1oXKRQl hyB bc@˴q[\nօƍ,HETE诉 %rhsJRAL"}N.7 RPuVd¡RsгZl@Fh $[?9~+H?=+*>Ok4N Z_* c@"W8q6:ƙ HAU<2Ї$&'U ƀ1ΤT/eEHRfrV{d}tw,_(6i!H/RP>IRi 4+"Ыaknw_IRY1,)@lSPUbyLEE ƀY:-E #H& [ ^sk J k41h9껲0RTZ)H$lN+Y+ s#H2Ue( H|7ŕ au͚Š~+H} b)@9Yߕy~_qR)cPU.Cc3\ʇ|ĠFf1H&M eTfE-NOX LcPU.CC[nϥ(6, SL H2pڏ v2p .@U<@29NMg|8|G)@j3AUV:p_hR]Y7R٦eEV=G44|pֹ.HRf\D+)@j}h!ٻ' Y bc@uw3)@lSPUβ_D+J ~t/=KR,)MAqvMJ Z_*=r]DL u;PUJRQl h}.! &ڵ4Z ?ah97)bSLoE 'LhQ2@=WcOORf2]م eTh\ŠF6TfEa9{LUM?R[5\rƒ .@U4)MAq_>?>`ajk)@j}H&+nlfHQfv7RԺUl [h] pIfLcPUYIRe.kuРb*EߕiVD7R"UO?^%hRTVL$\?oy=0܄unF4.Nxs6U,:viTHRQl hy*hXRTZ}t3)@*-xSHR.UgOϤgbfk)@*ڥ?!ۖ'.N#8)@j}x*džg>\Q bc@gR"U,ʤ(6qzaD"};PoRċEo)MAU9{Zl@קW)@*-otZHRTųO thRTVLݍ e)*g}LݯRTZf鴐)g/~ *ϝhRTVL!L6Ss:o>\aް_b7R8qhsp5Ch)"MHRmnA2i'0ߟr@s>HRTf HAU<'ЇdEYhn T@CYhn0rmg}L Zwj5A2i'0ߟȵE4Z7 HAU<;U2>X4 kLdv7RTZF8(U+)@"Iwn]Uͭ S)@HuX'|Z=쁥!i]h85kX{`<%Z߻ I9O&>\!oZq$I!j\73~|Õ=HBX+F3[b]\Oo4ނ%]O#+{RToAU z~׍e|:_ e):΢_->=Ka4h]h85k)@j]hdҺyXwv7RԺUl [h6w)zפO78y#Hm,A:V J-:JRiU UFV nvRTgjz'h&yhpaDG":^gݍ AR mQ 2TgʸU%]r4{G_ZQ=KRTų v(H*OA/ uhؾ4@FpV Z_*')@*+R4nE ')@*+RHBuEE W#CvRa&P{YWdٍ ƀQfRTZ>^R٦-RuRTZf鴐2B 2Ti(6i!HeT .,&FGF)@H4Z/L1rm!) =\.,2B bc@]B 2T⨐6K ƀQfR٦Ml-HE1mN )@*+R>^7D`##{9ZwvRTVL!Lw`8B;t3GnfR#JN[\ 2T돏R٦8[.LfR٦j5$Is>~e뚵 e)*gi[,>>JRf,Vw e4b*]o r ke 0LXyRE񦸑] ~xdt/Y~+Hev| KAՋOGLZRTVLvBMH@o)Ы7).6}Aܗ0]4fG D6"Ao)ؤhy6OXxL_o(WY&sڏ ˙x+챱77_Τ7@-^5˙x(W=`ް_|9,WYZ?9kx]-Lu-hyogRT-AL. P@3_ΤX_(WY3ڇl(,rZ56X~͗3).-hy̢ar{r&&}whyVV_NwOF|r&Ŵ֠e-ϊˉ.[N_Τ. +w:}fi|9vE\gQ,܄IHM(W|Ktyzr&Eѯ7+tw,Y`3}9,֛hyVQ;,f0ξI4*rZ 7hZOoKE HG[g]ܶ[TcbiheY@(, LY@::,讽yQ'ֶ%EUX@ZDuZY>%c Ht[f9Kjx%|zygim-(AG-<Ju҇%i7X@ P2eMpxMܘIy7f Y,*n>`h 7[,7!Mpč8L H=(X@ZDuZYiJ, H4%S@+b% H@+҇EڃVi(۔mps0M5do>%S@+ZPR , XiJ, mVAI"3ʲYTrЁ) H4%SMG٢:cQ7[TӎPUC -vg,:[n>X@U5Y;L|Xz̃M`9ߘL2dw;[v, 퇪Rଈf MsѬKѬ;` H8+zԅ&n 9^D0aC" ` H8{r1 >d{Ztw~!β3kgyOlMi|ÒvWR׿|%}O{U ƀ1ΤT/eEHRfrV{d}tv;PARAMS.ASMK o !"#$/gRY-˙O *WbLU\fhy6=0NOkZoœ|˙b>ݡ\g_|9ϊh܀=JHt@={Kjy]F=WRiVD #]¡Nkc~%E.(7gw5 7ŠF=WRfE ٛ7& VkP;["-h+гOi?Ui=CRѺ`q>a௨RT={(HEzRL](7go^Huuuڗi_[RTԭ]6E5H%#+{1oX/0E(7gRTԭ].>NWixK)e=')@*^~诟 ٣ uu/^Kq]<}Zгnz)o^Ka܀=JRQ^w=x7e=')/ o^@sHRfrV. mQ 2TgʸU%]r4{G_ZQ=KRTų v(H*OA/vТNXTBLK.ASM_ o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJyۅ^v~7Ow?tQO˦wG=]_^ӫvzN/.J_}íBw>y;mzuܮNzuݻt^}:Xf~P/rayLֿx8<5e\n=|}@&&6he;)F\>٢cq{`bBi@/E<7/ө%sxecqŁx8߄8X辊Md\~r,t@OŁe i.K?,e z@گcai_Ҫ||pv?=f~,Z?q’f~ Hb Zu, n)hgiw[LA+VSYJ<н;lO1)[ `S߰trP_ʒfQ?ܦ V#( HkX@Z Z, }H{PfQ7[TߛAܶ9ڠ, }J, *͢~M#4٢zz㮽A_|cb3 JYJzGlQtrP2]/v, m Jβo@ݵ7ͧ HzA~޸Im/ z..A4(IyӐ]\&pxw,7ET/|w_]h] A{.+wq6`dwt[;V9(ٯw v`S&nLlYTD"zVSхKmw, GPR+ko.+ւtt?`4LJ 4qcB! H._zy &%zV#(klNag `sXzm1%v}1At]D":a-(+0ET/|w9biw[LA)y7 mÐc麈f k]\?~y?7ԛXB`pbw|َۋ^W6;^/now/oA__PձE}o>~맧vٛ|?0^F^~<za;3yӏO^_l|~v.'=_}M^޾ٶK.??l/\^>7zq{{z9~:mG}|~'t^zS~.a󦇫7OI?zxzSt]f0VXA6Hp_ƪ~2@\AdC8HHFL`2d/cU?%0,`P2*Ȍ\ "TTY! /cU?s%)fH#2K˨k7P?MoSI8$#Q LD`q`)``/cU?%00 CHR!P )֛eg-B,(` 22B(`(_ƪ~SFt`!fX %C! RM2Vf GBBKM2V3%0 \@2 )" h7XO )),LA !_ƪ~R "4()"DU."/cU?+K@0GH ` !/cU? t` ` H-`P7XO֌ht@ H3KB0T3hқeHk`CˠX  !~).I l)`H9~ɔ )C@J@ $BKsSM2V VX!΁)BX!A0A\M2V1% D@A0 +`b7XOI!fs`J`0fTJM2V&!@XHPdM2V!ɁR F00@ BHR@/cU?CXX7P?Mo}PrS-A ),@"*/cU?i"@  0T0F{SU ֊\Af !T,~i4BR XrCkL@zSUq0$# hdhHzSU$(@D"H!3BM2V:ZP 4b`DP /cU?HKs"X$*`6_ƪ~2CA t 1V$09P+X]oꗱLAg"p,) t${S֛|?=*7=*:OQ}>.m';yUuܩoaw<:p~~{Mv>To|}Mnz7Qw'{Sݟ՛ϯ䦷ϯDq~Л|?o:O~y?7_Mo_N̡7?FozM_oroS?sMv>To|}nz7Sw'{Sݟ՛gր!R@ (`~ $*F0! `ut7XOK  Xv,PERMF.ASMc o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`kX ր/t{ ѩr*(`$@T-qYڃ~ׂ5a8E Qwyzr澌ӧg?` zkYQLv*8U iu7)AJD#DYU)a8==ӂ5٩ B\xkc-X™/\>j;wJ@` z0nE ~FAF4MAv\Mv{z f\nl7P/n Y|[ [xL;3A ^2d %X/t{+dn܂~|:NSA( ߍ[к ~7nA`q ZA-h݂:N@T-q  MuuN[ ^~ Dr(`a"L!d$qBj/1.oVA-h݂:N.oV h%w9- fIT 8nnnl?RU qlø%>N7WSJD/IU 8n>߂ggNB  3$BH ;{xxZ8nn@ CV Y{P҂کPPwyHIJKLMNOPQRSTUVWXYZ[\]^_`abYa zd- Avr8齝9CQaSQ֓d;?q)sӟe=I 5 [#+lA{lEFNPoT(|ui< [#+lAj1ux `-Sz >Xa 88 A8zaR·̇ |k^[a _Ȕ}5@ﭰGVXdb%pBdỰ0$eSda@P'¦N9BlֺJ&L_gF 'Crށ1Hl\jJ0$tP Lr9@0$t ̸hAP'nֺJqVUk:ޭTW ,kPT XrO~caa#I #Q6xZi/o; #qS<Ņ04}k{z Aj 蝭TA+- 2A~USܺC+a @d]t \;AquQ6x:cTZdE0d(j$kp s w[To1rJdy:@65&Oq:t* 2ͲE];,zzno!֛o1:We=JwB/ 2U _; XFS5zc6ʅ^d em! 2M_,A=ڞj$CZ4ya)jPx؁fo NTSp~2AaCTN0tj/-.oVx0 %*a]( ;kbPҀ:;9 %H*˜`}xxJ|n7W !+ T{Bc]ެ=(iAKDR9HPfNf%d̦wyvjRd $.oVx8 )dv+d4 ͆N]ެu7'Wa8}*d}AI+d}AL0܃Z0܃? q9,fs+dn܂~|:N#T$QB JO b=qA(H&:G r.dGr i~ Ji BITŒ"9E OPR0ݸgSz2N11A$ i~ Jiq/CTjBz2N0&م ݬ?gP0e> K%d> q ٸl@[ wnAKf U 0H* "`PNxb;dNYQ!? TA6/AI7l7@h/D=}OR!ȂH0l d$@"4R ٣x%/-H賳EU C;:.8A@IZjy"'4O!dKLLDA@I/d A-h݂:N&AVpTH' h%<`A6/AI:=(iAKT(SdNYQ!11A$ r^֛i*<-PoJ > >d&d}A ه%>Nς700^_!@baF,d~'t^zS~.a󦇫7OI?zxzSt]:)S.p0} еU+^A(ɧ5)za) S=(*A& P L_E! 2INdzm&<,z`q >\.  [GYO!~_9#-bAX0r y0NbqGd<Eڦ:VaQ6xQka][($ zA> @tm~0r y0]Ad' .&y)}Ã/_AY֠o`* 2q]de 04}L'$O@Q/ 2IRd<EXda" ujS(|<zX+^; #qS$N,L_B4V+p< LP 0E 2Q .N:ai5(< L,EM[Lr9@աF)BNAY֠k|LvUb=Uj;uZc>LJ8tQ. W(k a+PTcؽ[S+BZiΕE0,-v S=(*A{PTL<(@Q& 2Y~$O@Q' 2aRm&<,}Y ;X 8ϲ|y0s[V4wUz7a:>6B\, p:F}ѹq+ F;Ptk0 G?V;ݳ>_}M^޾ٶK.??l/\^>7zq{{z9~:mG}|~'t^zS~.a󦇫7OI?zxzSt]vVPERMG.ASMa o !"#$%&'()vPLAIN.TXT6  !"#$%o&'()*+,-./012345oW㗷~??>_.낏omҐc jZ cdAH 5H8)h҂=M(6z2#&'u)f0=߼qR Pcg"*K\:OHvWB*a5{nIJةQHaO 6ER.U /&ZF3ypj+ag"b;n9vluƭj(6zɹRl&MWMOkrBNJ 6AҺkƕ.^a;>O8JVuI(c&"&-Ȣ J֋P '~ļ![$Qٵ[/<ڌ_Ɔ$v![Vb ]^e?g&|H!1ep%,.BF ~v-`+Ltɭ ODZm(;FgOep%x)\IePX;NihR-37X,;ܪ_n\#HX('v.SC`CRA/֎E4UQAx|ow_qRȰHx6UP2;wbqbتx|ow_hRȰHx6UP2;wbqbتv=;S-\ znqUPaCc-l**(}qm(f kWG !snQeo /_~146f0q"****"SPޝ)֌C = klj","_z<8chl`VEEv=;S-)dBa8[EX$Wg MLwܪm(n,>RحxD)bHOR痈:PhUTPv݌n{@C/_1[-`qpH#E έ _ǧv=鞸 \ f/_gn({z $ypFցB"?}zsmwʟ$,֎EppA<77*(a@=Rypcj:ʭ lo7v=|.OCf|ypΰ ؂ "(\#[hUTPvv=|)N=15a7#)NbqbNCCq[?jwʻ{_0Yؐ`)P`SAkUTPOc]1AŦQ[J("qYg8'e%IM67#d3[6ήEXt)'uB40MyVs7hWa l R"H6$r$9 \ r.nNx%DżPx>^l"P֒\ k[/<ڌ_=%47a5OTǠJ|yEcFPNIZpa52ByFNy?(`lZP#(G:JUu 4W?x$mwkh% 0?@ABCDEFGHIJKLMNOP**=\UTTTTP9XM4X=!S&JSp20{Cp"g>t{m&(J`6@f kb^EE**(?x0{C)\vlJPHq"82RCpf70[ !PbL*({[($vUQA7Ǐn{@ywcMCE،!X)**(2 $.3_d?9r6l0[X3XG[9OvDywnG; a!LT ϟvDpKtǘ!047|ZQQ- .JPS3cn=n08OvTQAJXLw)9?_J,ʋ7Sw'{Sݟ՛gր!R@ (`~ $*F0! `ut7XOK  Xv%RESIDUE.ASMV o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU^°0r>XJݩZBN'xrIwB.1, Z!FpU4TIu0ݷ xzs\! ;`UlX_Yߡ%"wvL?ݷ ԝJzs\! }R&WP2tAlXYߡ%"wvL];Ub€^t?Ƶ$޹>tߨ}5, X I@o-q,$0tP v^)€<-m^).jĮXmM)"0V ٙ |'o\ )O asUTP) Cօxo?[_PΘl])r۟jĮXmMYeo8j;r bאbsH^`|z/$NmTTTPd<ͷ莦`+a<ӷ aC7[̰.S"il9|+aBȗu0[W˄Feφ̴knS0YOxpHi6 =>E>VǞ0{C2.O#pK969c\ tA@imUTP;:H-`;l\?@4 Ld1s*hhklr8X|~AM3 c:VjˬLA(#yi[je! ȏ} bnT+-EmUT,@~l3 ? P9 OKZsSu9 <-HnĢJ[̔=!tVqY|~AM3rG=XZ4O :'(B.X*8v}`c5y_؄D1 A[%Y.@Mg,@~l&s ?ee ZEAOLVI(Ap NkXHwm7,@W'&\F.IA4feVu^g?FNmY݀ tg *-K"- ߴPsavj6ӟ,@~93epfZ"rg$ gAMM9 념0/@}57N=&񋐠/ASsyarQlՖe ᠚̷#|՛B[PoASS>C^تs; !Aa_$5KW2TD^تs; !A-G[[Tm zgbcR윐/ASyubA9U[0/@}5ہ/k;ނa}U1B$$G%+m*"/lU념0/@dv &/lU*BHP# Z-3R)29撅I~'1HU1/v^/F^ت !A!3PoASEr,@})$(/<@LxxXo )$(dyKhvk:h]d,@<;!A!3PB-mA?@SRyab^^,s+RH!|M^??FNmY݀ tg *-K"- ߴPsavj6ӟ,@~93epfZ"rg$ gvUSPLICE.ASM`o  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_p8DrŔ^z`bj~}2P ,@|5Y~;草H㵾:٠Q!/b^>e^.AtgձVZb35@wN7VZƺDKb j НdI&JKԶK4 v|j% Ϗ9AwdPJXr `+D6,XEv zj[T+-fV!rg$bǔg H'ЛlVZ̬B.bviRIPL0.ASMIo  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH@(W@b$eq =)P~t1౬J 1U<*-r><*{Wƫ;n htYvW3ۧ hn1+X$+*EڂK;"mq[-8*EڂcZqlj>7 e?UT@+9.&ЊCfcEYsaPll OBOU@ǯ`6_mU@+ c ?@ABCDEFGHIJKLMNOPQRfMOFHz2B-Wϣr 7ۨbD5t|>3qw Հ! ׉5'( ~ᄺIR7kj@JiN{h$A Z5ׇi@OFHz7xn5gЪI~:}1>wx2B{[a};ߺ[qwq]rG-6X4B_Q 7! }9 ׉5'( V=(! i@V73 3ܲlo Ҁ~EN]q:! id_!Aa2RHPV5ЖQ%mz~UlՖe~ Cu4_.vBBjKr'$(d-,U[;8uЪI~:A9!A![%hiAS뷈j*% )$(܀񛐠07W kNjXHP [ 3xXsoб/ASS>VMD5t{7]&7~7{ f!u=/<> ٪-A45N]1A9vBBjK PogA8V{CP)9!Aa_j S7_=lP) vlU@;k0OU@{ pQi}Tm|Ri}|jqn4 2 7o;Ю/`T@#0\8Dr#0_v]}dW  0< q*M{0'Ox37HhQx.gWb hӺw/f!x4l(tLEmՂJmՂyڶj^U@[bE |z_1/ hv.183U@[l3>^u n?& gF?!R%Kpہ& gF?TE^WGUrw.~ףZo~Uf kWG !snQeo /_~146f0q"****v~mSUBSF.ASMQ o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPL-,hw xhp/1mPuz|I/67869:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef:>9.X*O=4o<5ghijklmnopqrstuvwxyz{|}~ Hx-"qb ztuYPM}Z3,+#~ngdcaW%kFNC@?1( ysmljf[VID/)!|rpiSB8&{vh]RQK0$ w`TLJGE' ^\UA;7e_Y'* 5Aj"]IJXЧj+t no{ \)i2|`Y,7_O@bA2 wPsɠchb:rbA߲<@W+Sgϖłl8 ɠchb: ,}{)?@W+S'?,mʀ蘆PujRSAY t)Rs*5iTgL@_,={rv/ ~ϟ,,  Kwo, -h/, -h=gdnA],, w,@y7[؞XgApzLc5, ;w;Lxd U%;|1@l'+EV<ƓAt`cʻĶЏU\\|PO}gY@X>ca=(no@mlޠT, =uml?51Et`[erˢ{ ƞ_JY@+4؛) ȵ+h]6?T Y+ELMd ʷmL G5ir, W'nY %eʷ, (/X@.)P>gL@yҾ܇3 - (X@.)P>gL@yҾ܇3 - |}}qqtcЮ/`^LF1 IrMM2̑D Ri^T@҃y?@AA9cAH3"]4 Pܓ j$(œ+``Z%2&XDFb4Yd$h]iL Q"5) 5%2"#AsJs, /%RM ((f CuWCeaqh R+7T} !5Aj&zhܚ+)8({*e@x`Ff̡)8+llN e"fѦ *6CN K|R@1;})nlsh~09 da=CAHx6F%F34I9O&45*S&3P0JL3 E%b4cvև&3qXASAk E8 rT AG qT M 3-eL 1Zhm|2 dZ2A36!&[л7}}QB,/M㧓iH_?_?"j~z?[tT%T'#_V珠gW|c7M;h.lt4處=MNkIgm4I&'d5gVBH69]ڻ%:BCDEFGHIJKLDo-,hc{ <7dYWdkB 5ɥO ,1Ls4>S1A1jz,1 MbXweY,h]4q:j7|}< ҲXЗ<`\Vohbbb bY,f̀b >> ߅ULe/OջohbbbӲXк HvIYWdkf5Wb,9晚$CL &OŞeas;`C^ގ~\gݎ KۋWKO'KY@.ݶоftn@ ;P Gy<Ә)A - a'IVBdyh ;P9 D͕"Ѡ]Xd`Cu*v 0 vf@1͎T|eCu*wr\^lFqsbP\ЃMLbYU+ -Ak{4bP 5Wr8hm$6prekfA-RDϠrZەi0Aq&X@>?ʚ˪JYX@.RPaJAeriʑ*ir,, 7Y>fJAriʴ}bwG?, |}}qqtcЮ/`^LF1 IrMM2̑D Ri^T@҃y#BNn"sY}kJ.M@C@Ip-BE/ %T0zi150h:b,62Sc (P@ 3ɞ2ɖzE6y/M ZB fS$ IEJ=jI"56!%Cˉ\$E|4)ȅxCJ#>!1\Wau Ģ#%4rAbQHeH *\X J#$4)A  )A%I4 )A/F$t-RJ#$tRJ#P )==B"3yZ)Akr TmO&"n:̡V|i0Q,7:OQ9܃Cϒ(Q_p%QcMLߖcQ9Z(((`Gn 2j*ӠagN72O֦0ȨOֆ,An d M%Q30t 2Ӡa{KPAkS|D l1p&ư.]2)B'pUHp.IAQbRP9ʱ:TNFXVaZܲI7_'X͓CY_+i*k!57'U'+,&~ c귘T t^c\lj y 0`Mc`1Ky'dkI`'@"icNOWX$ձSԱq,mdcOWX$ձSԱq,mZ5*H$GY,IP]Ͳsξz9\.6F j} *66v`5YJ1rZSHQc%$ahj@fSXXxo[ReaCzn= K_?k?#qIrӮǛ'?u1j\7%ܷF?J=s3O#X{ܫ7ޅ!Ǔ68;>O_+^<jՉ ]t+QroN{o^81=>GM7~\tde /N^aa+L {_ŝ/2w񃙯2LV/X 'O3Aq}|wTqJ\hzPPI:ָ+3e_.RoXqC/ ?8*_g?9lͻy9zMI^\{{#nlXaǹ{W߾X)5kǧ2{#k޴̾Yvܽ;yewd/,h*}cr+J/Ͱ8u[ߥm{qio~і{q.?i'jr]w?ϋ??{9ʿ5qCO4}_q#͛<͔&~ym%CUoql}ϞV.*.`A>zrgR}"=aSP,8覀cBӈtcIAMZ$zpqEHt)=FT7N?QkEejF| P}˵6p =2ok exX$l֨d_SIUƪd+T0Q\lJyU+,^kYX`}\b/,].nOeSQ4A 5#ޟլX&myA;e.Uؕswr{}S8Oy}S9izri+mLy7MgĪE-2z:d!zo^U>jѣ֊ML:yߢiM5~:}_t.<]}v=TNT.DOCU o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTlllm=Oq}򻛱1}Iy:&G{Z'0i\1 Dk!|,C:=@*OymlL!yB<R%cO$aAOq؁ԍ1(Z(#zCP),Q49$DϋPC:Qy I.)\`%fT8/:kMK@cR*HLYB !y0 Ɂԁd |,yB$ђ{] q$1HBOSll> K4rLleO:b})LyuOv6k 6iX/(Ru0ej) O,*hrDo992IMk%\iG@qA)hj@cc*y1B3$ar@(HR Wڑ%P\18eT%KT@t7z@JSVPTB@q16ȗJѵ.1|йRkg`HKTOˑR76666Y<1ccI5|йR W9Cf(|RO@qpcL9k3T0TR5Cހ#3@>\)blF7T(#MFR ]CRhH#K%`йRzk3bˀ pѠs~h76Ε x #"CBBg j[ow1F^+A )4hFrgo^#АB;R!! G ecc(S8QCOR ?qTz37H%Z](c)Sی1c)@ꐪ EϐEX0. Z(㢥`Mc!-s!iΕЃkZ ] aۓbHerArH%4q*D1F& 1BHKjwHՌ0e^\7LYLH%cc5d\.!В] R pe"i26ȍ;@Y:tfxL ZɁ@2$c޼F ߰_7c_o+}4PT”)@ȅ"\iVʄ+#7L&#Klz[$aWT•vcc8bF@sYj! .J;SXhrcc,5 8(f-;-)P`lR=%&?#A*!ѡ$Hc\cdu 2)x,PǷ??6c_o+}4Pgo^D!kr3PP)E=cc|:T АL%](b&ψ '88#1 R G*ڱ# DߑRPcP`l1iQ?`Oj<29$ai jg-r Q#K%H<P)EeMDoLa$&?C56i뉀LC7^(gP)da(6R06ȗ~$H%43R \ Ч P@\cd! 34kΈKաBt!sPO>}Mnl̅!L3$771#:bkԐi,ll B̔RE~ԁvH=26ȁd ~`lO$<c_o+@Q(#BhSaGd] !u>w@rcc,&'Z iy4W,SH@=B'B@9x,0IJτ!е~Ym06xVB@z[ 1SDuе1F.C,e5 4!ТDC*k!ZzFrH%4WccHw Db77< Q{ccccccccccccccccccccccccccccccccccccccccccccccccccccllllۊhrccccckshйR@DBgҕ H%ccq!6`9XSX@sco/sqA{޵DžОco t]{~@sL.iM ZQփGyZ#hAO4z(-R H̓k!HTB z"ccg+ ?i! ;0y\zҔ޼fl?=e.>sc|!. [bl۶xt !-@ z" ]Z3.U ͈%'́2 9Zq1/sqЃl]1ƿmb1ƿm s݆X-vZ#IIе.Z b GBr' _ P1ƿn-iARؑ84cxZ$a &'AB1_ Lw] y\=ۊ!'A!tB ] cYkՌ9c<M(4_тK,}A4flliWLx׵Dž_`{ %eTz! 5cc&'ABV͘C:c١tBM-艰'DoF%$ZB/V = .A R#7PCB:eA+R)4yP$TB|݌1ޯ&'A z"fxb||CB66=.H%IIе<.uH% iY7 = YT&!Dbfl[!P@>fll]BzӧǗ_`0DǑ(3cKPrHڀ⢥'TX(x Do9"Pl?] !uH%<.!>O@%#91FnE=&G|݌1z7Bc @rS%@ꈥJ{>c{1%cc5dvTNT.IDX o g¼E5r Q#K%H<P)EeMDoLa$&?C56i뉀LC7vTNT.SYM(  !"#$%&'o ª-#@b0YB 6>Yv@bB NW1 P(N^\\0Obl:#ЇdH%t Ypp$Lz J@5ތ1(KF@BR A.a߀c1Fg͂1͐0uBOC!B!o>M.!cc< 2b xR҅ۊ~Th'A'j_*:#zvcc Ε"BR WϐJi.Z t`l DR sBc @rS%@ꈥJ{>c{1%@+FΕڀO.w^!fcc99h»"fɐJ(B3D(Ưm56-Ў=M  b@2?#zCP?@*Hcdr;T j q pKB(@AJAh66ȞYJP?QȄA>\)`l~h)pz|˄=MDH\'»/onnÓnl4]I\'7aR ] A.qntcccc'6666fcccI  ݝah)ٛEI1D߁F?$A*k Xo+.Z %VB%cuEY4EqwH`uCVVh[Y]Q-wH#i˽:/Ƚ3wͭP 3~SQTg9 <5+qȍQCO5FI;ÿc?@ABCDEFGHIJKLMNOPQRSTU}u ;Jo.=gO_&>JL;_0Y ;P[82aj/ 3O0CT{L;R'@ne U5Oh<^(/(SHq4mai[ ix_A?ILJax@x+B>?> 寠g'@2_aSl^aj/ sy-e ʜ:η >xxδ;' system. It was written by John A. Thomas and Joan Thersites and is described in detail in the article to be published in Dr. Dobbs Journal in August, 1984. We offer the program and its source code, free of copyright, to the public for its study and experimentation. TNT is written in Z80 assembly language using the mnemonics of the RMAC assembler from Digital Research. It is presently intended to be assembled to several relocatable modules, which are then linked using DR's LINK program. See the file MAIN.ASM for more details. This disk also contains a challenge cipher for those who would like to try their hands at breaking TNT. PLAIN.TXT is the plain text, and CIPHER.TXT is the corresponding cipher text, with the index record. The challenge is to find the pro tempore rotors and @.M/Qa 띬W{i¿)g~ptWجqx /ֻ^δsa<xH@\N~iRP߁\0~X$ |1ewYD2EoA/f,\8{a(떛0HeF (kFy8+AOԛ!}s֫z8exV.eY|a'4H7Mʪd_d_ Mʇ2ih<^(-O8D'\%jilԛ0ܬA\t>#Wk Ӌ0Hg(\/@d82ixs|d_텅A/fl4q\5i㪁zԦ Mv ( AP 4%,i_ MVIN@}suOi`0H [iYa&A}1Kwz0H/3P- c? ?n|X 3P6Yv  (3;7y8I) P߀\y򚖷8~* қ"e)A݋Sd2dt7U>[a&U;0H/3P-7ka(,MW^h@n|X 0yН;e: ӨG'ԏm 0^0HÛPTz) dN o|X텅A/f,\8{g`jS>the permutation table, RANDP. If you can, find the natural language user keys as well. (Portions of the challange cipher are excerpted from "CIA Director Warns Scientists", by G. Kolata, Science, vol. 215, p. 382, 22 January 1982, and copyright 1982 by the American Association for the Advancement of Science. Reproduced by permission.) Please address comments to: John A. Thomas 621 N.W. Sixth Street Grand Prairie, TX 75050 Catalog TNT.COM The executable program. See the TNT.DOC file for instructions on its use. TNT.SYM The current symbol table for those wishing to step through the code with a debugger. TNT.IDX The index LW0H MwŽ0H uZy8+Auz֫qjO`@Ygڹ0H]& Mv (AZa[a( wE3LW wŽ0H M&f/ Ҥj'ieʺf- Rs4'V0H,@}( RƠi;A P 4l" 'V{a&u iPTZ 0ܬ 3P.MW^yh> CPԇ )bPfpR|6aziRP 2er6a{+ 0^Pyh> gl/ v0 P 8Ơބ~% ԛ0\-lp 4%i1M=Awz8ex^/ ;A}؂;8D[ߢ~,o2 wݹGtokF#íoa[Տ&@؂7kwtikKa zl@ؿ\7D֋A:??XXXXXXXXـ)~o t{ccccccccccccccccccccccccccccccccccccccccccc READ.ME Introduction to TNT This file catalogs the various files on this distribution disk. Use pip lst:=read.me to get a formatted printout. TNT is a file encryption for the CP/M operating  file used by TNT to keep track of its position in the key stream. MAIN.ASM The main routine for TNT, which calls all the other routines. It handles file i/o and controls the encryption cycle. There is nothing original about main; it's just there to make the program work. PARAMS.ASM Storage for the various parameters used TNT. This file contains the tables used to construct the six rotors and the permutation tables. KEYGEN.ASM Generates the pro tempore rotors and permutation table from the user keys. INIT.ASM Initializes the index and sets the permutation table state and rotor starting positions. CYCLE.ASM Converts a permuor the challenge cipher. ys as well. (Portr. SHUFFLE.ASM Set up a permutation table by shuffling an ordered array of 8-bit values. SPLICE.ASM Splice the first 256-bits of a rotor onto the end of that rotor. NXTBLK.ASM Advance the index value by 1 and advance rotor and permutation table settings. RIPL0.ASM Ripple counter to set work areas to zero. IOBUFF.ASM Buffer for file read and write operations. IOLIB.ASM Collection of CP/M i/o routines. TNT.DOC Explains how to use TNT. Use pip lst:=tnt.doc to get a formatted printout. PLAIN.TXT Plaintext file for the challenge cipher. CIPHER.TXT Ciphertext file ftation cycle to a permutation list. ENCIPHER.ASM Enciphers one 256-bit block of text by substitution and permutation. DECIPHER.ASM Deciphers one 256-bit block of text by substitution and permutation. SUBSF.ASM Performs the forward substitutuion on one 256-bit block of text. SUBSG.ASM Performs the inverse substitution on one 256-bit block of text. PERMF.ASM Performs forward permutation on one 256-bit block of text. PERMG.ASM Performs inverse permutation on one 256-bit block of text. UPTACK.ASM Converts a number in a given base to a base-2 number. EXTRACT.ASM Extract 256 bits from a rotor beginning with a given bit. RESIDUE.ASM Return the residue of an 88-bit number divided by a 16-bit number. SHUFFLE.ASM Set up a permutation table by shuffling an ordered array of 8-bit values. SPLICE.ASM Splice the first 256-bits of a rotor onto the end of that rotor. NXTBLK.ASM Advance the index value by 1 and advance rotor and permutation table settings. RIPL0.ASM Ripple counter to set work areas to zero. IOBUFF.ASM Buffer for file read and write operations. IOLIB.ASM Collection of CP/M i/o routines. TNT.DOC Explains how to use TNT. Use pip lst:=tnt.doc to get a formatted printout. PLAIN.TXT Plaintext file for the challenge cipher. CIPHER.TXT Ciphertext file f v TOWERS.BAS  !"#$%&'()*+n,-./0123456789:;<=>?@t1|}ABCDEFGHIJKLMNOPQRS0 vipTUVWXYZ[\]^_`abcdefghijkl zu mnopqrstuvwxyz{|}~~/]{sqkUSOK ywrlb^WNIHFEC><8532.,+( omhca_[ZYXQPMA?;:7-*)'%# o p|ZM.g0i/w`ߴX&7"!exh2)fq'DUc XE2(J$.d4  X|mXeu]3la|{5'9~f^lUF{laxis T'lr*TuJrv`+w%ThۃܕS.ǧrb;rGuGGJ$9.]q'|pvC[F*bo=p|ZM.ϧqyis7X{o9`v0 ;xUf"6ZWGQV*^ٲ።{ is̖&'ǧb1m9=>&){6yzF=TC&WGZjrʶVŔ=<:Z;bƒ4F{xVC#` H9Ugu E).>zV#r 9lV# ا(c)SNs ;6Z/;eK)o lle7˜zâ'cDZ[X2!ZeLvH0v ՄqX`58DŽƎcd3n 5w%!V>)cXD4/x(s܆H}3mh. XAGIspߙ1iVVaظ(CBб}Z.5PaD֜h(4z@^Bb}4)t|4guxLPtCe},z@>6o @]xLhOH,%jK*՘oaÞU=K9i}Þq="IxA@&.P!|[@$$9{#\Ed6HqQ3aM#T")h=e4n>/j~A?`$is/W3%Ea'kI5,՟nn5 5xj<]Ds0`vl0Sk{FM5BS/az4YU v?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh/ijklmnopqrstuvwxyz{|}~ri~}|zQONMG=;1)%# ysqpjga[U?4(!{utkhed_]\ZYWSLKJIDCA><9865320+* ??wmUg0`, eK 'ol|DŽ=i+w_wi.NL8jHnıcS[G6!s졘p|֑vp|֑mlT-YV  ۪d/`h_p|֑vO#&?u$l9=7'TRAP.COM's1!4>20!"1aTrap is RST 6 vectored to>٠>٠aH {~#͹0"s1Wg_o!͇ʠ͇ʠͲ1|G} O{*SZxHxPNC bdhiiibdhspͲg8>.͹#ͦ~٠#͹0> > ͹> _ͮͦ#~+٠~##Ɛ'@'L. Barker P.O.Box 135 Chgo Il 60690 hϮ_<6]wbc:܀w[<&K[≘`ZJ]*ZS>9& q3BA!SLLͨVv:kf56fֳRbcccΘ~A*L"-;/ @)u.aj(Ca20fTxÐ18#iRZ]nZrH}Wna&RrKA*E8< к-h(+ftRZ]Rj2j +Tķ]XKs7[Kh _9ʡ0Њw #5M2ѵ:-tc yKe!cPRZ]N2gjMR d[  E6Cu9r2legqAĐqɱ :qd5d̠Pһ*r)'A!Z m!-?6SX[^_Of4HLc) xסV\}ӂA*A-w!Z 2gjM[c6Ck)k):Vc-uJqlAM\Kͨ7۲*U5Y_j[!Nk)ͩdPkuTcdz4чRZ hF1ud.%-0ע"ZL ͫ}߇{R@3 =pʠ A p2DZ hF0%9Gz4}⇻ϮG>ĿЌZTdPm[+Zf?1$eG[!^Z hF cxڭ\ r O!n^Kͬ  qns-4#qc-Y,gd/f$[i8#Kc4 :Z hFc+5v+ͭ:ƣ3`ٙ0C|-R@3 3LԶkbq^{"mx}hq .;w_[f$cpF d[ $eo8#> ?>[f J)w0[co\a%pFgwC|E hFހ3)Y՚8#09w 8#C|x"4#jj̠.gr% oU,d-R@3Z/ę>ijXg)цmA8bG^x׉338aS5df °ZӇxi3_^OϏ/RXm3]E)u.L YJчE hFZ21 r2leg»N\J[yC`: [&.R@3:m]ΨsSyi1P*@ GOO[fS[8#oa2OEV&d{థ) :q)&N{Q!k"onxdLkVY*Jku9vfb[8RЌXlK7`&Ae(wmAPc+E ,S@3c R! w8*f 'Vʡ.ЌJuNco S-סAc R0HSMQ` [)eޠԐ[@3( TPKL5=F%!^n[fԐ[E, :qށ3nU}n_CCL͈3BVpPJVLWKWQJ]˷:H^XgCLͨb[l,vX,pXZptL)>9L+auªhԵ;0"G)!~Ϲw)4 8#Al7r X0%1sQoe hF&Tȑxur[Zd]1 Gz S_e hF)3a -t krdޕE<9ȑ>'2o}La5zԵ;ȵ#JKX.S@3 8#V&Z2rLL2N)24Rޮd21Lr VZ_ !)ZkGyd6Sl?]^NgLazԵ;(ԪJۊɆL͈3BVpPJVL8V ߀ř?.S@38ʪ e?'tZhɾRl⻫,S@Ǚ78L&dPJVL5b,`C"]e hZKs/2(u:!g”LWLHZp;0\XjfW24{yiًdbU,d»N\,fO]jjRy;pF账>Ќe/G6R.ȕu3't(4{A-ˑ{JJ lkfZX/xA*Js}u(4#iً؁aS5NًC!^}P h8Ҳ J.G + ,P7 _zz(4{N&30He[inq_]JHZp v{K%{q7ްPjQV_z~(4{yiً SORT COM`SORT PASbqSORTS DOC v4Copyright (C) 1983 BORLAND Inc Osborne 1= ()TERP<~7#~= o&ͦoͦc|ͣ}!!" ~#(}:8= +ͥ*!v-!pͥ*|!!:(=2!-: <2!~!!Y:jO:l:kO:m!ͥ*n! !i45(!+/ 0y0( d!9-!I-[[o&  :(y ͠|( r*"x2y( >28!"9!!>2 0&+!0 [ (!ePWA8Q0G: x@!\w# L rLͽS&/¡R^M7$ZUř>wf$-{q8tZhɾ΋ӚPk_SR@Ǚ78;6&3LP1+?N -ٗyq+_L)^w,V,qe X`X-3B5{/>`X-[Zj.镧p79&K\Yػz#o&K[pi%db+Vj:G66./{9jz?Uf6>pa厨N<gh/ijklmnopqrstuvwxyz#JKX.S@3 8#V&Z2rLL2N)24Rޮd21Lr VZ_ !)ZkGyd6Sl?]^NgLazԵ;(ԪJۊɆL͈3BVpPJVL8V ߀ř?.S@38ʪ e?'tZhɾRl⻫,S@Ǚ78L&dPJVL5b,`C"]e hZKs/2(u:!g”LWLHZp;0\XjfW24{yiًdbU,d»N\,fO]jjRy;pF账>Ќe/G6R.ȕu3't(4{A-ˑ{JJ lkfZX/xA*Js}u(4#iً؁aS5NًC!^}P h8Ҳ J.G + ,P7 _zz(4{N&30He[inq_]JHZp v{K%{q7ްPjQV_z~(4{yiً (   L). )!h6# (*(.(!8}(*(Ww#>?> w#a{ |e}nƐ'@'ý7||}>"C ""*B"[R*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#EMw}8"RB0 >RRR!+k = R!+k = !+k = !+k = !#k = !+k = T]KB!z> S>))0 = |  DMgo>jB0 7?= H<͡z5)<z {0Gɯgo|| }||/g}/o#}o&K[xAJSJDM!b"!6J"DM'oodo o} $yWx(>-q{(ay(oe z(>.q (o =e{>Eq>+|(|Dg>-q|/ 0:p# ~# +>0w#,-  60# ˸}րogM͇| .( = ~> x0w#xG% % ZJDM% = _~65(+~hìx-Sx9?+{Η@}|  gZJDM0 ,7}o˸ #yO!@9i&  #w#/w#w#!9! E9!!9~(+FM!"9!(#>2*u"|>":( E *6#w*6#6 !\$!u[ (W( #:~CONTRMKBDLSTAUXUSR>2ͭ*#~ u*:> >w###6Õ  #6++p>2Su:*6###ww#w$w#j _}8(8J`9{T]=o`9y $͙ >" 8# }>(́ x }} ˸T}ٕ(0D= ,= (  0% , 7 R ?(88 x  - 8˸x   ͠ ,-xG} }م 9 .>#n0  = - nx  ,-(-˸G,- }ٕ? 9.>R 88 ?= u+-(> 08  8R ?x  , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨u xx( ?}ٽR }ց <( 7 = |٤g{٣_z٢Wy١Ox٠G 8͉ }x>"8}ƀ/ƀó ͙ - }w: ͳ##N#F*B>w#w#[s#rò>2u*6 #-Nw#Fwq#p#6#w#w#w͞* :( Q: *^ F* < >26"~^*-w#ww#Ͳ^"~ <@*u!\  >2*|>! * \$\<(!: [1Á\!(f"́> 2:!"F( #~#6$>!"N>!~8>O6*"w (=(&("( :( 8y(~#ͽ7+ (6*#~́*#~ *~(h#"b=  8ͽ ̶J= B== ͯ}8= ͵}/l !*###~-_~(46*>2>*##w:>*##~*#~(E͋ ( ( ( ͕!] ( ( ((w#(͕́̕6!]~-#8~>7́ Õ͕>O*{͍̈́s #r*{/͍ d͋ ͕0- ,}l˸k 8 ́ # x(͙ -k 8 -k 8, }l8;*!# ! >8# # 8---͙ ,,,-xGg?+2n*8t z~,->"x"$}.́  ,͙ ́ ! >,.-͙ o&0%͔,# ͙ }g }؉}颋.:}8c~I$I~L*.ٷx˸́ }0G,\<}͔,-(- ! >0 $# o8 Á >"m.`1pF,t6|!wS<.z}[|%FXc~ur1}ٯx(<˸k 8́ !~Jk 0ͺO!Z>k 8 =  ͙ # ͙ ́ ͺ͙ 0 - OT0 j oD,:j !I}袋.}8c~I$I~L!>8# # ͙ # = Ù nf^VNF!DLT\I!!53!r1!!> x #-= o˸x(-͙ }(x>8( , `i!>"| | >)=|(DMbo˸y88yx(0 8>   (( #w(͕́̕q*#~ʶ (͕́ ͕ Õ*##~6[O*#~(08ʦ=ʦ==ʩ=ʬò+###~-_q46`>*:4^q}Q*|(|( 6-#Sy[R8 (G> QC~Q#*ͳyC!' !+TRUEFALSEy!9^#~#(G~Q#> Q> Q "F!(#R0ͳ*4#4>R *4 #4(Ͳ>>2*V(/˖:(#~+ x y!t( =( X:(R*:(###~-_-K< =>:("^"*^˞*V˖0 SѷR8A* N#F#s#r 0})jS\*###w* N#FB ^r+s>!T]>)j)0 0= R!#*^#V#N#F#^#V>">!2DM"~ʲx(L* :O(o:" C}=( ?*-N#Fp+qq#p! * F+N+++V+^Bq#p>>>SѷR* s#r$ s#r*"[R0s#r>"[^#V!*!~+)^#VJ}oE+$*'~"+~1$*)~"+~*+~ !~õ!-~͛"7~"9~*7~*9~R! ^E{%*9~"1~*7~!"/~!*9~+)!*9~*7~P#+)͔!*9~+)^#V"-~*1~!"1~!*1~+)^#V*-~7Eʳ$*/~!R"/~!*/~+)^#V*-~JE$*1~*/~rE1%!*1~+)!*/~+)͔*1~*/~^Eʳ$!*9~+)!*/~+)͔*9~*/~!RM#*1~*7~M#-~õ!~͛"~"~*~*~z(&"~*~"~*~!*~z&"~!*~+)^#V!*~+)^#VrE%*~"~*~#%!*~+)!*~+)͔*~#ä%~õ!~͛"~"~*~*~R!͡" ~* ~*~7E@'* ~*~z/'"~*~"~!*~+)^#V"~*~* ~R*~7*~!*~* ~R+)^#Vr}oE'!*~+)!*~* ~R+)^#Vs#r*~* ~R"~Ù&!*~+)*~s#r*~#x&* ~!͡" ~]&~õS(!}͛"}!!*}͇+)^#V!!*}͇!+)^#VJE'!*}+)!!*}͇+)^#Vs#r!~*}+)!~!*}͇+)^#Vs#rJ(!*}+)!!^#VS!9[R8[R>O"w2x2!"" ͵*>2"!"""!\u*: ͭ!~6go(\R*s#r_2x( s x(T]DMR0 -a%Ù}Wo*!~6o&͠|ͣ}^C User break1: I/O Run-time error e, PC=[R"` Program aborted*1!`!0}ͅå0"~"~*~^#V"~*~^#V*~s#r*~*~s#r"~"~!}2}~*~*~!RzR"{~!*{~+)^#V!*{~!+)^#V^EI!*{~+)!*{~!+)͔!}2}~*{~#*}~&!E"w~"y~*y~*w~zʢ"m~!~*m~+)!s#r*m~#|*y~!*w~zb"o~*y~*o~!RzY"q~!*o~+)^#V!*q~+)^#V^E*!~*o~+)!~*o~+)^#V!s#rP!~*q~+)!~*q~+)^#V!s#r*q~#*o~#ó*y~*w~zʫ"m~!!~*m~+)^#V+)!*m~+)^#Vs#r*m~#m*y~*w~z"m~!*m~+)!*m~+)^#Vs#r*m~#ö "_~"a~!*a~+*}͇!+)^#Vs#r!~*}+)!~!*}͇!+)^#Vs#r}õ !}͛"}"~*}!*}͇!Rz("}!*}+)!*}*}R!+)^#Vs#r!~*}+)*}s#r*}#Ä(*}!R*~z)"}*}L'*}+(*~*}zʟ)"}!*}+)!*~+)^#Vs#r!~*~+)^#V"}!*}+)!s#r*}!͡"}*}*~7Eʖ)*}L'*}!͡"}n)*}#) }õ!}͛"}!*}!z)"}!*}+)!,*}+)^#Vs#r*}#)}õ!}͛"}O@Number of items to sort: *}ͭ!*}^#Vzʊ*"}!,*}+)!s#r*}#a*!,*}^#V!+)!s#r*}^#Vͨ)}õ!}͛"}!*}M#!*}z+"}!,*}+)!*}+)^#Vs#r*}#*}õ!}͛"}O!*}zʒ+"}!*}+)^#V!͵*}! !Eʉ+O*}#C+}õ!}͛}2}*ͨ)*&E+*+O@ready?͠E+@ begin*}&B)^#V"W~*a~*a~"Y~*Y~*_~^E, þ *Y~*_~r!*Y~+)^#V!*Y~!+)^#Vr}oEv *Y~!"Y~!*Y~+)^#V*W~JEʘ þ !*a~+)!*Y~+)^#Vs#r*Y~"a~!E !*a~+)*W~s#r"i~"k~*i~!͡*k~!z!"c~*c~*i~*c~+!*i~*k~!zf!"c~!*c~!!+)!*c~+)͔*c~+.!"S~"U~*U~!*S~z2""K~*K~"M~!*M~+)^#V"I~*M~*U~^*I~!*M~!R+)^#Vr}oE"!*M~+)!*M~!R+)^#Vs#r*M~!R"M~å!!*M~+)*I~s#r*K~#Ä!!;~͛"E~"G~*G~*E~rED#*G~"?~*E~!"=~!*G~+)^#V";~*?~!"?~!*?~+)^#V*;~7E|"*=~!R"=~!*=~+)^#V*;~JEʤ"*?~*=~rE"!*?~+)!*=~+)͔*?~*=~^E|"!*G~+)!*=~+)͔*G~*=~!R3"*?~*E~3";~õ>$ !!~͛"'~")~*)~*'~!͡"!~!*)~+)^#V!*!~+)^#VJ!*!~+)^#V!*'~+)^#VJ}oE#*!~"+~1$!*)~+)^#V!*'~+)^#VJ!*'~+) R,!*,CR-,!*e,HRE,!*,IR],!*g!,LRu,!*1&,QR,!*3",RR°,!*M#!*g!,SR,!*̈́%,TR,!*I'@ endO*&E-*+}õ!}͛O@Options:OO! e.! 0@B Bubble sort.O! e.! 0@C Count sort.O! e.! 0@D toggle Display of list.O! e.! 0@ H Heap sort.O! e.! 0@I Insertion sort.O! e.! 0@L sheLL sort.O! e.! 0@N Number of items to sort.O! e.! 0@P Presort master list.O! e.! 0@Q Quick sort.O! e.! 0@R quick sort 2.O! e.! 0@S Selection sort.O! e.! 0@ T Tree sort.O! e.! 0@X eXit program.OO@Your choice? !!}͚*}&}2}O*}&BR0CR0HR0IR0LR0QR0Red with one cell for each item in the list, and these cells are set to 1. Each pair of items is compared, and the auxiliary cell corresponding to the higher item is incremented. The auxiliary cells then give the number of items smaller than any given item, which establishes its position in the sorted list. *) procedure count(lb, ub : integer); var left, right, cell : integer; sorted : list absolute aux1; count : list absolute aux2; begin for cell := lb to ub do count[cell] := 1; for right := lb + 1 to ub do begin for left := lb to right - 1 do begin if (a[right] > a[left]) then count[right] := count[right] + 1 else count[left] := count[left] + 1; end; end; for cell := lb to ub do sorted[count[cell]] := a[cell]; for cell := lb to ub do a[cell] := sorted[cell]; end; (***** HEAP SORT *******************************************R0SR0TR%0*}&͛+Ù0DR?0*&}o}2Ù0NRS0!*Ù0PRg0*ͼ*Ù0XRw0rÙ0O@ Not on menu.O -}õ!}2 -r&}o}2-0NRN!*G0PRP*ͼ*[0XRXro0Otype list = array[1..2000] of integer; longlist = array[1..3199] of integer; var n : integer; (* number of items to sort *) toggle : boolean; (* controls display of list *) master : list; (* random values for sorting *) a : list; (* working list to be sorted *) aux1 : longlist; (* auxiliary arrays used by *) aux2 : longlist; (* count and tree sort *) (* Internal arrays in count and tree sort are forced to overlay aux1 and aux2 using the absolute address variable ability of Turbo Pascal. This saves some critical space in the program so tha*********) (* The items are rearranged into a "heap", where each item at position i is larger than the two items at positions 2i and 2i + 1. The top item in the heap is then repeatedly removed and placed in its final position, with the heap being consolidated after each such removal. *) procedure heap(lb, ub : integer); var cell : integer; procedure siftup(parent, top : integer); label done; var child, copy : integer; begin copy := a[parent]; repeat child := parent + parent; if (child > top) then goto done else begin if (child < top) and (a[child] < a[child + 1]) then child := child + 1; if (a[child] <= copy) then goto done else begin a[parent] := a[child]; parent := child; end; end; until (falt large lists can be sorted without a heap stack collision. *) (***** COMMON PROCEDURES USED BY SORTING ALGORITHMS *****************) procedure swap(var i, j : integer); var t : integer; begin t := i; i := j; j := t; end; (***** BUBBLE SORT **************************************************) (* The list is scanned repeatedly, and adjacent items that are out of order are swapped. When a pass occurs with no swaps, the list is sorted. *) procedure bubble(lb, ub : integer); var swapped : boolean; cell : integer; begin repeat swapped := false; for cell := lb to ub - 1 do begin if (a[cell] > a[cell + 1]) then begin swap(a[cell], a[cell + 1]); swapped := true; end; end; until (swapped = false); end; (***** COUNT SORT ***************************************************) (* An auxiliary array is creat se); done: a[parent] := copy; end; begin for cell := (ub div 2) downto (lb + 1) do siftup(cell, ub); for cell := ub downto (lb + 1) do begin siftup(1, cell); swap(a[1], a[cell]); end; end; (***** INSERTION SORT ***********************************************) (* The first item is considered as the nucleus of a sorted lefthand sublist. Each succeeding item to the right is compared backward along the left sublist and inserted at the correct position in the sorted portion. *) procedure insert(lb, ub : integer); var cell, newcell, newval : integer; begin for newcell := lb + 1 to ub do begin cell := newcell; newval := a[cell]; while (cell > lb) and (newval < a[cell - 1]) do begin a[cell] := a[cell - 1]; cell := cell - 1; end; a[cell] := newval; end; end; (***** SIMPLE QUICK SORT *************************************** a[lb]; repeat repeat left := left + 1 until (a[left] >= pivot); repeat right := right - 1 until (a[right] <= pivot); if (left < right) then swap(a[left], a[right]); until (left > right); swap(a[lb], a[right]); quick2(lb, right - 1); quick2(left, ub); end; end; (***** SIMPLE SELECTION SORT ****************************************) (* The smallest item is found and placed in the leftmost cell. On each succeeding pass, the smallest remaining unsorted item is found and placed at the end of the sorted lefthand portion. *) {procedure select(lb, ub : integer); var left, right : integer; begin for left := lb to ub do for right := left + 1 to ub do if (a[left] > a[right]) then swap(a[left], a[right]); end;} (***** IMPROVED SELECTION SORT **************************************) (* In this faster version, most calls on swap are replaced by an explicit **) {$A-} (* compiler toggle to allow recursion *) (* A pivotal value is chosen and the list is rearranged so that all values to the left are less than or equal to the pivot and all values to the right are greater than or equal to the pivot. The same procedure is then called recursively to deal with the left and right sublists. When all sublists are of length one, the list is sorted. In this version, the pivot is simply chosen to be the leftmost member of each sublist. *) procedure quick1(lb, ub : integer); var left, right, pivot : integer; begin if (lb < ub) then begin left := lb; right := ub + 1; pivot := a[lb]; repeat repeat left := left + 1 until (a[left] >= pivot); repeat right := right - 1 until (a[right] <= pivot); if (left < right) then swap(a[left], a[right]); until (left > right); swap(a[lb], a[right]); quick1(lb, right - 1temporary variable, which represents the position holding the lowest item yet found at a given time during one pass. *) procedure select(lb, ub : integer); var left, right, low : integer; begin for left := lb to ub do begin low := left; for right := left + 1 to ub do if (a[right] < a[low]) then low := right; swap(a[left], a[low]); end; end; (***** SIMPLE SHELL SORT ********************************************) (* The list is divided into a number of interlaced sublists in which items are separated by a gap initially equal to half the length of the list. On each pass, the gap is cut in half until on the last pass, adjacent items are being compared. During each pass, items on each of the current sublists are sorted by insertion sort. *) {procedure shell(lb, ub : integer); var gap, left, right : integer; begin gap := (ub - lb) div 2; while (gap >= lb) do begin ); quick1(left, ub); end; end; (***** IMPROVED QUICK SORT *****************************************) (* This version includes two improvements: (1) The pivot is chosen to be the median of the leftmost, rightmost and middle items in each sublist; and (2) sublists of less than ten items are left unsorted. The partly sorted list can then be rapidly brought into complete order with insertion sort. *) procedure quick2(lb, ub : integer); const CUTOFF = 10; var left, right, pivot : integer; function med(lb, ub : integer) : integer; var mid : integer; begin mid := (lb + ub) div 2; if (a[lb] <= a[mid]) and (a[mid] <= a[ub]) then med := mid else if (a[lb] <= a[ub]) and (a[ub] <= a[mid]) then med := ub else med := lb; end; begin if (ub - lb > CUTOFF) then begin left := lb; right := ub + 1; swap(a[lb], a[med(lb, ub)]); pivot :=  for right := gap to ub do begin left := right - gap; while ((left >= lb) and (a[left] > a[left + gap])) do begin swap(a[left], a[left + gap]); left := left - gap; end; end; gap := gap div 2; end; end;} (***** IMPROVED SHELL SORT ******************************************) (* This version saves some time in the inner loop with a better version of insertion sort that uses a temporary variable to cut down on swaps. *) procedure shell(lb, ub : integer); var gap, left, right, newval : integer; begin gap := (ub - lb) div 2; while (gap >= lb) do begin for right := gap to ub do begin left := right; newval := a[left]; while (left - gap >= lb) and (newval < a[left - gap]) do begin a[left] := a[left - gap]; left := left - gap; end;  i : integer; begin writeln; write('Number of items to sort: '); readln(n); for i := 1 to n do master[i] := random(2000); master[n + 1] := MAXINT; reset(n); end; procedure presort(n : integer); var i : integer; begin quick2(1, n); for i := 1 to n do master[i] := a[i]; end; procedure show(n : integer); var i : integer; begin writeln; for i := 1 to n do begin write(a[i] : 5); if (i mod 10 = 0) then writeln; end; end; procedure dosort(c : char); begin reset(n); if (toggle) then show(n); writeln; write('ready?'); repeat until keypressed; write(' begin'); case c of 'B' : bubble(1, n); 'C' : count(1, n); 'H' : heap(1, n); 'I' : insert(1, n); 'L' : shell(1, n); 'Q' : quick1(1, n); 'R' : begin quick2(1, n); insert(1, n); end; 'S' : select(1, n); 'T' : tree(1, n); end;  a[left] := newval; end; gap := gap div 2; end; end; (***** TREE SORT ****************************************************) (* In one auxiliary array, the items are arranged in a tree where each position i contains a copy of the smaller item at positions 2i and 2i + 1. A second auxiliary array contains pointers to the original position of each item in the first auxiliary array. The first (smallest) item in the tree is repeatedly removed and transfered to its final position in the sorted list. Then, it is replaced at its original position with a value higher than any item in the list, and the tree is rearranged to move the new smallest item to the top. *) procedure tree(lb, ub : integer); var cell, node : integer; value : longlist absolute aux1; pointer : longlist absolute aux2; procedure minimum(cell : integer); begin if (value[2 * cell] <= value[2 * cell + 1]) t writeln(' end'); if (toggle) then show(n); end; procedure menu; var c : char; begin writeln; write('Options:'); writeln; writeln; writeln(' ' : 10, 'B Bubble sort.'); writeln(' ' : 10, 'C Count sort.'); writeln(' ' : 10, 'D toggle Display of list.'); writeln(' ' : 10, 'H Heap sort.'); writeln(' ' : 10, 'I Insertion sort.'); writeln(' ' : 10, 'L sheLL sort.'); writeln(' ' : 10, 'N Number of items to sort.'); writeln(' ' : 10, 'P Presort master list.'); writeln(' ' : 10, 'Q Quick sort.'); writeln(' ' : 10, 'R quick sort 2.'); writeln(' ' : 10, 'S Selection sort.'); writeln(' ' : 10, 'T Tree sort.'); writeln(' ' : 10, 'X eXit program.'); writeln; write('Your choice? '); read(kbd, c); c := upcase(c); writeln; case c of 'B', 'C', 'H', 'I', 'L', 'Q', 'R', 'S', 'T' : dosort(c); 'D' : toggle := not toggle; 'N' : init(n); 'P' hen begin value[cell] := value[2 * cell]; pointer[cell] := pointer[2 * cell]; end else begin value[cell] := value[2 * cell + 1]; pointer[cell] := pointer[2 * cell + 1]; end; end; begin for cell := ub to (2 * ub - 1) do begin value[cell] := a[cell - ub + 1]; pointer[cell] := cell; end; for cell := (ub - 1) downto lb do minimum(cell); for cell := lb to ub do begin a[cell] := value[lb]; node := pointer[lb]; value[node] := MAXINT; node := node div 2; while (node >= lb) do begin minimum(node); node := node div 2; end; end; end; (***** MAIN PROGRAM INFRASTRUCTURE **********************************) procedure reset(n : integer); var i : integer; begin for i := 1 to n + 1 do a[i] := master[i]; end; procedure init(var n : integer); var : presort(n); 'X' : halt; else begin writeln; writeln('Not on menu.'); end; end; menu; end; (***** MAIN PROGRAM *************************************************) begin toggle := true; menu; end. SORT.CO͠ i progra shel designe t allo compariso o numbe o sortin砠 algorithms SORT.PAӠ i th correspondin Turb Pasca sourc file Th progra men allow th use t generat desire numbe o rando integer (u t 2000 bu tre sor ca handl onl 1600) Th maste lis ca b presorte i desired an displa o th number ca b toggle o o off Th othe men choice allo th use t tes th particula sorting methods. Th individua sortin algorithm appea a name procedure withi SORT.PAS The wer writte t gai understandin o th sorts an wer optimize fo clea expressio rathe tha versatilit o speed T compar th spee o th variou algorithms time th interva betwee m respons t th promp "Ready? an th momen whe th sorte lis bega t prin out teste eac sor o 40 an 80 rando integers an the o th sam numbe set afte presorting wit th followin result (time in seconds): SORT 400 800 400 (PS) 800 (PS) bubble 29.7 114.8 .3 .3 count 17.8 70.2 18.0 71.0 insert 11.5 42.2 .4 .4 select 9.2 35.6 9.1 35.4 tree 6.3 14.1 6.3 14.0 shell 1.9 4.0 1.1 2.1 heap 1.6 3.5 1.7 3.6 quick1 1.1 2.1 8.7 failed quick2 1.0 2.0 .7 1.2 Th firs fou sort ar o clas tha take tim proportiona t * t sor items sh TTHELP0 DQTTTHELP1 DQT TTHELP2 DATTTHELP3 DATTTHELP4 DAT&TTHELP5 DAT*TTKEYBD DAT2TTYPE BQS4kTTYPE DQC]TTYPE WQTlTTYPEXA DQThTTYPEXB DQTm TTYPEXC DQTx TTYPEXD DQT TTYPEXE DQTTTYPEXF DQT TTYPEXG DQTTTYPEXH DQTTTYPEXI DQTTTYPEXJ DQTTYPING BASTYPO2 BAS v9TTHELP0.DATI o !"#el sor i i a intermediat clas tha take tim proportiona t roughl * 1.25 an th othe fou ar i th bes cas clas tha take tim proportiona t lo n Not tha tw o th ver simpl sort (bubbl an insertion ar excellen o list tha ar alread sorte o nearl so Tre sor i wors tha shel sor a thi lo becaus o hig overhead bu woul eventuall catc u a muc large n Th simpl quic sor i notoriousl ba o presorte lists--a 80 i fail du t stac overflo durin recursiv calls Th improve quic sor overcome thi proble an wil b th fastes sor o thi collectio fo al bu ver unlikel sequence o numbers (I fe rar cases hea sor wil bea it sinc th improve quicksor stil ha ba wors case whil hea sor take about the same time for best and worse case lists.)$%&'()*+,-./0123456789:;<=>?@ABCDEFGH\ؓ(_g°!KC(=G[`[CSeG<(=Xe,q#jˋPvV-"Ropm4}@$J`O~?9fUsMPa\k/~oyz$Q{%'Q~uP :53XBB"_D |:^}'Q{%LS:m 5\xv! %'Q{%LFSz?m 5\xv!D IDiE!w%lQ5YW7$ȥ'vTTHELP1.DATk _o !"#$% &'()*+,-./0123456  789:;<=>?@ABCDEFGHIJKLQ MNOPQRSTUVWXYZ[\]^_`abcd:,XUSA1&efghiYV>=;86+jJ+mo:5g :Zl3$lvқUnajd;{Km4YpD2* exercise (DEFAULT) I thi optio i OF the th entere lin i no displaye unti i i finished. Th lin i considere finishe eithe whe al th character i th lin ar type o yo hi T ge th nex lin o th exercis typ for ECHO OFF. Hit for ECHO ON.  t - To Continue where you left off M - For MORE Help N - NEW Exercise L - Print LINE Number E - END to Basi[jBߜbrd%YWVZi9<1JoVŰL%Q1qh^Н1J1e8w#X7 K'̨r - Continus wit nex lin i th exercise. - You'v foun thi one! - En th runnin o thi program. - Qui t operatin system. Hit for more HELP. # - Star NEW exercise. R - REPEA las lin agai fo whe yo can' ge i right! S - SKI line i thi exercise Yo wil b prompte fo th numbe o line t SKIP Not tha printe comment hav alread bee skipped. W - Prin th numbe o WORD s fa an th ERRO count The the RESE option resets the ERROR COUNT t zero. L- Prin th numbe o LINE rea fro th curren exercis file Use i combin]SZi;k2Y'Dӂr;@cÇJ+mqaXvw@cx_(Ynqa@tE;}F7aPЙ1PNFM)?3rm;싮tyIys4F { ERROR BREAK OPTION Durin a exercise i th wron ke i type an th ERRO BREA optio i ON th consol BEL wil chim an th progra wil expec yo t typ i th correc character. Thi proces i repeate unti yo ge i right Wit th ERRO BREA optio OF th error ar stil counte bu yo ar t continu o wit th res o th line. Thi optio ca b selecte whe yo ar makin to man errors I i no anticipate tha yo woul us i lot. Hi for ERROR BREAK ON. Hit for ERROR BREAK OFF. optio on the screen. afte promp wil prin descriptio o eac ECH OPTION Wit ECH O th key ar ECHOE a soo a the ar typed durin thatio wit ,? z,x,c,v,b,n,m,",",.,/ 1," "," " #Exercise A. !=66=!=55= 3=4vzTTYPE.BASm  !"#$%&'()*+o,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl7]Y(=ɠV8..n|z\0 o81}߅U\q0$B{Gs9bk`b#L?(%\NӋq1lZV.nt#i)o?x U .7jKXHI2$V˛bC1ng)W WEBM GĴZ<Ӈtpt gt/TJR&p@ !A dpAf#l!@I8h@Ά02x6g8H8 5:$}MG8.n8 C".Ҟg#imUdCT*u7EY═ۨnT#3_b.f(8 WD(|k=G═BLͧgk3UH(|kFe#JHbmT7*Lͧgk3-z4Bi3綪ba[0obYՄ6PۨnT#JHbmT7*޾-c)g!$L9 7D*MHrnB)"w?8 7a)"w/!8`p߽,܄9x,܄CL9 7a_ 64`+qҞdЀ_lE!az߽JaJ)Vz Š(70{b=<\ŚUB)g$$,S}$c/{VɊU@j`ZWncl8(5#ͳ=t gCL$0Υ3F(^\^o!x6Xހ+ g!o -tpQ?\^NG.b|70}ߡ{-o LcKl<-2@[$ZW70}ek.a^ н|ÙN0}ߡ{3c)nokXˋf l0{=}[\!t/ gz雮Lrx)"w/!8@w/9KL%9 ~I19Vi#v"b;g )~rjL7*PA#c#: 9v"8 LM0ǔm)b0Xpͱ{'G[N{ζCL9ۆX_LmWؽG[.9n1b0yRA<|wa!0FVi#t%ga)~rv8` j即 T@M9 NB] NB]qv`omSl1EY1gf<3AMw7G8sbʙք)b^.^A1Lk(LzicʙNV%LT8bS'Vi#t%g:bʙN'g:`20*֞ ^ _84*tN'g:ט"g:O0ESL_ b b:XxqxsG2GoeKV{t>Ĕ3n1h(@ 3# zVdLL9+t07ŸLo ѷr"qLSAcqX2"LzX\"򪸂a}\ma GŠ(WCQA|,I;iϳ3oQF"hܷA$kӛ_b. u|]rM߇d'>՜ KJXFvҞ۪4G)!qD./nA*u?wm"<K+Mv/G2FF[*w&9&!5$zH~_.}P:D clAU@Ws|!{3qDKJXFv6PFۦxՍw#B䔐AفBEܘR?m oϯ&pvPcفӏ]ف% p߽@S"<ٸ|!7_.K锁VD%4B՜4)&=t~w#B䔐A8"T2VU,Lvi8"DN w#\\ք3qi%@|+Snd=gO6帀r0chf#g ϥ)Us 1lC雮l S6:mﻗ oUw/9$!xli"EW"#d`U1|'g4A"LSBнHq2W8)rLSNriHB.9C(t Jx6(b</g+@,߄)toZ>$X!8඘+D,߄SQ bp<G} @'-1,n X.g0fr#x9[@x;Mc ;D> f墀ϛ/.5|r 87S!L,|(gGr]r1.WY CL{xv3(@)rᦀ@'-\;,߄+L/-DNة2Aнלp)th b38\,0{\,u_b.87SD\awp)"b1c:.?|E_` W 06J`餸Xx5ai=.b`=fg! !y*E#di{X_Lpq;L/ؽgk(~庀c!C"rҙ H#$g$$U2rvȉU@j8"V(om FGłqDWox#d89ؽ 8vQꦇ%ؽkHq CD*Ð00 5x0 L{ Y!}01Ega8ĔpE~ |+{.PH_8; W!B",S}$c/{萳CaE'אlB"s岔Nx/m 'iڄ)gZD3X.=qyS\qm)rPuELSδCevG#,gZPzՍGqș֫0rJTQpG@i%R:eR>Ѥx%w<;.Fu9%d1&=oٙ6G)!8zRLq9gZ0E[\ Ʒ1,ǰ\b6)<gi} ]e 6`ZGDINę" "D#(dPNSuc+#^)gKQՍxe"D@Սxe"Ds}8 TʈW&rJ rJN qD0P#"LTJR&>KTʈW&rJ%U731 0Pc@'m# tC”3$DxƂNDșN0L'9 TJR&p8"V(tęNPՍ(E` qnl%E)gQ_2pƂRH$$”3!@ vG 8"B)2&NһXH{WBz oQsDN wcBM`═ ʛb.D# zqdFN p=T.ntvDN3l0= sv:smH*([mT7*ZoQG͙7!!)={J! oQݨ +1`ZZoQ8+bʙ^%D'k,6$* 1Lr"DWA䔨qD 8v/@6!qWyH[[E)q^aHՐ1rf nƷ1eg 0l 82lP=o>qWÐKAe4a'|k=΄oQݨl8"RL3 S,׃[t9^lf\<{z<?8ӫ0$M`긴dg3Z!Xfӷ0(5)<fo8O+j{t=m 38Und{jK*x/' d#3`Zhę^mCBtO2y*E8"ib gzu BL9ӫCH'k,Ugz!BL9ӫMH+.8["”30E8V|0.3Dr:$ UJR&p߃v "D3D9%b@{qvA³dLaHX28ɠl3hL+"Tuc+#^)g8͙W!ae%2h0 rJN 2L!e ֩.ftX3 !Y.5ax0ųb:^.^3l:Lݮ81rJSemrPu2IeT;Y[f{@t xeE֖g:?aʙ! Z!q |[Ce%x4BU "Da3hZGD8ٸ<.GD8YcA0$BBZ pU䔈:6L5)P)hNһXH{WBz oQٞ3=!a)2&=+!ٙx%w6GDezS?"D$ɴGL"L9Ä4o3=L(3=L(aBCL{ Y+%gzP)tw?8ÄVrIH~~{tm9 b፳ vr9+q涀azůbp\x\a++E֖@ ^ENHi3pE֖@P'f#"V(Ʊ{SS#МaHkHqD5vg@C”3}U@`G 8"5t8"5$qD5CLhC"gU@`G 8"B)2&ۦH{y4BoQsM; ~庀C1`~JGNqDkȇqD56 3}SA2Fp9`ZGD"AD`A8"D<ٸDo0|RZ pz"b)2P)hmٙM#6=״c{䔐A8v/XcRZ vO~8Z!y &0u\Zi3}8"67B0~T&(4~"l\_CD~_.}P:D cLU@`4g`ZչF@cVz[+q zę> SAorzs3}HBBWox#d83qD)6Lr"L9Ӈ f墀%b0Xn0]|P:DW%z%:$B2FpL;2FL9Kt |!{o0sB1*m o+q^ibwUH%zERZ* }!{V b;2F~1O%zKRZ* S} ]Y!aY7Dba0{/|N\B9X.kRZ b.`8x6\qMHr$Dt H^YPHX@7aDNE֖ٙsaHASus-d8b;2F~ϙS=`8Qݨ g8.A堸gA^/8UHҞg8&)8]{T\ ROҞ3=!Qݨ pL&Rq Ω2; F8mHt`|,I;iϳ3oQGcAﱙw#"67Bw#"fM;p"R:e+cMz Ziϳ3[mT7*gzx BL^o/x \N =ra tL!!@lSǥ&;nUI 8Pucs+'3=܄b9L p8t<}68!!O2S%& J+MLb)2&==μFeqDsiJiGD仛w#"V'2]{T\ w#"KSJcLU^<]O| G"q^&DP*x/' d#3`ZDN* N@_2 8YcA8aBrÜ1LyH[[E)hL+ؽTS=_.N5o p*6Y7Ed"E_q$Ð0,I+w.6N P@ 8u1|2vV"gI2%IHxՍ–G 8"$ CԩxՍGqY0u*6Ҟg#p*6Ҟg5gI R:e$a*p*6ҞgF`l=_1qDb#y#08KmHJaj8K%!$LU%y%L9KS> f墀/\\5LG(SZP-ogIk”$R:e|$c/{Β< m) rPudg07Q9ފTu?_M3,!@ v$3qDM`긴dgqD2FF[Ωv&/GDC"&.GD(SG2dA SKY!a=T.n "DsUq0qD0P#".{o /GD8jr8"B)2>%'k,@C,-a)2S"9K@xBC,ɇDrl!a׮, W)g&$x(sb  8z]}l:8b:^kg& Sm8B)2^<]@N8K6+"L9K6+ Ne4aϒp8"DN w#¹44Vw#¼]a\޷>q6Fz~YY SΒJR(=T.nln{t=fYY%&" 2a ++Rd0  %|Ԝ$!^<Ȟka"*@c8ˇ9*ʀq8ˇyH(,҄_|C aY 0`0^. r t@++M SM)X)h2;Ӵc_~pR:e`׳b:^0{mX97aNXJ V23̞'gw#7Bבa|[b-pHXJ V23̞4GW >u$b/g9g& KJXFvƖՙ0*a|[DTA-rso6Dro6|ф)g{雮lH L9 (?ﻗ oU^r6$S~p6$! ([  ҩ|!QBr6$ '}=חsΆU 9jBF0D#V(|dc]2`K`gM.畋D8"qzE iH)gCjBWF J㈦qDX}"&.GDP0wEBMM.scދ$0KF@YِB"L9R ]BJAC& d#H<'M+>EBM]2`K`g$;H]ƴ"*[nI`旌#"H׍$χ* 0}U0٠PTu?_M3dAn$y>$DVaHB1*m o+q^ibwUH%zERZ* }vy?TTYPE.DOCw  o!")gfJ{@s[U0gfKFu2Q([U0gfVV-h08K6"`2"3ع2;hΒ!$`2"3ع2;d#М% *ʀ-3Β&$L1L .ftX`z1.0=z]`2 |Ȍ^rmSq`z1.p1 \ Ʒ1LA^_q)g9i"-3c!,'Sem* U7yvnl^<g9%!!osrʉ++E֖@VSqS":UrPugg@sӐ;Z Fv d!!b.nŸx5g9DL&Rq Ω2; ==@ 1L vASus-dvHѤٙQݨl8v/|!;,UHxb68.nŸl0(fr3.׌cX9iKd@#&@r6$D'2]{T\ G9U7Bft @DoQFeχYNxeE֖g9mFe0oQU7z/ 8ibe%2h0Tx3@rMDTYEBMox#dY)$DL1 X.pq;L/Xawtu1f09<fo8OZ!E֖ a`Z !`q^ib2FF[.9˵ ;Z Fv d9uBd"Eg bk!@I8=ϐ\'!!b0H;Z,2x6g{Qݨ\D8qqO d Ω2ÈqA{5n.L|#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuv ?/OO.K2l;oG?N q^z6u%)r)3\EoC&rE \y魏<甁 {믥f" |_+jښ+?z-V,Ǐ_)3|szrs^>Sfo?~γ?هSN9eԶz .D/5.E0v5P޸8 bk5kTbP[UUȜr)oxj)Ȝr)|`[隆kwwV`_\SXَDhb=kw/%HTFl^'\jgA-#aӔnЙVޙzN9 JN^o\`5O5<#e[-vb;SN9gҨ{$`[Զz .Z0!"ߨ{g@r(y8iϳ8xe"kˌ\4a)2Ҕت9*!T.n\BG[l:8º?<,["L96$Rq0,Oӿvgy0,O&L1~0=>\Bޕ ~庀)_q':!L9)&ۦH{y4BoQsM;bGY.5gw%q': f墀/meNS򜶄a]"Fg{M+(,@rtHۦ;7wA=gyN!VV-3caYӆ#8U+ U7:; "DY&Di2E֖GиI "D9sMJ2"kˌ<פ1,5XY .p<ךK锁JXF~me=Ϟ2;i2FuS䔐A8"tme-=gyB%^peY0E,P SKY aY>$"LUC S&x(%(x,0,&DXY 5&h09(NIB76HZj5q nms)-GN.2z; u>( MbJţ{s-zEެ5hA YޅjIY]-]UAe\TvN"0zZSf{4m6x&S~l|7^ 唧< x`[e SHk=7Kp`=)oK.Q񽋦 ײtZ$Y!NxR-ۏe ֳ7NiGWæ⚔9OսromUٽkp T.(nyBQ.(il?-qGolHƯPK1~߸ `Z~E Q.6UWK=rC9m87•SoO0l&pÍQӺJR˻o6CzUS˻GĐ/.>2:iz|f31˻ 0:iz||݅U Ny/.?aL B*' Ny/.?bL B*G N9izrY~w|RFݺK,<\mOKnUR'w|RN 7^ػ"Ԩe'JKZSR^Σ{M5N</rA-M1q--F͊HZvBojA-kQVFޚ)8H+Wxy؜[px<=`[\]{ӧ6 HFVc慠-BFfEyi1u%RNw--oW͏_/w/y <]7o~7W?~z8~/>>Ï^^ܟg)TƠ&*_||m(ji(Z]/Q-Z.6l T؜[Zǯ1Y~77}/<\@%⟥kw"y)qA\ U3)&\ԲbTj\`H-5<|/>/ⅇ 2í!vN<(FÜrʯmxkzb't#jg?dnbiT|`OzWyB-wQKՊOSf"^軠E ؖ<-Gq-+acbob)3>= /M?VBk]\RN5û \6W1.Fi\f{c\T6b\v+ZRf<kJE`vMhqp0p{6_6Z;ueLIpw)aƵ1lĶhbc[*%")3j.xN9唗_߲p=-Lۻe)˗Lʟ)%ë;ibbh~%8__%ײ sʟ_2:uQ56Eů~/%%xKe政E۶mg}g}F۶|g-}Fg|뚺:ϿL/SKWpFY {vJekqN/S˔EUUQU!"*U1{1cxcxc u]cSc SU5RB\__c5}3Sa5*}Q51Ԧ*1uMejjSS:}a01:`uxOKkhMEkTUH{_L 2S𞖶 memeu`jL]c:`:' TSL_)%ëE Q^*T.JElz;9ϿL/Sw Դ~2!К M Ce)4=^]~|RNy6. 5VؖU0QhxK%xyw7}/<xL@ʭ*ت#"qf۲@VD ^IY@cFil jt#:S%tb[]l*)5hTLiuKT`'yyCʣwQ]\cx8?K9AZ崼3_|y;m7wW>`[\]{)vfEQKSL\ ZVݻ1>f\oq0u%lKXڨ9Ofzq7ʹ77ҸT`Km *=)3AP]`^gRNyy\09 ysnᑩ:4xӨxԠ@BcFaxhlߛX< -)3ڛ9唗ǛÏ9x!ԻF-wQl˵hG2}$4xӨx.OWӓgs)<V4ĵB]UcJLPzs-8] Nk⚔Ղ\ *+=T<hڮ%4ލllB#^xae;Sfw/wf2=^v{<4=,S)Oӓr~9 hoN+|#45F5."mavM &8 W N]03p-BZ{WUHPTy~nf*{WU0z3jE^~9/`*o`{hzkYbL7@ʵk[݋DP񽋦 3<{WUD-q5*/vjSl5b0IY^F臔SN,Xdo?\|X?R|r7?_<,.-k-/z\\C Q.E&Zѳ"+0^%uӂBq)ƛFg")k5e"/fB0zb* v^xpq씔/Q-xZ𢝏<=pZ^M㙟y۩Bʿ/i y9V&u6>SNy*.xywfC)'|Fu{(/EER| RN9'{x$5Z\F݋D~YԨh픔mKP`bUHvV%7*xo=`2Ӄ?ߜWЛؙ vԨײ/r S~u5]l4m<=({H zpHxg 3LEHJh بV4xӨ@XE]{N|9<}a["|ewf-D;q Jq2?K9oO7n6n~3r\,n7fqI8/΋8/΋s)xyX~?n#ç3w-ײ r 7 ~WxӨf{m,oiRf鵬vzS/-)3T2~|<ٞ.w'4xӨ4{ 2OGkP 7nbiT|}H ? ŵ*2O,3OlGoV4 f{m2Oq1Akŵ j{Rfic,5"^ZvZ~z>?lObiT|SN9izrY~w7)ߺJEizrY~w7F5."/7.HĚ<R61U%5VE7.ڛtK=izr^\xTZCE";aֻVzc_洽SW9]јtu87SHk=)kN$n]gssዏES0Kou@T<ݒr9唧:kl?e۔n_U-t, Nb#zVESabT<)3"=j S)p6^:FoW͏_/w/p-B?KUFu5K4փk/!^vwUE FowfW(摠m(hwkSf} Sz<2ޙ]%0?Ě0߾1 ]^w\-^$vU5T-~v̤jvT|(&`"=2DbF tA >T2zQugRN9O˫i{<Mf'_򯺠`j%b[\l-jQokl Z]{H5c9SN3_i{wǫoSNyS[v^hl/D\?Z&*;3l#q-.@eĮ05465Q/`Bp(5-<)qvΨxgv9唧:kl?n_f\ݙ]b'ԮmKT\de;Oo̤2kX'7Dh6Gbj ݵZRfx%Q~s̰)6kY/)@ ]^V%bbU+#*dN9eװ<]]=>[ǀ!wqZFElkY2ë($tW4&NٛËog)pnw'DZJZ Šjjf*BۢEHᕺ^ʬXEAu6R\\i!eWnm.Jas}x$tAj#]\2ë.A*~1/*g2ë *=0_TփlK ZWSf}ͶgE]{ӳ7Noja'űM14*\;EкJh*^!eO"|7-Bo\dvM˜r ٶty| C.zۣEu,@2çJZ۠MqHs-5hFjPީxRfgs)3ܾf7%HTko^z |u\;]2ç}/h#h@SRcbM[=xjISS5u )p{T. .0zUjLhԠ>5EkZXc[*fN9n4s9l.IՙZ"ilgjA :>U֎hFoCS7x 8E-H \TY[ǀSb"{a*5&\^ܟIᓩk/!HㅠKlnnn雧]i`_\SxAOu6b)ޮ{!\L {s)WxGpZN\=^^}nI)߯u>(^LFF5Z\7.E5JރSR fR#JmwMA-N`FUư 4 Z{\ XzlbW4ĵ)%w3ڛ쭿 D\S\V|rSqQ"Zy)qAh]%X3o"5)7EZ4E.~?Sf}Ͷek-o]%<]>[-j%vs)3ܾf0wi=+b4Sf}Ͷ).`:/-Y[ru_'Fo 9n_m).`lhcvl4I0oތeN9ޮ{135Z-.Qg#F"H,) /7..a'ݣE\EU.%J=iy5mg~ .[ B Z$2zUj\DRY;)2fɜr StouAYGaR]uPKeV3[ݓ2m1 ;5FlDQ` hRf]m Xj -FYNQ!t;o;uQp`꺖*⩍ʜr)3=O<^]__)p{.j35FZ"8vbN9eM3x`:l.SNy*VT.JxAлǶ֣ތ* )7jvBm)mA0z-›j &4&>(5h]% R"кJh*Ě7Ͽ3kQ ZZWI45)hǨJ?*.ЛZP%Eh]%3l[*6EH9=h_gضhFo6ExN#\[ RY{Mk=$`#Z wעEV/A)?SN9e?/YoRN9SN<<^]؜o\wǯS)Th10Tip3 76>(Z\FQXHY;qQ-&bAW }$>EvQgc`ZKSf} :.#gPjj&bKؖ^ibiTb뽄:ZpHhSg#6E14^$r-5SN5\5ŭKE"K BS7Fײ^r k/a1jo.FIUm]4ײY9n_Żx ]&*.b#˫k'SBbM l߸ #˴=q۶s)3ܾ"5Z沄oa98Ps-ʌwFӨqN9epUN)ƛFţ k)4{ uJ^o\hQ p-*.6^zp8/X2ëǛySNy*Fq 1Ub_baAb0GT aN9O˫i{<<]m.K6wp갹_u)o wl2=^ jTz+SB*Ө\$e/a1j"4xӨx\;eB 0_"Hً"//f-m .ЛZ"//pKRcER Co)@ojSN3?bڞS(;R#j-b睴ՊZBNHY !Hl}1P[ O9n?\m.is72EMiMUNhkh*Oc2íbv8WQK7iL9Sfp8:8Os)3^"Į߉Ƕ\D~'۲QjRf 9nٞOմ=۞lnniN9eMY4E0u%Zq1u6ԲFJhRf `Z2Aq1u67ѻRpJ&e[gr)3dr؞'/.s)3ܾ"qN9eG;o65\Hs-5u[t5JU"]pqMZ7S"uq-I:y3s&ְ?Df;S^BԂL)?ͮZ!lCU fRN~Ep/A1IW\DPۦ%vb)SU\GMKTFoZv:}>SN9c"CmavM ֻF_p\Eo})oj b [/B]/4mA-bB煔u503r )WxGpZN\=^^}nI)߯u>(^LFF5Z\v TTYPE.WST _ !"#$%&' o()*+,-./0123456789:; r <=>?@ABCDEFGHIJKLMQSNOPQRSTUVWXYZ[\]^_`abcdUefghijklmnopqrstuvwxyz{|} 1X+u6~:N90/ @op _Vh ;fLȾ[w  BSBOerhh ASrr߽{m&֓{PjwgoZ5:N9uU,QL" 2%vLeSNp?|S&* M!@ xSjqʩzT_N6_?Gɦ?rOehh 1 F/PgyhJ:pʩκ:~WCF;G<rgVy[L71li 2YUA l .zʔ5k^Uqʩz}:| n|0-c%Z,".m=eT^25i\;N9Teh'⨻srʩ+u}u\qʩ:vn@`>hg2YD&[/;Ȥe\`>b*'r=|DS˹U!HhO:V"/ZlO>;,]K<-&[NJED(kMGA@=92^LHB8530.*'(Fy6{Q޻mnw(Fy6Ov33vi}uYs(?XXe#Ϙ֩ɏB\'קgQ_'??YA>^|Kc"%P~Дu+ M!;SN9S(p-mFM'Z!qEZc5s kM6ΰ~P؆RR7~c$<Z5140`K0Z-v.t9}0gw>F8)ȃ|D&f~O1ZLV͜>E&sSN9#+lyB85pMrʩoCyHih8֋@ȸjr8#`bCYƙ}kp 7!L%4'z B_F1a) W5oQtt&lhjY5Y5ɪ"}0e>2gr)j!SE@CfyEQ-C0 Z5*Z j/ GHzJ|Fuޜ6"]FS)hz;:'F3!)kd!w|D%\ 0[i 4DM+Lmt%޳.+ЖSN9SN=x6{0{ilٓٗf7g=쯜=8On̮v?tw^ugY=:>[&g0{N=hglv0gb&gf={N=xi6gwgNgߜ6;}cms¬1k3?{~v8Kf?pkN=/goֳݜg?8[lv1쬚==uf?ԃC<=Cr):!+{Ӏy2`>"\.u4 2hv.kԙw~рyQ@Rq~saH75Gd.dk1ZxK3 beS lfBFqG=HSb[۹dTMw=3ȶ0'V[Q "]6 ,)ɒ,>HkBE!9\0 ov? Tm/|*tG߃8l bepae !"SN9B!w|N=|VZf\AJCfyEeP}'zJ G⨻slhx^0ay`'|*Z͜1aB1Mz*iy \. D[O:@7ZrT@@n)Km 4sݔ±A#,@6e-`N-#Z5kv[+c>dB8^/ < xj4љ֓)D @ N B ZBl@%zx D @țMhDc :N9uW U3A|M"mC <z['F+DOU0B0_"03g KT[-=$}S[.#fw ,["d2!OeM-WU`.:Nu#ag8:zr}}Z_~2#!60gBZ:!8O|w\__bodw)ruc5]r =õ::,DQm¾Дu+ MT>6`+ay gai vq s]@{0O}ȗQ`Vh, .2Y5M[-X\aE m{>]:F} AHqʩ+;Ͷ\+S[aC$B rwG*-,U0QqGS˹TUѱe K _DdE E:!-3[ 試@ASN9T]_vtnvP󛣝;2a-׺Wo?Q׺WoNF}s"Su}=~Qҝv+3NihQҝvhDx{4| QҝvhDx +Nih QҝvhDx{4<:; y8UקݣtG5Jw=- Wro(ݛNy-(M 5 7b}x[$ Nao?Q7r)nR[[+ Gf[#"]%-1!-|b+aep;@&fHt(p I.2 0[ ,lFTS e>В7>SN=8ʆڴ[bqc^|dL~wwB✋>Z5I˴sͳ{.|DS˹U1%H-.XsGlQw;YSN; 8rgl?۟;7ۛf{l)^?nr)cǿ){y5.頀-B9G_Ayϔgtabgx4c c )SwHSuZIGeFܰ@Ls)PPWP3xot3<(2525{ʔ5bgx4Qs3F0z꣧L^ͨqʔ|?A lh)S7fLdbgx4Qdk1ҡSN;Yĩ+u}u}WrHT]01'#tG"q"@'ݽ@Oq;O>Z5>4 Mcku}u}vGt DK@"HwʩG( AHg"D$a#24,#Mr0'I4BS8D4}[O:ܰ16܅&q:N9mw'ݽw DaԔQ0O:'F_3`K/?)S35 I+$,ܕ+0w[4-LjMK'(L9ftD~IX* ww3!vq _[n[:N_!U32%v޹Sf{m0mFnFSQ 4)mALOpͦd])[O:ha" %hj90/  hx zʔcQ0ajJ+]0QQ&D p#w \2MzʔФLEƙ}]0ajJ+ʱS?2X{>6`> ?@od3*Ж+|F_6v`zʔc%B.ZS?2@E ii: gw;]L^'GQh=eqƄ4-\o44 @Hrʧ=eʱls;`>BہZhZ̅8)ǏPqD^M=9p;z'w =eq 1`>B4h)-Q<]xvf,oбb@+)njt%,ly ȶmƄ#v#]FhL9njbL>SN9ԕ^LoՋhfZ `,EhABlCi}l w hj9׼FJꦗASN9Tg=ă/; DՔqTcEvZ`^He|DOټ"-ہA`ZȤ [V[-<o6ljYDO]p-4Q8T텝0$!dЖSN9e#`TM-؊tM-|N0hv4D2_S?;- 01Y/>Oy% iq h2x=9?}*٠cy".N"Q@6>` )ǚxC .&8)ǏYO7?1M-l GX^E]0qH'e)Ǟ_Dd^E 2"D [^͇N9e1wFWX#9K`hPC5`>L9f Jj&., `>"PƄA< [`'jS3a)cThD,n\Dxԇέ1r۠~L9njb#CpsvnV =uOG>:w#nw l^MI)e#4[?6=p [@ڈФL<2Y5Ev~f |@CL9nK=-Kr FZ؊tӈ%Ŝi8 =eʱ\X΄N9e#ѭd~#]F[.!ӧxCw֛n-yxlP{ =e1ICTq}X@itLced2- 1`B[@+xȤed[e--DOr3/"&Mi>?98S;uey`mjLb?zOa7^㼻wSN^0`>-tha*Zd#yXS:ACR +b^ҾS!DؠY&xJgeȲٗvN i Dv2ZNG_؅hAvNQDԇlBO|4PƄ֋`>vN i 0[`>\@Oq 0q):!^z}Nĩ+;u'N!~ 5tn֋..WS'mC@Ϙ}Mه&12و[^䶩e| D =H D86_BCڈ*-!ؙor2hkV2΄ =5!0 I~b %,yy ܞ Ω@ Dˀ-SSYM1[~pVp>.D @E!SN>pDlRG-ҙm"I- GLIn}SNr]t])Zwr<1_-Q;N9e#,v!Zx7b{/?A 45?S?bQ֓^}橏l.Zf2bQhxzf׼;N9Usͫ*"I,0`^|~̋2&d# w gwStt&!01$?I؈'I3a#FU)Ps)SsʩSn}}3hKJjihqErʔS0[[3SNޏ)6awT#3l=q _FԂhAgr)SS켶:T@(@Hg"1ʗ2M-&r#qO6E %v^[ $`2 UE")?͓&8p(Mjtr)S{O1¶ 6",+p;ѠL~ eǿSt#6ݝM&dGt7ɏ`=.NZvr =P;2O1¶ y5.{&>@[|DkME:!2"1@j*,gB(ɪvF)8/2姵>x *nOlC5%4u A%SnDSN.jR㼻weLHہS}Nĩz'NuN:,ιyBp\"9'2L^݌ϻxbro\Dxz #NTQ\4"Gupft̋=% #Z5*7 F[yvASA#I =u _F S}@w|DEM-W/ae =硅cu#U3ȤeZcԣ?N9um '`>b hj9׼"L)!AOi> gK0O!JFLVMn-r#SGW!1Oh鳟#] 1jt<]Ƶe3SN^yHRB m?|D[Q@6RSNuC}N]-| x{dzw)Fl`%Y4` Di#󈻓o$ ^dw DʤeZDLO|ͫ) w1Dij;[3 B^U\.h6cBMm+j|)L9~d0 AA[t!d Z3o44rG)tt&BD#}f=eTr8)Ǐ ^e[&.CShJ"tt&BDDvФA[S3ҕ2`*ntrʔGP ۂ'm 6dd3e:B[&.r=e1"!v]'&z1y l;N9e#`)mBwg=~gV+l[v#xeS "zʔc1!m)L9~c[<m֓{u)j[}NSWvz1y tw֣a FGuwfft~ݣWrH * w=ԧݷgTe-ȼ Ƨ)gL>DBSS6D%<λ{׏ vD7"87D@|E L\68@x:N9SWvz1y _zݹS!j3a6K?ķ|yN'hPȴFٌ4$O9S?`=.Q)L9^0yyh6OV0/`>Bs;`>$ACDOrS) Z2i/H3-7BurV)SALFaРO2gҙ[L#zʔch48#gq)ag8'Nr 7ݣ!λ{;N9eP 8< Rm-,v!ZlA|4詶sjAp` #Z5Q@|Eh!)J$詶\-H #4 6pM`pSN+iݽ+N9SN9utWp=bpr4yuݹSNN2FKH ׂȾc}ioyo`eK"ASi+枝|vФ) 7ȃ 詇qW9PSx;N9uSpYnʷsb*~io44@%9RZSS4,@l=.X(?SN o$ ܞ,;3-ۈ)-2+L98Z5*`0\;{rjO~އh%|G4k^URI}juF9Ԣl a6".A &,c%*!)cTh5 Qg~<su>vͻ9m[4`Ȓ>FO@,wʩo恁# !Ȋv89VCH)_qSh8Ϯ{:S(mDn&iu G?/*"I,0`^|~̋2&d# w gwStt&!01$?I؈')S_꠻L6XO2xey5.Hk >y5.R7 & =eqSS?`SodG.FN)L95+   i %M-,d߀28df L-/2j@GOr̼(pA:i;N9)ǟ`Y8 ;N9e#q] dvrʔoäI@]vcgz݁(yi\rmZwr1)Sak/s_ V-WgV`KL͜L9}s3F+[`>-R(%qf|D4Q K5 Ss;%hb}4k^Uq)Sa т7l ׺_%$a#Day m-_m G$j=eq%C gV2O! Ж+0=MVSNr`k(ȶ|DS˹Uh.כ63)[O02Mԇ(%vv@˵- }2-W ;E[bY)L9~d0aV#@S hnh' 4\[- 2O)Sr]$a#erʔ' 7uޜ6܇O2r-RD]v~g.D$Kc8)ǏL#`|p/ȤedYa<@%zʔp)SIʯG[d 0e>#~IX* `>zʔgo5;q<8ډ<}k-˞R"D;)%zDD$z-;9grθ;9gwrɵ c-X0r??y㺝/vu~k-X0ֲAD`fX-. Ih!!ղIݑ;rGf̐rGf,$"3LI]"e,# I3Cq9&eمEFEF"$#Ɍ$eم ))d$$SZ]ȑ;r DaekFn><~:qf>ml/:O:s']m2 c-˛9I̢r9&o|}?q)v)TTYPEXB.DAT?  o!"#$%&'()*+,-./0123456789:;<=>>^b(5R~< LӂvwEgtn)S>^ yyHcG-,&C2S:AOr *`>"P&m`ahD0/ -$)#Z52XoyyhL Ҭh-ќVv@SpA#6_'Go44@IMGOrcGs3F+Qe4oVdRkZ)S2&d߀ہCX64553!Oai40})t ֓{b a3MYFLOC+.h284y&c2"c |DLG|DU4Y=e1ʨV;6 n&sN9S>\`X\iEvoM&_O9`S/40Ȥ G4eL>dGTr=0G) OS۹dgVAEs3F+dZ4 )S/,~ؠ%UdٱQ `KךLOSO7Qw)L9RgGN)L9~Gؼ rtt&BD %¡Day |Dk)Sm0`>B۹4ͫ)0E:!-R)rm"DFmxvMB)2:XOϻ{5^q)ǯ{0 ֓޻!2Τ.uDe}"SEG4k^USm[“cGX! K=eʱͼe#"Ep;@`RW  )S'Q‚y[ If)2ԋ.G2рmHR6 <"HWLT J#+?AOrE%TRG"0qF\BP*݇'n4-x':~skWZb(5R@DyvoK Z +"k-Xb!"bc(5Rc(nr:buJ滵V,DZXXkaBD`0_X0XV,X,+^^Vl ŊxV,XHO`0_XXV,X''X1CvrDO%R>FO@,wʩo恁# !A/[,[4^TҦ˿ݿ˄(#ؐABsJ 8ZCfn ~>uB79X6;Xg:^JT-LCC,0;DXX|bj ӱ\ƋJY|?#F*b1"j"j ~>FH4#jiiFԈE3cԈ QF4mh5"kCֆ15iFN;D!k1~jX3$ߐQJ!蜃#"s98r "8rGG:8aGvC:8rGGd2#j 9k ?9Pʠȁp@@XOU8mf `c'yƒ\-Xt$$F+2*H9kʕ Guz|4^|43fc3`l`f[ؐalP.P.06ĨalGc`l`0 \\|468a8a11 1:b[O_O__F\SntNLCM@Op:ʧ ;\ZyGu|Awx!S|fPFQ)*#*KnɨKF^2hk#F&#F%^?ivi00v((QCE3L3u\x/\I?kz ),UǷ0g |?`/;]t|I)03de$t8PQ)~ڿgAwpDFwwz #ZǷp:J 4J-Z&3 #j0)|Ȱ,pF :Ne ~>_K&pMvTTYPEXC.DAT^  !"#$%&'()*+,-./01o_23456789:;<=>?@ABCD" Q EFGHIJKLMNOPQRSTUVW Y9XYZ[\r^SD43,]xe\8 L!^ǯX_`*\MD\`2#F;{U_gsxLDl61{,1 1H)lK.Ṅ5bIHM ߴ(\`2?Pjp63LnN Z0?jo]nT]rt x6at gsɼ}:+kY.&{nmΎ c 10b "0qv\104#F   gDž aĀA0bF K0b M iZ1 a0gs1@3.^_: gs{|1v꣊#v}TTYPEXE.DATH  !"#$%&'()o*+,-./0123456_789:;<=>?@ABC QDEFYSGp,D]?x8>^y~w]ĝdt=z8|*r!W ߐ¶Ǜ/8t% ϱp8Q[&UEMӠR v<)%25 IB.t(\0팆1yL2(Y\+F/6$[2~p8ރ=vL}9#zWD&m;G$N+x8vlq[F AX,+hdEջeԄH1n%# #IEIwD&\HE*^!uAn E %n0KŬsCneEUUU+jB60h~;=#2i #lgF;{hG8G~n"!X:pTF Q)({L3re ä)dR){LA ʐ̐HcO6♍-ӑ0X~GE2wˇ[BM(b6D! 0;("[E $XD(`T#e(,!-P3zLl.0*uӾASK*r qRBUEJ IT)%$MPU$MΎ J%J$MPj"iRRDHI22&( I"iEEEm0&hBId~ Ϧj{yvp63Lnb|,P_)N1IMR^p ۻp6Mյ| x]+x6ZS | V{0Uײ^a gsɼ)<=_cxᾑ+Lյ,пE\]C)XUg'D "!"E"rv\N "l1a D%y,ɃD% , ",)bID%XR "rvBD8 "lq-.AD- "gsl.&`]7#[p6ΎK&A$hL6! GĆ#ʆQ0 7!8;STD 40 H; gsl.0>{|1v꣊#j^_u+uêkz\8;p BF"`(EKl.ͅd9źn>?@ABC"S QDEFGHIJKLMNOPQ0, /^LVS,N[,X?@A@ B k;x(ym% 77w<.AOvH%u$*ym8]ܜݽ{QpA ,(魙 UEc 0Dk ֒ުS ~ ń'$:Z 3+!P11p`:@%䵕6.n/^ $ @"y1PJ^NxY?WP u'xl>c]gAUk+ym8]ܜ./k_H}TK kn?J^[f05lZ, ``b%@z #P2h)HAD F%SBJhRBp)!%RB)5FkHj Yc擠5ZɵVQ+jZQM*jEuNP+q-{@`x>8A91Isb:f̉Y0'S^10L c`xU:01 dUS*S*ԫ@LPvՒCr.9##fGF #85GLL#Gpdggk^G:#c#:##ꈨ#85GF#";ipdDψmZWga2Kg٦`|]; $zkGDo0ztBRx5t h>mZW;?dZ:۴"1c Db1#bpo Fwb<0qv#00#0a(C!B8;[7o FAb[ob٦ui'y|Wap]՛J|lv =K}R (H'g6a^@٦ui}|p|++j^71qzOqm85v:"kl(L~uOKgvw&kk=#$z89P;:E \y;nNppi'bΫs hwS6$zsʙ|X7lbTn.pN|G^MwnF_8۴. n~^aIF)-mZggߟuX= <1s 9㼒ѥW.?AH76-ƫ0zzMlb`B'Im; v= FWNPex5t٦uiC%B ( PJ)%8;[P$B(%mQQG(:B2B (>PB ֡ #B (/GPRI lN0s-&=9`@斳Mlbr! q7=:`00)mZW^;]ic]ЪѵBR&xG 7зQirҊ6@@)(R "QD(*(A*ԡ(x JE P:C@#D PB8;[x5WShEЊ J0 s JmZgw]\FU|kT .9"Sr%Lj,"FP-bD<#"Y,L`{a0}d0C3$\$:ĺ@ғ@RM !{Gg wt&FH]CbVJ^N7GB,~o(ym%d&MjB͹D*1Tr ΂i >%ԮIa%KOIqVzTh 1Pj\@5y CRm7<{:J^[k+믷%!A(4KJPq%3|Tg,^R)QJ^[k="/ ѵH~o(ym%/' |?`/;]t|I)vTTYPEXG.DATO  o!"#$%&'()*+",-./01234567_Q 89:;<=>?@ABCDESDFGHIJKLMNY Mw2&ŦMi1n23#&ŦŸ}篞b#5z7f\_ݰڤش)\c"xty_zIq}gÏwW)6-뉱[lRlMݰ ni&/A]GwHi1ngT.4mRl3AUaf05* U>JV05pYaj貢 SKq}05^aj05d^aj)+|05^z SKi1n_O3[+ O;_Mjpi1^Ĺ_n#GtimZgg?8{|4 H!׼9"b{x8ۥ-& } R!(%^:{|um^/D5zͥ)S#WQ P`*~;~yyh7`>=eTr8)Ǐ ^e[&.CShJ"tt&BDDvФA[S3ҕ2`*ntrʔGv'TTYPEXI.DAT^  !"#$%&'()*+,-./0o123456789:;<=>_?@ABCDEFGHIJKLMNOPY"Q QRSTUVW XYZ[\]NM:9MT 磒bul ̮7yٓ dm D%P Q`{GKX!v^ - i .8G%ܖ{P7g[+ ZqÊ9b '; sC'Jձ%̾n~T6J=&0;<i -o f6.ϩm+ G%kL1hB Nd3#f'FJ N8'v %da]u X'NO|B8' V$pbH`''V6X-avQ(Y,VZl`]SmE76ŦM<٣wÊ%̟<W{nXq}@h%<#ŦŸݰ{\\hKfO Ls76AD $ "D $)B**!yy:u!Iq}8b8b 1 1 I냐:u !u BHRl6ŦŸ=w!Lpn3u|E٤ش)oW)>s8O8+|Ź1GS,XuNx01|f41<<ĺ@ғ@RM !{Gg wt&FH]CbVJ^N7GB,~ovTTYPEXH.DATb  !"#$%&'()*+,-./012o_ "3456789:;<=>?@ ABCDEFGHIJKLMNOPQRSTUVYQ NWXYZ[\]^_`SME<:2aM{3ybOKg٦xuF7N0tx5 dxlbzD[VUOKgO{%̎S;/=̌1N1 B lggzcJS Prl٦xuF7N0 timZW! q^;=FwIm2AҼB{8۴)sz 653l`]SQ(Y%c 6Z 0h56J.Ft^Fd;F% .hM26>C ˃Z$h`Zm=mQ6X>>w tB#&1W\JF(xw)=;Lо3`EAh R^Sa αŀL)h?*Y,Vǖ0{Q(Y ,>KW/a]/x=Ϙ=~uyN=hK(Y,VAЂŎN`:D1 q4<*|`MƠ!2 i<*Y%c d0M104M0L4LFL㩥3n7T`&BK=dQ6XiyΟ5Nqzq)>==}G%kdm\'{ aJ%i XOQR!8FضiGh u>t + G-DvQ H!׼9"b{x8ۥ-& } R!(%^:{|um^/D50$BWd\kIҨ"k,RdbǤ`[Rnu{=A+_q3s0F,cI&ſ<"C քUI~;E&sC "qDRI񕮰;X 5'.qHB ]B!J CعRRِtan #L{&Xpͬ\W"#Tk}bFen2=,7֒~S@+-i.;e^m~؋OV Mn>H@'V y3;K\ 𿀀x54s^N;sջiҹ0GuD׾dGM`/wnB>6z Y.;.`{tZhxgHA"Z=t'OXHʁ.@w#Zy|{ N$VIr k}]8V<"D2 ضGvUx х#}%iw\eЌ]B G' >n{mbff}Oy$'y4qT Ӈ[3@N5직.n^NJV2g~:f5Iw_UyKͿR:df_O50 OD ,3jGlפ)F#l^;'4\<?@ABCDEFGH_ "IJKLMNOPQRSTUVWXYZQ  Y[\]^_`ab:9-&cdeyqmW @ a ?m7[|0O|>yvr}wɲn.pw5> ֑Fn]FFΑEjf8Tуۙ vhc5GkjЪуۧw*FE5.RŸO;ZO1,f0:/ TD g9+R HY S9H)UbT 9H)j\"q )*T զP(+TUjSڔLMTe*1V*+ qit^?Y+Fyqon@jD.0s~^u΃G_@ݡuFу)<{"yD=ȓу)y m@AiOs'SR O܃<3<3ȓу)ya=g-gp#ϿUPT;슍v )2< TkK`b;4:/П w?CT^aJ Kpz|/,i^Y5pMy N$VIr kJEdFxH QE^v;YT\e:RN Ke<|SNIA"[~#[^GCPu"Y _|/xJ fb p34-5nKE?}o {,;-(^%ow6&BWٞ*$G~а'a k"NzHOYLRAMN ŀ(w5[]fkZB#G4M(ЁDǕ"LܺK*Up ީb|c^NW.Fc أى墎ؓ66čovJ*Xhڢ8Ґ13v˧n"&}j$B<](~{ @%}{?ȸ<`~Q. Xx^zrɲ\gTTB YÇn<ه?o_|-;y\ź47O=eTr8)Ǐ ^e[&.CShJ"tt&BDDvФA[S3ҕ2`*ntrʔG. aa/D{ӑ @' \Km0 ޽15*aFDOEj%&$= Gb9*?g*Asq\ Ղ88jh5eC ֈ)>=HB7o%`YD% 5e@묺ͫ&f$(9Z/*kw;%OXrZB[y(R3M}M^9p(+I q" }|-C}ES8MmC?`Mkl @%Y|w0-! W觺ڒ&54GĈ:p@ Z;tס\aH"QdϐEn+9MBJu$*Fc@ sF5W.C}S8N"C_1U5oIO;oIzegRֺ6Iha&c'Q'X; Z%bQJ/𿀀^Hl櫧k/^r$8Kٓ h5Ve\{Ϩ~$ 'wKzjc^} cZ`ݡݸ<*%x AM Ա*A:47RR6MͿS N 3loe'f u\ ؉aF)ao iJ Ю="oqNq] XQY40"|EZ<^ bynM'$ ,jAҴHƈk5@w FԍmT ['GВF+gRΡѣū&54Fqz ,Wh*Fkڗ쁷6A҄EYOfθKzIN@ r" }|-j5pC֧?_map癱_vXHY 5 5S Jl"TġG|? y 3|l_7쾿ːPyIdL8>'R|rXPY +? W(hA9sa} , Fr/Ґ13}L|bR5`Mr9r(WTsu5b\ Ղl~M}R8-=Tߙ= 'Àf{oj%+53~Z^o<"*OZ%|jw;>e0H53fP9>ŕA̳@(Br"z M,M|o28jhgwC܄6?&TĢ1;E"T0GyNwIƑТkqtxI$=FZ/~c8҉C@#J\QRÛNӺ@$rwL.] HxGćyu, qoDaKcO ۤUv8\߄v׺7|tZK(51LHBsE֖(*95e4 y~fS' 'Qg$c=莘B7o%`194g@ؐvii5!3|qSaإ0 Miݟ\6H":SRH^ECB䯩M?;:fV=%s *O|-] K٘RfRt=)AVwĽPS}(`oeqvi:Gjwƺ剕xi}rS' )'h"U.H\T%c ҕPS N<9b# FuIyps,>pM̕C ք=vU' 7#ndwVe iܐߥ$h=x`$'Qgs1 F#2/MR͂GU wX$ɍ)$~ZB;ВZ[z0Mn5׾T p!-z; #N0@ͿQnE"u,Fx9p^mo^nI)/,nҫP;k̰'x"O9_LROXm (Ru;km0?Y2me&|3sXhPǕ"K+U\EN#g^aTwbz&}юЏtik5Q64ˣy1;tס\ B7A!UQ8R̮M׾U ^NapeKx۩=LD',@1+s]^*nq0 W߰i51 D's֤JX K @F6c&7 Q _H4&:c߹=?A@@*w3b>E8K0c7jY8!F tǖ? 'ս7i/r%O)4\, $66p!Ӵ: ]+Ӈ[^& H;5׾@^<9nTE8`ccBcxl 16\cSA^ke1bs2e*yL ^&h Č|Ц's֕{;wڴ$- ղ^ poZp曻#.u!rS!j`é<,ÍJ@K+.̥tȝqw:Yy.L(U5o6N$O;4!"6m亠"#;|ѧ_b̫J*S;"HհfA2: r'+ ^51g6T‰!"6CO|ΧU$-%Ԁ Qd؇Xn+W}w=uE<ym34!qDEϋ-Ƃv:I#L%IRYXIn{½tiKmҪYu)'$rdgVO= BBWE9)?3r(+HxHjs5S#نmf"LvئOEں"@a^Y%w97 nӑѣūh*Vp$ʋH@2i H+ 0B}3*PFL5m;Hjs=4KjYS‰ۤhGrƲ's0w"8aHK%;YTK|5p*wMBJv#TA8K}f=8Mjj xP"HVЮx s7qjrW~kqxu\ Z/<;Р,+oDnƙ' ܨM{q` эKݖ [쒸 {E<|NNIxޣU:JWh7<7$Oe?,6d^iT.vd ń%R,g oDpՕMnrQv| R@E&(N=wVe>X‰㏎BU@ѱ^$ϘX J ۡ&ag{Z%I6>Ǥ,S^Y5# FxD y O)rJɦQ"M) 9@1rG5c+h ֊ܒjOR'oJf+?A&JgPHm wa[,@Jn"9՛[eOP۰x"]_ǘPjo9|qq]BaL7Gg=T֣$H"<E8K|%!;K:;15֏+CBۤ@3oi#`Y=GnRsyRG m3㟵OhiB2I$=FZ-Hhݝ-6Hd%;Yտ|5p*w׀. o7)ZFr%4"Ŀk5< 5O?'9\B %OPbg6T‰"#E}д's֕{]"HZKHE|Y]c 'rT` 0=P@0a{pƔeБp8a![_ }jhPE͖d.Ĉ=Ag >K;NOK[ϜzC9x}h5h Re 'Maá\87eT=?3,zX>Jq0zl5 s *OL ] BƸN"I ЮO- cĦyD-q.qz퉝O i"Ҁ'ĦRpQG'E߾i#f%~'53 W؍'wn$"* FSǢ} r N$VIr kJgsgI&,N `{qe4p;/6YϢ,qke@&܋B Kl#(҈6787%?;<\Ųsͬ^Y5 ra\ Ղ˯{LC?ZDהʴ tNj?C'Ǯ}B7%` Y- FRO9i~O">$Z{w;>e|Huäkfn6ibkAXBw#ioU#0re8:O;YG( ;][#5" ŎRe2Pk05oH58%8^Yct9wn#>åJJˀl9}&CNß F&Hv 7^/[E, 7e[ޞi:)FOBY$-f `g%_\"awF ROJ?F1JzmeqF [LCϢg+,ǝ+ſ9wX[BALĺDK Ii }L.rN"\0#J\R8MX}* 6&=.u:5KnN;.I&,NcvӮ7PJQw; xe W󞉝ߜ]kf\@dS%axW"UʢH\T% =5TM+ 8r">E:˂yЦv~pn5֔PiQ86Mz9 K&C_Pv1GYk4?}Y9G=To+aʎzO!R ?`Y ir;rw_fTzlp}? K,k HǏQrQwּK)UpEzn#*nHWZ}@sIءݸ<ms*%v|& Oeô)a4@2Jh}C;I@*;JGi`luC y 67aۂy~ۥ~nIĤ^q#a*`+w/A|z2i|甫s=.MeңU\!R΅85aN7C\+kθKzͅCI%48}U5hNfRx孄EoK}Stj=Ɨ`Fci"GӤUr'Lr/5:?OL5yOV5׾W@ElwJn0zlxn}=8Mjj xP"K=# tEݽ^p(`%;G4N`syR] m3㟵Ohi<@I$=FZ_Hkĸҫ@=3XP3@/; Ju;~uDyj:KjEƩKkCvܭ'!o {A;-]0cD04xe7i‰ޘۤ(6h p_0)l"7-@AOQ y1}/I1mn5j F=5'F[~#b%w6/&PW([nnˇ@-ߐEr-fS ڇn/fιkgCpEt8gJ 4K+w ̥tȝ%$'OrXɥ x/J], 0:E݄fKU`}uZ٘܈e=RuVy6jgP@V}=}4x%<åJNC˃k }$nG! !hJ]B- @ud^[Y !+ؖ[啎k.FA|n>$a|O\]B O2gR5؋TE}^?2. T?Ҡ%<ǞjO }rKjCE㙄*Ut7zkf18 c&VBшۿ]EwGϬm\0 Ef$ҶBH78/TH?7>9wXhxm,xQ m41"]FMB˄f˵!%j=+ I?4JfN ėKUw#!ԓaX?c&))2}/]Nř"F="A'1gk[@WnDX3r">E2?}%484)5Su~='k -$BtVM\6};EgG08q'p̨N*=Peʦ//ՇH77iYЙ|3׾UI2> yzltb}5)_UiG V'UpsԯN1rawNiּ &eBikhO'$ X; \aH~4¥R؀,"^C ^GTM~ %.F:;j@xy:C d Z>'17Y3^lYw'úg EZQ<^ by6I'g #/; !aHH/R5,E#^}imE$KGKNbu,oDxyOC =?k'_7YK^leYw' úgRz.Axͫ0POKzAa%oёFH J/RR5~}9^wJmT K0Tn}jsg aCڵ=GmMtXb#}xY:(,R뎭ikszi?%.\rH ʉaHpz^֯*W}mT*D8РF_7j5<"CI6S/|懹8^*nq 3@wH29*HL;wHgycɺER5ܫikh#rS X;E\ag H/KH2 z>Y|MpMy ^m Srp{KR8&ٞѫ*(7Cčqko;gۥ+_2W XPJu4ƥxK5mt|>Jtm =F h3)ſ]E=ͩ"m%̓c[9Hd[;1\+gȻ!30QBM'V=], ͱ̈7H4 /NRBѹ@C9@s#=Sf NExtzrKڌoCݣP'Ut7~of18 c& ઎шۿ]2iWdIo$ 0@;dӤ\ O%R H JRa@'gzMO; mTKKǁqsF Wj] QMӺ@892Bp$7H| #x6`<:H$0 &$=㨄O)U[׾7Sl!dF-3e U6vUEge\յ#*& *;dƟ\, 6O6cRϱ5ՋT uUN6zK uF1{joLْg; Rn IuI~ߨ6ɧT{.*F%usc Riʫ&4) Osѧ'x US<腣ۻE\CH̬`V8}^A6om@rB gH2?( _"<GpO<_{e+%Ow/A_anM@Be7I5)Urd[W[Fvm{0%$렴>)3wXw*iߔ1*P;[-XxqU }p[ǧrA1&viפIinr|Y320gjSQn_y1J a O6dQ8 MӋTA|w<]oͤ%7$ ЧpBӁmAkбXHdscQ KcN) Jqm'u@ X1}/I+5j E|=0:'{^}#a%PwE*Pox&܇f^BEqb؞}X I *>>9JiO88O,i2^&L`Oġ#*{s% }W)lNæR"Mt=,:5eEV=fWe5CfPVԔוȫ!hA9Ϩ'v2MjHp!n  ^R<1PVCAJam>D s% 3-6#LATǗviפt^pja0r;'4\$gPsVn_y/J!Xg$_5Ҷ/TRP@9 ]"d_IFpU}NO5RpC߭ʂ(U`Fģ7~z-bPm-gqNz벧g6% Ozk$Π -;uۜ\5< f9k`¬Q"E֢Px3Q1]*Y\Je>֡ދٗh:ɷk$͙4ۙSfadbw!>jRfNPӺ@DK^p7E|>Æj% }4\f飼%$2AWeFdkl3%G' \2זB[ͨn\pχ&\0*C |}=aӡ\AO8cP>NҋT}|(> i:.)+oFݠFQ lr JêH"E֬=+Ap~Lij`Ť9zeFujZ%k#ͣne;h֥*a 63LRgwn9wn7||Kxt2~jlZ˒ 0&Hv7#"3'w 0Vըޠ5%Oд%:IOpC*K  r(1}/IAN4JfƳ.0F|cfuN=@y;(Bp.TE|G s 4-lYvK;lTBd'G&!9nj%0 5e"ݖjՑ*(%I!C)L  bwѽ~~yt ?BX}M >km7튠~P@C+]PwFdɍu60 OD ,3v5lQT|xpW P z)S܌EOi66' }}wVHJ# ŒNV}}wa! 8F|=ˆj,ΰL1!W"?=. '€d#j2%|w89Rr'Y\xJ=SJfIXE բ&BB5J]K ėKVw#pCX?c&zK uF4KjZ KُJtFƀ%́Z50}iFרrA6&viפ€ip}`o;3\0gԔZQn_y0J &aHB58dT@@NVCTJto0+Sl)9X@̕},pLß"F=* '€ip#a3j5f(&>~!hGˬ'w4 ;0aŐH>94aP$&^J"Yo>J h 3$nGd:i=M'y[CԑBZ=3\2g ԕН#"#EЮjӁmAxбHv!%NAv@F)U[EiSofY4$gzaUVvxZ)aG@;h֥0/H32 />ǰt̹MaJP;,gջo#FO-uaӍPi б=p|EibtVF옢*",;ēzda֭~kֳZ1u'Hҁ1a:5Щ |*w=]mFyK{j 4kRglkPq&t6v ߩzn#f!a;/e6T咺دyEX"Ww|ҫ!iLR )*<}bUR:/`Z[[w!!жF\p5uR$'ψ'K '{1NOilig$Mz&o9|{qĸBt~-(\ (eђL +3IhFp"l5ɞe@ǫMo<tyL#EXAW5- G3ET7Gie·AliA?+Z_unXϘN}i,rRǤi@Or9hGH/`ZpdPB/elH?u^ dsQ'K"'&4 h 0 xPь~OVe^ۦCE 5ơW\xګHshlc58wmT%S$FTnNiqWT.p<16trjw8Ԗ{zmx}X^h+jUɁ6,xaJ%vz=&Le{,L^PzpNJ.uT]G-}%V<4=)Iv9p%FPb}Ӻ;M֧ԏ lr<|YNIrS7ZGU\!R΅yxzJb$Rڏ5f Āw ]. (xKo x+;%$-maΤ=:$xX~dZqCw P7̂=V3&~TX};A\HugRHg`TA9,mTK s߀n'_B<& y%C"3 !IёhY"cr"P≺Ҍ2kmJO'y$aX4qUrhanHJ;" ,^iZH2WT` ZK+YTg}^HI:~䜫'"i ߐ M'ƧX#_A^38\^qN۴F=5nX@ƺ <EazFiP8eR; qkDE&Z:+, vl0ktTUewM$4,7֒/P~o {;-A jYq#J{yK]S:!2h1NkT|]Ϧ_  CpEtr&TtO>JsF K[ (:.@|Kq<4'q Z™lL4 ͱ?OhN6P@9 =a@)Nf NEwA rrKIgC~آȇ0Uo|٫7oz3\F.9c&+ށшز2iWdIj$Π 2;hנ\751O=Z H gGa@'gzN~mTsC k8jrIš!8%wq;6Wؕk9`l$Ӡdi1ACxducw!>jRfNj׸@@9B3vH;[zKJy͑:8KȒf飼6Q!jů}€^|iJdGw0ݖhW秺䢐KD"O'! 8a43O2R5S?M^ 3aou Sl)6GpT}NO`±KcO =58vԣ7{fcZ:-gqNytj%5 }.qSv)9"D2Q#9[^ljcM'\>ޖ@W֡‰䐎גi:*I!Sߴ =Zsá(-bxwQPH irw gR52wUc*Z bf%ḡ}j +Qm1 +&/1a~~Ofhg ̆' lMJ8mS?9[ațT uDo~ 6ϗ+B;7LV)HHn~#"L躯MI>=*K'?ئ_}.lN "HZ_ESep0b@P ^JO;csRdP&{P=jʿH\jgK@ʲ͋vy";g`"3g$+7Q j֧҉&7h 9ǩR$J=~s)5ҶH5UTRϛA'Zl_T` ;KfT&|L!rDlCwߤK7 U;#aQ.=%aƶHn'X5뢠Ja 9)>3 i)+o9*ݛ̕},jLǕegDŽ.9'b}ka03e,U5f+j][Jk"8}ɫco , W ġ,ƓB<67%ͰctIMpJazIN%>FW.Ɂ`g6zɣTvqO2b2%_HHeaËH=#5bR88C w=AYw*{d }}[PǔK"~E='5xV=\cr7Yޢ(k%poX O"O*.ee(R3~>3%9HIKj4Kl#g ih5ޗ 3 AWoݿv_nmD-w-@W確nχ&\0*C |}=sԥ*.H25/QARJNlxāvsxaqc3W;-\{e;rOх[xkk ǰY^N&=~n-Ҷ4H2@/PRDS,"$^DqH&$Iy%!48|!5iC㤄~$WM4"6тPNBl2˾Bwe/TvcIėՈ_anMrͫR]Wa\ғ73<@ 꿀  CpE+ ۧ9j0[ʯ@Uhz|٦m}="m%͈U|'brWO'.ARTݠ'f* E n 4H47hD ȰtN89*B"Fz6K[FAŶaijNNjpN}ڭ$ YEbjhWW-;j ;yz벧g1 Yz֩J&~i. 4"<[A0)lnPDwBŝFrx%!9O)JƩv=e hvn1!0ԑBZ=E3Rn٢НΏ&7,BOѮpn#ӁmAuбXHdsaT 6ȰBN*8om'B ,,$1}/IE5j PGح=$:[ݓsNpBN<5 iҖ)+oFFQ l]`<_LGʆ7@bCLnnc`meF{j˾Z*7hDCĎˣb$XHk%6Ґ;@L_m9I= L&1}/I?%v@~~ϫր":Zؔdpe\;'8*?z=ATvx^)_xX>JsHA7SP7`TJP;,m"ջo#F4M]_ eCt=(pEitVF옢Τ&(h9Ľne * FtֳZ1 iHҁ1a:5Щ~ " ;켣ODJqs}O+k^[]lkPq&t2v Loe*fOY52$hΡyȂ9񙵋uZّG{ ËA;J\>Aҷa:M(=_)6K[FAŶn!m}_Ƭ<_Lwۻ)eI^jr0n~-q蘾iJ_efBCrk_+>X ӝ+, <;JdI+[Yxm,xII>ts Kjk_ǏQ_tdAOf'KL8 XoIzkЌ]HP鰗Ո_anM@-ߐErG*޼.e(J dGy{ i&)+ol%I'E3P$&܇f^BEYwG ݡ.ü4A3JhT Ұq,^&LVOġ#*j:}/[Jˍi7Z cv @Jy>Hc6ҍH /R<_@D;(,m+ ۧ9a%7p75ЖJhC|ϰR0UL|ȫ9<;XߗR͚i!. Osm$ߕ 2 ;jƞ\(gQ'S|/,˜$fҿ&YX#TcKjsF4jjagv yC]Ңiż,- @r^WIY 57"7iFQjqKFǏeO{.UovԣiSpNP\ 9E։~%64 GҴl] .;hֶ\@Fek>9JX@@țGI}w5w@:;?$sQBǝ+ſH a@'gzQO;%ɼQKEŃ% .58Cvк6nTT{,*^;Ub.g Ԕ&5 ̫l_^$ ͊WYJ@/1IHD`@ 9< a";|B„%Ҧ{:nU\q)"EC&&~5U sޤ7wq, 7e" Sď GgBI)k'$ 1;e֡\>>O=4]@DGNG( J]mQ [HϢg+,m qWߗk7 6E֢̱$`"&bwѽ~~yt ?BX}M >km7튠~;C+]PwFdɍ4E&rA5t5bn/";Z=8z..|KAvq?&%j=+W"?ëUtߺ7lnkaT#4.0gxJ=V~ ' ȚN+>Oa6. 6O(X<ȡ5bD1җF2sAK IW@ QjZfxнPv;b~׽5%dv%tחj΢66 Ɵz'a̭H-M ŝ85L)V|cfwڿ;@y;$>z (tDJq<8)uYǟ +lTiż=- @yl!tD>wF0$9П%:*D6K3$̳$a|P ;\"awF22@ULRAQDO >pm7 [խϢg+,YO$5VaQ}ծ~(CbpԣRyl)%Q1@vzd=軫|MBEa\Yeݤ%ҍ:6@/ ҬB,D ^&L^Sw(O; w:Wjo_VevKvGaYA#LwftVF온󡉗ϖ66EtдS_yRK c%9$nG: yxt~Խ7}[YY12$% ح `Ƈh.b0*C |}=bڳ687eR̬NbF{ i|ޥ)+o=*ݟ̕},u 5pCDۤO'UpFyb3۰Wv IėՈ_anM;qRpx,@W \:H~| 꿀  Cp)WF2sBj0[ʯ@Uhz|٦m}3Kԩ"m%Bg[`nX|Y+A׫쏎:4fM'V>jL8 ͱ̽;#J[R ͬAL99a$E̗ff NEwO ~rKӐ"G{ֱP">ntبNqwXG20c&6шؼ2iWdIƉzɧb$ɠ|* O Է0/H< /R>H xa@'gzN|mTr>r%9&k 5ӐQa\ ݫm: a^>!@;~YS`mϞѐhE<ӱ`pZ꼻\뵫yvr/F`θW9?r0'C| d"8$nGCۤF?7Dcu\qe4b.AmMhQk5n7$:Ci6A49/f AB.|1>L+7t1*}}QjqSޞ5LrC~آL#U zۡ7sBM\ 9j˽Zk+?uWtJXK ߡ,-8A#LuRg"%^J"Yo7G u4 -fFcҜZ1ӭHҁ1GwwG$B=u$;ssBwn4:})[}'TU٨ߓЗ"'An>M'V>iL,\]B42eR5ӊRD{^=#TKM+ o/7NЏ1mx乛5B`} 5[Dyjd!s}'w:$"M|l܌fRBEUfإMX?Wtֶ\6H53eP ?FKl9i=M'y4!H'#`z1˩).e l蕉i'4Ovl& n;TfRoZHJ#EW}N)w=n D|r;ˁn#)G$%j=+W<Tÿ~vAWIgSwn!Y;\5gBi7Z c~'$ ,;t\2;8O%^ AAͼ@ IX-[L$<%ж|' DǕMr~EL&tN-q}'BY0V ։~k#zneʠJX=Kpۡ\ ‡Fe鋹kЖj^[N; CD|;ss6 Kj]_ӾBʴ~CoU#$7#"3G)w4$l꽺ߓi6B?Čǩ%:k|X(NjбꇛHv!%BÛNb9M- Jp!C(O@#lR<:MŪ!8)wq%6Tߢ׫i9) DGǩ'eN;Cxduw!>&jRfNs}K>`" TDLymsP (2f飼2Q!jůuIߩ^q#lfO\# cᆐKeOO'! 96ƺ1=h sV {+Apo8"Sl)6cpX}NOKٔuJ+ 'v߮imr*rM -gqNy x =k\: ѩ"m%|U|'Lq#]!%R@w/$RWՑ΢$fwu"* E z A$Jh~հq}|)w#C+6K[FAŶeijVϙBWZ>ϗ6;WfʩtXTtֶ\6H#9d6AqMw#0_WX?c&))=}| JǕUlCv= 'v1]^m SpxKR8&&(4B9mjkΧ ?Cd7_2r YJu4ƥzK5mtR 2pT鼛E ss 4Z-ҩ"m%̓f[K|j+%O@482 Xܐڙ"#vM'V3]- ͱ̌4@2Eng5䑸'nnxJ=Vz ' D> Haۜ)a1#JgP 5KZTܗF2s5K IW@}j[ JP#Cۻֆ'CcvR%dv%tۗjҡ"#|'ED,Lu7‚J\|cfwֿ?@y;vB<3m7]GA% }OjҁYo-lTi'G&!9_oK5nOp\1 ޜѣ(:6II!J=ǧ'i\\]B63}J`LM5Fٹ@9 JvmBVXMVk5n.26$:Lrۤ\2<2J^>I͵a J% L+AwېC%]PwFdɍ4`PjCwЙ=# [ݑsڧ7C@$XoIzkЌ]H26~]܇Xv*,&^"H\p!n BIXR<1PR {+ Jpm'u> tà; % "#L7&viפtĦypq5s;--eT󔉪剿bn_y5Xg$_+ @:J[T9>BK 3w=q sd_Id<[}NOBǘKmZۥR!sDNv]*rNSO-gqNyz벧g55 Frе'vˡ& Drڹ1359>Rb)lnH@pJaz쐢ROKvr5F3{,k=NHaDr+U&^?WW4.2%RWϝݕk-B9ȱYmZ\s};IpwQHJ#:Қ]@w";D~y K*%j=+ W"?ĂUt萁ޤzrh*nNw-$>[摸'rxJ=Vx @TJKjsF1Lj Kُ<&? -6 a^>!8-wqcRVԔⅫ#5hJϨ' ]ѣCxdubw!>"jRfNq@99B*]0A-gqNy5L9; ,m+ ۧAKZ sO Ԡ)FwηAjg<-}09z{ntv=Jo3@)I!^;Ie#RU昉66FUj~]y338Oa!DQdR FW9|,;Jkm;HM+ o/7NЖ1mn5j LFðS-CXIҮ7ntiWO(\AP3\&܇XvxW)Y߮JX4Miҹ\H:<&`LR͖LLJP;,zK uF@ji\ӍkO{=!D\ݑKǸT*G Wu]H2k4 rSsJ+Q bwѽ~~yt2 ).Ѹ#$I8FB ּs:(7<\BWa}L,C|wVHJgJRRz*YY6aK{g7w[h {߾[F!/A-cgG`IdŶe_`wt T)egHь]wn ˛M'  O =Q[ev˼ %, &PY40UȫUMН`aFQf윯uRm%tmA'~-G ;'4e8fSVQ']kMЮgu[/kYm'S@0WYMTU@"\N_%OY3o]&D%UO_H} uhqMR 3vCvȨQ^JG;! Ժ3֗ȹ %UzhbJfZX2oY}|ҫH~cËRÛ}VdiZBh 7W-j"OXe!4HR; nKjtwQB6P¯%o!dnϲ.%$#V? tǣ=Dk{1I饍hۃPjxxPIƁ۵݈iKU\V }3mIZ17y!5٭UffI 0$e5.ѭ[yE뙵0* i잂=Y\ڇsH~cùl!5@'9`kLoE/ s_aF_==(mPC`=W'ήQ3V(`@he G݌Fk'v$ jR sҫHn|gY {,! *oHm=ĊA$,u T,XhFNjP"wխOUVtԤLa^ !e.v9֐66;аcsN Wyߝ.aƎzQJR; ¨M M^w -9ֵżM9C8G)n#:dXG a!O|bkƾc@Xew)qP2<N+YPwFGH:zp"Y>t%Ĵݻ5=*Kۦ\݌i&Zf 4Y%&۔FQ7I4Uj.2C,9mI#M;xl]/KzoUjj;%‰KXaSO:y鱁 F?;:@ \p3jY| u)n 2B1cTRh cƠպ:< M!U3r_1sK{xmmcvIĭiX 8RrB /r x܇ʁ0&( ^E+hZLBN6\Y 2skQM#!I,36Rz{A*G#Bz%i wB#ǂҭé%:gRe>R:dȘI&,~N5 {SGwWYx ㈷FX;,&Zzrha՜nO&R,D^*k˕{Mig+›,EIn!K q9iybke]Sb{sy4<:l8GcJfx;JVNN2'PJOasYk^]kW4+b)k</+;,s56UOlCe~ЉUV\U M^̬ۯ !O{0jkf4wXi/$lաVpX%TqT_>;1fB7\ͱ8'7#TI`{oyz\U M^̬ۯ !O{0jkf4wXi/$lաVpJOasYk^]kW4+b)k</+;,s56SOR TESTFILE) SOR wil writ th sorte line t th filenam TESTFIL an renam th origina fil t TESTFILE.BAK. end. 10 June 1984 Jim Ulrick 210 Lo Angele Ave. Berkeley, CA 94707 (415) 526-0474 Thi dis contain th progra PLAS writte i Turb Pascal Bot th sourc cod an th compile progra ar o th disk.  littl inconsisten a wa experimentin (an stil am). Th inpu an outpu fo thi progra i fairl complex Th procedure GETREAL.PA an GETCH.PA allo th inpu field t b edite i manne ver simila t dBas II Yo ca mov u an dow amon field wit eithe th arro key o ^E ^X nic projec woul b t generaliz GETREA t als ge integer an strings Le m kno i yo d this. A interestin featur o th outpu o thi progra i tha i write plo file fo EPPLOT commercia progra fro Symboli Systems 313 Vi Lom Vista Escondido C 9202 ($18 - wort i i yo wan t d scientific/engineerin typ plotting/graphing) EPPLO read th plo fil produce b PUMP.CO (procedur PLOT.PAS an the generate bi imag fil fo a Epso printer Wit abou 0.005 resolution th plot loo goo enoug t pu i reports etc. use ZI t writ th screen fo thi program ZI write th ro firs an the th colum PLAS stand fo Prickett-Lonnquis Aquife Simulatio Model Thi i genera 2-dimensiona finit differenc mode fo groundwate basin Thi typ o progra i use t forecas th performanc o groundwate basi unde variou scenario o pumpin an recharge Th file PUMP.DT an RECOVER.DT ma b rea t tes th operatio o PLASM Fo detaile descriptio o th progra an it use refe t th referenc give i th banne o PLASM.PAS Not tha thi progra i to larg t compil i memory develope th progra b onl includin an compilin fe procedure a time Thi i th secon o thir larg progra I'v writte usin Turb Pascal M styl evolve littl fro th earlie attempt PUMP.PA an SORT.PAS Th file OPENFILE.PAS READFILE.PAS an WRITEFIL.PAS a wel a man o th inpu an outpu screen shoul b o genera valu a tool an example o th us o Turb Pascal. end.  fo curso positioning Thus ther i procedur i GLOBALS.PA calle "at whic use th standar procedur "gotoxy(column,row) an swap th colum an row. us th statement "repea unti keypressed quit often fin tha usuall hav t dru th key t ge thi t work S whe th displa pauses kee tappin key unti i move again. Th procedure GETCH.PAS GETREAL.PAS OPENFILE.PAS READFILE.PAS WRITEFIL.PAS an th genera structur o som o th othe procedure shoul b o genera us a tool fo th developmen o applicatio programs. Not tha thi progra i to larg t compil i memor i it entirety A recall it somethin ove thousan lines Yo mus eithe compil o dis o no includ som files. Fo detaile descriptio o th algorith use b thi program refe t th referenc give i th banne t PUMP.PAS USE ARE 1: Th progra SORT.PA alon wit th compile fil SORT.CO i locate i use{***************************************************************************} {* Source: scrnin1.inc *} {* Purpose: Asks for choice of pump test, recovery test, or quit *} {***************************************************************************} PROCEDURE scrnin1(var test,choice: char; var q,r,swl,pwl,pumptime,Ti,Si: real; var nmax: integer; var time,depth,drawdown,residual,image: Anyarray; var aborted: boolean); BEGIN clrscr; at( 2, 0); write('--------------------------------------------------------------------------------'); at( 3,20); write('AQUIFER TEST ANALYSIS: THEIS METHOD'); at( 4, 0); write('--------------------------------------------------------------------------------'); at( 6,19); write('(G)et Data from Disk File'); at( 8,19); write('(P)umping Test'); at(10,19); write('(R)ecovery Test'); at(12,19); write('(Q)uit to System'); at(15,19); write('ield1: q:= (q/1440); GetReal(q, 8,52, 8, 0, cursor); q:= q * 1440; { convert gpm to gpd } IF cursor= 'up' THEN GOTO field1; field2: GetReal(r, 9,52, 8, 0, cursor); IF cursor= 'up' THEN GOTO field1; field3: GetReal(swl,10,52, 8, 2, cursor); IF cursor= 'up' THEN GOTO field2; IF test='R' THEN BEGIN field4: GetReal(pwl,11,52, 8, 2, cursor); IF cursor= 'up' THEN GOTO field3; field5: pumptime:= pumptime * 1440; GetReal(pumptime,12,52, 8, 0, cursor); pumptime:= pumptime/1440; { convert min to days } IF cursor= 'up' THEN GOTO field4; END; field6: GetReal(Ti,13,52, 8, 0, cursor); IF cursor= 'up' THEN GOTO field5; field7: GetReal(Si,14,52, 8, 6, cursor); { >4 decimals sets flag for float format } IF cursor= 'up' THEN GOTO field6; at(17,32); REPEAT readEnter choice (P,R,G,Q)'); at(17, 0); write('--------------------------------------------------------------------------------'); REPEAT at(15,42); REPEAT read(kbd,test) UNTIL upcase(test) IN ['P','R','G','Q']; test:= upcase(test); IF test = 'G' THEN BEGIN initdata(test,choice,q,r,swl,pwl,pumptime,Ti,Si,nmax,time,depth); readfile(test,q,r,swl,pwl,pumptime,Ti,Si,nmax, time,depth,drawdown,residual,image); END; UNTIL test IN ['P','R','Q']; IF test='Q' THEN aborted:= true ELSE aborted:= false; END; {scrnin1} {***************************************************************************} {* Source: scrnin2.inc *} {* Purpose: Gets discharge,distance,swl,pwl,pumptime, or quit *} {***************************************************************************} PROCEDURE scrnin2(test: char; var q,r,swl,pwl,pumptime,Ti,Si: real);(kbd,choice) UNTIL upcase(choice) IN ['C',^M,'E',^E,^K]; writeln; END; UNTIL upcase(choice) IN ['C',^M]; END; { scrnin2 } { ************************************************************************** } { * Source: inter4 * } { * Purpose: initialize special zone * } { ************************************************************************** } PROCEDURE inter4; var choice: char; BEGIN clrscr; gotoxy(27, 2); writeln('SPECIAL ZONES'); gotoxy( 1, 4); writeln('A special zone is defined by the column and row coordinates of the upper'); gotoxy( 1, 5); writeln('left (I1,J1) and lower right (I2,J2) corners of a rectangle fitted around'); gotoxy( 1, 6); writeln('the zone. A line can be represented by I1=I2 or J1=J2. Similarly, a point'); gotoxy( 1, 7); writeln('can be made b LABEL field1, field2, field3, field4, field5, field6, field7; var cursor: str2; BEGIN clrscr; at( 5,20); IF test= 'P' THEN write('PUMPING TEST') ELSE write('RECOVERY TEST'); at( 6, 9); write('-----------------------------------------------------------------------'); at( 8, 9); write('Average pumping discharge, gpm '); at( 9, 9); write('Distance to pumping well, feet '); at(10, 9); write('Static water level, feet '); at(11, 9); write('Final pumping water level, feet '); at(12, 9); write('Duration of pumping, minutes '); IF test='P' THEN BEGIN At(13, 9); write('Estimated transmissivity, gpd\ft '); At(14, 9); write('Estimated storage coefficient '); END ELSE BEGIN At(13, 9); write('Transmissivity from pumping test, gpd\ft '); At(14, 9); write('Storage coefficient from pumping test '); END; at(16, 9); write('-----------------------------------------------------------------------'); at(17, 9); write('(C)ontinue or (E)dit?'); writeln; REPEAT BEGIN fy I1=J1=I2=J2.'); gotoxy(11, 9); writeln('+---------------------------------------------------+'); gotoxy(11,10); writeln('| (I1,J1) |'); gotoxy(11,11); writeln('| +-------------------------+ |'); gotoxy(11,12); writeln('| | | |'); gotoxy(11,13); writeln('| | | |'); gotoxy(11,14); writeln('| +-------------------------+ |'); gotoxy(11,15); writeln('| (I2,J2) |'); gotoxy(11,16); writeln('+---------------------------------------------------+'); gotoxy( 1,18); writeln('(Press ENTER after each coordinate)'); gotoxy( 1,19); writeln('Column, row of the upper left corner of the zone (I1 J1): '); gotoxy( 1,20); writeln('Column, row of the lower right corner of the zone (I2 J2): '); repeat repeat gotoxy(60,19); readln(I1); gotoxy(64,19); readln(J1); g (cursor= 'up') AND (n=1) THEN GOTO TimeColumn ELSE IF (cursor= 'up') AND (row=6) THEN BEGIN n:=n-1; At( 6, 0); InsLine; At(bottomrow+1, 0); DelLine; {21 = bottomrow + 1} END ELSE IF cursor= 'up' THEN BEGIN n:= n-1; row := row - 1; {move up a row, over to depth col} END ELSE IF cursor= 'dl' THEN deleterow(n,time,depth); { DepthColumn } GetReal(depth[n],row,26,10,2, cursor); IF cursor= 'up' THEN GOTO TimeColumn ELSE IF cursor= 'dl' THEN BEGIN deleterow(n,time,depth); GOTO TimeColumn; END; { write(bell); } writeln; { end print line and do line feed } IF test= 'P' THEN drawdown[n]:= depth[n]-swl ELSE IF test= 'R' THEN residual[n]:= depth[n] - swl; { drawdown will be defined by ImageDrawdown as calculated recovery } IF row = bottomrow THEN BEGIN {20 = bottomrow} At( 6, 0); DelLine; row := row-1; otoxy(60,19); clreol; gotoxy(60,19); writeln(I1); gotoxy(64,19); writeln(J1); gotoxy(60,20); readln(I2); gotoxy(64,20); readln(J2); gotoxy(60,20); clreol; gotoxy(60,20); writeln(I2); gotoxy(64,20); writeln(J2); until (I1<=I2) and (J1<=J2); gotoxy( 1,23); write('Continue, Edit, Abort (C/E/A)? '); repeat read(kbd,choice) until choice in ['C','E','A']; writeln; until choice <> 'E'; if choice='A' then aborted:= true else ZN:= ZN+1; end; { ************************************************************************** } { * Source: scrnin3 * } { * Purpose: read time[n] and depth[n] arrays * } { ************************************************************************** } { Note: for a recovery test drawdown[n] will be defined by imagedrawdown } { as calculated recovery } PROCEDURE scrnin3(test: char; swl: real; var nmax: integer;  END; UNTIL (time[n]=0) AND (depth[n]=0) AND (n>1); nmax:= n-1; At(22,12); write('(C)ontinue or (Q)uit: '); REPEAT read(kbd,choice) UNTIL upcase(choice) IN ['C',^M,'Q']; writeln; IF upcase(choice) = 'Q' THEN aborted:= true ELSE aborted:= false; END; { scrnin3.pas } { ************************************************************************** } { * Source: prnscrn * } { * Purpose: get input for printed report header * } { ************************************************************************** } PROCEDURE prnscrn(var pdate,ptestdate: str8; var pname,pwell: str35); var choice: char; BEGIN clrscr; repeat at(10,12); write('Today''s Date : / / :'); at(11,12); write('Test Start Date : / / :'); at(12,12); write('Project Name :  var time,depth,drawdown,residual: Anyarray; var aborted: boolean); label TimeColumn; const bottomrow = 20; {bottom row displayed on screen} var n: integer; { array index } row: integer; cursor: str2; choice: char; PROCEDURE deleterow(n: integer; var time,depth: Anyarray); var i: integer; BEGIN i:= n; REPEAT BEGIN time[i]:= time[i+1]; { time[nmax+1] = 0 } depth[i]:= depth[i+1]; i:= i+1; END; UNTIL (time[i]=0) AND (depth[i]=0) AND (i>1); DelLine; END; BEGIN { program scrnin3 } clrscr; At(4,10); write('Time, minutes'); At(4,25); write('Depth, feet'); At(5,10); write('-------------'); At(5,25); writeln('-----------'); n:= 0; row := 5; REPEAT n:= n+1; row := row + 1; TimeColumn: time[n]:= time[n] * 1440; GetReal(time[n],row,11,10,0, cursor); time[n]:= time[n]/1440; { convert min to days } IF :'); at(13,12); write('Well Identity : :'); buflen:= 8; at(10,29); readln(pdate); buflen:= 8; at(11,29); readln(ptestdate); buflen:= 35; at(12,29); readln(pname); buflen:= 35; at(13,29); readln(pwell); at(15,12); write('Are all fields correct (Y/N)? '); repeat read(kbd,choice) until upcase(choice) in ['Y','N',^M]; until upcase(choice) in ['Y',^M]; end; { ************************************************************************** } { * Source: scrnout1 * } { * Purpose: first output screen * } { ************************************************************************** } PROCEDURE scrnout1(test: char; T,S,rms,q,r,swl,pwl,pumptime,Ti,Si: real); BEGIN clrscr; At( 3,16); IF test= 'P' THEN write('THEIS METHOD PUMPING TEST ANALYSIS') ELSE write('THEIS M write(time[n]*1440:9:0); write(depth[n]:14:2); IF test= 'P' THEN begin write(swl+comdrawdown[n]:14:2); writeln(drawdown[n]:14:2); end ELSE BEGIN write(swl + image[n] - comdrawdown[n]:14:2); { computed residual } write(residual[n]:14:2); write(swl + image[n] - pwl:14:2); { image depth below pwl } writeln(drawdown[n]:14:2); END; IF (n mod (bottomrow-5)) = 0 THEN BEGIN write('Press any key to continue '); REPEAT UNTIL keypressed; DelLine; END; IF n > bottomrow-5 THEN BEGIN At( 5, 0); DelLine; {delay(500);} At(bottomrow, 0); END; END; { FOR } choice:= 'X'; At(23,5); write('(D)isplay again or (C)ontinue: '); REPEAT read(kbd,choice) UNTIL upcase(choice) IN ['D','C',^M]; choice:= upcase(choice); IF choice='D' THEN DoneLooking:= false ELSE DoneLooking:= true; END; { scrnout2 } ETHOD RECOVERY TEST ANALYSIS'); At( 5,16); write('TRANSMISSIVITY, GPD\FT = ',T:8:0); At( 6,16); write('STORAGE COEFFICIENT = ',S:8); At( 7,16); write('ROOT MEAN SQUARE ERROR, FT = ',rms:4:2); At( 9,16); write('Pumping discharge, gpm = ',q/1440:8:0); At(10,16); write('Distance to pumping well, feet = ',r:8:0); At(11,16); write('Static water level, feet = ',swl:10:1); IF test= 'R' THEN BEGIN At(13,16); write('Final pumping water level, feet = ',pwl:10:1); At(14,16); write('Duration of pumping, minutes = ',pumptime*1440:8:0); At(15,16); write('Transmissivity (pump test), gpd\ft = ',Ti:8:0); At(16,16); write('Storage coefficient (pump test) = ',Si:8); END; At(19,14); write('----------------------------------------------'); At(20,15); write('Press any key to continue'); REPEAT UNTIL keypressed; END; { scrnout1 } { ************************************************************************** } { * Source: scrnout3 * } { * Purpose: output menu * } { ************************************************************************** } PROCEDURE scrnout3(var choice: char; var quitting: boolean); BEGIN clrscr; At( 5,16); writeln('(O)utput to disk file'); At( 6,16); writeln('(P)rint'); At( 7,16); writeln('(W)rite a linear scale plot file'); At( 8,16); writeln('(S)emi-log plot file'); At( 9,16); writeln('(L)og-log plot file'); At(10,16); writeln('(E)rase data and continue'); At(11,16); writeln('(C)ontinue -- from top menu'); At(13,16); writeln('___________________________________________________'); At(15,16); write('Enter choice: '); REPEAT read(kbd, choice) UNTIL upcase(choice) IN ['O','P','W','S','L','E','C',^M]; choice:= upcase(choice); IF choice I{ ************************************************************************** } { * Source: scrnout2 * } { * Purpose: time and depth array * } { ************************************************************************** } PROCEDURE scrnout2(test: char; nmax: integer; swl,pwl: real; var time,depth,drawdown,comdrawdown,image,residual: AnyArray; var donelooking: boolean); const bottomrow = 20; var m,n,p: integer; row: integer; u,wu: real; temp: str8; BEGIN clrscr; if test='P' then temp:= 'Drawdown' else temp:= 'Residual'; At( 2, 0); write( ' Elapsed Observed Computed ',temp,' Image Calculated'); At( 3, 0); write( 'Time, min Depth, ft Depth, ft ddn, ft ddn, ft Recovery, ft'); At( 4, 0); writeln('_________ _________ _________ _________ _________ _________'); FOR n:= 1 TO nmax DO BEGINN ['E','C',^M] THEN quitting := true ELSE quitting := false; END; { proc scrnout3 } { ************************************************************************** } { * Source: inter1 * } { * Purpose: units * } { ************************************************************************** } PROCEDURE inter1; var choice: char; BEGIN clrscr; gotoxy(1,4); writeln('You may use English or Metric units as follows:'); gotoxy(24, 7); writeln('ENGLISH METRIC'); gotoxy(24, 8); writeln('-------- --------'); gotoxy( 5, 9); writeln('HEAD FT M'); gotoxy( 5,10); writeln('TRANSMISSIVITY GPD/FT M2/DAY'); gotoxy( 5,11); writeln('DISCHARGE GPD M3/DAY'); gotoxy( 5,12); writeln('DISTANCE FT M'); gotoxy( 5,13); writeln('TIME DAYS  repeat read(kbd,choice) until choice in ['C','E','A']; writeln; until choice in ['C',^M,'A']; if choice='A' then aborted:= true; END; { ************************************************************************** } { * Source: inter3 * } { * Purpose: default parameters * } { ************************************************************************** } PROCEDURE inter3; var choice: char; SC: real; {default storage coefficient} BEGIN clrscr; gotoxy(22, 5); writeln('DEFAULT PARAMETERS'); gotoxy( 1, 7); writeln('The default aquifer is isotropic and uniform. The following default'); gotoxy( 1, 8); writeln('parameters will apply to the entire aquifer unless modified by special'); gotoxy( 1, 9); writeln('zones later.'); gotoxy(14,12); writeln('Default TRANSMISSIVITY  DAYS'); gotoxy( 1,16); write('Choose English or Metric (E/M): '); repeat read(kbd,choice) until choice in ['E','M']; writeln; if choice='E' then KS:= 7.48 else if choice='M' then KS:= 1; end; { ************************************************************************** } { * Source: inter2 * } { * Purpose: initialize grid * } { ************************************************************************** } PROCEDURE inter2; var choice: char; BEGIN clrscr; gotoxy(20, 3); writeln('GRID NOTATION'); gotoxy( 9, 5); writeln(' 1 2 3 . . . . NC'); gotoxy( 9, 6); writeln('1 +---+---+---+---+---+---+---+ '); gotoxy( 9, 7); writeln(' | | | | | | | | '); gotoxy( 9, 8); writeln('2 +---+---+---+---+---+---+---+ '); gotoxy( 9, 9); writeln(' | | | | | | | | Maximum columns= ',maxcol); gotoxy( 9,10); : '); gotoxy(14,13); writeln('Default STORAGE COEFFICIENT: '); gotoxy(14,14); writeln('Default HEAD : '); gotoxy(14,15); writeln('Default DISCHARGE : '); repeat gotoxy(43,12); readln(TT); gotoxy(43,13); readln(SC); gotoxy(43,14); readln(HH); gotoxy(43,15); readln(QQ); gotoxy( 1,19); write('Continue, Edit, Abort (C/E/A)? '); repeat read(kbd,choice) until choice in ['C','E','A']; writeln; until choice <> 'E'; if choice='A' then aborted:= true else begin SFSF:= SC*DC*DR*KS; defaults; end; END; { ************************************************************************** } { * Source: inter5 * } { * Purpose: zone parameters * } { ************************************************************************** } PROCEDURE inter5; var TII,TJJ: real; SCIJ,SFIJ: re writeln('3 +---+---+---+---+---+---+---+ '); gotoxy( 9,11); writeln(' | | | | | | | | Maximum rows = ',maxrow); gotoxy( 9,12); writeln('. +---+---+---+---+---+---+---+ '); gotoxy( 9,13); writeln(' | | | | | | | | '); gotoxy( 9,14); writeln('NR +---+---+---+---+---+---+---+'); gotoxy( 1,16); writeln('NC and NR represent the number of columns and rows of the finite difference'); gotoxy( 1,17); writeln('grid. The maximum possible number of columns or rows is dependent on the'); gotoxy( 1,18); writeln('amount of memory available and is declared in the procedure PLASM.'); gotoxy( 4,20); write('Number of columns (NC) : '); gotoxy(41,20); write('Number of rows (NR) : '); gotoxy( 4,21); write('Distance between columns: '); gotoxy(41,21); write('Distance between rows: '); repeat gotoxy(30,20); read(NC); gotoxy(30,21); readln(DC); gotoxy(64,20); read(NR); gotoxy(64,21); readln(DR); gotoxy( 1,23); write('Continue, Edit, Abort (C/E/A)? '); al; HIJ: real; QIJ: real; BEGIN clrscr; {ZN:= 1; I1:= 2; J1:= 2; I2:= 4; J2:= 4;} TII:= TI[I1,J1]; TJJ:= TJ[I1,J1]; SCIJ:= SF[I1,J1]/DC/DR/KS; HIJ:= HO[I1,J1]; QIJ:= Q[I1,J1]; gotoxy(10, 2); writeln('DEFAULT PARAMETER VALUES FOR SPECIAL ZONE ',ZN); gotoxy(19, 4); writeln('(',I1,',',J1,')'); gotoxy(19, 5); writeln(' +------------+'); gotoxy(19, 6); writeln(' | |'); gotoxy(19, 7); writeln(' | |'); gotoxy(19, 8); writeln(' +------------+'); gotoxy(19, 9); writeln(' (',I2,',',J2,')'); gotoxy( 7,12); writeln('Transmissivity parallel to the columns (I direction): ',TII:6:0); gotoxy( 7,13); writeln('Transmissivity parallel to the rows (J direction): ',TJJ:6:0); gotoxy( 7,14); writeln('Storage Coefficient : ',SCIJ:8); gotoxy( 7,15); writeln('Head (ft or m) : ',HIJ:5:0); gotoxy( 7,16); writeln('Discharge (gpd or m3/day) : ',QIJ:5:0);  A'); writeln('"rule of thumb" initial error given below is Q * DELTA/10 * SF.'); sftot:= 0; qtot:= 0; for I:= 1 to NC do begin for J:= 1 to NR do begin sftot:= sftot+SF[I,J]; qtot:= qtot+Q[I,J]; end; end; sfave:= sftot/NC/NR; repeat gotoxy(44, 6); readln(DELTA); gotoxy(44, 6); clreol; writeln(DELTA:5:2); gotoxy(44, 7); readln(NSTEPS); gotoxy(44, 7); clreol; writeln(NSTEPS); ERROR:= qtot*DELTA/10/sfave; gotoxy(22,18); writeln('Error (FT or M): ',ERROR:4:1); gotoxy(39,18); readln(ERROR); gotoxy(39,18); clreol; writeln(ERROR:4:1); gotoxy( 1,21); write('Continue, Edit, Abort (C/E/A)? '); repeat read(kbd,choice) until choice in ['C','E','A']; writeln; until choice <> 'E'; if choice='A' then aborted:= true; END; { ************************************************************************** } { * Source: interact  repeat gotoxy(61,12); readln(TII); gotoxy(61,12); clreol; writeln(TII:6:0); gotoxy(61,13); readln(TJJ); gotoxy(61,13); clreol; writeln(TJJ:6:0); gotoxy(61,14); readln(SCIJ); gotoxy(61,14); clreol; writeln(SCIJ:8); gotoxy(61,15); readln(HIJ); gotoxy(61,15); clreol; writeln(HIJ:5:0); gotoxy(61,16); readln(QIJ); gotoxy(61,16); clreol; writeln(QIJ:5:0); gotoxy(13,20); write('Continue, Edit, Abort (C/E/A)? '); repeat read(kbd,choice) until choice in ['C','E','A']; writeln; until choice <> 'E'; if choice='A' then aborted:= true else begin SFIJ:= SCIJ*DC*DR*KS; FOR I:= I1 TO I2 do begin FOR J:= J1 TO J2 do begin TJ[I,J]:= TJJ; TI[I,J]:= TII; SF[I,J]:= SFIJ; H[I,J]:= HIJ; HO[I,J]:= HIJ; Q[I,J]:= QIJ; end; end; end; END; {inter5} { ************************************************************************** } { * Source: inter6  * } { * Purpose: executive for interactive data entry * } { ************************************************************************** } PROCEDURE interact; label bottom; var choice,zone: char; BEGIN clrscr; gotoxy(13, 8); writeln('Starting a new model deletes all existing data.'); gotoxy(13,10); write ('Start a new model (Y/N)? '); repeat read(kbd,choice) until choice in ['Y','N']; writeln; if choice = 'Y' then begin inter1; {units} inter2; {initialize grid} if aborted then goto bottom; inter3; {default parameters} if aborted then goto bottom; end; ZN:= 0; repeat clrscr; gotoxy(1,8); write('Create or edit a special zone (Y/N)? '); repeat read(kbd,zone) until zone in ['Y','N']; writeln; if zone = 'Y' then begin inter4; {initialize zone} if aborted then goto bottom; inter5; {zone parameters} if aborted then goto bottom; end; until zon * } { * Purpose: time, number of steps, allowed error * } { ************************************************************************** } PROCEDURE inter6; var choice: char; sftot,sfave,qtot: real; BEGIN clrscr; gotoxy(24, 1); writeln('TIME, NUMBER OF STEPS'); gotoxy( 1, 3); writeln('Time steps increase as a geometric series with initial time as the base and'); gotoxy( 1, 4); writeln('1.2 as an incremental factor (e.g. 10, 10+12, 10+12+14.4,...).'); gotoxy(18, 6); writeln('Initial time step (days): '); gotoxy(18, 7); writeln('Number of time steps : '); gotoxy(31,10); writeln('ERROR'); writeln; writeln('Error is the sum of the changes in heads over the entire model from one'); writeln('iteration to the next. When the sum of the changes in heads between'); writeln('iterations over the entire model is less than error, the model is considered'); writeln('to have converged and the result for the current time step is displayed.e <> 'Y'; inter6; {time, steps, error} bottom: clrscr; end; P 9.3600000000E+05 2.8500000000E+02 1.2800000000E+01 0.0000000000E+00 0.0000000000E+00 1.0000000000E+04 1.0000000000E-04 23 6.9444444444E-04 1.5300000000E+01 2.5000000000E+00 0.0000000000E+00 9.0825307763E-30 6.5447828832E-01 1.3888888889E-03 1.6100000000E+01 3.3000000000E+00 0.0000000000E+00 9.3159220701E-24 2.1772165982E+00 2.0833333333E-03 1.6800000000E+01 4.0000000000E+00 0.0000000000E+00 4.5631748681E-25 3.5521460248E+00 3.4722222222E-03 1.8600000000E+01 5.8000000000E+00 0.0000000000E+00 2.0709909059E-36 5.7064738919E+00 6.9444444444E-03 2.1300000000E+01 8.5000000000E+00 0.0000000000E+00 5.6929489217E-25 9.1704543725E+00 1.0416666667E-02 2.3200000000E+01 1.0400000000E+01 0.0000000000E+00 5.6923281868E-25 1.1387171642E+01 1.3888888889E-02 2.5900000000E+01 1.3100000000E+01 0.00000000E-05 23 6.9444444444E-04 4.5700000000E+01 6.6190700710E-01 3.2900000000E+01 3.3561907007E+01 4.5456626348E-01 1.3888888889E-03 4.4600000000E+01 1.7721296948E+00 3.1800000000E+01 3.3572129695E+01 1.7643005193E+00 2.0833333333E-03 4.3800000000E+01 2.5823354564E+00 3.1000000000E+01 3.3582335456E+01 3.0431110547E+00 3.4722222222E-03 4.2100000000E+01 4.3026964255E+00 2.9300000000E+01 3.3602696425E+01 5.1308597060E+00 6.9444444444E-03 3.8600000000E+01 7.8533065265E+00 2.5800000000E+01 3.3653306526E+01 8.5968957534E+00 1.0416666667E-02 3.5400000000E+01 1.1103504464E+01 2.2600000000E+01 3.3703504464E+01 1.0852587090E+01 1.3888888889E-02 3.3500000000E+01 1.3053296898E+01 2.0700000000E+01 3.3753296898E+01 1.2521756035E+01 1.7361111111E-02 3.2700000000E+01 1.3902690327E+01 1.9900000000E+01 3.3802690327E+01 1.3846269347E+01 2.0833333333E-02 3.1400000000E+01 1.5251691095E+01 1.8600000000E+01 3.3851691095E+00000E+00 5.8542581269E-25 1.3016576360E+01 1.7361111111E-02 2.6600000000E+01 1.3800000000E+01 0.0000000000E+00 3.6643290224E-23 1.4304862130E+01 2.0833333333E-02 2.8300000000E+01 1.5500000000E+01 0.0000000000E+00 1.4738442550E-22 1.5370215634E+01 2.7777777778E-02 2.9800000000E+01 1.7000000000E+01 0.0000000000E+00 7.3257385195E-23 1.7069973454E+01 3.4722222222E-02 3.1100000000E+01 1.8300000000E+01 0.0000000000E+00 1.4717690655E-25 1.8401090355E+01 4.1666666667E-02 3.2300000000E+01 1.9500000000E+01 0.0000000000E+00 8.1564836226E-23 1.9495259230E+01 6.2500000000E-02 3.4700000000E+01 2.1900000000E+01 0.0000000000E+00 7.1540416365E-26 2.1944915395E+01 8.3333333333E-02 3.6400000000E+01 2.3600000000E+01 0.0000000000E+00 1.4395194428E-25 2.3693267297E+01 1.0416666667E-01 3.8000000000E+01 2.5200000000E+01 0.0000000000E+00 1.0195811213E-23 2.5053730022E+01 1.2500000000E-01 3.9000000000E+01 2.6200000000E+011 1.4944080410E+01 2.7777777778E-02 2.9900000000E+01 1.6848539277E+01 1.7100000000E+01 3.3948539277E+01 1.6699309605E+01 3.4722222222E-02 2.8300000000E+01 1.8543889277E+01 1.5500000000E+01 3.4043889277E+01 1.8076360902E+01 4.1666666667E-02 2.7200000000E+01 1.9737786742E+01 1.4400000000E+01 3.4137786742E+01 1.9209578696E+01 6.2500000000E-02 2.5700000000E+01 2.1511190287E+01 1.2900000000E+01 3.4411190287E+01 2.1749876586E+01 8.3333333333E-02 2.3800000000E+01 2.3672980176E+01 1.1000000000E+01 3.4672980176E+01 2.3564948818E+01 1.0416666667E-01 2.2800000000E+01 2.4924102987E+01 1.0000000000E+01 3.4924102987E+01 2.4978183375E+01 1.2500000000E-01 2.1400000000E+01 2.6565394087E+01 8.6000000000E+00 3.5165394087E+01 2.6135639745E+01 1.6666666667E-01 2.0400000000E+01 2.8021364130E+01 7.6000000000E+00 3.5621364130E+01 2.7965991117E+01 2.0833333333E-01 1.9600000000E+01 2.9245915017E+01 6.8000000000E+00 3.60 0.0000000000E+00 1.6159836017E-26 2.6167542146E+01 1.6666666667E-01 4.0800000000E+01 2.8000000000E+01 0.0000000000E+00 7.1578386194E-26 2.7928259641E+01 2.0833333333E-01 4.2200000000E+01 2.9400000000E+01 0.0000000000E+00 3.6642504481E-23 2.9296159789E+01 2.5000000000E-01 4.3200000000E+01 3.0400000000E+01 0.0000000000E+00 1.3253372088E-22 3.0414937739E+01 2.9166666667E-01 4.4300000000E+01 3.1500000000E+01 0.0000000000E+00 7.3998648429E-26 3.1361504221E+01 3.3333333333E-01 4.5100000000E+01 3.2300000000E+01 0.0000000000E+00 5.9192588347E-25 3.2181871016E+01 3.7500000000E-01 4.5800000000E+01 3.3000000000E+01 0.0000000000E+00 2.9199475525E-23 3.2905764245E+01 4.1666666667E-01 4.6400000000E+01 3.3600000000E+01 0.0000000000E+00 2.1062564539E-36 3.3553505173E+01 R 9.3600000000E+05 2.8500000000E+02 1.2800000000E+01 4.6400000000E+01 4.1666666667E-01 1.2084000000E+04 8.0700000045915017E+01 2.9388419717E+01 2.5000000000E-01 1.9100000000E+01 3.0143098965E+01 6.3000000000E+00 3.6443098965E+01 3.0552016541E+01 2.9166666667E-01 1.8100000000E+01 3.1516231521E+01 5.3000000000E+00 3.6816231521E+01 3.1536631744E+01 3.3333333333E-01 1.7800000000E+01 3.2168059965E+01 5.0000000000E+00 3.7168059965E+01 3.2390055985E+01 3.7500000000E-01 1.7200000000E+01 3.3100886189E+01 4.4000000000E+00 3.7500886189E+01 3.3143174044E+01 4.1666666667E-01 1.7000000000E+01 3.3616658052E+01 4.2000000000E+00 3.7816658052E+01 3.3817104106E+01  7.4800000000E+00 5.0000000000E-01 4 5.0000000000E+00 13 13 1000 1000 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.00E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.48000000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.50007.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.480000 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+0000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 1.0000000000E+06 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.000000 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.480000007.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+0400E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000004800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 { ************************************************************************** } { * Source: GetCh.inc 0000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000 * } { * Purpose: get keyboard input * } { ************************************************************************** } PROCEDURE GotoX(col,row,charcount: integer); BEGIN GotoXY(Col+charcount+1,Row); END; PROCEDURE getch(typ: char; { Real,Integer,String } row,col,fieldlen,dec: integer; var cstring: str20; { character string built from keyboard } var charcount: integer; { length of cstring } var cursor: str2); var Ch: char; { character read from keyboard } BEGIN REPEAT Read(Kbd,Ch); CASE Ch OF ^S,^H: { left } BEGIN IF charcount > 0 THEN BEGIN Delete(Cstring,charcount,1); { delete last char } charcount:=charcount-1; GotoX(col,row,charcount); write(' ',lft); { erase last char on scr000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.4800000000E+04 7.4800000000E+04 7.5000000000E+04 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 7.een } END; END; ^E,^K: cursor:= 'up'; ^X,^M,^J: cursor:= 'dn'; ^Y: cursor:= 'dl'; { delete line } ELSE BEGIN IF (Ch in ['0'..'9','.','-']) AND (typ in ['R','I']) THEN BEGIN GotoX(col,row,charcount); { cursor to end of string } charcount:=charcount+1; write(Ch); IF charcount = 1 THEN write(' ':fieldlen-charcount); { erase to end of field } GotoX(col,row,charcount); Cstring:=Cstring+Ch; IF (charcount = FieldLen) THEN { OR (NOT('.' IN Cstring) AND (charcount=fieldlen-Dec)) } BEGIN cursor:='dn'; write(bell); END; END ELSE write(bell); END; { else } END; { case } UNTIL (cursor='up') OR (cursor='dn') OR (cursor='dl'); END; {getch} ol = 19; bell = #7; {EPSON MX-80 GRAFTRAX} compressed = #15; {compressed print} normal = #18; {normal print} formfeed = #12; sop = #27#78#6; {skip over perforation} sopcan = #27#79; {cancel skip over perforation} type colrowarray = array[1..maxcol,1..maxrow] of real; colarray = array[1..maxcol] of real; rowarray = array[1..maxrow] of real; str14 = string[14]; var KS: real; {Units coefficient (English or Metric)} NSTEPS: integer; {Number of time steps} DELTA: real; {Time increment} ERROR: real; {Convergence error on head} NC: integer; {Number of columns} NR: integer; {Number of rows} DC,DR: integer; TT: real; {Default transmissivity} SFSF: real; {Default storage factor (Storage Coeff.*DC*DR*KS)} HH: real; {Default head} QQ: real; {Default discharge} I: { ************************************************************************** } { * Source: GETREAL.INC * } { * Purpose: Real number front end for procedure getch * } { ************************************************************************** } procedure GetReal(var RealNum: Real; { variable to edit } Row,Col, { row, col position } FieldLen, { Field length } Dec: integer; { Decimal places } var cursor: str2); { cursor positioning } var Cstring: str20; charcount: integer; Result: integer; { result of string to real conversion } typ: char; { variable type: Real, Integer, String } BEGIN cursor:=''; Cstring:=''; Result:=0; charcount:=-1; GotoXY(col+charcount+1,row); { back up one for field colon } IF Dec < 5 integer; {Column number} J: integer; {Row number} TI: colrowarray; {Transmissivity in I-direction at node (I,J)} TJ: colrowarray; {Transmissivity in J-direction at node (I,J)} SF: colrowarray; {Storage factor at node (I,J)} HO: colrowarray; {Head at node (I,J) at start of time step} H: colrowarray; {Head at node (I,J) at end of time step} Q: colrowarray; {Discharge at node (I,J)} I1,J1,I2,J2: integer; ZN: integer; choice: char; aborted: boolean; quitting: boolean; plasmout: boolean; {end globals} { ************************************************************************** } { * Source: openfile * } { * Purpose: open a disk file for reading or writing * } { ************************************************************************** } PROCEDURE openfile(filetype: char; var filename: str14;  THEN write(':',RealNum:FieldLen:Dec,':') ELSE write(':',RealNum:FieldLen,':'); charcount:=0; GotoXY(col+charcount+1,row); { cursor to beginning of field } typ:= 'R'; getch(typ,row,col,fieldlen,dec,cstring,charcount,cursor); val(Cstring,RealNum,Result); { convert string to real } charcount:=0; GotoXY(col+charcount+1,row); { cursor to beginning of field } IF Dec < 5 THEN write(RealNum:FieldLen:Dec) ELSE { use float write param for small numbers } write(RealNum:FieldLen); END; {getreal} { ************************************************************************** } { * Source: globals * } { * Purpose: PLASM global declarations, functions, procedures * } { ************************************************************************** } const maxrow = 19; maxcol = 19; maxrowc var filvar: text; var fileopen: boolean); {open a disk file for reading (filetype='R') or writing (filetype='W')} var choice: char; exists: boolean; BEGIN REPEAT gotoxy(12,22); clreol; if filetype = 'R' then begin write('Enter name of disk file to read: '); end else begin write('Enter name of disk file to write: '); end; readln(FileName); if filename = '' then choice:= 'Q' else begin choice:= 'N'; assign(filvar, FileName); {$I-} reset (filvar) {$I+}; exists:= (IOResult = 0); case filetype of 'R': if not exists then begin gotoxy(12,23); clreol; writeln('Cannot find file ',filename); fileopen:= false; end else fileopen:= true; 'W': if exists then begin gotoxy(12,22); clreol; write('Fi8G_R WWfdq)[#vzŢh'ճ.="3+Z3h9ճ#t>/?ޱ"y|{2vq473p[CelaLsC!""=m'p IUBdEz N < ?@ABCDEFGHIJKLMNOPQRSTUVWXY&;J% Lpl2a+ķ}B&(,0A&&#\91f- J% Lp)ؚi2>L78̞pfƈ(GgR4<8Ό72=NΏp`}s5tpMO5ιTp:3 \n]8wv =E>ty=!5Ad o?}1k c658@5Χݧw?&(,0v$H[:`8tSle ',FileName,' exists, overwrite (Y/N/Quit)? '); REPEAT read(kbd,choice) UNTIL choice IN ['Y','N','Q']; if choice='Y' then fileopen:= true else fileopen:= false; end else fileopen:= true; end; {case} end; {if} UNTIL fileopen OR (choice='Q'); gotoxy(12,22); clreol; gotoxy(12,23); clreol; END; {openfile} vQDEFAULTS.PAS? o !"#$%&'()*+,-./0123456789:;<=>tș2vyVTu 3e8s- C=NExn?XqPxR5k@Δ!਼bQyUZx^- = gpT\ π)C9i7ןVTu_ɖ vHL;GTLͰ3%`g\cS1AvMDF&.MƤp) oƤp)7 Ǥp) 1)dJ}d?d,5{wXYN=l͸ &(,0A\3N Qd_8N[M&,aͅqfb5Ad OIL;Nq87zė,Lf&;J%{̃˯R%Rb`̉ ydJe祒*ޱ@* XRb`! JLs*ӜRbiNRbiNTX%`),V $>JLs*\#iN;(Us!멇&J*Y̅祒*\hRI%'丒 ""UZn>>7/]`n}24Inz|TIjm7]`ZMO)nbnvy=t]$b%hNCӓa:d;f L/}*X-t$bva҃!;(URIJМW;1St 9J"Yn>>.B0N p`?mhC ߥJ"4'!I_0K2Y ◾MD|SЩo[0Kg~\0I8S%Ls ;1S*$b6||lw]`Z6ifh.fHi3Es)MfhC ߥJ"V8==k;fC9 a4^~𯩒B0NAJ"V-h3h.fqڱ*$b6||l_ 8~0r?Cg.U4'!I_0K2Y ◾MDq :UJnaG,Gs10RJ*X-}r|p7]rm24hC ߥJ"V8==k;fC9 a4^~𯩒B0NAJ"V-h3h.fBJ*X-ˡI.4hϯv]$b%hNCӓa:d;f Lş_S%`NDv4cRɔ8#MT6"ۮ)\yȶ}$gȬ8:gz15,42); REPEAT read(kbd,test) UNTIL upcase(test) IN ['P','R','G','Q']; vOPENFILE.PASL o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK;܇7=|C-@6"7=^+Y\YTFShgv=Fv?aoz YQYԢq)rxDV[8ZKHd[VTl@#GDV=<]dEn;$SqNEVM/o@3PWW['4y|{3pjWa1_,Fy*A8pDdEn;&H7#MAgG]XG :bȊ4dsGgعS,C8gz*9RD------'); at( 8, 9); write('Average pumping discharge, gpm '); av iPLOT.PASa o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`<~縭;SRMH/ӯ;'j0 +1}LX¬6֌x+ޓĴ2K4(y6싡UahJ4azMsN`<ҷon; @PԫU1Tϵ) 0S=?UY6(6\$F 3sm67w;<ĊzVj`HٲLG2W3r rIVQϠ vGB,)3smzq[!ت1qhXz6 #,cXl ;[_BFڈ&>'4&+9V33n$K3F_I&N#mN4&+9b{FzaX1H2N#mF0YYpsކȂ-Uwi0b=8`K;YdewY^;Ydew֌e-$ON#mz5}-zB=s.܆5dsB琭0G㫉ZqH_-`X;YD>}^]]bN#}?o-yD>= L\MloCF _5dsB琭0G+[>v髅LVy1"ȧϫܜC iVylc7ۛPzHHLVy19i&+J4ҦDzqpq|N+up' THEN GOTO field6; vPRNOUT.PASY o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX_ѯ8'QY3ruѯW3[ŔrdVL\;Z5Z#ۜ`NPÛ0S=צN#mH@v"($עS:vi3BZ#ۜ^Uc1BXGwi3jjG9aEZQbhXz6 #P8BZ#CЪѪa#J4҆;4LV(crUΘ#}16($i wiS{N#mF0Y X;cU匷9>gG#V &rIf6L(@v"6 #PUUxs}`4|+Ek^FMO6*~4lJˊdi ,3RL}_}c6 _9 F@U)ib4NS^K`钫/?vIXJI5 6 YD_*b"f1lΜ4 nWWݪO6 .-+r?9iq;_] Hq;_]u |Z.wI FßKˊ4a~O-s$Wo6ig^`zz Ai)4qZzr.L/h3/0]~@= r2@.%dVX2 -q1aDq5wK2N+WONѥ",Y`~m0:s,X`4$ FßwK\zw8\=LEib4c>|ՓSt)Ҳ狱~6 I0LϥeEN,"7FoN.,X`4|A56\T9H>;t0Jzq 3kpumιrzPzHNXd%b=8smmι^'F1Pz,`@wex3n\<Вk"~7F1Pz0b=8d6\݄8BZ#G+$V=ڑ w&+/s_nsMCFvd^ =hՈ-yvdC靾|x4ui|= ,mıע^٪LG2,Zj䠌QC~X*`KȂ-7y|}; `&,IR&6Օwzq+i3a^lܮ-)2jƱ ~w0S=צAJH#42?R; `hCNxiLX*!΄%Zyq&,Kw5fR$|qO_:10X;.Hޚ7i%)vI+.m0"`KB*4H5N#iEUj[z,`,-ߚPzj[z,`,{4H5N#]7$oHZqQ}SzR++ l*Hz,[4V\TUܾ)=  -Hz,[4V\T۸}SzR++ lN#iEum0FK#$?~{Y 0VV+f\zzm0 AY P(~BF҆Ԫ[KN薽O!wiIݲWBI1_yF(.XmKLVaa yD3aIbC(Haꕥi([5-y6qhC;YdewDzk`K[3fR(HLVy1&i[jbeԌS1$F #,c_CF,mjS4q /P:}gp5Ҳ"'M88=;p?~Y%m0~SZV$ _dɥhREL;<ӤዓI׼xcѼ@i $7  f189l0(-+r/Jˊ4՗)880?$m0(-+r/x_[ ?P$(-+r$+Y;N0V)u~gBI r) _eEN䉔f*EwVOڤ FeENdV\;(~EHUzo$~e~m0(-+r$٫#Y"$t;_]m`4|QZVIWG e tK~%n`4|QZVIZN#HpnJ6)$uI/6 _9iBEGtr FeENEiY`EiY&AdFoH`4|AҲ"'hI0hI w]2_ۧqe`~\.q7Ejx?nM`4|QZV$ _88z{/:CEL"f1~c>^E5cw2kJˊ7h /XB=Hkϖ*f&4, v,, _dhI0(-+r6(-+r$H]l ~￴9NY&wg|܁'+?~:iF%1D Xן??_i^|uSt Gd=p/6~ '[ ~IF*UEw˜/ 0+‘U(qx  A$/ l2* 8"$#6LB [HF _"|Qw4BT&;G2 b+|1N+b| h#c89'/Nqd<_/jߟb58#j Y)k",S0UJVd89'/,]^}Q=W[A@D9 jqeB2_ȓ'Ǹ"&?h}fX//_T2_ȓ/.YxH'T&c S=\T\1_Yfdp2X}}WS|a8GA\ƒ#Nqd)D 'Dbzx>N%#F _Z2bZ?h֨Rlxo|k _>#YxAa:Wy0sF-ᏐQ؈F-bmQ!iQ؈zm1,TpT0.%#pT0.ŰPa\JF໙%#𝚡)Ty\͠~0O[1iSR0.%#'5y7D fy«$#*|׿*KmKFa¸Bqyog*8uS##kWdHxAas5VWo6 !Jˊ7h /XB=Hkϖ*f&4, v,, _dhI0(-+r6(-+r$H]q>Gs?n6iEiY`4|X(X]0XD|@1]"8Қh"Z*bzAQZV|1v/y9 Fo  ^>z ,Fß-UT+D3M*KiJY0X(7$Y0 ɂEiY`4|QZV$m4|QZVI.ُ ͏×%=7mҲ"'h±P>ۻ`4|*bDq5E=T,cw2%HڀҲ"'hc|c}0~ 8P$8Қhj(vxIe)M) Fß `4$ F$Y0(-+r/JˊҲ&YI*Zաeg@E(!ij(vxIe)M) Fdy7FMO6^WVL1Y^;Ydew֌e-$ON#mz5}-zB=s.܆5dsB琭v9 PRNSCRN.PASI o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH7ؚ׸u[T8f0[:{-jC&V c7 *i"SjƞTGm[go5q?Z2qY.#\[\KF[m=֒#2Aom*O}$#ykPa\ޮg S? ƥd> ŵd>ŵd>W3L⮞^ 6bkW3LTWO_5#MsU:KE0.o}UR2 j0O[1jm4G_*KE:a\Pa\JFsUhn0mK|q-O?%#Gb`pQ]]N?w«$./mQMW.DxA]1"?dX0iHr* EҖ.IՒgÁ(k*Lu)smz2tBI9BI-|h%#sM^KF«$.ԁRڢ[^1b~qAjga6K&ad h">zQ; vҲ"'MiI6*~4w]TQ`ΚceVbErt4yPZVvoPROCESS.PASZ o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYW.:=8Kqvҥ2obt-9̈́`+PX8[ ^e&[\1ǸbЎy! cD F:_c} W|ua@|5i&M#xQ!ad?}?lxF[4W R2EBq)υWIFڢi)TW)T-O?%#GJm1n0(TWO?%#*8u`E 7b|wqD'2<.qЬ'"هq}ɾJFaøE/%#]-}WKF;GE2Hʮ)vX$:K|k8h֓aq S|>,0.p mtd;xk^xe:K[pS$#{3qck1Py;2c\1Ya*?osM/u1_SɈͥ29 #c\y1Jb?+E޶b/]O%#>ڢ_md~sr+"oQ)>Vk+T21c$_pd([Q-AD@es-(^21c$k PwNzʴE "*IOHZf6jkQp礧 UlBiQpL Uc\1*KMSWDd~#J299'11c {N.Ga#c~99pDv nD18=ZC*_WXz7c*F-bmQ!iQ؈fJ[GHR8=Pa\oJF໓c\yqzp*FxŌ/WI\fjڢ?B#szp> (dܩd897YI keQJF«$.g'],b|field6; vxPUMP.PASW  !"o()*+,-./0123456789:;<=>?@AB' :Yl{F%r(Kw뀳' KQ|GP`%/R0 g)nWR|0ʒ_Ke7'tk/qђN (^B鿣GnB(KszfFYA(Ό⽓UFY q&z;8e۱mYRz'wFqVYf6wR@&(_pؠ#D许O&!+_pؠN+.|3 l̦e3^e3{ 쵙 TlOăz%뛍;⽓%UqR|gߝ~;XI 1v)WRITEFIL.PASG o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFw,Mw,qpMI=Lh"܅t`~ZK4ΝG ME x(yx(RLaW1̈́&/BR9SfE ;ߨIg矓0 |0 /W6)[=* p;^*Gd/F]ً@nGJJ,܎,dqJtG6-G&GD"oT%%a#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV-6Rl=|<]-6;C{,$e*3)0FС1C ܨ€]-6+jaF f<Pb]LϿl1ؠK^=jac(icG'w-Fc.*g\4~~8~]-68Ș=n zB7tf'{*tb?v 7RlͤH7ߚ]gߝ~;XI 1)ބRӘpW/z6RlAeI NpNt('F?)Wuxsv>{g_nХbg [lѥx)ۧ_//m/؍c!chpoS&rb]a,(ӡmBAX6^rUd #qVQȸ#Th_SҥnWҡmGb( G  E]vIRCu4{RSPNaR¢.vg)ԡ* Y=f)ԥb]4Jп(+4Hw)Lkkq:C ("ݥnW0Ң?v_[^+4Hw)r ӡmkx2N`Hay#|C91b QUпmgQ*0"]v(*?t߶3\e_QDKݮ`]@p}e4k' =&Cso.v¤g)ԡNJLh*ktLh #"?VpD^y(0] M5 GD pD}Q%%a@ݿՄÕ* <70:\(0Lh Ѽ5^ 5~_לo}ZלouJJ¼&%a:ۤ$L܉J]%%adIa'%?bg [lѥx)ۧ_//m/؍c!chvWRITFILE.PASB o !"#$%&'()*+,-./0123456789:;<=>?@AG 'gtOkTIM 89{Ā>uy5`2JluFB=bsF7 G 'gnURh,h$_0tZ80uo Cpan4Rȯ?9G*}saF#-CHlǺ7hܑ_"̗FyyEX4˛ެ TI EF'G+[Z",UI -Ǻ7YEP˱  epbTEwUdp׷іX ,NY ,m*EX-Y*c6X  {`pI}"< -?i,66W~Y}-Ǻ7Yy;nv/J]%%adIa'%?bg [lѥx)ۧ_//m/؍c!chcB]viп}eFiN+LS5LKݮv;WWL-lt5kѾ2rХnWq 8,0;8RLOÑSLy s()΁5a۬4d_f*O:xRX=e fnwX-f )t)xKE,^=B;F8r)KnwX-f)+C;F8r)Ki}{d6k' Se {.VMXk&öY;i!<-@7_N-k&öY;iȾXeTu,٥sz-@6"EWhCR|\= qr9CwߝWnTaG?w«$.vKREADFILE.PASC o !"#$%&'!v4Copyright (C) 1983 BORLAND Inc Osborne II= ()TERP<~7#~= o&ͦoͦc|ͣ}!!" ~#(}:8= +ͥ*!v-!pͥ*|!!:(=2!-: <2!~!!Y:jO:l:kO:m!ͥ*n! !i45(!+/ 0y0( d!9-!I-[[o&  :(y ͠|( r*"x2y( >28!"9!!>2 0&+!0 [ (!ePWA8Q0G: x@!\w# (   L). )!h6# (*(.(!8}(*(Ww#>?> w#a{ |e}nƐ'@'ý7||}>"C ""*B"[R*"^#V#^#V#N#FO/o&9O/o&9!9(o&0%͔,# ͙ }g }؉}颋.:}8c~I$I~L*.ٷx˸́ }0G,\<}͔,-(- ! >0 $# o8 Á >"m.`1pF,t6|!wS<.z}[|%FXc~ur1}ٯx(<˸k 8́ !~Jk 0ͺO!Z>k 8 =  ͙ # ͙ ́ ͺ͙ 0 - OT0 j oD,:j !I}袋.}8c~I$I~L!>8# # ͙ # = Ù nf^VNF!DLT\I!!53!r1!!> x #-= o˸x(-͙ }(x>8( , `i!>"| | >)=|(DMbo˸y88yx(0 8> x(>-q{(ay(oe z(>.q (o =e{>Eq>+|(|Dg>-q|/ 0:p# ~# +>0w#,-  60# ˸}րogM͇| .( = ~> x0w#xG% % ZJDM%> (G!9 w#EMw}8"RB0 >RRR!+k = R!+k = !+k = !+k = !#k = !+k = T]KB!z> S>))0 = |  DMgo>jB0 7?= H<͡z5)<z {0Gɯgo|| }||/g}/o#}o&K[xAJSJDM!b"!6J"DM'oodo o} $yWj _}8(8J`9{T]=o`9y hìx-Sx9?+{Η@}|  gZJDM0 ,7}o˸ #yO!@9i&  #w#/w#w#!9! E9!!9~(+FM!"9!(#>2*u"|>":( E *6#w*6#6 !\$!u[ (W( #:~CONTRMKBDLSTAUXUSR>2ͭ*#~ u*:> >w###6Õ  #6++p>2Su:*6###ww#w$w#w: ͳ##N#F*B>w#w#[s#rò>2u*6 #-Nw#Fwq#p#6#w#w#w͞* :( Q: *^ F* < >26"~^*-w#x<8{(* !9O!T9^-l&!T9^~6#w!T9^K#^C#᯸( x # | }>$͙ >" 8# }>(́ x }} ˸T}ٕ(0D= ,= (  0% , 7 R ?(88 x  - 8˸x   ͠ ,-xG} }م 9 .>#n0  = - nx  ,-(-˸G,- }ٕ? 9.>R 88 ?= u+-(> 08  8R ?x  , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨u xx( ?}ٽR }ց <( 7 = |٤g{٣_z٢Wy١Ox٠G 8͉ }x>"8}ƀ/ƀó ͙ - }0- ,}l˸k 8 ́ # x(͙ -k 8 -k 8, }l8;*!# ! >8# # 8---͙ ,,,-xGg?+2n*8t z~,->"x"$}.́  ,͙ ́ ! >,.-͙ "ww#Ͳ^"~ <@*u!\  >2*|>! * \$\<(!: [1Á\!(f"́> 2:!"F( #~#6$>!"N>!~8>O6*"w (=(&("( :( 8y(~#ͽ7+ (6*#~́*#~ *~(h#"b=  8ͽ ̶J= B== ͯ}8= ͵}/l !*###~-_~(46*>2>*##w:>*##~*#~(E͋ ( ( ( ͕!] ( ( ((w#(͕́̕6!]~-#8~>7́ Õ͕>O*{͍̈́s #r*{/͍ d͋ ͕ (( #w(͕́̕q*#~ʶ (͕́ ͕ Õ*##~6[O*#~(08ʦ=ʦ==ʩ=ʬò+###~-_q46`>*:4^q}Q*|(|( 6-#Sy[R8 (G> QC~Q#e.**^#VR0***^#V**&e.*u*^#V*E|!dn*u!ͱÍ!!ͱ*up*dn}o*dl}oE\""""""*u!u!"!"**!**!rEc"!:ͱ*Ϳ**!:ͱÉ"!:ͱ*Ϳ*!!:ͱ!"**!*!R}2*&****!!*-!*!J!"**!**!rE;#*Ϳ**U#*Ϳ*!"""}2!! ͔͐*&!RE#@!Enter name of disk file to read: #@"Enter name of disk file to write: **E2$!Q}2%!N}2***͎!}2*&RR$*&}oE$!! ͔͐@Cannot find file *!0O!*s$!*s%WR*ͳyC!' !+TRUEFALSEy!9^#~#(G~Q#> Q> Q "F!(#R0ͳ*4#4>R *4 #4(Ͳ>>2*V(/˖:(#~+ x y!t( =( X:(R*:(###~-_-K< =>:("^"*^˞*V˖0 SѷR8A* N#F#s#r 0})jS\*###w* N#FB ^r+s>!T]>)j)0 0= R!#*^#V#N#F#^#V>">!2DM"~ʲx(L* :O(o:" C}=( ?*-N#Fp+qq#p! * F+N+++V+^Bq#p>>>SѷR* s#r$ s#r*"[R0s#r>"[^#VS!9[R8[R>O"w2x2!"" ͵*>2"!"""!\u*: ͭ!~6go(\R*s#r_2x( s x(T]DMR0 -a%Ù}Wo*!~6o&͠|ͣ}^C%*&E%!! ͔͐@File *!0@ exists, overwrite (Y/N/Quit)? !!͚*&!Y$!N$!Q$E]%*&}2*&!YE%!*s%!*s%!*s*n&*&!Q}oEv#!! ͔͐!! ͔͐""""""""""""""!R!q!!pW#*p&Eʙ'!*͚********ͭ!*^#Vzʘ'"[!**[+<)]T)**[+<)]T)**[+<)]T)**[+<)]T)**[+<)]T)!]*[+<)]T)*[#&""""""""""""""""6!!͔@P--------------------------------------------------------------------------------!!͔@#AQUIFER TEST ANALYSIS: THEIS METHOD!!͔@P--------------------------------------------------------------------------------!!͔@( User break1: I/O Run-time error e, PC=[R"` Program aborted*1!`!uͅ"s}2}2*&!*&"""""""" " " ""! *s! *s!͔* d!͔* d!͔!#d!͔* d!͔*d!͔*d!*s#r!͔*d!͔*d!!<z"**+<)]T)!͔d**+<)]T)!͔d*#ê"""**!*"""""""}2!!͚*&RʅR*^#V!^E**^#V!̀*^#V!R*s#r***^#V! ͱ!ͱÏ!R  R up*uÏ!R7  R7  RI dn*uÏ!Re dl*uÏ!*&!0!9.!.$!-$*&!R$!I$}oEʀ!***^#V*^#V!*s#r*&ͱ*^#V!E!! "G)et Data from Disk File!!͔@(P)umping Test! !͔@(R)ecovery Test! !͔@(Q)uit to System!!͔@Enter choice (P,R,G,Q)!!͔@P--------------------------------------------------------------------------------!!*͔!*͚*n&!P$!R$!G$!Q$E/**n&*s*n&!GE +**************************:&*n&!P$!R$!Q$E"**n&!QEX+!*sj+!*s"""""""}26!!͔*&!PE+@ PUMPING TEST+@ RECOVERY TEST!! ͔@G-----------------------------------------------------------------------!! ͔@Average pumping discharge, gpm ! ! ͔@Distance to pumping well, feet ! ! ͔@Static water level, feet ! ! ͔@ Fin5*m*{*yu1*y*m+<)]T)*k!! !!h!!hupE]5r3È5!hdlEʈ5*m*{*yu1r3O*&!PE5*w*m+<)]T)*y*m+<)]T)Ϳ!Ϳ dC6*&!REC6*u*m+<)]T)*y*m+<)]T)Ϳ!Ϳ d*k!Ev6!!͔Q*k!R"k*{*m+<)]T)Ϳ!͔*y*m+<)]T)Ϳ!͔}o*m!^}oEW3*m!R*}s#r!! ͔@(C)ontinue or (Q)uit: !!g͚*g&!C$! $!Q$E#7O*g&!QEʎ7!*ssà7!*ss!Od!OͿ!͔h!OͿ!͔{}oEJ9!@aÓ!OͿͷ  !OͿv !!OͿ͇ !OͿ͇  !|+eb!OͿ͇ !OͿ͇ !OͿ͇ v !z3h!OͿ͇ !OͿ͇ !OͿ͇ !OͿ͇  !w[ !OͿ͇ !Oal pumping water level, feet ! ! ͔@Duration of pumping, minutes *&!PE-! ! ͔@!Estimated transmissivity, gpd\ft !! ͔@Estimated storage coefficient X.! ! ͔@)Transmissivity from pumping test, gpd\ft !! ͔@&Storage coefficient from pumping test !! ͔@G-----------------------------------------------------------------------!! ͔@(C)ontinue or (E)dit?O*Ϳ!͔͌ *d*!!4!!!!*Ϳ!͔͇ *d!upE`/.*! !4!!!!!upEʖ/.*! !4!!!!!upE/a/*&!REʉ0*! !4!!!!!upE0×/*Ϳ!͔͇ *d*! !4!!!!*Ϳ!͔͌ *d!upEʈ0/*! !4!!!!!upEʿ00*!!4!!!!!upE0Ê0!! ͔͇ !OͿ͇ !OͿ͇ !OͿ͇ v !Udá:!OͿ!͔@EF:!aMeQ!Cl!OͿ͇ v !OͿ!OͿ͇ v !Drawdown undefined! --> negative argument to the well function͠E$;"""""!!#d!)d!/d!5d!;d!Ad!*!z="!;Ϳ!;Ϳ͇ !#Ϳ͇ !(\o͇ !!)Ϳ͔͇ **+<)]T)Ϳ!;Ϳv ͇ ͌ ! d! Ϳ!͔{EU<ͩ:*!"=**+<)]T)! Ϳ͢7!AͿ͇ !!!I͔͇ !)Ϳ͇ ͌ d**+<)]T)**+<)]T)Ϳ**+<)]T!!͚*&!C$! $!E$!$! $E1O*&!C$! $E.Á2"a"c"e*e"[*c*[+<)]T)*c*[!+<)]T)Ϳd*a*[+<)]T)*a*[!+<)]T)Ϳd*[!"[*c*[+<)]T)Ϳ!͔*a*[+<)]T)Ϳ!͔}o*[!^}oEʍ1Q"s"u"w"y"{"}!d}26!! ͔@ Time, minutes!!͔@ Depth, feet!! ͔@ -------------!!͔@ -----------O!"m!"k*m!"m*k!"k*{*m+<)]T)*{*m+<)]T)Ϳ!͔͇ d*{*m+<)]T)*k! ! !!h!*{*m+<)]T)*{*m+<)]T)Ϳ!͔͌ d!hup*m!}oET4r35!hup*k!}oEʴ4*m!R"m!!͔Z!!!͔Q5!hupE4*m!R"m*k!R"k5!hdlE#)Ϳ d*#Ï;" " * Ϳ!3333͇ * ͿhE=* Ϳ!3333͇ * d=* Ϳ!͔͇ * Ϳ{E=* Ϳ!͔͇ * d""*Ϳ!3333͇ *ͿhE*>*Ϳ!3333͇ *dt>*Ϳ!͔͇ *Ϳ{Et>*Ϳ!͔͇ *d"y{h"!d!d!d!d!*zʺ?"[!Ϳ!Ϳ͇ !Ϳ͇ !(\o͇ !!Ϳ͔͇ !{*[+<)]T)Ϳ͇ ͌ !od*y*[+<)]T)!Ϳ!oͿ͢7͇ !!!I͔͇ !Ϳ͇ ͌ d*[#ÿ>@nmax=*Y!͵O!5Ϳ!ed!/Ϳ!_d!͔!Md!͔!Gd!}2!"6*&!RE@! !͔@%Computing image pumping well drawdownO!SͿ!MͿ!GͿ!AͿ!5Ϳ!/Ϳ*Y!e!-!!/;! !͔@9Computing aquifer characteris͔@Stol = !GͿ!!#A!eͿ!)d!_Ϳ!#d!SͿ!MͿ!)Ϳ!#Ϳ*Y!e!]v>!d!d!d!d!d!d!d!d!d!d}26!!͔*&!PEUJ@"THEIS METHOD PUMPING TEST ANALYSISÃJ@#THEIS METHOD RECOVERY TEST ANALYSIS!!͔@TRANSMISSIVITY, GPD\FT = !Ϳ!!!!͔@STORAGE COEFFICIENT = !Ϳ!!!!͔@ROOT MEAN SQUARE ERROR, FT = !Ϳ!!! !͔@%Pumping discharge, gpm = !Ϳ!͔͌ !!! !͔@%Distance to pumping well, feet = !Ϳ!!! !͔@%Static water level, feet = !Ϳ! !*&!REʹM! !͔@%Final pumping water level, feet = !Ϳ! !!!͔@%Duration of pumping, minutes = !Ϳ!tics by sensitivity analysisO*&!!MͿ!wnh!GͿ!wnh}o}oE:I!eͿ!)d!_Ϳ!#d!͔!Ad!͔!;d!͔!5d!͔!/d!͔!)d!͔!#d!*YzʉE"!MͿ!MͿ͇ !_Ϳ͇ !(\o͇ !!eͿ͔͇ !e*+<)]T)Ϳ͇ ͌ !d!Ϳ!͔{EʤBͩ:*Y"E!Ϳ͢7!d!SͿ!Ϳ͇ !!!I͔͇ !eͿ͇ ͌ ! d!#Ϳ! Ϳ!*+<)]T)Ϳ ! Ϳ!*+<)]T)Ϳ ͇ v !#d!ͿxGB !Ϳ !SͿ͇ !!!I͔͇ !eͿ͇ !eͿ͇ ͌ !d!;Ϳ!Ϳ!Ϳ͇ v !;d!SͿxG!ͿxGB ͇ !!!I͔͇ !eͿ͇ !_Ϳ͇ ͌ !d!AͿ!Ϳ!Ϳ͇ v !Ad!5Ϳ!Ϳ!Ϳ͇ v !5d!)Ϳ!*+<)]T)Ϳ͔͇ !!!!͔@%Transmissivity (pump test), gpd\ft = !Ϳ!!!!͔@%Storage coefficient (pump test) = !Ϳ!!!!͔@.----------------------------------------------!!͔@Press any key to continue͠E/N"""""""!d!d"}26*&!PEʯNDrawdown!uNResidual!u!!͔@+ Elapsed Observed Computed !!0@ Image Calculated!!͔@PTime, min Depth, ft Depth, ft ddn, ft ddn, ft Recovery, ft!!͔@O_________ _________ _________ _________ _________ _________O!*zʣR"**+<)]T)Ϳ!͔͇ ! !**+<)]T)Ϳ!!*&!PEQ!Ϳ**+<)]T)Ϳv !!**+<)]T)Ϳ!!O! Ϳ !Ϳ͇ v !)d!/Ϳ!*+<)]T)Ϳ! Ϳ !Ϳ͇ v !/d*#A!;Ϳ!/Ϳ͇ !5Ϳ!)Ϳ͇  !AͿ!;Ϳ͇ !5Ϳ!5Ϳ͇  ͌ !Sd!_!S =!SͿ!_Ϳv !͔{E`F!_Ϳ!SͿv !_dnF!͔!_d!)Ϳ!5Ϳ!SͿ͇  !;Ϳ͌ !Yd!e!Y=!eͿ!YͿv !ed!eͿ!)Ϳ !)Ϳ͌ ˸!Md!_Ϳ!#Ϳ !#Ϳ͌ ˸!Gd!#Ϳ*Y͔͌ !d*!"*!^EG!ͱ! !͔͐@$Did not converge after 20 iterationsO!}26I! !͔@iteration = *!͵! !͔@transmissivity = !eͿ!!!!͔@storage coeff. = !_Ϳ! !!!͔@rms = !Ϳ!!!!͔@Ttol = !MͿ!!!!# R!Ϳ**+<)]T)Ϳv **+<)]T)Ϳ !!**+<)]T)Ϳ!!!Ϳ**+<)]T)Ϳv !Ϳ !!**+<)]T)Ϳ!!O*!!R!EaR@Press any key to continue ͠ESRQ*!!R^EʙR!!͔Q!!͔*#P!X}2!!͔@(D)isplay again or (C)ontinue: !!͚*&!D$!C$! $ER*&}2*&!DE_S!*sqS!*s"~"6!!͔@(O)utput to disk fileO!!͔@(P)rintO!!͔@ (W)rite a linear scale plot fileO!!͔@(S)emi-log plot fileO! !͔@(L)og-log plot fileO! !͔@(E)rase data and continueO! !͔@(C)ontinue -- from top menuO! !͔@3____________________________!#0@!Storage Coefficient = !#Ϳ!!O!! e.!#0@Root Mean Square Error, feet = !Ϳ!!O!! e.!#0!!Pz]"[!!_ͱ*[#÷]!O!O!! e.!#0@%Pumping discharge, gpm = !SͿ!͔͌ !!O!! e.!#0@%Distance to pumping well, feet = !MͿ!!O!! e.!#0@%Static water level, feet = !GͿ!!O!"@*&!REʉ`!! e.!#0@%Final pumping water level, feet = !AͿ!!O!! e.!#0@%Duration of pumping, minutes = !;Ϳ!͔͇ !!O!! e.!#0@%Transmissivity (pump test), gpd\ft = !5Ϳ!!O!! e.!#0@%Storage coefficient (pump test) = !/Ϳ!!O!"@!O!O*&!PE`Drawdown!Bu`Residual!Bu!! e.!#0_______________________O!!͔@Enter choice: !*͚*n&!O$!P$!W$!S$!L$!E$!C$! $ECU*n&*s*n&!E$!C$! $EU!*~sU!*~s!W!g!!W#*&E\X!! ͔@Writing !g!0O!͍!*&ͱ! ͱ!SͿ!!! ͱ!MͿ!!! ͱ!GͿ!!! ͱ!AͿ!!! ͱ!;Ϳ!!! ͱ!5Ϳ!!! ͱ!/Ϳ!!! ͱ*Y!͵O!*YzQX"[!!e*[+<)]T)Ϳ!!! ͱ!*[+<)]T)Ϳ!!! ͱ!*[+<)]T)Ϳ!!! ͱ!-*[+<)]T)Ϳ!!! ͱ!*[+<)]T)Ϳ!!! ͱ!]*[+<)]T)Ϳ!!O*[#6W!ͭ""""6! ! ͔@Today's Date : / / :! ! ͔@Test Start Date : / / :! ! ͔@5Project Name : @, Elapsed Observed Computed !B!0@ Image CalculatedO!! e.!#0@Q Time, min Depth, ft Depth, ft ddn, ft ddn, ft Recovery, ftO!! e.!#0@P__________ __________ __________ __________ __________ __________O*@!"@!!!o!K^X6!!ͱ@N!">ͿZ!*Yzd"[*@!"@*@!2^EʿbͿZ!! e.!#0!e*[+<)]T)Ϳ!͔͇ ! !!*[+<)]T)Ϳ!!*&!PEʹc!!GͿ!]*[+<)]T)Ϳv !!!!*[+<)]T)Ϳ!!Od!!GͿ!*[+<)]T)Ϳv !]*[+<)]T)Ϳ !!!!-*[+<)]T)Ϳ!!!!GͿ!*[+<)]T)Ϳv !AͿ !!!!*[+<)]T)Ϳ!!O*[#Ób!! ͱ!ͱ@O!!͔ :! ! ͔@5Well Identity : :!}2! !͔*!}2! !͔*!#}2! !͔*#!#}2! !͔*#!! ͔@Are all fields correct (Y/N)? !!͚*&!Y$!N$! $EcZ*&!Y$! $EwXMb*>!">!O!O*&!PE:[!! e.!#0@#THEIS METHOD PUMPING TEST ANALYSIS x[!! e.!#0@#THEIS METHOD RECOVERY TEST ANALYSIS!! e.!&0!!0O!! e.!l0@page *>!͵O!O!! e.!#0@ Project: !o!0O!! e.!#0@ Well: !K!0O!! e.!#0@Test Starting Date: !!0O! "@*>!Eʑ`!O!! e.!#0@Transmissivity, gpd/ft = !)Ϳ!!O!! e.$@Press any key to continue ͠E$e"6"8*8Ϳ!,d*6Ϳ*8d!,Ϳ*6d"!"#"%"'")}2+*'!+<)]T)Ϳ*#d*'*)+<)]T)Ϳ*!d*+&!REe*#*!/e*!Ϳ*#Ϳ !͔v j"*!͔͔͌ !͔v j*%s#r*%^#V*%^#V!^}o*%^#V!}oEʓf*%^#V!*%s#r!d!" !Ϳ! ͔͌ !d* ! ͇" !Ϳ!͔{Eʫf* "*"""""" }2 }2 *@6W 100,100 1999,1500 ; plot window 1900 x 1400 unitsO* &!S$!L$E&h*Ϳ!'͔{Eg*@#IL 1:10000 ; log x-axisO&h*@#IL 10:100000 ; log x-axisO* &!W$!S$Eh*@&IB 0:7 ; linear y-axisO*Ϳ!!P͔ * ͔͇  \"*Ϳ!!P͔ * ͔͇  \"hi*Ϳ0002!!0O!տ!!0O!տ!!0!_ͱO!տ@ ; plot pointsO*&SRKr!*zHr"[!տ!^ͱ**[+<)]T)Ϳ!͔͇ !!!,ͱ!**[+<)]T)Ϳ!Ϳ *п͔͌ v !!@ M2+3O*[#ÇqrLRr!*zr"[!տ!^ͱ**[+<)]T)Ϳ!͔͇ !!!,ͱ**[+<)]T)Ϳ!!@ M2+3O*[#ar!տ!HͱO!տ!@ͱO!տͭ!}2!!!S!M!G!A!;!5!/!Y!e!!!!S!M!G!A!;!5!/!Y!e!!!-!!͛'*&Eʽsr*&!S!M!G!A!;!5!/l+*&!GͿ!Y!e!!!-!r1*&}oEjsͼ?*&}oEis!}2*&!)Ϳ!#Ϳ!Ϳ!SͿ!MͿ!GͿ!AͿ!;Ϳ!5Ϳ!/Ϳ͌I*&*Y!GͿ!AͿ!e!!!]!!-!:N*&E1t!!sS*&͕f! ͡"*Ϳ͕f"*@IM *!͵!:ͱ*!͵@ ; log y-axisO*@+100,100 O ; set origin to axesO* &!PEj*@7GE 100,1100 800,1300 ; grid erase - upper left cornerOJj*@7GE 100, 100 800, 300 ; grid erase - lower left cornerO*@; draw numbers on x-axisO* &!S$!L$Ek*Ϳ!'͔{EKk*@" 475,0 R -21,-45 S0001+10_ AO*@" 950,0 R -21,-45 S0001+100_ AO*@"1425,0 R -35,-45 S0001+1000_ AOk*@# 475,0 R -21,-45 S0001+100_ AO*@# 950,0 R -21,-45 S0001+1000_ AO*@#1425,0 R -35,-45 S0001+10000_ AO*@0825, -80 S0001+Time, Minutes_ ; x-axis labelO*@0-70, 600 S0901+Depth, Feet_ ; y-axis labelO*@-70, 0 S0001+*!͵@_ ; min depth labelO*@-70,1379 S0001+*!͵@_ ; max depth labelO""ORuUÜuPR!uͼZÜuSR?uLR?uWR^u*&*&*Y!!elÜuERœu!!!S!M!G!A!;!5!/!Y!e!*&Et!EhsrWRq*&*&*Y!!el=uERE!!!S!M!G!Av4Copyright (C) 1983 BORLAND Inc Osborne II= ()TERP<~7#~= o&ͦoͦc|ͣ}!!" ~#(}:8= +ͥ*!v-!pͥ*|!!:(=2!-: <2!~!!Y:jO:l:kO:m!ͥ*n! !i45(!+/ 0y0( d!9-!I-[[o&  :(y ͠|( r*"x2y( >28!"9!!>2 0&+!0 [ (!ePWA8Q0G: x@!\w# "}2}2!W!!տ!ԿW#*Կ&E s!տ͍6! ! ͔@+title line 1 : :O! ! ͔@+title line 2 : :O! ! ͔@+title line 3 : :O!}2! !͔!!}2! !͔!!}2! !͔!!! ͔@Draft print quality (Y/N)? !ӿ͚!! ͔@Are all fields correct (Y/N)? !!ҿ͚*ҿ&!Y$!N$! $E&o*ҿ&!Y$! $ERm!! ͔@writing !!0@...O*&**!п!!ge!տ@; pump test plot fileO!տ@;:O*ӿ&!YE2p!տ@QQO*&*&*п!տ!ʿ!Ŀ!!g!տ@; write title blockO*&!PEp!տ@125,1235 ; upper left cornerOp!տ@125, 235 ; lower left cornerO!տ@S$(   L). )!h6# (*(.(!8}(*(Ww#>?> w#a{ |e}nƐ'@'ý7||}>"C ""*B"[R*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#EMw}8"RB0 >RRR!+k = R!+k = !+k = !+k = !#k = !+k = T]KB!z> S>))0 = |  DMgo>jB0 7?= H<͡z5)<z {0Gɯgo|| }||/g}/o#}o&K[xAJSJDM!b"!6J"DM'oodo o} $yWx(>-q{(ay(oe z(>.q (o =e{>Eq>+|(|Dg>-q|/ 0:p# ~# +>0w#,-  60# ˸}րogM͇| .( = ~> x0w#xG% % ZJDM% = _~65(+~hìx-Sx9?+{Η@}|  gZJDM0 ,7}o˸ #yO!@9i&  #w#/w#w#!9! E9!!9~(+FM!"9!(#>2*u"|>":( E *6#w*6#6 !\$!u[ (W( #:~CONTRMKBDLSTAUXUSR>2ͭ*#~ u*:> >w###6Õ  #6++p>2Su:*6###ww#w$w#j _}8(8J`9{T]=o`9y $͙ >" 8# }>(́ x }} ˸T}ٕ(0D= ,= (  0% , 7 R ?(88 x  - 8˸x   ͠ ,-xG} }م 9 .>#n0  = - nx  ,-(-˸G,- }ٕ? 9.>R 88 ?= u+-(> 08  8R ?x  , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨u xx( ?}ٽR }ց <( 7 = |٤g{٣_z٢Wy١Ox٠G 8͉ }x>"8}ƀ/ƀó ͙ - }w: ͳ##N#F*B>w#w#[s#rò>2u*6 #-Nw#Fwq#p#6#w#w#w͞* :( Q: *^ F* < >26"~^*-w#ww#Ͳ^"~ <@*u!\  >2*|>! * \$\<(!: [1Á\!(f"́> 2:!"F( #~#6$>!"N>!~8>O6*"w (=(&("( :( 8y(~#ͽ7+ (6*#~́*#~ *~(h#"b=  8ͽ ̶J= B== ͯ}8= ͵}/l !*###~-_~(46*>2>*##w:>*##~*#~(E͋ ( ( ( ͕!] ( ( ((w#(͕́̕6!]~-#8~>7́ Õ͕>O*{͍̈́s #r*{/͍ d͋ ͕0- ,}l˸k 8 ́ # x(͙ -k 8 -k 8, |l8;*!# ! >8# # 8---͙ ,,A?@DC3333@I@> >pdppA"r>pNc@A@@"ro&0%͔,# ͙ }g }؉}颋.:}8c~I$I~L*.ٷx˸́ }0G,\<}͔,-(- ! >0 $# o8 Á >"m.`1pF,t6|!wS<.z}[|%FXc~ur1}ٯx(<˸k 8́ !~Jk 0ͺO!Z>k 8 =  ͙ # ͙ ́ ͺ͙ 0 - OT0 j oD,:j !I}袋.}8c~I$I~L!>8# # ͙ # = Ù nf^VNF!DLT\I!!53!r1!!> x #-= o˸x(-͙ }(x>8( , `i!>"| | >)=|(DMbo˸y88yx(0 8> % (( #w(͕́̕q*#~ʶ (͕́ ͕ Õ*##~6[O*#~(08ʦ=ʦ==ʩ=ʬò+###~-_q46`>*:4^q}Q*|(|( 6-#Sy[R8 (G> QC~Q#*ͳyC!' !+TRUEFALSEy!9^#~#(G~Q#> Q> Q "F!(#R0ͳ*4#4>R *4 #4(Ͳ>>2*V(/˖:(#~+ x y!t( =( X:(R*:(###~-_-K< =>:("^"*^˞*V˖0 SѷR8A* N#F#s#r 0})jS\*###w* N#FB ^r+s>!T]>)j)0 0= R!#*^#V#N#F#^#V>">!2DM"~ʲx(L* :O(o:" C}=( ?*-N#Fp+qq#p! * F+N+++V+^Bq#p>>>SѷR* s#r$ s#r*"[R0s#r>"[ͭ!W!ݛ!-!,J*,&E&! !@Writing !ݛ!0O!-͍!-!Ϳ!!! ͱ!Ϳ!!! ͱ*!͵! ͱ!Ϳ!!O!-*!͵! ͱ*!͵! ͱ*!͵! ͱ*!͵O!*z&"!*z&"!-!!*+))))))*+)]T)Ϳ!!!*+))))))*+)]T)Ϳ!!!5*+))))))*+)]T)Ϳ!!!I*+))))))*+)]T)Ϳ!!!*+))))))*+)]T)Ϳ!!!Ӝ*+))))))*+)]T)Ϳ!!O*#-%*#%!-ͭ6!!@/You may use English or Metric units as follows:O!!@ENGLISH METRICO!!@-------- --------O!! @(HEAD FT MO!! @-TRANSMISSIVIT^#VS!9[R8[R>O"w2x2!"" ͵*>2"!"""!\u*: ͭ!~6go(\R*s#r_2x( s x(T]DMR0 -a%Ù}Wo*!~6o&͠|ͣ}^C User break1: I/O Run-time error e, PC=[R"` Program aborted*1!`!"sͅço!*zH"!*z>"!*+))))))*+)]T)!Ϳd!!*+))))))*+)]T)!Ϳd!5*+))))))*+)]T)!Ϳd!I*+))))))*+)]T)!Ϳd!*+))))))*+)]T)!Ϳd!Ӝ*+))))))*+)]T)!Ϳd*#ö*#à"""}2! !͐*&!REʼ@!Enter name of disk file to read: @"Enter name of disk file to write: **Y GPD/FT M2/DAYO!! @-DISCHARGE GPD M3/DAYO!! @(DISTANCE FT MO!! @+TIME DAYS DAYSO!!@ Choose English or Metric (E/M): !!'͚*'&!E$!M$E()O*'&!EEʆ)!(\o!dç)*'&!MEʧ)!͔!d6!!@ GRID NOTATIONO! !@! 1 2 3 . . . . NCO! !@!1 +---+---+---+---+---+---+---+ O! !@! | | | | | | | | O! !@!2 +---+---+---+---+---+---+---+ O! ! @6 | | | | | | | | Maximum columns= !!͵O! ! @!3 +---+---+---+---+---+---+---+ O! ! @6 | | | | | | | | Maximum rows = !!͵O! ! @!. +---+---+---+---+---+---+---+ O! ! @! | | |E$ !Q}2!!N}2***͎!}2*&RR *&}oE ! !͐@Cannot find file *!0O!*s !*s!WR!*&Eʾ!! !͐@File *!0@ exists, overwrite (Y/N/Quit)? !!͚*&!Y$!N$!Q$EM!*&!YEʨ!!*sú!!*s!!*s*n&*&!Q}oEi! !͐! !͐!R!!!J*&E $!!!!ͭ!!!ͭ!ͭ!ͭ!ͭ!*z#"!*z#"!!!*+))))))*+)]T)!*+))))))*+)]T)!5*+))))))*+)]T)!I*+))))))*+)]T)!*+))))))*+)]T)!Ӝ*+))))))*+)]T)*#Û"*#Å"!% | | | | | O! !@!NR +---+---+---+---+---+---+---+O!!@KNC and NR represent the number of columns and rows of the finite differenceO!!@Igrid. The maximum possible number of columns or rows is dependent on theO!!@Bamount of memory available and is declared in the procedure PLASM.O!!@Number of columns (NC) : !)!@Number of rows (NR) : !!@Distance between columns: !)!@Distance between rows: !!!ͭ!!!ͭ!@!!ͭ!@!!ͭ!!@Continue, Edit, Abort (C/E/A)? !!"͚*"&!C$!E$!A$E.O*"&!C$! $!A$E1.*"&!AER/!}2ǜ6!!@DEFAULT PARAMETERSO!!@DThe default aquifer is isotropic and uniform. The following defaultO!!@Fparameters wi!ͭ͜!@!!˜ͭ!<!͐!<!*͜!͵O!@!*˜!͵O*ќ*͜J*Ϝ*˜J}oEw7!!@Continue, Edit, Abort (C/E/A)? !!͚*&!C$!E$!A$E8O*&!E$Ev7*&!AEK9!}2ǜX9*ɜ!"ɜ6!!*ќ+))))))*Ϝ+)]T)Ϳ!d!*ќ+))))))*Ϝ+)]T)Ϳ!d!5*ќ+))))))*Ϝ+)]T)Ϳ*͔͌ *͔͌ !Ϳ͌ !d!*ќ+))))))*Ϝ+)]T)Ϳ!d!Ӝ*ќ+))))))*Ϝ+)]T)Ϳ!d! !@*DEFAULT PARAMETER VALUES FOR SPECIAL ZONE *ɜ!͵O!!!(ͱ*ќ!͵!,ͱ*Ϝ!͵!)ͱO!!@ +------------+O!!@ | |O!!@ | |O!!@ +------------+O!! @ ll apply to the entire aquifer unless modified by specialO!! @ zones later.O!! @Default TRANSMISSIVITY : O!! @Default STORAGE COEFFICIENT: O!!@Default HEAD : O!!@Default DISCHARGE : O!+! !!+! !!+!!!+!!!!@Continue, Edit, Abort (C/E/A)? !!͚*&!C$!E$!A$E1O*&!E$E=1*&!AEV2!}2ǜÚ2!Ϳ*͔͇ *͔͇ !Ϳ͇ !d͔6!!@ SPECIAL ZONESO!!@HA special zone is defined by the column and row coordinates of the upperO!!@Ileft (I1,J1) and lower right (I2,J2) corners of a rectangle fitted aroundO!!@Kthe zone. A line can be represented by I1=I2 or J1=J2. Similarly, a pointO!!@ (*͜!͵!,ͱ*˜!͵!)ͱO!! @6Transmissivity parallel to the columns (I direction): !Ϳ!!O!! @6Transmissivity parallel to the rows (J direction): !Ϳ!!O!!@6Storage Coefficient : !Ϳ!!O!!@6Head (ft or m) : !Ϳ!!O!!@6Discharge (gpd or m3/day) : !Ϳ!!O!=! !!=! ͐!Ϳ!!O!=! !!=! ͐!Ϳ!!O!=!!!=!͐!Ϳ!!O!=!!!=!͐!Ϳ!!O!=!!!=!͐!Ϳ!!O! !@Continue, Edit, Abort (C/E/A)? !!Ȝ͚*Ȝ&!C$!E$!A$Eʵ?O*Ȝ&!E$can be made by I1=J1=I2=J2.O! ! @5+---------------------------------------------------+O! ! @5| (I1,J1) |O! ! @5| +-------------------------+ |O! ! @5| | | |O! ! @5| | | |O! !@5| +-------------------------+ |O! !@5| (I2,J2) |O! !@5+---------------------------------------------------+O!!@#(Press ENTER after each coordinate)O!!@;Column, row of the upper left corner of the zone (I1 J1): O!!@;Column, row of the lower right corner of the zone (I2 J2): O!<!!ќͭ!@!!Ϝͭ!<!͐!<!*ќ!͵O!@!*Ϝ!͵O!<!&E>*Ȝ&!AE,@!}2ǜ B!Ϳ*͔͇ *͔͇ !Ϳ͇ !d*ќ*͜zB"*Ϝ*˜zB"!*+))))))*+)]T)!Ϳd!!*+))))))*+)]T)!Ϳd!5*+))))))*+)]T)!Ϳd!I*+))))))*+)]T)!Ϳd!*+))))))*+)]T)!Ϳd!Ӝ*+))))))*+)]T)!Ϳd*#Í@*#w@6!!@TIME, NUMBER OF STEPSO!!@KTime steps increase as a geometric series with initial time as the base andO!!@>1.2 as an incremental factor (e.g. 10, 10+12, 10+12+14.4,...).O!!@Initial time step (days): O!!@Number of time steps : O!! @ERROROO@GError is the sum of the changes in heads over the entire model from oneO@Diterat"!I*+))))))*+)]T)Ϳ!*+))))))*+)]T)Ϳ !Yd!*+))))))*+)]T)!I*+))))))*+)]T)Ϳd!͔!Md!c*))))))*)]T)Ϳ!͔-EM*#!^EM!YͿ!c*))))))*)]T)Ϳ͌ !Md!MͿ!͔hEM!͔!MdM!MͿ!͔{EM!͔!Md!c*))))))*)]T)!YͿd!I*+))))))*+)]T)!I*+))))))*+)]T)Ϳ!YͿ!MͿ͇ v d*#K*#K!"'!͔!Sd*'!"'!*zV"a*a"*#*'!!EHO**R!"!*zT"!5*+))))))*+)]T)Ϳ!Ϳ͌ !5d!*+))))))*+)]T)Ϳ!5*+))))))ion to the next. When the sum of the changes in heads betweenO@Literations over the entire model is less than error, the model is consideredO@Kto have converged and the result for the current time step is displayed. AO@?"rule of thumb" initial error given below is Q * DELTA/10 * SF.O!͔!ߚd!͔!Ӛd!*z8F"!*z.F"!ߚͿ!5*+))))))*+)]T)Ϳv !ߚd!ӚͿ!Ӝ*+))))))*+)]T)Ϳv !Ӛd*#ÂE*#lE!ߚͿ*͔͌ *͔͌ !ٚd!,!!!,!͐!Ϳ!!O!,!!ͭ!,!͐*!͵O!ӚͿ!Ϳ͇ ! ͔͌ !ٚͿ͌ !d!!@Error (FT or M): !Ϳ!!O!'!!!'!͐!Ϳ!!O!!@Continue, Edit, Abort (C/E/A)? !!͚*&!C*+)]T)Ϳ͇ !Ϳ͌ !Ӝ*+))))))*+)]T)Ϳ !)d!͔!;d!͔!/d*!R!$EHQ!*+))))))*!R+)]T)ͿxG!;d!5Ϳ!*+))))))*!R+)]T)Ϳv !5d**R!$EQ!*+))))))*+)]T)ͿxG!/d!5Ϳ!*+))))))*+)]T)Ϳv !5d*!R!$ER!5Ϳ!!*!R+))))))*+)]T)Ϳv !5d!)Ϳ!I*!R+))))))*+)]T)Ϳ!!*!R+))))))*+)]T)Ϳ͇ v !)d**R!$ES!5Ϳ!!*+))))))*+)]T)Ϳv !5d!)Ϳ!I*!+))))))*+)]T)Ϳ!!*+))))))*+)]T)Ϳ͇ v !)d!5Ϳ!$!E$!A$EGO*&!E$EgF*&!AEXH!}2ǜ6! !@/Starting a new model deletes all existing data.O! ! @Start a new model (Y/N)? !!Κ͚*Κ&!Y$!N$EHO*Κ&!YELI&ͩ)*ǜ&E8IJT/*ǜ&EKIJ!"ɜ6!!@%Create or edit a special zone (Y/N)? !!͚͚*͚&!Y$!N$EʔIO*͚&!YEJ͜2*ǜ&EIJZ9*ǜ&EJJ*͚&!Y$ETI"B6"!u*!*͎!}2*&EtJ*O@%CAPTURE OUTPUT TO A DISK FILE (Y/N)? !!h͚*h&!Y$!N$EʱJO*h&!YEK!}2Ŝ K!}2ŜO@START OF SIMULATIONOO!i PLASM.OUT*Ŝ&EʂK!i͍×K PLASM.OUT!i$J!͔!d!*za"#!Ϳ!Ϳv !d!*zN"!*zN&;Ϳ!;*!R)]T)Ϳ͇  !Gd!;*)]T)!/Ϳ!GͿ͌ d!Ù*)]T)!)Ϳ!;Ϳ!Ù*!R)]T)Ϳ͇  !GͿ͌ d*#TO!SͿ!I*+))))))*+)]T)Ϳ!Ù*)]T)Ϳ ˸v !Sd!I*+))))))*+)]T)!Ù*)]T)Ϳd*!R"%!Ù*%)]T)Ϳ!;*%)]T)Ϳ!I*+))))))*%!+)]T)Ϳ͇  !Ad!SͿ!AͿ!I*+))))))*%+)]T)Ϳ ˸v !Sd!I*+))))))*%+)]T)!AͿd*%!R"%*%!JEʲU*a#O!*z_"_*_"*#*'!!EOW**R!"!*z\"!5*+))))))*+)]T)Ϳ!Ϳ͌ !5d!*+))))))*+)]T)Ϳ!5*+))))))@ DAYSO*! ^E-`! "4`*"*!^EO`!"V`*"!*z`"!*z`"!I*+))))))*+)]T)Ϳ!!*#x`O*#b`O*Ŝ&Ea!i*#!͵! ͱ!SͿ!!! ͱ!Ϳ!!O!*za"!*za"!i!I*+))))))*+)]T)Ϳ!!*#ga!iO*#Qa*##ñK*Ŝ&Ea!iͭ@END OF SIMULATIONO6!! @Display results of run (Y/N)? !! @Display input data (Y/N)? !! @Print results of run (Y/N)? !! @Print input data (Y/N)? !-! !!_͚*_&!Y$!N$Eb*_&ͱO!-! !!^͚*^&!Y$!N$EGc*^&ͱO!-! !!]͚*]&!Y$!N$Eʒc*]&ͱO!-! !!\͚*\&!Y$!N*+)]T)Ϳ͇ !Ϳ͌ !Ӝ*+))))))*+)]T)Ϳ !)d!͔!;d!͔!/d*!R!$EʢY!5Ϳ!*+))))))*!R+)]T)Ϳv !5d!)Ϳ!I*+))))))*!R+)]T)Ϳ!*+))))))*!R+)]T)Ϳ͇ v !)d**R!$EʚZ!)Ϳ!I*+))))))*!+)]T)Ϳ!*+))))))*+)]T)Ϳ͇ v !)d!5Ϳ!*+))))))*+)]T)Ϳv !5d*!R!$ET[!5Ϳ!!*!R+))))))*+)]T)Ϳv !5d!!*!R+))))))*+)]T)ͿxG!;d**R!$E[!5Ϳ!!*+))))))*+)]T)Ϳv !5d!!*+))))))*+)]T)ͿxG!/d!5$Ec*\&ͱO*_&!YEg6O@PLASM: OUTPUT DATAOO*Ŝ&Ef! PLASM.OUT!͎!*zf"!!Vͭ!D!PO@ISTEP= *V!͵@ ERROR= !DͿ!!O@HEAD (FT OR M) AT !PͿ!!@ DAYSO*! ^Eje! "Zqe*"Z*!^Eʌe!"XÓe*"X!*zf"!*Zzf"!!I*+))))))*+)]T)*#õe!*#ße!*Xzʬf"!*Zzʘf"!I*+))))))*+)]T)Ϳ!!*#>fO*#(fO*#ßd!ͭg@&OUTPUT WAS NOT CAPTURED TO A DISK FILEOO͠Eg6*^&!YEʡo6O@PLASM: INPUT DATAOO!Ϳ!(\oEʲg@English units (gal-day-ft)Og!Ϳ!͔Eg@Metric units (m-day)O@!Initial Ϳ!;Ϳ!;*!R)]T)Ϳ͇  !Gd!;*)]T)!/Ϳ!GͿ͌ d!Ù*)]T)!)Ϳ!;Ϳ!Ù*!R)]T)Ϳ͇  !GͿ͌ d*#!SͿ!I*+))))))*+)]T)Ϳ!Ù*)]T)Ϳ ˸v !Sd!I*+))))))*+)]T)!Ù*)]T)Ϳd*!R"%!Ù*%)]T)Ϳ!;*%)]T)Ϳ!I*%!+))))))*+)]T)Ϳ͇  !Ad!SͿ!I*%+))))))*+)]T)Ϳ!AͿ ˸v !Sd!I*%+))))))*+)]T)!AͿd*%!R"%*%!JEʹ]*_# W*'!E3_@ITER= *'!͵J_! ͱ*'!͵!SͿ!Ϳh}oENO@ISTEP= *#!͵@ ERROR= !SͿ!!O!Ϳ!͇ !d@HEAD (FT OR M) AT !Ϳ!!'time step, days = !Ϳ!!O@!Number of time steps = *!͵O@!Number of columns, rows = *!͵@, *!͵O@!Distance between columns, rows = *!͵@, *!͵O@!Error tolerance = !Ϳ!!OOO! e.! 0@0TRANSMISSIVITY IN I-DIRECTION (GPD/FT OR M2/DAY)OO! "b!*zpj"!*z+j"!!*+))))))*+)]T)Ϳ!!*#iO*b!"b*b!7Efj͠EUj!"b*#ûiOO! e.! 0@0TRANSMISSIVITY IN J-DIRECTION (GPD/FT OR M2/DAY)OO*b!"b!*zʧk"!*zbk"!*+))))))*+)]T)Ϳ!!*#kO*b!"b*b!7Eʝk͠Eʌk!"b*#jOO! e.! 0@STORAGE COEFFICIENTOO*b!"b!*zm"!*zl"!5*+))))))*+)]T)Ϳ*͔͌ *͔͌ !Ϳ͌ !Jd!JͿ!!! ͱ*#"lO*b!"b*b!7El͠El!"b*# lOO! e.! 0@INITIAL HEAD (FT OR M)OO*b!"b!*z$n"!*zm"!I*+))))))*+)]T)Ϳ!!*#ÅmO*b!"b*b!7En͠E n!"b*#omOO! e.! 0@DISCHARGE (GAL/DAY OR M3/DAY)OO*b!"b!*zNo"!*z o"!Ӝ*+))))))*+)]T)Ϳ!!! ͱ*#énO*b!"b*b!7EDo͠E3o!"b*#ÓnOO@)End of report, press any key to continue ͠Eʗo66!!@INTERACTIVE PLASMO!!@"READ DATA FROM A DISK F; pump test plot file ;: W 100,100 1999,1500 ; plot window 1900 x 1400 units IL 1:10000 ; log x-axis IB 0:7 ; linear y-axis 100,100 O ; set origin to axes GE 100, 100 800, 300 ; grid erase - lower left corner ; draw numbers on x-axis 475,0 R -21,-45 S0001+10_ A 950,0 R -21,-45 S0001+100_ A 1425,0 R -35,-45 S0001+1000_ A 825, -80 S0001+Time, Minutes_ ; x-axis label -70, 600 S0901+Depth, Feet_ ; y-axis label -70, 0 S0001+ 14_ ; min depth label -70,1379 S0001+ 56_ ; max depth label ; write title block 125, 235 ; lower left corner S0002EXAMPLE RECOVERY TEST PLOT FILE: RECOVER.DTA 06/13/84_ ; plot points ^ 1, 5.28 M2+3 ^ 2, 5.10 M2+3 ^ 3, 4.97 M2+3 ^ 5, 4.68 M2+3 ^ 10, 4.10 M2+3 ^ 15, 3.57 M2+3 ^ 20, 3.25 M2+3 ^ 25, 3.12 M2+3 ^ 30, 2.90 M2+3 ^ 40, 2.65 M2+3 ^ 50, 2.38 M2+3 ^ 60, 2.20 M2+3 ^ 90, 1.95 M2+3 ^ 120, 1.63 M2+3 ^ 150, 1.47 M2+3 ^ 180, 1ILE (Y/N)? !!Ȝ͚*Ȝ&!Y$!N$EpO*Ȝ&!YE]p"!}2ǜ!!@EDIT THE INPUT DATA (Y/N)? !!Ȝ͚*Ȝ&!Y$!N$EʡpO*Ȝ&!YEpZH*ǜ&}oE^p!!@+WRITE THE INPUT DATA TO A DISK FILE (Y/N)? !!Ȝ͚*Ȝ&!Y$!N$E@qO*Ȝ&!YEʎq $!!@RUN THE MODEL (Y/N)? !!Ȝ͚*Ȝ&!Y$!N$EʺqO*Ȝ&!YErvJ@DISPLAY OR PRINT (Y/N)? !!Ȝ͚*Ȝ&!Y$!N$E,rO*Ȝ&!YEzrb@CONTINUE OR QUIT (C/Q)? !!Ȝ͚*Ȝ&!C$! $!Q$EʞrO*Ȝ&!QEs!}2Ɯs!}2Ɯ*Ɯ&Eʨor!Ȝ͚*Ȝ&!C$! $!Q$EʞrO*Ȝ&!QE!}2Ɯny key to continue ͠Eʗo66!!@INTERACTIVE PLASMO!!@"READ DATA FROM A DISK F'.23 M2+3 ^ 240, 1.07 M2+3 ^ 300, 0.93 M2+3 ^ 360, 0.85 M2+3 ^ 420, 0.68 M2+3 ^ 480, 0.63 M2+3 ^ 540, 0.53 M2+3 ^ 600, 0.50 M2+3 H @  i ۂ CVy9K=',.i_ 9X(tƶ`+EZqi Y6Զr41S|{q-xbI{XiK=ItbI{X%mћą /] i#V,aR i r!4XB?[?@ABCDEt0FGHIJKLMNOPQRSTUVWXYZ[\vpi]^_`abcdefghijklmnopqrstuvwxy~r zq z{|}~o3-}UQ sgaWA1' |y_I?/)k][YKG=7{ueZOEC5,(# xmhdcb^SNMF;942+% ljfTPJHD@<6.*&"!sby']/xfd [ҿ9gf蘬Z\1g**e9z[9gf*mp)]a 3ݤ3AI/cJ8B1+iHgPJMvHw6`71!}s0}l!^9PvbĞqHϲ+i J͋5z3pލCzv J͓5"aE azABXG *)4yBJ͠Фc v3(̉o,a"^ّex zp:D/]_vSc!2vww(ţٯM]HsP膍U0Va w û>_1]g- i 24QQKќY:=@h^Wͭ"bQm:LYU.n MS:Ǣ#)-0KK4uʫYE,jzN&G#P #cxaiawwOC= irEU1GhC5܇ͤONOiы_B1ptC}rJ fPIFoMCwn MScU`9)b0K x;-z:|tab )Za|>omi*9ʱE_o^;oz{ k#P #cx7t-J 0 jtmkJANn_`!R4MQUʫYdvZ.B1ptCYkҋ2P f4 SzZ{҇6)ʱrB7l҅vZ]k#P #cxs׬ePIF-ߥe(5Zt؟Z۠=t!*h, 1Z߱y-5#,Ɋ,0j@2ܖ4XM=lN:Sk=f,hI` 8w@'];?^}=^UI_\zիɥW~\ȊXL.CR9g"y^]:m[ՀFX>o*֢@V$>}z4}VH=jj/z}2̝jPHYHEho ax*֢@I>7'b- dOb e}ҍG#,O[ZXb J폰|Yk<_wUظJAb~~{=3W]է7ng(5:h^l+S+?Bi1}"~?Bi`6>?~T>Ql1}r+}务"8jp[>9*xmBV *E]Ikx;_!QIihG'kV];)zOޫ'EmEѻkA_;@2aʪ)OO2T3 *)(*IRPZ[*zuRġXޕ&+vT|`4MTs0mΐsw+/l MSbQm:LYU9,3G.Uyądb0eUp z6x+5LV ʫ'HEU1GhXg]zk i %U(0pԱ+=vZTR()]1ONFPIF8:!\$J 0 j3 *)(8IRP _~Bz~nog@&H\mE-0KK=Yl#wXa2,U݅-|lsCTTw%~k bi"ޥ¥Ż.3x%3G(4Xα*|W