`/Lph @`  @`! #@%`'+-/1 3@5`7;=?A C@E`GIKMOQ S@U`WY[]_a c@e`gikmoq s@u`wy{} @` / @ ` @ ` @ ` @ ` ǀ ɠ @ ` ׀ ٠  @` @`!Aa   !Aa!!#A%a')+-/1!3A5a79;=?A!CAEaGIKMOQ!SAUaWY[]_a!cAeagikmoq!sAuawy{!Oa!Aa!Aa!Aa!Aaǁɡ!Aaׁ١!Aa!Aa " B b  !"!B!b!!!!"!%b"+"-"/#1"#3B#5b#7#9#;#=#?$A"$CB$Eb$GI$K$M$O%O%o%@`  @`! #@%`'+-/1 3@5`7;=?A C@E`GIKMOQ S@U`WY[]_a c@e`gikmoq s@u`wy{} @` / @ ` @ ` @ ` @ ` ǀ ɠ @ ` ׀ ٠  @` @`!Aa   !Aa!!#A%a')+-/1!3A5a79;=?A!CAEaGIKMOQ!SAUaWY[]_a!cAeagikmoq!sAuawy{!Oa!Aa!Aa!Aa!Aaǁɡ!Aaׁ١!Aa!Aa " B b  !"!B!b!!!!"!%b"+"-"/#1"#3B#5b#7#9#;#=#?$A"$CB$Eb$GI$K$M$O%O%o%3TO4 DOCTASSIST1 CMDVZCDB3REP TTPX ?CHECKS DBF[CHEKBOOKCMD\4CHEKBOOKDBFa)tCNVV3 TTPc*;CONFIG DBMe9>CV3REP TTPg:GDBLABEL CMDjLnDBMAN PRGtDBMEM MEM|kERR DAT}BERRHELP DAToFINDFILECMDHELP DATVLABEL DBF\MAIL DBF"MAILLISTDBF#RPRTI DBM$ SYSDATA DBF'TPMENU CMD(TRLABEL CMD)TUTOR CMD*uUPDATE DOCHg"DESKTOP INF"QQWER DBFCHEKBOOKPROHRtCHEKBOOKNDXMSCHECKS NDXPUSPIST DBFWPROBA CMDX7ASKUD DBF ,Y********************************************************************** dBMAN Version 4.00 (Atari ST) ********************************************************************** ********************************************************************** The following is a list of the differences between dBMAN version 3.00 and dBMAN version 4.00. We make every effort to include all known differences but make no warranty that we list them all. MEMO FIELDS: See UPDATE.DOC for complete details. MODIFY COMMANDS - Now does word wrap. See UPDATE.DOC. * The functions BOF, EOF now require the () parenthesis. Example: DO WHILE NOT EOF() * Utility commands like DIR, RENAME, DELETE FILE, etc. will not prepend the path set with SET DEFAULT or SET PATH. You must give entire path names when using these commands. If at runtime you don't know what you have set the path to use the DFLTDRV() function to find out. * The EDIT and APPEND commands will go to the next or new record when the or key is entered in the last field. * The now supported and may be used instead of . Version 3.0 is still supported. Example: USE FP APFILE ALIAS AP DISPLAY AP ALL ? AP->LAST_NAME or ? P.LAST_NAME * The report files are not compatible. Use the utility program CNV3REP.TTP to convert the report files. The command syntax is: CNV3REP.TTP { | } To use CNV3REP, double click on CNV3REP.TTP. When it prompts for arguments enter the file names. E.g. OLDORDER NEWORDER. This will convert version 3.0 OLDORDER.FRM to version 4.0 NEWORDER.FRM. When you enter only one file name or if the target file name is the same as the source file name, the program will create a backup file with ".BAK" extension. * The data base files are not compatible. Use the utility program CNVV3.TTP to convert the DBF files. The command syntax is: CNVV3.TTP { | } To use CNVV3, double click on CNVV3.TTP. When it prompts for arguments enter the file names. E.g. OLDORDER NEWORDER. This will convert version 3.0 OLDORDER.DBF to version 4.0 NEWORDER.DBF. When you enter only one file name or if the target file name is the same as the source file name, the program will create a backup file with ".BAK" extension. * The index files must be re created with the INDEX command. * INDEX will look for key field in area no need to specify area any more. INDEX FK ON K.FIELD+STR(RECNO(FK),6) should be changed (RECNO() will not work) to INDEX FK ON FIELD+STR(RECNO(),6). This will allow you to open the index in any work area. * INDEX records are now ordered in FIFO (first in first out) order. That is, new records with same key are put at the bottom of the group. If you want LIFO, include the LIFO keyword in the INDEX command. See the INDEX command. * There is a new file use in conjunction with dBMAN, CONFIG.DBM. This file allows you to tailor your dBMAN environment to your needs. Please read the Introduction section of the new manual for details. * New operator LIKE. Allows substring wild card search. See Data Types/Expressions in the manual for details. Example: DISPLAY ALL FOR DESCRIPT LIKE "*WHEEL*" FERRIS WHEEL FLYWHEEL FORD FLYWHEEL CHEVY WHEELBARROW * BOF() The record number at BOF is 1 not 0. Example: GO TOP SKIP -1 ? BOF() T ? RECNO() 1 * SET INDEX TO and SET FILTER TO does not reposition the record pointer. Example: USE FILE GO 4 SET INDEX TO NEWINDEX ? RECNO() 4 * ESC() can now be used with ?/?? and @ , SAY commands. * FMENU() Field menu. Allow the user to select a field from a data file. Example: STORE FMENU(5,5,10,3) TO Y.USR_FIELD ? Y.USR_FIELD LAST_NAME,C,25 * APPEND FROM no longer requires the T. to indicate fields in the source or FROM data file. * COPY FILE, DELETE FILE no longer append ".DBF" if the extension is not specified. They do not follow any SET DEFAULT TO . Therefore you must supply your own filename and include path\filename.ext. Example: COPY FILE C:\DBMAN\ORDER.DBF TO C:\DBMAN\ORDBAK.DBF DELETE FILE B:\TEMP.DBF * New command: APPEND [] [scope] TO [FOR ]. You can append a database file with selected records from another database file. Advantages: Records can be added to target file in source file index order. and FOR phrase can reduce the access to the database file. See the APPEND command. * dBMAN now supports abbreviated commands and keywords. The abbreviated commands and keywords must be 4 or more letters. For example you can now say "DISP ALL" instead of "DISPLAY ALL". New Functions: FOUND() FIELD() FILESIZE() LEFT() RIGHT() CDOW() CMONTH() MONTH() REPLICATE() - SAME AS DUPCHAR() RTRIM() STUFF() DBF() - SAME AS FILENAME() ERROR() - SAME AS ERRCODE() INSET() LOWER() LTON() MOD() - SAME AS \ SAMEWEEK() WOY() New Commands: BROWSE DIR - SAME AS DISPLAY FILE ON {ERROR | ESCAPE | KEY} PARAMETERS PRIVATE PUBLIC SAVE SCREEN [FROM ] TO SET CENTURY - SAME AS LONGYEAR() SET DECIMALS TO SET DELIMITERS SET FORMAT TO SET MEMOWIDTH TO SET MESSAGE TO SET PATH TO - SAME AS SET DEFAULT SET RELATION - NOW ALSO SUPPORTS DBASE SYNTAX - OLD SYNTAX STILL OK New Command Syntax: @ CLEAR TO [DOUBLE] - SAME AS BOX() CLEAR MEMORY CLOSE {ALL | ALTERNATE | DATABASES | FORMAT | PROCEDURE} DO [WITH ] ERASE [SCREEN | FILE] - SAME AS DELETE FILE READ [NOCLEAR | SAVE] [GETNO ] RELEASE [] ALL [LIKE | EXCEPT ] REPORT FORM ... [HEADING ] [SUMMARY] [TO PRINT] SAVE [] TO [ALL {LIKE / EXCEPT} ] SELECT SET DATE {AMERICAN | ANSI | BRITISH | ITALIAN | FRENCH | GERMAN | TO } SET INDEX TO [ | ] SET [LEFT] MARGIN TO SET PRINT TO - all logical devices with out ":" colon. SHOP USE ... [ALIAS ] A-H n0 n  n npN^NuNV 9***** *3-10-87 FOR NEW VERSION 1.00B *ASSIST1.CMD *TRAPFILE FOR ASSIST DO CASE CASE ERRCODE() = 25 OR ERRCODE() = 44 | FILE NOT A DATAFILE ?INDEX Y.ERR_TEXT = 'The file you tried to open, is not a dBMAN file.' DO SHOWERR RETURN TO A CASE ERRCODE() = 88 | ERROR IN CONVERTING DBASE DATA FILE Y.ERR_TEXT = 'The file you tried to convert, is not a dBASE II or III file.' DO SHOWERR RETURN TO A CASE ERRCODE() = 79 | THE VARIABLE IS UNDEFINED Y.ERR_TEXT = 'If you were trying to FIND: enclose text in quotes, Dates in {}.' DO SHOWERR RETURN TO A CASE ERRCODE() = 29 | NO LOCATE COMMAND Y.ERR_TEXT = 'You must use LOCATE command before using CONTINUE.' DO SHOWERR RETURN TO A OTHERWISE ASSIGN TRAP(F) RETRY ENDCASE RETURN | **************** END OF ASSIST1 ************* gJJn g".?</./.R?.a ` .?</./.T?. a6 `HJn g".?</./.R?.a ` .?</./.T?. aR XnX`$RRn`8  *o m$m,B"HJgP"&J$YJf"Jg< Af Rf Gf Vf =f Jg#N-?|BWN,>N-XON" ?N+?<LNANV0. @g& @gd n /(/<=NPO n /(`b/<9NXO/<=/<: NPO/<: NXO/<=/<:-N`* n /(/<=NPO n /(/<=NPO/<:0/<=N fPO/<:5/<=N fPO/<=/<=NPOJ@fVp.?/<=N\O#= y=B/<::/<=NPO/<=N pXO/<=/<=N TPOp?/<=N \O3= @f/<=/<:?NPO`Bg/<=N \O3> @f/<=/<:Q`?<zNTO#=gjN>/9=N XO?<z/9=?9>N PO @zg/<:eNXO/9=N6XO?9=N TO?9>N TON^NuNVBg?<z/9=NPO y=0+ y=pP1@ y=p1@ y=p1@ y=p1@ y=p91@ y=p1@ y=Bh8B@ y=1@6 y=1@?</<>?9=N PO @g p?N TONNJ@f/9=NXON^NuNV?<N TO y=1@?<N TO y=1@?<N TO y=1@ y=Hh9EH?NT\O y=Hh69EH?NT\O y=Hh89EH?NT\O y=p"@/<:s y=HhNPO y=p"@/<:} y=HhNPO/<: y=HhN^NuNV?<N TO?N"TO/NXOBn0.> @Hhp?N\OJ@gRn`N^NuNV#EN^NuNVp;?/9EN\O-@Jg nBJng n R p"/9ENXOJ@o/9E/. NPOJng/<:/. NPOJfB@` np; .R#EpN^NuNV0. |8 2<`XHXW PN` n BP` n p0` p?N TON^NuNV?.NTO=@ nYg nNfp`B@N^NuNV-|DBg?<@ y=Hh:NPOBn n(H?NTOJ@g"?./.N,\O n -HRn`N^NuNV0. Pй=:-@ n?( NTO @f, n?(NTO @fBgp ?/.NPO` n?NTO n1@z n?(NTO n1@| nHh~ n(H?NT\O n?(NTO?N"TO//.NPO n?( NTO?N"TO/NXOBg?< nHhNPOBn0.4 @Hhp?N\OJ@gRn`N^NuNVp.?/.N\OJf(/.NXO=@/. 0.HЮ/NPON^NuNV0. @g @g `/<:`/<:NXOp?N+TON^NuNV0.H>-@ n?NTON^NuNV n?NTO n0 n?(NTO n1@ n?(NTO n1@ n?(NTO n1@ n?(NTO n1@ n?(NTO n1@ n?(NTO n1@ n?(NTO n1@ n?(NTO n1@ n?(NTO n1@ n?(6NTO n1@6 n?(8NTO n1@8 .:-@p=@0.SnJ@gV n?(zNTO n1@z n?(|NTO n1@| n?(~NTO n1@~ nP-H`N^NuNV0. @H @:=P?./.N-\ON^NuNVBg/.N,X\ON^NuNV?.N, TON^NuNV?./. ?.N. PON^NuNV?./. ?.N/PON^NuNV?./. ?.N-PON^NuNV/./. BgpV?NA N^NuNV/.pA?NA\ON^NuNV/.NXOHЮ-@ nSg nHn f .`BN^NuNV n gpJngj n d@?.Bg n -H ?.Bg n-H0.SnJ@g4S n S"n`0.SnJ@g n R "nR`N^NuNV0. |8*2<`XHXW PN`p`p`p`p`p` p`p`B@N^NuNV n m n~o?.N HTO`pN^NuNV nAm nZn 0.@ `. nf0<` nf0<` nf0<`0.N^NuNV nam nzn 0.@ `. nf0<` nf0<` nf0<`0.N^NuNV-|: nB@@?N HTO=@g n B@@?N HTO=@g0.nlp` Sn0.nHЮ-@ nBA n B@@Ab nRBA n B@@Ae nBA n B@(Ac` n B@@?N HTO=@gfSn0.nHЮ-@ nBA nB@@AeJ nRBA nB@@Ab8 nBA nB@(Ab"` n BAA nB@@AepN^NuNV0.SnJ@g n Jg nR"n R ` nB .N^NuNV0. HЮ-@ ng n ( fS` .N^NuNV/.NXO?/.N\ON^NuNV0.SnJ@g* n H nHAf nRJfB@`(R ` ng n H nHAlp`pN^NuNV n BA nB@Af nRJfB@`R `/. /.NTPON^NuNV0.SnJ@g* n H nHAf nRJfB@`R ` ng/. /.NTPON^NuNV0.SnJ@g& nJg n H nHAf RR ` ng nJg n JfB@`/. /.NTPON^NuNV nAm nZo nam nznp` ?.N HTON^NuNV?./<; /. N /. NXON^NuNV?./<; /. N /. NXON^NuNV/./<;/. N /. NXON^NuNV/ n  g n  fR`Bn n -fp=@` n +gSRB n 0m: n 9n0 nRHC0p //.N7$PO/0Hї -@`Jng .D-@ .&N^NuNV nJg nRB@n fS .`BN^NuNV n B@ng n Jg nR"n R ` nB n B@nfR . N^NuNV0. Sn J@g nRp `N^NuNV0. Sn J@g nRp ` nBN^NuNV0. Sn J@g nR0.`N^NuNV0. Sn J@g nR0.` nBN^NuNV/.NXO=@n l0. n?0.HЮ/N\ON^NuNV/.NXO=@n l(0. n?0.HЮ/N\O0n BN^NuNVA-H"n n"n ni0.N^NuNVA-H"n n "n n iN^NuNV=nA-H nP"n n nn0.N^NuNV-nA-HA-H"n n"n ni"n ni"n nQ .N^NuNVH8..P b d.</N/ZXO*@ Mg`J;6f&M #;#;`& y;6f QP&m`(y;6Q L&h)M Q@* Ѝ#;6(@Q LB)KL8N^NuNVH0~ .\S@,dB`ƙ*y; gr .gH g @є .*L(Mc2  d @*`* Ѝ#; y; X`dJg @Ѝ*@`*m;f g#;Ry;09; @e Sy;`X/NXO/.N.XO*@Sy; L0N^NuNVp0./N.XON^NuNVH .Y*@Jf4~0G;Jg 0RG0@;H?p?p?NM\O`N+L N^Nu"o o JfSfNu"o ofJfHHNu"o o fNu o"Jf S@Nu0/0@<Ag@NuNVHn/<;\N`PON^NuNVHn /.N`PON^NuNVHn/.NXO?/.N% Hn HnN`PON^NuNVH Bn n X -P nRH> |82<`XHXW PN`Z/./.NxXO<?N#\\O Ff`4/. n hNXO<Gg/.?N#\\O` nRH> @*fp`B@=@Jng nRH>Bn G0m( G9n"0. G@0=@ nRH>` Glfp`B@=@ Ghfp`B@=@JnfJng nRH>0 |8Z2<`XHXW`/<;/<;:N$PON7r`6Rnp `Rnp`RnBn` Rnp=@Hn?.?./.N -@JngJnfbJng n X P `Jn n X P0.0Rn`0RnHn?./.Nv -@-AJngJnfJng n X P .". !A` n X P .". `A-H nRH> @^fp`B@=@Jng nRH>JGg G]g nR` nBA-H/. n hNXO<`DJnfp=@/. n hNXO<-|;O`/.NxXO<-|;Pp=@Jnf n X *PBn FgH?/.N\OJfp`B@nf*RnJnfSnf|`/. n hNXO<` Fg/.?N#\\OJngJnf GcgPB`JJnf n(H@gp`0.L N^NuNVH>. <.BJFo F o| nBP/.NxXO: E-fp`B@=@f E+f/. n hNXO: nRP n0FnPJGfL E0g~ `B/. n hNXO: nRP0Fn$ Exg~`~/. n hNXO: nRP n0Flf0@W8 @ l0@78 @ l0@08m D nGm Gf0Jf*0@x8f 6HHn0H/N7PO-@`z/.?N#\\OJng .` .DLN^NuNVH |KJn o n op =@ nBP n0n l/. n hNXO> |82<`XHXW PN`|JFfx nSP nRP`JFg Ff`RF` Fn(|`JFg Fg Ff|` Fm6 Fn0|` F` Fg Fg Ff|` Fg Ff|`/.?N#\\OBHnN1>XOL N^NuNV//. n hNXO> @ g G g G g0.N^NuNVHn/<;vNPON^NuNVHn?</.N% Hn HnNPOHnBg nN\ON^NuNVH0-n n(PXH> @%gJGgP/.? n hN\O`p =@p=@p=@H> G-fp=@H>`Bn G0f p0=@H> G*f& nT=Plp=@0.D@=@H>`*Bn G0m G9n0. G@0=@H>` G.fJH> G*f nT=PH>`*Bn G0m G9n0. G@0=@H>` Glf&H> Gdg Gog Gug Gxf0@> `-@*@p=@0 |9\2<`XHXW PN`4 nT=PJnl0.D@=@p-p ??./ N"PO*@`p ? nT?`p`p` n-PXJl .D-@p-p ?/./ N" `p ? n// N" *@X`p`p`/ ?./.?N+ *@P`fBn n-Pf-|;TX .-@*@JgJnm noS`(Bn nT0` n//.NPO`n ./0.Hї =@lBnJnfLJng0 n0f( n -f/. nRH? n hN\O0.SnJ@g /.?.` nd /. nRH? n hN\O`Jng0.SnJ@g/.?. n hN\O`L0N^NuNVH >. *NB%0<g"0H@H@B@H@ @9>`?Bg _9Jg nR` .L N^NuNVH0*n>.IB$p0//. N6PO-@g$p0//. N6PO @9-n ` n 9Jg` L0N^NuNV/ *n &f&+|#+|$Bm -;n0.`> (f +|$` )f +|$N` %f +|$|`p*_N^NuNV/ *n+|&+|&Bm -0-*_N^NuNV/ *n+|(+|) ;@ o -;@ -0-*_N^NuNV/ *n+|)+|*Bm -0-*_N^NuNV/ *n+|%/NXOD@;@ 0-*_N^NuNVH >.*n / mNXO/ ? mN\OL N^NuNVH0*n(n Jg/ H? lN\OR`L0N^NuNV/ *n .*+@+|%B-0. D@;@ m l;| +|%`+|%X *_N^NuNV/ *n Sm lBm p` UR0.*_N^NuNV/ *n UR0.*_N^NuNV/ *nRm oBm p` URB@*_N^NuNV/ *nJf0-H@f?<NTO+@f+|)+|*`n-H@f2-H?N-`TOJ@g;vf+|(+|* -`&+|(+|)-H?N&tTOHЭ*+@Bm *_N^NuNV/p?B?.N-PO. fB@`0H@.N^NuNV/ *n/ N%XO/ mNXO*_N^NuNVH >.*n / N%XO/ ? mN\OL N^NuNV/ *|;Y M;eJg/N'.XO`*_N^NuNVH *n-H@fp`@/ N'XO>-H?N, TOJg-H@f /-N6XOB-0L N^NuNVH *nBm -H@ff >o?/--H?N/POGf$JGm mAf -*+@`+UB@` 099H fBy9`-pL N^NuNVH *nRm o/ N'XOJ@f *;f/<;vN'XO -?/--H?N. POD@;@ @f^099H fBy9`-Bm `F0- Rm m+H URB@>-H@ g G gL Gg 0`Jm f-pL N^NuNV/ *n *;f/<;vN'XOBm p?Hn-H?N. PO @g4J@gP .f -H@ f< . f -H@ fB@.`(099H fBy9`-`-p*_N^NuNVH >.*n G f$-H@ g/ p ?N)\O @fp`0Sm l"/ N+:XOJ@f -S@;@ UR0L N^NuNVH >.*n G G f -H@ g/ p ?N*\O @g^Bm -H@fN/ N+:XOJ@f@p?Hn-H?N/PO @f0` 099H fBy9`-pL N^NuNVH >.*n G f$-H@ g/ p ?N*\O @fp`?NAXO/N1XO`B@N^NuNV/Bg/.pl0H/N1XO`"?.N0(TO=@m?.?N0XO0.N^NuNV/?.?. rF?NA\O>J@f(?.N0(TO=@m?.?. N0XO0. `0H/N1XO.N^NuNV?.N0(TO @Cfp`B@N^NuNV?.?./. pB?NA /N1XON^NuNV/?. /.p=?NAPO.m:0H.mpF?0?N0XO` m n0?N0TOH./N1XO.N^NuNVH A#9= HH= *@SnmSGl^pQ= B9=!/<= p ?NA\O>mp ?p?p?NM\Op= 9=!H>9= HH= *@0Gp H: Ef~` n R RF E ft = = =!BB.0V@ @bH0@9 PN`*pP`&pA`"pC`JGm*y.JGm*y.0V@ @bHH0@9 PN*yXOBnBnp@=@ +g -fnRH> @.g G0m G9n G.f0.@fn`B@.@gRn`jHnN5XOHnHnN6POHnN5XOHnN5XOHnHnN5POHnN6>XO0@0@HnHnN5PO0.@gDSn`< Geg GEfZ +g -fnRBnH> @0m G9n0. G@0=@`0.@g 0.D@=@0.nBn nl NJ(fRn` nf HnBgBg`JnoHnHnN6POHnN5XOJ@f:HnN5XOJ@f*HnHnN5POJ@fHnHnN6PORn`VHnHnN6POBgHnN58\OBgHnN58\OHnHnN5PO>gRn?HnN58\OVnSnfJ`JnlB@.@fHnN5XOSn`BgHnN58\OHnHnN6POBn n lJ0.@gBgHnN58\OBgHnN58\OBgHnN58\OHnHnN5PORn`WnRnfdSnHnN5XOJ@gHnN6>XOp@HnHnN5POJ@gRnBgHnN58\OHn0.@?0.@?/.N4 n "(L N^NuNV/~ G lBg/.N58\ORG`0.@@ n0.H@ n(Jn g n/./.N6PO.N^NuNVH| Fl4>. nB@@=@ nJGg nRF`0. LN^NuNVH|zJEm.>| nB@@g| n nŏSE`0LN^NuNVH|~JGm. n BA nB@A@ n0@@<SG`0LN^NuNV/~ Gl n"n RG`.N^NuNV/~ Gl nBRG`.N^Nu"o`C"/jD$jDA`|J/j JgRJk`JjDNu"o`C"/$A`JNu"o`C$jD"/A`, g J/j Nu"o`C$"/A` NupJfpN∲cd⒒d҂dFN o"`"/ jD$/jDD$@A`" jDNu o"`"/ _$0"@0HAHBЁH@B@ЉNNVH ..|Jg 0F< "@` .NtjJFP( LD $  &>& $  .6*" .J0.$nBF\ @$@(  .8*046  & 6& ,$ &(2> 00v   0$"$0DX. 0 8B ?9;NT.A/<A/<A/<A?<?9AN4.AaN^NuNV.U/Y/+S BOOKNAMECCATEGORYCNUMBERNENTRYDATEDAMOUNTTENPAIDTOC*MEMOC6CLEAREDL SAMPLE D 01985010210000.00B E G I N N I N G B A L A N C E Y SAMPLE C 100119850116 210.13SAN JOSE PUBLIC POWER DECEMBER ELECTRIC BILL Y SAMPLE C 100219850116 97.30BANKAMERICA VISA PAYMENT Y SAMPLE C 100319850116 0.00V O I D N SAMPLE D 019850121 3788.33D E P O S I T VERA'S PAYCHECK Y SAMPLE M 019850126 200.00M I S C C H A R G E TELLER MACHINE WITHDRAWAL Y SAMPLE C 100419850126 87.15ALBERTSONS GROCERIES Y SAMPLE C 100519850201 220.00GMAC CAR PAYMENT Y SAMPLE M 019850201 2.50M I S C C H A R G E CHECK PRINTING CHARGE Y SAMPLE D 019850201 35.77D E P O S I T BANK INTEREST CREDITED TO ACCOUNT Y SAMPLE C 100619850216 4500.00BAYVIEW CHEVROLET DOWN PAYMENT ON NEW CAR Y SAMPLE C 100719850102 111.00me some thing /<5?<NJ@g Jn******************************************************** * Basic checkbook program * * by Jim Hawley, 1450 SW 26th Court, Gresham Ore 97030 * * demonstrates some of the abilities of dBMAN * * particularly the use of procedures * ******************************************************** SET TALK OFF SET PUBLIC OFF ERASE @ 10,00 SAY CENTER("Loading Checkbook, Please Wait ....",80) SET DELETED ON SET PROCEDURE TO CHEKBOOK STORE 1 TO ChekBook STORE DATE() TO ChekDate STORE "Return" TO CrSymbol SELECT FJ if not file("CHEKBOOK.NDX") use chekbook index on bookname to chekbook else USE CHEKBOOK INDEX CHEKBOOK endif SELECT FK if not file("CHECKS.NDX") use checks index on bookname to checks else USE CHECKS INDEX CHECKS endif ERASE DO CHEKFORM DO WHILE T STORE HMENU("|","|Open Checkbook||Kill Checkbook||Exit CHEKBOOK",23,1,0,0,10)\40 TO MainOpt DO CASE CASE MainOpt = 0 INC MainOpt CASE MainOpt = 2 DO OPENBOOK CASE MainOpt = 4 DO KILLBOOK CASE MainOpt = 6 ERASE return ENDCASE @ 23,0 ENDDO SET PROCEDURE TO RETURN PROCEDURE OPENBOOK ****************** DO BOOKLIST STORE x.booklisk + "New Book" TO x.booklisk STORE 1 TO ChekBook @ 23,1 SAY CENTER("Select checkbook",78) DO WHILE T STORE HMENU("|",x.booklisk,19,ChekBook,0,0,10)\40 TO ChekBook @ 19,0 @ 20,0 @ 21,0 DO CASE CASE ChekBook = 0 INC ChekBook LOOP CASE ChekBook > TOKENS("|",x.booklisk) DO NEWBOOK IF TRIM(NewBook) = "" RETURN ENDIF OTHERWISE DO GOTOLAST ENDCASE @ 23,0 EXIT ENDDO DO SHOWBOOK DO SHOWCHEK STORE J.NEXTCHEK TO ChekNumber STORE 4 TO BookOpt DO WHILE T STORE HMENU("|","|||Enter||Edit||List||Reconcile|||Close",23,BookOpt,0,0,5)\40 TO BookOpt DO CASE CASE BookOpt = 0 STORE 4 TO BookOpt LOOP CASE BookOpt = 4 DO CBENTER CASE BookOpt = 6 DO CBEDIT CASE BookOpt = 8 DO CBLIST CASE BookOpt = 10 DO CBRECON CASE BookOpt = 13 DO CLEARFRM EXIT ENDCASE @ 23,0 ENDDO RETURN PROCEDURE NEWBOOK ***************** STORE SPACE(8) TO NewBook @ 23,1 ESAY " Enter new checkbook name or " + CrSymbol + " to abort " + CHR(16) + " " GET NewBook PICTURE "!!!!!!!!" DO WHILE T READ IF TRIM(NewBook) = "" RETURN ELSE FIND FJ NewBook IF ERRCODE() = 0 @ 23,1 ESAY TRIM(NewBook) + " already in use, re-enter or " + CrSymbol + " to abort " + CHR(16) STORE SPACE(8) TO NewBook @ ROW(),COL()+2 GET NewBook PICTURE "!!!!!!!!" LOOP ELSE APPEND FJ BLANK REPLACE FJ J.BOOKNAME WITH NewBook @ 4, 4 GET J.NAME @ 5, 4 GET J.JOINT @ 6, 4 GET J.ADDRESS1 @ 7, 4 GET J.ADDRESS2 @ 23, 1 SAY CENTER("Enter Checkbook identification",78) READ APPEND FK BLANK REPLACE FK K.BOOKNAME WITH NewBook, K.CATEGORY WITH "D", K.ENTRYDATE WITH {//} REPLACE FK K.PAIDTO WITH "B E G I N N I N G B A L A N C E", K.CLEARED WITH Y @ 10,66 GET K.AMOUNT PICTURE "##,###.##" @ 23, 1 SAY CENTER("Enter amount of beginning balance",78) READ STORE 0 TO ChekNumber @ 4,70 GET ChekNumber PICTURE "#####" @ 23, 1 SAY CENTER("Enter beginning check number",78) READ REPLACE FJ J.NEXTCHEK WITH ChekNumber, J.BALANCE WITH K.AMOUNT EXIT ENDIF ENDIF ENDDO RETURN PROCEDURE KILLBOOK ****************** DO BOOKLIST STORE x.booklisk + "Abort" TO x.booklisk STORE TOKENS("|",x.booklisk) + 1 TO ChekBook @ 23,1 SAY CENTER("Select checkbook",78) DO WHILE T STORE HMENU("|",x.booklisk,19,ChekBook,0,0,10)\40 TO ChekBook @ 19,0 @ 20,0 @ 21,0 DO CASE CASE ChekBook = 0 STORE TOKENS("|",x.booklisk) + 1 TO x.booklisk LOOP CASE ChekBook = TOKENS("|",x.booklisk) + 1 EXIT OTHERWISE @ 23,1 SAY CENTER("D E L E T I N G",78) GOTO FJ TOP SKIP ChekBook -1 FIND FK J.BOOKNAME DELETE FK WHILE K.BOOKNAME = J.BOOKNAME PACK DELETE FJ SELECT FJ PACK SELECT FK EXIT ENDCASE ENDDO RETURN PROCEDURE CBENTER ***************** DO WHILE T @ 23,1 ESAY " Enter " + CHR(16) + " (C)heck (D)eposit (M)isc. charge (E)dit (Q)uit " + CHR(16) STORE "?" TO Response DO WHILE NOT Response $ "CDMQE" @ 23,66 GET Response PICTURE "!" READ ENDDO DO CASE CASE Response = "Q" REPLACE FJ J.NEXTCHEK WITH ChekNumber RETURN CASE Response = "E" @ 23,66 SAY "EDIT" STORE K.ENTRYDATE TO ChekDate DO CASE CASE K.CATEGORY = "C" DO CHECK CASE K.CATEGORY = "D" DO DEPOSIT OTHERWISE DO CHARGE ENDCASE REPLACE K.ENTRYDATE WITH ChekDate OTHERWISE APPEND FK BLANK REPLACE FK K.BOOKNAME WITH J.BOOKNAME, K.CATEGORY WITH Response DO CASE CASE K.CATEGORY = "C" @ 23,66 SAY "CHECK" REPLACE FK K.NUMBER WITH ChekNumber DO CHECK INC ChekNumber CASE K.CATEGORY = "D" @ 23,66 SAY "DEPOSIT" REPLACE FK PAIDTO WITH "D E P O S I T" DO DEPOSIT OTHERWISE @ 23,66 SAY "MISC CHARGE" REPLACE FK K.PAIDTO WITH "M I S C C H A R G E" DO CHARGE ENDCASE REPLACE FK K.ENTRYDATE WITH ChekDate ENDCASE DO SHOWCHEK ENDDO PROCEDURE CBEDIT **************** @ 23,1 ESAY " Enter transaction date to edit or " + CrSymbol + " for all " + CHR(16) DO WHILE T STORE {//} TO EditDate @ ROW(),COL()+2 GET EditDate READ IF EditDate = {//} FIND FK J.BOOKNAME EXIT ELSE FIND FK J.BOOKNAME + DTOK(EditDate) IF ERRCODE() = 0 EXIT ELSE @ 23,1 ESAY " No " + DTOC(EditDate) + " transactions on file, re-enter or " + CrSymbol + " for all " + CHR(16) ENDIF ENDIF ENDDO DO WHILE T DO SHOWCHEK @ 23,1 ESAY " Enter " + CHR(16) + " (P)revious (N)ext (E)dit (Q)uit " + CHR(16) STORE "?" TO Response DO WHILE NOT Response $ "PNEQ" @ 23,50 GET Response PICTURE "!" READ ENDDO DO CASE CASE Response = "Q" RETURN CASE Response = "P" SKIP FK -1 IF K.BOOKNAME <> J.BOOKNAME SKIP FJ FIND FK J.BOOKNAME SKIP FK -1 SKIP FJ -1 ENDIF CASE Response = "N" SKIP FK IF K.BOOKNAME <> J.BOOKNAME FIND FK J.BOOKNAME ENDIF OTHERWISE @ ROW(),COL()-1 SAY "EDIT" STORE K.ENTRYDATE TO ChekDate DO CASE CASE K.NUMBER > 0 DO CHECK CASE K.CATEGORY = "D" DO DEPOSIT OTHERWISE DO CHARGE ENDCASE REPLACE FK K.ENTRYDATE WITH ChekDate ENDCASE ENDDO RETURN PROCEDURE CBLIST **************** FIND FK J.BOOKNAME DO WHILE K.BOOKNAME = J.BOOKNAME @ 23,0 ASSIGN ROW(2) DO WHILE K.BOOKNAME = J.BOOKNAME AND ROW() < 17 @ ROW()+1,2 SAY SPACE(76) IF K.NUMBER > 0 @ ROW(),4 SAY STR(K.NUMBER,5) + " " + DTOC(K.ENTRYDATE) + " " + K.PAIDTO + " $ " ELSE @ ROW(),4 SAY SPACE(7) + DTOC(K.ENTRYDATE) + " " + K.PAIDTO + " $ " ENDIF @ ROW(),COL() SAY K.AMOUNT USING "##,###.##" IF K.CLEARED @ ROW(),COL()+1 SAY "*" ENDIF SKIP FK ENDDO IF K.BOOKNAME = J.BOOKNAME @ 23,1 SAY CENTER(CrSymbol + " to continue listing",78) SET CONSOLE OFF WAIT SET CONSOLE ON ELSE EXIT ENDIF ENDDO DO WHILE ROW() < 17 @ ROW()+1,2 SAY SPACE(76) ENDDO @ 23,1 SAY CENTER("End of listing, " + CrSymbol + " to continue",78) SET CONSOLE OFF WAIT SET CONSOLE ON SKIP FK -1 DO CHEKFORM DO SHOWBOOK DO SHOWCHEK RETURN PROCEDURE CBRECON ***************** STORE J.BALANCE TO Statement FIND FK J.BOOKNAME LOCATE FK FOR NOT CLEARED WHILE K.BOOKNAME = J.BOOKNAME DO WHILE K.BOOKNAME = J.BOOKNAME DO SHOWCHEK @ 23,1 ESAY " Enter " + CHR(16) + " (C)lear (S)kip (F)inished " + CHR(16) STORE "?" TO Response DO WHILE NOT Response $ "CSF" @ 23,44 GET Response PICTURE "!" READ ENDDO DO CASE CASE Response = "C" REPLACE FK CLEARED WITH Y CASE Response = "S" IF K.CATEGORY = "D" STORE Statement - K.AMOUNT TO Statement ELSE STORE Statement + K.AMOUNT TO Statement ENDIF OTHERWISE EXIT ENDCASE CONTINUE FK ENDDO DO WHILE K.BOOKNAME = J.BOOKNAME IF K.CATEGORY = "D" STORE Statement - K.AMOUNT TO Statement ELSE STORE Statement + K.AMOUNT TO Statement ENDIF CONTINUE FK ENDDO @ 20,24 ESAY "Statement balance : $ " - STR(Statement,8,2) STORE Y TO DoClear @ 23, 1 ESAY " Delete cleared entries ? " GET DoClear READ IF DoClear @ 23,1 SAY CENTER("C L E A R I N G",78) DELETE FK ALL FOR K.BOOKNAME = J.BOOKNAME AND K.CLEARED PACK APPEND BLANK REPLACE FK K.BOOKNAME WITH J.BOOKNAME, K.CATEGORY WITH "D", K.AMOUNT WITH Statement REPLACE FK K.ENTRYDATE WITH {//}, K.PAIDTO WITH "B E G I N N I N G B A L A N C E", K.CLEARED WITH Y ENDIF DO GOTOLAST DO SHOWCHEK RETURN PROCEDURE CHECK *************** REPLACE FJ J.BALANCE WITH J.BALANCE + K.AMOUNT @ 4,70 SAY K.NUMBER USING "#####" @ 6,55 GET ChekDate @ 10,17 GET K.PAIDTO @ 10,66 GET K.AMOUNT PICTURE "##,###.##" @ 13, 6 SAY SPACE(59) @ 16,11 GET K.MEMO @ 16,69 SAY SPACE(7) READ REPLACE FJ J.BALANCE WITH J.BALANCE - K.AMOUNT RETURN PROCEDURE DEPOSIT ***************** REPLACE FJ J.BALANCE WITH J.BALANCE - K.AMOUNT @ 4,70 SAY SPACE(5) @ 6,55 GET ChekDate @ 10,17 SAY K.PAIDTO @ 10,66 GET K.AMOUNT PICTURE "##,###.##" @ 13, 6 SAY SPACE(59) @ 16,11 GET K.MEMO @ 16,69 SAY SPACE(7) READ REPLACE FJ J.BALANCE WITH J.BALANCE + K.AMOUNT RETURN PROCEDURE CHARGE **************** REPLACE FJ J.BALANCE WITH J.BALANCE + K.AMOUNT @ 4,70 SAY SPACE(5) @ 6,55 GET ChekDate @ 10,17 SAY K.PAIDTO @ 10,66 GET K.AMOUNT PICTURE "##,###.##" @ 13, 6 SAY SPACE(59) @ 16,11 GET K.MEMO @ 16,69 SAY SPACE(7) READ REPLACE FJ J.BALANCE WITH J.BALANCE - K.AMOUNT RETURN PROCEDURE CHEKFORM ****************** @ 2,1 SAY ".............................................................................." @ 3,1 SAY ". ......... ." @ 4,1 SAY ". . . ." @ 5,1 SAY ". ............ ......... ." @ 6,1 SAY ". . / / . ." @ 7,1 SAY ". ............ ." @ 8,1 SAY ". ." @ 9,1 SAY ". pay to the .............................................. ............. ." @ 10,1 SAY ". Order of . . $ . . ." @ 11,1 SAY ". .............................................. ............. ." @ 12,1 SAY ". ............................................................... ." @ 13,1 SAY ". . . Dollars ." @ 14,1 SAY ". ............................................................... ." @ 15,1 SAY ". .......................................................... ." @ 16,1 SAY ". Memo . . ." @ 17,1 SAY ". .......................................................... ." @ 18,1 SAY ".............................................................................." @ 22,1 SAY DUPCHAR(46,78) @ 24,1 SAY DUPCHAR(46,78) RETURN PROCEDURE CLEARFRM ****************** @ 4, 3 SAY SPACE(40) @ 4,70 SAY SPACE(5) @ 5, 3 SAY SPACE(40) @ 6, 3 SAY SPACE(40) @ 6,55 SAY {//} @ 7, 3 SAY SPACE(40) @ 10,17 SAY SPACE(42) @ 10,66 SAY SPACE(9) @ 13, 6 SAY SPACE(59) @ 16,11 SAY SPACE(54) @ 16,69 SAY SPACE(7) @ 20, 0 @ 23 ,0 RETURN PROCEDURE BOOKLIST ****************** GOTO FJ TOP STORE "" TO x.booklisk DO WHILE NOT EOF(FJ) STORE x.booklisk + J.BOOKNAME + "|" TO x.booklisk SKIP FJ ENDDO RETURN PROCEDURE SHOWBOOK ****************** @ 4, 3 SAY CENTER(J.NAME,40) @ 5, 3 SAY CENTER(J.JOINT,40) @ 6, 3 SAY CENTER(J.ADDRESS1,40) @ 7, 3 SAY CENTER(J.ADDRESS2,40) RETURN PROCEDURE GOTOLAST ****************** GOTO FJ TOP SKIP FJ (ChekBook) FIND FK J.BOOKNAME SKIP FJ -1 SKIP FK -1 STORE K.ENTRYDATE TO ChekDate RETURN PROCEDURE SHOWCHEK ****************** IF K.NUMBER > 0 @ 4,70 SAY K.NUMBER USING "#####" ELSE @ 4,70 SAY SPACE(5) ENDIF @ 6,55 SAY K.ENTRYDATE @ 10,17 SAY K.PAIDTO @ 10,66 SAY K.AMOUNT USING "##,###.##" @ 13, 6 SAY SPACE(59) @ 13, 6 SAY TONAME(TOMONEY(K.AMOUNT,"& ","/100")) @ 16,11 SAY K.MEMO IF K.CLEARED @ 16,69 SAY "CLEARED" ELSE @ 16,69 SAY SPACE(7) ENDIF @ 20,24 SAY "Checkbook balance : $ " - STR(J.BALANCE,8,2) RETURN nQ>?.a.?.aT n0"n2)AnJngBWNN^NuNVJ9.f y>(H>Wa.`R y>(H|o@ y>(H>W09.ʑWa>a..aa*>.SWaN^NuNVJ9.g" y>(H"y>)HAy;8oJn g >;8a`4>.SWa>aV..aJn g >;8ah`aN^NuNV> ?. aT> aJng aF>aa:Bn`F.?.0.WNT.0n"|C?0BgaXaRn0.nmaN^NuNVBy;>>Na.U//]aP y>(H>aBn>?.aT>?.a&T=n n=P` n=h`./<=?.?.NnPJ@g"9=gn9=fd9=gBW//<>jNq~P`>.//<>jNq~PJy.g.N".N9=f2 .^f*.H|0@"|../N4X.//?9E*N .g=|>a a@.?.NT.+SBOOKNAMECNAMEC&JOINTC&ADDRESS1C&ADDRESS2C&NEXTCHEKNBALANCEN SAMPLE Jonny Apple McSeed McSeed's Seeds 45 Orchard Drive (800)555-1212 San Jose, CA 95120 1008 8396.02H>an.1a*> W0. |HWSWaHa|aN^NuNVBn` 0n"n0H>?9;:aTRn.NVnnN^NuNV. NV?0. _=@JnlX. gBn` .7&aRn0.n m`0Bn` 0n"n 0H>?9;:aTRn0.n m``. g>av. a4`F. f.0.H>aT. a>0.HWa8`. a>a&N^NuNV>aJy.g 09.H`p @a2Bn`.H>`5-*o m$m,B"HJgP"&J$YJf"Jg< Af Rf Gf Vf =f Jg#9JB "&J$YJf"Jf&f2B "9lEHB2 r ggSJ"g fB*`B" 9n#9n.I+I/ #6//SA?/ / Bg?<JNA Jf.?<?<N'>N(?|BWN'>N(XON" ?N&?<LNANV0. @g$ @g^ n /(HnNPO n /(`\/<7NXOHn/<77NPO/<7:NXOHn/<7TN`& n /(HnNPO n /(HnNPO/<7WHnNPO/<7\HnNPOHnHnNPOJ@fHp.?HnN<\O-@ nB/<7aHnNPOHnN &XOHnHnN POp?HnN\O=@ @fHn/<7fNPO`jBgHnN\O=@ @f?.N TOHn/<7}`?.?.NXOJ@g/<7NXO?.N TO?.N TON^NuNV?. ?.NXOJ@gp`$?. ?.NZXOJ@f?. ?.NjXON^NuNV?</<X?.N PO @g/<7NXOp`-|X-|W?</./.N | =|+?.NTO n0 n?(NTO n1@p?NTO n1@ n?NTO n0 n?(0NTO n1@0 n?(2NTO n1@2 n?(4NTO n1@4 n/(,NPXO n!@,?</<W?. N .g,JGg(d?Bg?Bg0SGJ@g%`0SGJ@g`L0N^NuNV0. |52<`XHXW PN`p`p`p`p`p` p`p`B@N^NuNV n m n~o?.N TO`pN^NuNV nAm nZn 0.@ `. nf0<` nf0<` nf0<`0.N^NuNV nam nzn 0.@ `. nf0<` nf0<` nf0<`0.N^NuNV-|8$ nB@@?N TO=@g n B@@?N TO=@g0.nlp` Sn0.nHЮ-@ nBA n B@@Ab nRBA n B@@Ae nBA n B@(Ac` n B@@?N TO=@gfSn0.nHЮ-@ nBA nB@@AeJ nRBA nB@@Ab8 nBA nB@(Ab"` n BAA nB@@AepN^NuNVH0*n(n >.0SGJ@gJg`B L0N^NuNVH *n>. 0HЍ-@g n ( fS` .L N^NuNV/.NXO?/.N h\ON^NuNVH0*n(n >.0SGJ@gHHAf JfB@`R` GgHHAlp`pL0N^NuNVH0*n(n BAB@Af JfB@`R`/ / N POL0N^NuNVH0*n(n >.0SGJ@gHHAf JfB@`R` Gg/ / N POL0N^NuNVH0*n(n >.0SGJ@gJgHHAfRR` GgJgJfB@` / / N POL0N^NuNV nAm nZo nam nznp` ?.N TON^NuNV?./<83/. N /. NXON^NuNV?./<86/. N /. NXON^NuNV/./<89/. N /. NXON^NuNVH *n  g  fR`Bn -fp=@` +gSR~ 0m* 9n$HC0p //N1PO/0Hї .`Jng D. L N^NuNVH *n>. JgB@GfS `BL N^NuNVH0*n(n B@ngJg`BB@nfR L0N^NuNVH *n>. 0SGJ@gp `L N^NuNVH *n>. 0SGJ@gp `BL N^NuNVH *n>. <.0SGJ@g`L N^NuNVH *n>. <.0SGJ@g`BL N^NuNV/.NXO=@n l0. n?0.HЮ/N\ON^NuNV/.NXO=@n l(0. n?0.HЮ/N\O0n BN^NuNVA-H"n n"n ni0.N^NuNVA-H"n n "n n iN^NuNV=nA-H nP"n n nn0.N^NuNV-nA-HA-H"n n"n ni"n ni"n nQ .N^Nu"o o JfSfNu"o ofJfHHNu"o o fNu o"Jf S@NuNVHn/<8`N`PON^NuNVHn /.N`PON^NuNVHn/.NXO?/.N  Hn HnN`PON^NuNVH Bn n X -P nRH> |52<`XHXW PN`Z/./.NxXO<?N\\O Ff`4/. n hNXO<Gg/.?N\\O` nRH> @*fp`B@=@Jng nRH>Bn G0m( G9n"0. G@0=@ nRH>` Glfp`B@=@ Ghfp`B@=@JnfJng nRH>0 |5>2<`XHXW`/<8/<8>NPON2 `6Rnp `Rnp`RnBn` Rnp=@Hn?.?./.N -@JngJnfbJng n X P `Jn n X P0.0Rn`0RnHn?./.Nv -@-AJngJnfJng n X P .". !A` n X P .". `A-H nRH> @^fp`B@=@Jng nRH>JGg G]g nR` nBA-H/. n hNXO<`DJnfp=@/. n hNXO<-|8S`/.NxXO<-|8Tp=@Jnf n X *PBn FgH?/.N<\OJfp`B@nf*RnJnfSnf|`/. n hNXO<` Fg/.?N\\OJngJnf GcgPB`JJnf n(H@gp`0.L N^NuNVH>. <.BJFo F o| nBP/.NxXO: E-fp`B@=@f E+f/. n hNXO: nRP n0FnPJGfL E0g~ `B/. n hNXO: nRP0Fn$ Exg~`~/. n hNXO: nRP n0Flf0@W8 @ l0@78 @ l0@08m D nGm Gf0Jf*0@x8f 6HHn0H/N1PO-@`z/.?N\\OJng .` .DLN^NuNVH |KJn o n op =@ nBP n0n l/. n hNXO> |52<`XHXW PN`|JFfx nSP nRP`JFg Ff`RF` Fn(|`JFg Fg Ff|` Fm6 Fn0|` F` Fg Fg Ff|` Fg Ff|`/.?N\\OBHnN+XOL N^NuNV//. n hNXO> @ g G g G g0.N^NuNVHn/<8zNPON^NuNVHn?</.N  Hn HnNPOHnBg nN\ON^NuNVH0-n n(PXH> @%gJGgP/.? n hN\O`p =@p=@p=@H> G-fp=@H>`Bn G0f p0=@H> G*f& nT=Plp=@0.D@=@H>`*Bn G0m G9n0. G@0=@H>` G.fJH> G*f nT=PH>`*Bn G0m G9n0. G@0=@H>` Glf&H> Gdg Gog Gug Gxf0@> `-@*@p=@0 |6@2<`XHXW PN`4 nT=PJnl0.D@=@p-p ??./ NPO*@`p ? nT?`p`p` n-PXJl .D-@p-p ?/./ N `p ? n// N *@X`p`p`/ ?./.?N& *@P`fBn n-Pf-|8XX .-@*@JgJnm noS`(Bn nT0` n//.NPO`n ./0.Hї =@lBnJnfLJng0 n0f( n -f/. nRH? n hN\O0.SnJ@g /.?.` nd /. nRH? n hN\O`Jng0.SnJ@g/.?. n hN\O`L0N^NuNVH >. *NB%0<g"0H@H@B@H@ @6>`?Bg _6Jg nR` .L N^NuNVH0*n>.IB$p0//. N16PO-@g$p0//. N1|PO @6-n ` n 6Jg` L0N^NuNV/ *n !f&+|+|Bm -;n0.`> #f +|` $f +|N` f +||`p*_N^NuNV/ *n+|!+|!Bm -0-*_N^NuNV/ *n+|#+|$ ;@ o -;@ -0-*_N^NuNV/ *n+|$+|%Bm -0-*_N^NuNV/ *n+| /NXOD@;@ 0-*_N^NuNVH >.*n / mNXO/ ? mN\OL N^NuNVH0*n(n Jg/ H? lN\OR`L0N^NuNV/ *n .*+@+| B-0. D@;@ m l;| +| `+| X *_N^NuNV/ *n Sm lBm p` UR0.*_N^NuNV/ *n UR0.*_N^NuNV/ *nRm oBm p` URB@*_N^NuNV/ *nJf0-H@f?<N4TO+@f+|$+|%`n-H@f2-H?N(`TOJ@g8zf+|#+|% -`&+|#+|$-H?N!tTOHЭ*+@Bm *_N^NuNV/p?B?.N(PO. fB@`0H@.N^NuNV/ *n/ N XO/ mNXO*_N^NuNVH >.*n / N XO/ ? mN\OL N^NuNV/ *|8Y M8eJg/N".XO`*_N^NuNVH *n-H@fp`@/ N"XO>-H?N' TOJg-H@f /-N42XOB-0L N^NuNVH *nBm -H@ff >o?/--H?N*ZPOGf$JGm mAf -*+@`+UB@` 096H fBy6`-pL N^NuNVH *nRm o/ N"XOJ@f %8f/<8zN"XO -?/--H?N) POD@;@ @f^096H fBy6`-Bm `F0- Rm m+H URB@>-H@ g G gL Gg 0`Jm f-pL N^NuNV/ *n %8f/<8zN"XOBm p?Hn-H?N) PO @g4J@gP .f -H@ f< . f -H@ fB@.`(096H fBy6`-`-p*_N^NuNVH >.*n G f$-H@ g/ p ?N$\O @fp`0Sm l"/ N&:XOJ@f -S@;@ UR0L N^NuNVH >.*n G G f -H@ g/ p ?N%\O @g^Bm -H@fN/ N&:XOJ@f@p?Hn-H?N*ZPO @f0` 096H fBy6`-pL N^NuNVH >.*n G f$-H@ g/ p ?N%\O @fp`?NAXO/N+XO`B@N^NuNV/Bg/.pl0H/N+XO`"?.N*TO=@m?.?N+XO0.N^NuNV/?.?. rF?NA\O>J@f(?.N*TO=@m?.?. N+XO0. `0H/N+XO.N^NuNV?.N*TO @Cfp`B@N^NuNV?.?./. pB?NA /N+XON^NuNV/?. /.p=?NAPO.m:0H.mpF?0?N+XO` m n0?N+LTOH./N+XO.N^NuNVH A#9r/99rN4XOJ@gB9rp 36p`?.N*TO @Cf|99H>99HH9*@SnmSGl^pQ9B99/<9p ?NA\O>mp ?p?p?NM\Op999H>99HH9*@0Gp H: Ef~` n R RF E ft 999B9r0`0/. 0.H/?.p??NA >B9r0H/N+XOL N^NuNV/A#9r/99rN4XOJ@gB9rp 36p`,/. 0.H/?.p@?NA .B9r/N+XO.N^NuNVH >.0V@ @bH0@6 PN`*pP`&pA`"pC`JGm*y9JSGmJfp`JgHL N^NuNVH >.JGm*y9JSGmJfp` Jg0. L N^NuNVH >.0V@ @bHH0@6 PN*y9JHGg Jfp`&R` 9J?N'TO`~C`~A`~P`pL N^NuNVJl .D36p` .N^NuNVH *nA-H-nHnN0XOBnBnp@=@ +g -fnRH> @.g G0m G9n G.f0.@fn`B@.@gRn`jHnN0 XOHnHnN0POHnN0 XOHnN0 XOHnHnN0hPOHnN0XO0@0@HnHnN0hPO0.@gDSn`< Geg GEfZ +g -fnRBnH> @0m G9n0. G@0=@`0.@g 0.D@=@0.nBn nl NJ(fRn` nf HnBgBg`JnoHnHnN0POHnN0 XOJ@f:HnN0 XOJ@f*HnHnN0hPOJ@fHnHnN0PORn`VHnHnN0POBgHnN/\OBgHnN/\OHnHnN0hPO>gRn?HnN/\OVnSnfJ`JnlB@.@fHnN0 XOSn`BgHnN/\OHnHnN0POBn n lJ0.@gBgHnN/\OBgHnN/\OBgHnN/\OHnHnN0hPORn`WnRnfdSnHnN0 XOJ@gHnN0XOp@HnHnN0hPOJ@gRnBgHnN/\OHn0.@?0.@?/.N/j n "(L N^NuNV/~ G lBg/.N/\ORG`0.@@ n0.H@ n(Jn g n/./.N0PO.N^NuNVH| Fl4>. nB@@=@ nJGg nRF`0. LN^NuNVH|zJEm.>| nB@@g| n nŏSE`0LN^NuNVH|~JGm. n BA nB@A@ n0@@<SG`0LN^NuNV/~ Gl n"n RG`.N^NuNV/~ Gl nBRG`.N^Nu"o`C"/jD$jDA`|J/j JgRJk`JjDNu"o`C"/$A`JNu"o`C$jD"/A`, g J/j Nu"o`C$"/A` NupJfpN∲cd⒒d҂dFN o"`"/ jD$/jDD$@A`" jDNu o"`"/ _$0"@0HAHBЁH@B@ЉNNVH ..|Jg 0F9 "@9vSF`|0F9Jg 0RF0@9H?p?p?NM\O`p?N&TOLN^NuNVH8..P b d.</N4XO*@ Mg`J9f&M #9#9`& y9ıf QP&m`(y9Q L&h)M Q@* Ѝ#9(@Q LB)KL8N^NuNVH0~ .\S@,dB`ƙ*y9 gr .gH g @є .*L(Mc2  d @*`* Ѝ#9 y9 X`dJg @Ѝ*@`*m9f g#9Ry9099 @e Sy9`X/N2XO/.N3*XO*@Sy9 L0N^NuNVp0./N3*XON^NuNVH .Y*@Jf4~0G9Jg 0RG0@9H?p?p?NM\O`N&L N^Nu O$X"XHB@Nu o0/L.NuNVH..Jl <`0Jf 9`$R @./pH?NA\O,g Ї# LN^NuNV0.H/N4XON^Nu  %DEJFJNOX[c$deNfNnosLx   %   +-.0123456789Ee TDO*U X.cde2f2g2orsPuxD*0123456789ABCDEF***+++;Zx0Nm<[y1OnnHEnter input file name : %sEnter output file name : %s.DBF.DBF.BAK Cannot open file %s. Cannot create file %s. Conversion error Read Error Write Error Read Error Write Error Read Error Write Error Not enough memory %04u%02u%02uAeOeUeaeoessue%d%u%ldBad format in scanf {NULL}!!!!!!!!#8`8z8 You must compile with the -f option to include printf() floating point! 9NCCAP????????????????????????0123456789ABCDEFUser abort at 00000000 Bad pointer in free. L"20 ,           <0 `B $   l ^(D*DTNX<   `<((R2$ .>` .NtjJFP( LD $  &>& $  .6*" .J0.$nBF\ @$@(  .8*046  & 6&  &(2> 00v   0$"$0DX8  @J$  $N$  05-R;Ba $=@o0.BUFFERS=80 FILES=20 PICTBFZ=4000 GBLCNT=256 GBLSIZE=4000 ;FgB@N^NuNV 9(;FfRy;n09;n|op`n>a pJ@gp `\ y;B(R;Ba =@o0.`:a=@o0.`( 9);Ff,>a J@gp ` y;B)R;Ba 4``p``Jy;hfJy;lgH>a J@gp ` y;BR;B.;B/<;NqRX\;Ba``Jy;jgBn`Rn nl$0n"|-./<;FNXJ@f0n"|-./<;FNXJ@f>a ,J@gp `0.|"y;BR;B0n"|.p0H`a=@o0.``a=@o0.` 9(;Fg p``>a J@gp ` y;B(R;Ba=@o0.`~aV=@o0.`l 9);Fgp`\>a ^J@gp `J y;B)R;Bar=@o0.`(``|g0|g>`".;FNV|op``a``Jy;fgJ9;FfB@` 9-;Fg 9+;Ffy;Fa=@o0.`Jy;hf Jy;lgt .-f(>Bg?</<;/</R/<;N >adJ@gp `P y;BR;B.;B/<;NqRX\;Ba`` `p`` 9[;Ffa``p`B@N^NuNVa2=@o0.` 9(;Ff`3*;F*o m$m,B"HJgP"&J$YJf"Jg< Af Rf Gf Vf =f Jg#7pB "&J$YJf"Jf&f2B "7EHB2 r ggSJ"g fB*`B" 7#7.I+I/ #5z//SA?/ / Bg?<JNA Jf.?<?<N&p>N&?|BWN&p>N&XON" ?N%\?<LNANV/<5~N`XO0. @g$ @g^ n /(HnNPO n /(`\/<5N`XOHn/<5NPO/<5N`XOHn/<5N`& n /(HnNPO n /(HnNPO/<5HnNPO/<5HnNPOHnHnNrPOJ@fHp.?HnN\O-@ nB/<5HnN\POHnNBXOHnHnN&POp?HnNx\O=@ @fHn/<5N`PO`LBgHnN\O=@ @f Hn/<6`?.?.NXO?.NTO?.NTON^NuNV-|U-|8B?<x/.?.NPO @xg /<6#`"n n0"n n1i np1@p=@Bn0.SnJ@g20.> @Hh0.> @HhNPORn` nHh nHhNPO nHh: nHh nHh@NPO nHh nHhNPO nHh nHhNPOp=@Bn0.SnJ@g20.P @Hh:0.P @Hh8NPORn`/.NXO?<z/.?. NPO @zg/<6.N`XON^NuNV/./. NPO"n n 1izz"n n 1i||"n n 1i~~p=@Bn0.SnJ@g20.4 @Hh0.4 @ HhNPORn`N^NuNVp.?/.N\OJf(/.NXO=@/. 0.HЮ/NPON^NuNV n?NTO n0 n?(NTO n1@ n?(NTO n1@ n?(NTO n1@ n?(NTO n1@ n?(NTO n1@ n?(NTO n1@ n?(NTO n1@ n?(NTO n1@ n?(NTO n1@ n?(6NTO n1@6 n?(8NTO n1@8 .:-@p=@0.SnJ@gV n?(zNTO n1@z n?(|NTO n1@| n?(~NTO n1@~ nP-H`N^NuNV0. @H @6:=P?./.N'^\ON^NuNVBg/.N&\ON^NuNV?.N%TON^NuNV?./. ?.N'PON^NuNV?./. ?.N)PON^NuNV?./. ?.N'6PON^NuNV/./. BgpV?NA N^NuNV/.pA?NA\ON^NuNV/.NXOHЮ-@ nSg nHn f .`BN^NuNV n gpJngj n d@?.Bg n -H ?.Bg n-H0.SnJ@g4S n S"n`0.SnJ@g n R "nR`N^NuNV0. |32<`XHXW PN`p`p`p`p`p` p`p`B@N^NuNV n m n~o?.N TO`pN^NuNV nAm nZn 0.@ `. nf0<` nf0<` nf0<`0.N^NuNV nam nzn 0.@ `. nf0<` nf0<` nf0<`0.N^NuNV-|6J nB@@?N TO=@g n B@@?N TO=@g0.nlp` Sn0.nHЮ-@ nBA n B@@Ab nRBA n B@@Ae nBA n B@(Ac` n B@@?N TO=@gfSn0.nHЮ-@ nBA nB@@AeJ nRBA nB@@Ab8 nBA nB@(Ab"` n BAA nB@@AepN^NuNV0.SnJ@g n Jg nR"n R ` nB .N^NuNV0. HЮ-@ ng n ( fS` .N^NuNV/.NXO?/.N \ON^NuNV0.SnJ@g* n H nHAf nRJfB@`(R ` ng n H nHAlp`pN^NuNV n BA nB@Af nRJfB@`R `/. /.N &PON^NuNV0.SnJ@g* n H nHAf nRJfB@`R ` ng/. /.N &PON^NuNV0.SnJ@g& nJg n H nHAf RR ` ng nJg n JfB@`/. /.N &PON^NuNV nAm nZo nam nznp` ?.N TON^NuNV?./<6Y/. Nz /. NXON^NuNV?./<6\/. Nz /. NXON^NuNV/./<6_/. Nz /. NXON^NuNV/ n  g n  fR`Bn n -fp=@` n +gSRB n 0m: n 9n0 nRHC0p //.N0rPO/0Hї -@`Jng .D-@ .&N^NuNV nJg nRB@n fS .`BN^NuNV n B@ng n Jg nR"n R ` nB n B@nfR . N^NuNV0. Sn J@g nRp `N^NuNV0. Sn J@g nRp ` nBN^NuNV0. Sn J@g nR0.`N^NuNV0. Sn J@g nR0.` nBN^NuNV/.NXO=@n l0. n?0.HЮ/N`\ON^NuNV/.NXO=@n l(0. n?0.HЮ/N`\O0n BN^NuNVA-H"n n"n ni0.N^NuNVA-H"n n "n n iN^NuNV=nA-H nP"n n nn0.N^NuNV-nA-HA-H"n n"n ni"n ni"n nQ .N^Nu"o o JfSfNu"o ofJfHHNu"o o fNu o"Jf S@NuNVHn/<6NPON^NuNVHn /.NPON^NuNVHn/.NXO?/.N Hn HnNPON^NuNVH Bn n X -P nRH> |4`2<`XHXW PN`Z/./.N.XO<?N\O Ff`4/. n hNXO<Gg/.?N\O` nRH> @*fp`B@=@Jng nRH>Bn G0m( G9n"0. G@0=@ nRH>` Glfp`B@=@ Ghfp`B@=@JnfJng nRH>0 |32<`XHXW`/<6/<6dNPON0`6Rnp `Rnp`RnBn` Rnp=@Hn?.?./.N -@JngJnfbJng n X P `Jn n X P0.0Rn`0RnHn?./.N, -@-AJngJnfJng n X P .". !A` n X P .". `A-H nRH> @^fp`B@=@Jng nRH>JGg G]g nR` nBA-H/. n hNXO<`DJnfp=@/. n hNXO<-|6y`/.N.XO<-|6zp=@Jnf n X *PBn FgH?/.N\OJfp`B@nf*RnJnfSnf|`/. n hNXO<` Fg/.?N\OJngJnf GcgPB`JJnf n(H@gp`0.L N^NuNVH>. <.BJFo F o| nBP/.N.XO: E-fp`B@=@f E+f/. n hNXO: nRP n0FnPJGfL E0g~ `B/. n hNXO: nRP0Fn$ Exg~`~/. n hNXO: nRP n0Flf0@W8 @ l0@78 @ l0@08m D nGm Gf0Jf*0@x8f 6HHn0H/N0jPO-@`z/.?N\OJng .` .DLN^NuNVH |KJn o n op =@ nBP n0n l/. n hNXO> |42<`XHXW PN`|JFfx nSP nRP`JFg Ff`RF` Fn(|`JFg Fg Ff|` Fm6 Fn0|` F` Fg Fg Ff|` Fg Ff|`/.?N\OBHnN*XOL N^NuNV//. n hNXO> @ g G g G g0.N^NuNVHn/<6NPON^NuNVHn?</.N Hn HnNPOHnBg nN\ON^NuNVH0-n n(PXH> @%gJGgP/.? n hN\O`p =@p=@p=@H> G-fp=@H>`Bn G0f p0=@H> G*f& nT=Plp=@0.D@=@H>`*Bn G0m G9n0. G@0=@H>` G.fJH> G*f nT=PH>`*Bn G0m G9n0. G@0=@H>` Glf&H> Gdg Gog Gug Gxf0@> `-@*@p=@0 |42<`XHXW PN`4 nT=PJnl0.D@=@p-p ??./ N6PO*@`p ? nT?`p`p` n-PXJl .D-@p-p ?/./ N `p ? n// N *@X`p`p`/ ?./.?N%v *@P`fBn n-Pf-|6~X .-@*@JgJnm noS`(Bn nT0` n//.NPO`n ./0.Hї =@lBnJnfLJng0 n0f( n -f/. nRH? n hN\O0.SnJ@g /.?.` nd /. nRH? n hN\O`Jng0.SnJ@g/.?. n hN\O`L0N^NuNVH >. *NB%0<g"0H@H@B@H@ @5P>`?Bg _5PJg nR` .L N^NuNVH0*n>.IB$p0//. N/PO-@g$p0//. N02PO @5P-n ` n 5PJg` L0N^NuNV/ *n df&+|+|^Bm -;n0.`> !f +|` "f +|` Pf +|2`p*_N^NuNV/ *n+| d+| Bm -0-*_N^NuNV/ *n+|!+|#^ ;@ o -;@ -0-*_N^NuNV/ *n+|"+|#Bm -0-*_N^NuNV/ *n+|P/NXOD@;@ 0-*_N^NuNVH >.*n / mNXO/ ? mN\OL N^NuNVH0*n(n Jg/ H? lN\OR`L0N^NuNV/ *n .*+@+|PB-0. D@;@ m l;| +|6`+| *_N^NuNV/ *n Sm lBm p` UR0.*_N^NuNV/ *n UR0.*_N^NuNV/ *nRm oBm p` URB@*_N^NuNV/ *nJf0-H@f?<N2TO+@f+|"+|#`n-H@f2-H?N'TOJ@g6f+|!+|$r -`&+|!+|#^-H?N *TOHЭ*+@Bm *_N^NuNV/p?B?.N'6PO. fB@`0H@.N^NuNV/ *n/ NvXO/ mNXO*_N^NuNVH >.*n / NvXO/ ? mN\OL N^NuNV/ *|7$Y M6eJg/N XO`*_N^NuNVH *n-H@fp`@/ N!HXO>-H?N%TOJg-H@f /-N2XOB-0L N^NuNVH *nBm -H@ff >o?/--H?N)POGf$JGm mAf -*+@`+UB@` 095xH fBy5x`-pL N^NuNVH *nRm o/ N!HXOJ@f $r6f/<6N!HXO -?/--H?N'POD@;@ @f^095xH fBy5x`-Bm `F0- Rm m+H URB@>-H@ g G gL Gg 0`Jm f-pL N^NuNV/ *n $r6f/<6N!HXOBm p?Hn-H?N'PO @g4J@gP .f -H@ f< . f -H@ fB@.`(095xH fBy5x`-`-p*_N^NuNVH >.*n G f$-H@ g/ p ?N#^\O @fp`0Sm l"/ N$XOJ@f -S@;@ UR0L N^NuNVH >.*n G G f -H@ g/ p ?N#\O @g^Bm -H@fN/ N$XOJ@f@p?Hn-H?N)PO @f0` 095xH fBy5x`-pL N^NuNVH >.*n G f$-H@ g/ p ?N$r\O @fp`?NAXO/N*jXO`B@N^NuNV/Bg/.pl0H/N*jXO`"?.N)vTO=@m?.?N)XO0.N^NuNV/?.?. rF?NA\O>J@f(?.N)vTO=@m?.?. N)XO0. `0H/N*jXO.N^NuNV?.N)vTO @Cfp`B@N^NuNV?.?./. pB?NA /N*jXON^NuNV/?. /.p=?NAPO.m:0H.mpF?0?N)XO` m n0?N*TOH./N*jXO.N^NuNVH A#7/97N3>XOJ@gB7p 35xp`?.N)vTO @Cf|97H>97HH7*@SnmSGl^pQ7B97/<7p ?NA\O>mp ?p?p?NM\Op797H>97HH7*@0Gp H: Ef~` n R RF E ft 777B70`0/. 0.H/?.p??NA >B70H/N*jXOL N^NuNV/A#7/97N3>XOJ@gB7p 35xp`,/. 0.H/?.p@?NA .B7/N*jXO.N^NuNVH >.0V@ @bH0@5` PN`*pP`&pA`"pC`JGm*y7pSGmJfp`JgHL N^NuNVH >.JGm*y7pSGmJfp` Jg0. L N^NuNVH >.0V@ @bHH0@5l PN*y7pHGg Jfp`&R` 7p?N&pTO`~C`~A`~P`pL N^NuNVJl .D35xp` .N^NuNVH *nA-H-nHnN/XOBnBnp@=@ +g -fnRH> @.g G0m G9n G.f0.@fn`B@.@gRn`jHnN.XOHnHnN/fPOHnN.XOHnN.XOHnHnN/POHnN/XO0@0@HnHnN/PO0.@gDSn`< Geg GEfZ +g -fnRBnH> @0m G9n0. G@0=@`0.@g 0.D@=@0.nBn nl NJ(fRn` nf HnBgBg`JnoHnHnN/fPOHnN.XOJ@f:HnN.XOJ@f*HnHnN/POJ@fHnHnN/fPORn`VHnHnN/fPOBgHnN.\OBgHnN.\OHnHnN/PO>gRn?HnN.\OVnSnfJ`JnlB@.@fHnN.XOSn`BgHnN.\OHnHnN/fPOBn n lJ0.@gBgHnN.\OBgHnN.\OBgHnN.\OHnHnN/PORn`WnRnfdSnHnN.XOJ@gHnN/XOp@HnHnN/POJ@gRnBgHnN.\OHn0.@?0.@?/.N. n "(L N^NuNV/~ G lBg/.N.\ORG`0.@@ n0.H@ n(Jn g n/./.N/fPO.N^NuNVH| Fl4>. nB@@=@ nJGg nRF`0. LN^NuNVH|zJEm.>| nB@@g| n nŏSE`0LN^NuNVH|~JGm. n BA nB@A@ n0@@<SG`0LN^NuNV/~ Gl n"n RG`.N^NuNV/~ Gl nBRG`.N^Nu"o`C"/jD$jDA`|J/j JgRJk`JjDNu"o`C"/$A`JNu"o`C$jD"/A`, g J/j Nu"o`C$"/A` NupJfpN∲cd⒒d҂dFN o"`"/ jD$/jDD$@A`" jDNu o"`"/ _$0"@0HAHBЁH@B@ЉNNVH ..|Jg 0F7 "@7SF`|0F7Jg 0RF0@7H?p?p?NM\O`p?N%TOLN^NuNVH8..P b d.</N3\XO*@ Mg`J7f&M #7#7`& y7f QP&m`(y7Q L&h)M Q@* Ѝ#7(@Q LB)KL8N^NuNVH0~ .\S@,dB`ƙ*y7 gr .gH g @є .*L(Mc2  d @*`* Ѝ#7 y7 X`dJg @Ѝ*@`*m7f g#7Ry7097 @e Sy7`X/N1` .NtjJFP( LD $  &>& $  .6*" .J0.$nBF\ @$@(  .8*046  & 6&  &(2> 00v   0$"$0DX8  @J$  $N$ " 03vF;& skipws_.free_2filblnk_`newarea_<1lmalloc_1vmul0_fputeos_strcpy_main_"errno_x5_fgetb_!_fgetc_"boffset_* _fpinit_ _dtefg_v%_xprintf__stropen_atof_*write_)_stksize_7itoa_ atoi_:_fputexs_6_getfhtype_v)ltoa_fscanf_sbrk_3fputs_filbufz_gint_zlfr86_open_^'_stderr_6nfrm_B8_a_scanp_7intadd_/ofrm_U_cmdname_7_fp_6fgetnum_longjmp_L3_aliasfh_*cnvv3rep_malloc_2chkumlt_ filbuf_coninb_7utoa_ sfr86_chkprnt_^ addext_exit_\%_setfhtype_)null_~6pint_sycreat_dup2_&lldiv/fclose_ stgncmp_ chkalpha_~ llrem0sscanf_cmpger_& strcmat__fputb_^#sylseek_ _fputc_#_stdin_6environ_z5lrdiv/_stdout_6syclose_lrrem0xscanf_digits_P5vldiv/dvalpack_ .ungetc_sprintf_z_a_first_7msg_7vlrem,0msg_$7_dtoa_%llmulj0filtrlz_4fflush_H!strrchr_Vsyread_dup_p&cpycol__iovector_p7scanf_intclr_/vrdiv/vrrem20lrmulr0filtrl__start_strmnln_ creat_&rprtcnv_vlmul0_seterrno_j*movmem_strcat_\intshl_._fputt_r$cmpsn1_ setjmp_>3strncpy_ cmpsn2_ printf_`fhren_&_fungotb_lseek_6'depth_7_fungotc__funungc_^printi_6close_%vrmul0intcpy_f/_fungote_2sywrite_intshr_.abort_0fgetdbl_,cmpst1_ index_strlen__exit_%printl_strcmp_rvdivF0finit_v_fungoti_chglower_ filblnkz_read_'_fpseek_$lsbrk_\3isatty_'_fgetstr_Pchgupper_ fmdetbl_:6syopen_xfhunlink_B_etv_term_jbp_7_finish_ _fginit_d strmln_ ///N Jng nf8Jnf2Jnf,0.H>?.//.N p`$BWBg//N `N^NuNV>?</./.N nJPl0>?<?</<:/./.N  nSET TALK OFF *1/22/88 change clear to esc to atari *12/11/87 for Atari 4.0 *4-27-87 FOR MAC HEADING BOX +1 BOTTOM ROW *4-27-87 FOR MAC ESC TO CLEAR *4-27-87 FOR MAC FIND CMD CHANGE TO PRG *4-27-87 FOR MAC Y.PATH_NAME ON ATARI NEEDS FILE NOT ON MAC *4-27-87 FOR MAC SELFILE Y.MAC_FLAG IF Z.SEL_FILE HAS WILDCARD *4-27-87 FOR MAC ,KEYS, \ TO : *4-21-87 CHANGE FINDFILE TO USE SELFILE *4-21-87 BOX LOWER RIGHT +1 ROW, +1 COL *4-14-87 ADD @ SAY FOR LOGO SCREEN *4-14-87 ATARI NEVER PUT BOX IN ROW OR COL 0 *FOR ATARI 4-14-87 MIKE DAUSEND *ASSIGN TRAP(T),TRAPFILE('TRLABEL') DELETE FILE DBLABEL.PRO SET PUBLIC OFF X.H_HEAD = 'DBLABEL PROGRAM' STORE '*SET SAY VIDEO TO 7' TO SAYNORMAL STORE '*SET SAY VIDEO TO 112' TO SAYREVERSE STORE '*SET SAY VIDEO TO 15' TO SAYBRIGHT STORE '*SET SAY VIDEO TO 143' TO SAYBLINK SET CONFIRM ON SET DELETED ON SET PRINT OFF SET CONSOLE ON SET DEVICE TO SCREEN ERASE CLOSE ALL IF NOT FILE('DBLABEL.CMD') BEEP BEEP Y.MSG_TEXT = "DBLABEL.CMD program file not found." Y.PATH_NAME = "" Y.SEL_FILE = "DBLABEL.CMD" Y.RETURN_TO = "CANCEL" | ABORT PROGRAM DO FINDFILE ERASE SET DEFAULT PRG TO &Y.PATH_NAME SET DEFAULT DBF TO &Y.PATH_NAME SET DEFAULT NDX TO &Y.PATH_NAME SET DEFAULT MEM TO &Y.PATH_NAME SET DEFAULT TXT TO &Y.PATH_NAME SET DEFAULT SYSTEM TO &Y.PATH_NAME ENDIF IF NOT FILE('SYSDATA') &SAYBRIGHT ERASE @ 10,00 SAY CENTER('File SYSDATA.DBF not found with DBLABEL PROGRAM.',78) @ 11,00 SAY CENTER('SYSDATA must be with DBLABEL.Press RETURN to continue ',78) &SAYNORMAL WAIT SET DEFAULT TO RETURN ENDIF &SAYBRIGHT ASSIGN BOX(05,10,20,70,201,187,200,188,186,205) Y.TEMP_TXT1 = 'DBLABEL Version 2.0' Y.TEMP_TXT2 = '(C) Copyright 1987 VersaSoft Corporation' Y.TEMP_TXT3 = 'for' Y.TEMP_TXT4 = 'Atari ST Series Personal Computers' Y.TEMP_TXT5 = 'VersaSoft Corporation' Y.TEMP_TXT6 = 'San Jose, California, USA' Y.TEMP_TXT7 = '(408)723-9044' Y.TEMP_CNT = 1 @ 07,40 SAY ' ' DO WHILE Y.TEMP_CNT <= 7 IF Y.TEMP_CNT = 3 OR Y.TEMP_CNT = 5 Y.TEMP_JMP = 2 ELSE Y.TEMP_JMP = 1 ENDIF Y.TEMP_CEXP = "Y.TEMP_TXT"+STR(Y.TEMP_CNT,1) Y.TEMP_ROW = 40 - (LEN(&Y.TEMP_CEXP)/2) @ ROW()+Y.TEMP_JMP,Y.TEMP_ROW SAY &Y.TEMP_CEXP INC Y.TEMP_CNT ENDDO RELEASE FY ALL &SAYBLINK @ 22,12 SAY CENTER('LOADING PLEASE WAIT.....',78) &SAYNORMAL SET PROCEDURE TO DBLABEL DO SETMACH DO MAILABEL SET PROCEDURE TO ASSIGN TRAP(F),TRAPFILE('') SET DEFAULT TO SET PRINT OFF CLOSE ALL RELEASE ALL RELEASE FZ ALL RELEASE FY ALL RELEASE FX ALL RETURN ************************************************ *MACHINE DEPENDENT ITEMS ************************************************ **************** PROCEDURE SETMACH ****************** *ATARI X.HELP_BAR = 'Select with mouse. Click again to activate. Cancel: Return to prior menu.' X.HELP_KEY=188 X.HELP_TXT='HELP=F2' X.PREV_KEY=195 X.PREV_TXT='PREV.=F9' X.NEXT_KEY=196 X.NEXT_TXT='NEXT=F10' X.DEL_KEY=190 X.DEL_TXT='DELETE=F4' X.ERASE_KEY=194 X.ERASE_TXT='ERASE=F8' X.FIND_KEY=187 X.FIND_TXT='FIND=F1' X.SAVE_KEY=193 X.SAVE_TXT='SAVE=F7' X.PGDN_KEY = RANK("C")-64 X.PGDN_TXT = "Page Down=^C" X.PGUP_KEY = RANK("R")-64 X.PGUP_TXT = "Page Up=^R" RETURN *************** PROCEDURE VMENOPT ****************** &SAYREVERSE @ 24,00 ESAY CENTER('Select "Cancel" to return to Main Menu.',79) &SAYNORMAL X.CANCEL_NO = TOKENS('|',Z.VMENU_TEXT) + 2 Z.VMENU_TEXT = Z.VMENU_TEXT+'|"Cancel"' ASSIGN MMENU(Z.V_MROW,Z.V_MCOL,1,Z.V_COL,Z.V_NUM,'|',Z.VMENU_TEXT) RETURN ********* PROCEDURE GETVMENU ********* * Z.MSG1_TEXT * Z.VMENU_TEXT = MENU ITEMS * Z_VMENU_COL = THE COL ADR WITHIN THE BOX ********* DO WHILE T @ 8,0 ERASE &SAYREVERSE @ 24,00 ESAY CENTER('Select "Cancel" to return to Main Menu.',79) &SAYNORMAL ASSIGN BOX(8,20,20,60,201,187,200,188,186,205) @ 9,21 SAY CENTER(Z.MSG1_TEXT,39) X.CANCEL_NO = TOKENS('|',Z.VMENU_TEXT) + 2 Z.VMENU_TEXT = Z.VMENU_TEXT+'|"Cancel"' ASSIGN MMENU(11,(20+Z.VMENU_COL-1),1,(40-Z.VMENU_COL-Z.VMENU_COL),; 1,'|',Z.VMENU_TEXT) DO CASE CASE VMENU() = X.CANCEL_NO RETURN TO DLABEL CASE VMENU() > 40 DO HELP LOOP OTHERWISE EXIT ENDCASE ENDDO RETURN | ************* END OF GETVMENU ************ ****************** PROCEDURE GETHMENU ****************** *\THIS PROGRAM WILL CREATE A HMENU * FIXED TO MMENU BY MIKE DAUSEND 4-14-87 *ASSIGN MMENU(Z.HMENU_ROW,Z.HMENU_COL,1,2,TOKENS("|",Z.M_TEXT)+2,'|',Z.M_TEXT) @ Z.HMENU_ROW,0 ERASE DO HELPBAR &SAYREVERSE @ Z.HMENU_ROW+4,0 SAY CENTER(Z.H_MSG2,80) &SAYNORMAL @ Z.HMENU_ROW-1,10 SAY CENTER (Z.H_MSG,60) *ASSIGN BOX(Z.HMENU_ROW,1,Z.HMENU_ROW +2,78,201,187,200,188,186,205) * * IF SRCH("Cancel",Z.M_TEXT) = 0 Z.M_TEXT = Z.M_TEXT+'|"Cancel"' ENDIF Y.MENUTOKENS = TOKENS("|",Z.M_TEXT)+1 Y.COUNT_UP = 1 Y.LONGEST = LEN(EXTRACT("|",Z.M_TEXT,Y.COUNT_UP)) INC Y.COUNT_UP DO WHILE Y.COUNT_UP <= Y.MENUTOKENS IF Y.LONGEST < LEN(EXTRACT("|",Z.M_TEXT,Y.COUNT_UP)) Y.LONGEST = LEN(EXTRACT("|",Z.M_TEXT,Y.COUNT_UP)) ENDIF INC Y.COUNT_UP ENDDO Z.HMENU_COL = 38 - ((LEN(Z.M_TEXT)+(Y.MENUTOKENS*4))/2) ASSIGN MMENU(Z.HMENU_ROW,Z.HMENU_COL,1,Y.LONGEST+2,TOKENS("|",Z.M_TEXT)+1,'|',Z.M_TEXT) @ Z.HMENU_ROW,0 ERASE RETURN ****************** PROCEDURE GETPROPT ****************** @ 17,0 ERASE ASSIGN BOX(15,36,23,66,201,187,200,188,186,205) &SAYBRIGHT @ 16,37 SAY CENTER(Z.MSG1_TEXT,28) ASSIGN MMENU(18,Z.M_COL,1,4,1,'|',Z.VMENU_TEXT) @ 5,0 ERASE RETURN **************** PROCEDURE MAILABEL ****************** USE SYSDATA IF CODE = 'N' DO DBINST ELSE X.MHEAD = TRIM(COMPANY) Y.PATH_NAME = TRIM(DDRIVE) IF NOT HDRIVE ERASE @ 10,00 SAY CENTER('Please make sure you have the work disk in drive '+Y.PATH_NAME,78) @ 11,00 SAY CENTER('Press RETURN to continue or ESC to quit.',78) WAIT IF LASTKEY() =27 QUIT ENDIF ENDIF SET DEFAULT DBF TO &Y.PATH_NAME SET DEFAULT NDX TO &Y.PATH_NAME SET DEFAULT MEM TO &Y.PATH_NAME SET DEFAULT TXT TO &Y.PATH_NAME SET DEFAULT SYSTEM TO &Y.PATH_NAME ENDIF CLOSE FP ERASE DO WHILE T Y.H_TITLE = 'MAIN MENU' DO LBLHDG Y.VMENU_TEXT = 'LABEL|MAIL LIST|UTILITY|ABORT' &SAYBRIGHT ASSIGN BOX(19,1,23,78,201,187,200,188,186,205) @ 20,2 SAY CENTER('Please select LABEL to create, modify and print label defenitions.',76) @ 21,2 SAY CENTER('Please select MAIL LIST to create, modify and print addresses.',76) Y.V_COL = 10 Y.V_NUM = 1 Y.V_MROW = 7 Y.V_MCOL = 36 DO VMENOPT DO CASE CASE VMENU() = 1 DO DLABEL CASE VMENU() = 2 DO MAIL SET DELETED ON CASE VMENU() = 3 DO VTOOLS CASE VMENU() = 0 OR VMENU() =4 @ 5,0 ERASE Y.MSG1_TEXT = 'DO YOU REALLY WANT TO QUIT NOW?' Y.VMENU_TEXT = 'YES | NO' Y.VMENU_COL = 17 DO GETVMENU IF VMENU() = 2 OR VMENU() = 0 LOOP ENDIF IF VMENU()= 1 EXIT ENDIF OTHERWISE EXIT ENDCASE ENDDO ERASE RELEASE ALL RELEASE FX ALL RELEASE FY ALL RELEASE FZ ALL RETURN ************** PROCEDURE DLABEL ***************** X.MAIL_LABEL = 'DLABEL' Y.MAIL_LABEL = TRIM(DFLTDRV(DBF))+'LABEL.DBF' IF NOT FILE (Y.MAIL_LABEL) Y.SEL_FILE = 'LABEL.DBF' Y.PATH_NAME = TRIM(DFLTDRV(DBF)) Y.MSG_TEXT = "LABEL.DBF file not found!" Y.RETURN_TO = "MAILABEL" DO FINDFILE SET DEFAULT DBF TO &Y.PATH_NAME SET DEFAULT NDX TO &Y.PATH_NAME SET DEFAULT MEM TO &Y.PATH_NAME SET DEFAULT TXT TO &Y.PATH_NAME SET DEFAULT SYSTEM TO &Y.PATH_NAME ENDIF IF NOT FILE('LABEL.NDX') USE LABEL INDEX ON LABELNAME TO LABEL USE ENDIF USE FJ LABEL INDEX LABEL DO WHILE T ERASE GO FJ TOP Y.H_TITLE = 'LABEL MAIN MENU' X.H_HEAD = '' DO LBLHDG Y.VMENU_TEXT = "CREATE|PRINT|MODIFY|MAIN MENU" Y.V_COL = 10 Y.V_NUM = 1 Y.V_MROW = 7 Y.V_MCOL = 35 DO VMENOPT DO CASE CASE VMENU() = 1 DO CREATELB CASE VMENU() = 2 DO PRINLBL CASE VMENU() = 3 DO MODIFYLB CASE VMENU() = 4 OR VMENU() >41 RETURN TO MAILABEL OTHERWISE ERASE EXIT ENDCASE ENDDO ERASE RETURN ********************* PROCEDURE PRINLBL ********************* SET TOP MARGIN TO 0 SET BOTTOM MARGIN TO 0 SET HEADING TO SET HEADING2 TO SET FOOTER TO SET LEFT MARGIN TO 0 ERASE X.H_HEAD = 'PRINT LABEL' Y.H_TITLE = '' DO LBLHDG DO CHECKLBL DO GETLABEL DO DISPOTIO Y.L_ROW = 12 DO DISPLINE CLEAR GETS IF FILE(TRIM(J.DATAFILE)) USE &J.DATAFILE ELSE Y.MSG_TEXT ="File "+TRIM(J.DATAFILE)+" doesn't exist." Y.PATH_NAME = TRIM(DFLTDRV(DBF)) Y.SEL_FILE = TRIM(J.DATAFILE) Y.RETURN_TO = "DLABEL" DO FINDFILE ENDIF GO TOP X.WIDTH = J.WIDTH X.HEIGHT= J.HEIGHT X.LMARGIN = J.LMARGIN X.LINEPER = J.LINEPER X.LABACROS = J.LABACROS X.LLINE = J.LLINE X.CRITERIA ='&J.FORSPEC' X.LSPACE = J.LSPACE Y.HMENU_ROW = 18 Y.H_MSG = 'ENTER YOUR SELECTION' Y.HMENU_COL = 20 Y.M_TEXT ="CHANGE|CONTINUE|ABORT" Y.H_MSG2 ='Changes you make now will not be saved' DO GETHMENU DO CASE CASE NLIST(HMENU(),0,3,4)>0 CLOSE FP RETURN TO DLABEL CASE HMENU() = 1 DO MODOPTIO CASE HMENU() = 2 GO TOP ENDCASE IF TRIM(X.CRITERIA) = 'ALL' LOCATE ALL ELSE LOCATE FOR &X.CRITERIA IF EOF() &SAYBRIGHT @ 23,1 SAY CENTER('CRITERIA DO NOT MATCH. PRESS RETURN TO CONTINUE.',76) WAIT CLOSE FP ERASE RETURN ENDIF ENDIF DO ALIGNLBL SET ESCAPE OFF @ 5,0 ERASE &SAYBRIGHT SET DEVICE TO SCREEN @ 10,0 SAY CENTER('PRINTING LABELS. PRESS ANY KEY TO STOP PRINTING.',76) &SAYNORMAL SET DEVICE TO PRINT SET ESCAPE OFF SET TOPFORM DO WHILE NOT EOF() Y.L_COUNT = 1 Y.L_ACROSS = 1 DO WHILE Y.L_ACROSS <= X.LABACROS DO WHILE Y.L_COUNT <= X.LINEPER Y.L_LNO = 'Y.L'+STR(Y.L_ACROSS,1)+STR(Y.L_COUNT,1) Y.L_LINE= " &J.LINE"+LTRIM(STR(Y.L_COUNT,2)) &Y.L_LNO = &Y.L_LINE INC Y.L_COUNT ENDDO Y.L_COUNT = 1 INC Y.L_ACROSS CONTINUE ENDDO Y.L_COUNT =1 Y.L_ROW =0 *@ 5,0 ERASE DO WHILE Y.L_COUNT<= X.LINEPER Y.L_COL =X.LMARGIN Y.L_ACROSS=1 DO WHILE Y.L_ACROSS <= X.LABACROS Y.L_LNO = 'Y.L'+STR(Y.L_ACROSS,1)+STR(Y.L_COUNT,1) IF LEN(&Y.L_LNO)<>0 @ Y.L_ROW,Y.L_COL SAY $(&Y.L_LNO,1,(X.WIDTH-X.LMARGIN)) ENDIF Y.L_COL =Y.L_COL + X.WIDTH + X.LSPACE INC Y.L_ACROSS ENDDO INC Y.L_ROW INC Y.L_COUNT ENDDO IF INKEY() <> 0 SET DEVICE TO SCREEN SET ESCAPE ON @ 5,0 ERASE &SAYBRIGHT @ 10,00 SAY CENTER('Printing is stopped. Press ^R to resume printing or any other key to exit.',78) &SAYNORMAL WAIT IF LASTKEY() <> 18 FORMFEED EXIT ENDIF &SAYBRIGHT @ 10,0 SAY CENTER('PRINTING LABELS. PRESS ANY KEY TO STOP PRINTING.',76) &SAYNORMAL SET ESCAPE OFF SET DEVICE TO PRINT ENDIF FORMFEED ENDDO SET ESCAPE ON CLOSE FP SET DEVICE TO SCREEN @ 5,0 ERASE RETURN TO DLABEL ******************* PROCEDURE MODIFYLB ******************* ERASE X.H_HEAD = 'MODIFY LABEL' Y.H_TITLE = 'MAIN MENU' DO LBLHDG DO CHECKLBL DO GETLABEL DO DISPOTIO Y.L_ROW = 12 DO DISPLINE Y.H_MSG2 ='EDIT: Edit a label DELETE: Delete a label ABORT: Abort to main menu' Y.HMENU_ROW = 18 Y.M_TEXT = 'EDIT|DELETE|ABORT' Y.H_MSG = 'ENTER YOUR SELECTIONS' Y.HMENU_COL = 15 DO GETHMENU DO CASE CASE NLIST(HMENU(),0,3,4)>0 RETURN TO DLABEL CASE HMENU() = 1 X.F_NAME = 'DLABEL' DO RELABEL CASE HMENU() = 2 Y.VMENU_TEXT = 'YES|NO' Y.MSG1_TEXT = 'DELETE FILE '+J.LABELNAME Y.VMENU_COL = 17 @ 5,0 ERASE DO GETVMENU IF VMENU() = 1 DELETE FJ PACK FJ ENDIF ENDCASE RETURN ********************* PROCEDURE DISPOTIO ******************** *\THIS PROGRAME WILL DISPLAY THE LABEL OPTIONS ERASE Y.H_TITLE = " LABEL :"+TRIM(J.LABELNAME)+" DATA FILE: " +TRIM(J.DATAFILE) DO LBLHDG CLEAR GETS @ 5,0 SAY "DATAFILE NAME----->"GET J.DATAFILE @ 6,0 SAY "LABEL NAME ------->"GET J.LABELNAME CLEAR GETS @ 6,40 SAY "LABEL WIDTH------->"GET J.WIDTH @ 7,0 SAY "LABEL HEIGHT------>"GET J.HEIGHT @ 7,40 SAY "LEFT MARGIN------->"GET J.LMARGIN @ 8,0 SAY "LINES TO PRINT---->"GET J.LINEPER @ 8,40 SAY "LABELS ACROSS----->"GET J.LABACROS @ 9,0 SAY "LINES BETWEEN----->"GET J.LLINE @ 9,40 SAY "SPACE BETWEEN----->"GET J.LSPACE @ 10,0 SAY "CRITERIA---------->"GET J.FORSPEC RETURN ***************** PROCEDURE RELABEL ***************** DO WHILE T X.LINE_PER = J.LINEPER DO LBLCONT IF VMENU() = 1 X.MAIL_LABEL = 'DLABEL' X.WIDTH = J.WIDTH X.HEIGHT=J.HEIGHT X.LMARGIN=J.LMARGIN X.LSPACE=J.LSPACE X.LABACROS=J.LABACROS X.LLINE=J.LLINE X.LINEPER=J.LINEPER DO GETLOPTN J.WIDTH = X.WIDTH J.HEIGHT=X.HEIGHT J.LMARGIN=X.LMARGIN J.LSPACE=X.LSPACE J.LABACROS=X.LABACROS J.LLINE=X.LLINE J.LINEPER=X.LINEPER CLEAR GETS IF J.LINEPER >X.LINE_PER DO WHILE X.LINE_PER < J.LINEPER INC X.LINE_PER IF X.LINE_PER > 20 EXIT ENDIF Y.LCNT ='LINE' +LTRIM(STR(X.LINE_PER,2)) J.&Y.LCNT ='""' ENDDO ENDIF IF J.LINEPER < X.LINE_PER DO WHILE X.LINE_PER > J.LINEPER IF X.LINE_PER < 1 EXIT ENDIF Y.LCNT = 'LINE'+LTRIM(STR(X.LINE_PER,2)) J.&Y.LCNT = SPACE(60) DEC X.LINE_PER ENDDO ENDIF ENDIF IF VMENU() = 2 IF FILE(TRIM(J.DATAFILE)) USE &J.DATAFILE ELSE @ 23,00 SAY CENTER ("FILE "+TRIM(J.DATAFILE)+ " DOESN'T EXIST",78) @ 24,00 SAY CENTER("PRESS ANY KEY TO CONTINUE",78) WAIT RETURN TO DLABEL ENDIF DO WHILE T @ 5,0 ERASE Y.L_ROW = 5 Y.L_CNT = 1 DO WHILE Y.L_CNT <= J.LINEPER Y.LINECNT = 'LINE'+LTRIM(STR(Y.L_CNT,2)) @ Y.L_ROW,5 SAY Y.LINECNT @ Y.L_ROW,12 GET J.&Y.LINECNT INC Y.L_ROW, Y.L_CNT ENDDO CLEAR GETS Y.L_NO = 1 @ 22,00 ERASE @ 23,0 SAY 'Enter line number to edit.---->'GET Y.L_NO PICTURE"##" READ IF LASTKEY() = 27 RETURN TO &X.F_NAME ENDIF IF Y.L_NO = 0 RETURN TO &X.F_NAME ENDIF IF Y.L_NO > J.LINEPER @ 23,10 ESAY CENTER ("Line number doesn't exist. Press any key to continue.",78) WAIT LOOP ENDIF X.CODE = 'N' X.L_CNT = Y.L_NO X.LINE_CNT = Y.L_NO X.L_LINTEXT = '' X.L_LEXP = SPACE(60) X.L_ROW = 4+ Y.L_NO &SAYREVERSE @ X.L_ROW,12 SAY X.L_LEXP &SAYNORMAL X.LINTEXT = 'LINE'+LTRIM(STR(Y.L_NO,2)) DO EACHLINE IF X.CODE = 'T' | SAVE EXIT ENDIF LOOP ENDDO ENDIF IF VMENU() = 3 DO FORPHRAS J.FORSPEC = X.CRITERIA ENDIF DO DISPLBL DO CASE CASE HMENU() = 0 RETURN TO DLABEL CASE HMENU() = 1 LOOP CASE HMENU() = 2 RETURN TO &X.F_NAME CASE HMENU() = 3 RETURN TO DLABEL ENDCASE ENDDO RETURN ****************** PROCEDURE CHECKLBL ****************** *\THIS PROGRAM WILL CHECK IF THE LABEL FILE IS NOT EMPTY IF LASTREC(FJ)=0 &SAYBRIGHT @ 10,10 SAY CENTER('NO LABELS ARE CREATED',70) @ 11,10 SAY CENTER('Press RETURN to continue.',70) &SAYNORMAL WAIT ERASE RETURN TO DLABEL ENDIF RETURN ****************** PROCEDURE CREATELB ****************** *\THIS PROGRAM WILL CREATE A NEW LABEL IF TYPE ("X.FLD_TEXT")<> "U" | RELEASE OLD FIELD MENU VARS RELEASE X.FLD_TEXT RELEASE X.FLD_TEXT2 ENDIF X.H_HEAD = 'CREATE LABEL' Y.H_TITLE ='' DO LBLHDG IF LASTREC(FJ) > 38 Y.ERR_TEXT = "YOU MAY NOT DEFINE MORE THAN 39 LABELS" DO SHOWERR RETURN ENDIF STORE SPACE(10) TO Y.LABELNAME GO FJ BOTTOM SKIP FJ +1 CLEAR GETS @ 7,1 SAY "ENTER LABELNAME "GET Y.LABELNAME PICTURE"!!!!!!!!!!"GETFILE GETNAME1 @ 23,00 SAY CENTER('Please enter label name to use ',78) @ 24,00 say center('Press ESC to abort to main menu',78) READ IF LASTKEY() <> 13 RETURN TO DLABEL ENDIF ERASE DO LBLHDG Y.SEL_FILE = "*.DBF" Y.PATH_NAME = DFLTDRV(DBF) Y.RETURN_TO = "DLABEL" Y.MSG_TEXT = "Please select a datafile to use." DO FINDFILE J.DATAFILE = Y.SEL_FILE USE FP &Y.SEL_FILE Y.H_TITLE = 'LABEL NAME = '+TRIM(J.LABELNAME)+' DATA FILE = '+TRIM(J.DATAFILE) DO LBLHDG X.MAIL_LABEL = 'DLABEL' X.WIDTH = 35 X.HEIGHT=5 X.LMARGIN=0 X.LSPACE=2 X.LABACROS=1 X.LLINE=1 X.LINEPER=4 DO GETLOPTN J.WIDTH = X.WIDTH J.HEIGHT=X.HEIGHT J.LMARGIN=X.LMARGIN J.LSPACE=X.LSPACE J.LABACROS=X.LABACROS J.LLINE=X.LLINE J.LINEPER=X.LINEPER X.L_LEXP = SPACE(60) DO GETLINE Y.H_TITLE="CRITERIA FOR THE LABEL" DO LBLHDG DO FORPHRAS J.FORSPEC = X.CRITERIA X.F_NAME = 'CREATELB' DO DISPLBL DO CASE CASE HMENU() = 0 RETURN TO DLABEL CASE HMENU() = 1 DO RELABEL CASE HMENU() = 2 APPEND FJ RECORD RETURN TO DLABEL CASE HMENU() = 3 RETURN TO DLABEL ENDCASE RETURN ***************** PROCEDURE DISPLBL ***************** *\THIS PROGRAM WILL DISPLAY A SAMPLE OF THE LABEL. ERASE Y.H_TITLE = 'DISPLAY SAMPLE LABEL '+ J.LABELNAME DO LBLHDG USE &J.DATAFILE GO TOP IF SUBSTR(J.FORSPEC,1,3) = 'ALL' LOCATE ALL ELSE LOCATE FOR &J.FORSPEC IF EOF() @ 6,42 SAY "No records were found to match" @ 7,42 SAY "your criteria. Printing a sample" @ 8,42 SAY "with the first record." ENDIF ENDIF Y.T_COL = 1 Y.T_ROW = 6 Y.B_COL = J.WIDTH Y.B_ROW = 14 DO DRAWBOX Y.L_ROW = 7 Y.L_CNT = 1 DO WHILE Y.L_CNT <= J.LINEPER Y.LINECNT = '&J.LINE'+LTRIM(STR(Y.L_CNT,2)) IF $(&Y.LINECNT,1,1)<>'' @ Y.L_ROW,2 SAY $(&Y.LINECNT,1,(J.WIDTH-2)) ENDIF INC Y.L_ROW , Y.L_CNT ENDDO Y.M_TEXT = "REENTER|SAVE|ABORT" Y.H_MSG = "ENTER YOUR SELECTIONS" Y.H_MSG2= "This is a sample of your label you just created." Y.HMENU_COL = 10 Y.HMENU_ROW= 18 DO GETHMENU RETURN ***************** PROCEDURE GETLINE ***************** *\THIS PROGRAM WILL GET THE CONTENTS FOR A LINE. Y.H_TITLE = '' ERASE DO LBLHDG X.LINECT = J.LINEPER X.L_CNT = 1 DO WHILE X.L_CNT <= X.LINECT X.LINE_CNT = 1 X.L_ROW = 5 @ 5,0 ERASE DO WHILE X.LINE_CNT <11 IF X.L_CNT > X.LINECT EXIT ENDIF X.LINTEXT = 'LINE'+LTRIM(STR(X.L_CNT,2)) X.L_LINTEXT = '' &SAYBRIGHT @ X.L_ROW,5 SAY X.LINTEXT+ ' ' &SAYREVERSE @ X.L_ROW,12 SAY X.L_LEXP &SAYNORMAL DO EACHLINE IF X.CODE = 'T' | SAVE EXIT 2 ENDIF ENDDO ENDDO DO WHILE X.L_CNT <= X.LINECT X.LINTEXT = 'LINE'+LTRIM(STR(X.L_CNT,2)) X.L_LINTEXT = '""' J.&X.LINTEXT = X.L_LINTEXT INC X.L_CNT INC X.LINE_CNT ENDDO RETURN * MIKEX CHECK HERE FOR HMENU ****************** PROCEDURE MODOPTIO ****************** *\THIS PROGRAM WILL MODIFY THE LABEL OPTIONS. DO WHILE T CLEAR GETS @ 17,0 ERASE ASSIGN BOX(17,1,22,78,201,187,200,188,186,205) &SAYREVERSE @ 23,0 SAY CENTER(X.HELP_BAR,76) &SAYNORMAL @ 18,2 SAY CENTER('ENTER YOUR SELECTIONS',76) Y.M_TEXT = 'LABEL WIDTH|LABEL HEIGHT|LEFT MARGIN|LABELS ACROSS|SPACE BETWEEN|LINES BETWEEN|CRITERIA|**NO MORE**' Y.V_MROW = 19 Y.V_MCOL = 1 Y.V_COL = 16 Y.V_NUM = 4 DO VMENOPT DO CASE CASE HMENU() = 1 @ 6,59 GET X.WIDTH PICTURE"99" CASE HMENU() = 2 @ 7,19 GET X.HEIGHT PICTURE"99" CASE HMENU() = 3 @ 7,59 GET X.LMARGIN PICTURE"9" CASE HMENU() = 4 @ 8,59 GET X.LABACROS PICTURE"9" CASE HMENU() = 5 @ 9,59 GET X.LSPACE PICTURE"9" CASE HMENU() = 6 @ 9,19 GET X.LLINE PICTURE"9" CASE HMENU() = 7 @ 10,19 GET X.CRITERIA CASE HMENU() = 8 EXIT CASE HMENU() = 0 OR HMENU() > 40 RETURN TO DLABEL ENDCASE READ IF LASTKEY() <> 13 RETURN TO DLABEL ENDIF IF GETNAME() = "X.CRITERIA" AND TRIM(X.CRITERIA) = '' X.CRITERIA = 'ALL' ENDIF ENDDO RETURN ****************** PROCEDURE DISPLINE ****************** *\THIS PROGRAM WILL DISPLAY THE LINE CONTENTS. Y.L_CNT = 1 Y.LINE_ROW = Z.L_ROW Y.L_ROW = Z.L_ROW Y.LINE_NO = 1 DO WHILE Y.L_CNT <= J.LINEPER @ Y.LINE_ROW, 0 ERASE DO WHILE Y.LINE_NO <= 4 IF Y.L_CNT > J.LINEPER EXIT ENDIF Y.LINECNT = 'LINE'+LTRIM(STR(Y.L_CNT,2)) @ Y.L_ROW,5 SAY Y.LINECNT+' 'GET J.&Y.LINECNT INC Y.L_ROW, Y.L_CNT,Y.LINE_NO ENDDO IF J.LINEPER > 4 @ 23,00 SAY CENTER(X.PGDN_TXT+' For next four lines or '+X.PGUP_TXT+' For the previous four lines',78) @ 24,00 SAY CENTER('or press RETURN to edit',78) WAIT DO CASE CASE LASTKEY() = 13 EXIT CASE LASTKEY() = 209 Y.L_ROW = Y.LINE_ROW Y.LINE_NO = 1 LOOP CASE LASTKEY() = 201 Y.L_ROW = Z.L_ROW Y.LINE_NO = 1 Y.L_CNT = Y.L_CNT - 5 IF Y.L_CNT <1 Y.L_CNT = 1 ENDIF LOOP ENDCASE ENDIF ENDDO RETURN ***************** PROCEDURE DRAWBOX ***************** *\ THIS PROGRAM WILL DRAW A BOX &SAYBRIGHT * ATARI IF Z.T_ROW = 0 Z.T_ROW = 1 ENDIF IF Z.T_COL = 0 Z.T_COL = 1 ENDIF *END ATARI ASSIGN BOX(Z.T_ROW,Z.T_COL,Z.B_ROW,Z.B_COL,201,187,200,188,186,205) &SAYNORMAL RETURN **************** PROCEDURE FLDMEN **************** @ 14,0 ERASE DO HELPBAR IF TYPE('X.FLD_TEXT')='U' Y.F_NO = 1 X.FLD_TEXT = '' X.FLD_TEXT2 = '' DO WHILE Y.F_NO < 25 IF LEN(EXTRACT(',',FIELDSPEC(FP,Y.F_NO),1))= 0 EXIT ENDIF X.FLD_TEXT = X.FLD_TEXT + EXTRACT(',',FIELDSPEC(FP,Y.F_NO),1)+","+EXTRACT(',',FIELDSPEC(FP,Y.F_NO),2)+"|" INC Y.F_NO ENDDO DO WHILE Y.F_NO < 40 IF LEN(EXTRACT(',',FIELDSPEC(FP,Y.F_NO),1))= 0 EXIT ENDIF X.FLD_TEXT2 = X.FLD_TEXT2 + EXTRACT(',',FIELDSPEC(FP,Y.F_NO),1)+","+EXTRACT(',',FIELDSPEC(FP,Y.F_NO),2)+"|" INC Y.F_NO ENDDO X.FLD_TEXT2 = X.FLD_TEXT2+'"Cancel"' ENDIF &SAYREVERSE *@ 24,00 ESAY CENTER('Select "Cancel" to return to Main Menu.',79) @ 14,00 ESAY CENTER("Please select field. Field Types: C=Character N=Number D=Date L=Logical",80) &SAYNORMAL X.CANCEL_NO = TOKENS('|',X.FLD_TEXT) + TOKENS('|',X.FLD_TEXT2) + 1 ASSIGN MMENU(16,1,1,14,5,'|',X.FLD_TEXT,X.FLD_TEXT2) IF HMENU() >=1 Y.CHOICE = HMENU() X.FIELD_NAME = EXTRACT(',',FIELDSPEC(FP,Y.CHOICE),1) X.FIELD_TYPE = EXTRACT(',',FIELDSPEC(FP,Y.CHOICE),2) X.FIELD_LEN = VAL(EXTRACT(',',FIELDSPEC(FP,Y.CHOICE),3)) X.FIELD_DEC = VAL(EXTRACT(',',FIELDSPEC(FP,Y.CHOICE),4)) ENDIF X.R_QUIT = 'N' IF HMENU() = X.CANCEL_NO X.R_QUIT = 'Y' ENDIF @ 14,0 ERASE RETURN ****************** PROCEDURE FORPHRAS ****************** Y.MSG1_TEXT = 'CREATE A SELECTION' Y.VMENU_TEXT = 'ALL RECORDS|CREATE SELECTIONS' Y.VMENU_COL = 10 DO GETVMENU DO CASE CASE VMENU() = 1 X.CRITERIA ='ALL' CASE VMENU() = 2 @ 5,0 ERASE @ 5,0 SAY CENTER('CRITERIA FOR THE LABEL',78) X.CMD_LINE = '' DO SHOWCMD1 DO GETEXP DO WHILE LEN(TRIM(X.PRG_LINE)) <61 @ 8,00 ERASE Y.MSG1_TEXT = 'CREATE A SELECTION' Y.VMENU_TEXT = ' NO FURTHER SELECTIONS|CONTINUE WITH AND|CONTINUE WITH OR' Y.VMENU_COL = 9 DO GETVMENU DO CASE CASE VMENU() = 1 X.CRITERIA = X.CMD_LINE EXIT CASE VMENU() = 2 X.CMD_LINE = X.CMD_LINE + ' AND ' CASE VMENU() = 3 X.CMD_LINE = X.CMD_LINE + ' OR ' ENDCASE DO GETEXP ENDDO ENDCASE RETURN **************** PROCEDURE GETEXP **************** @ 8,0 ERASE DO FLDMEN @ 10,00 ERASE IF HMENU() = 0 OR HMENU() > 40 RETURN TO DLABEL ENDIF X.CMD_LINE = X.CMD_LINE +X.FIELD_NAME DO SHOWCMD1 DO GETRELOP DO GETVALUE RETURN ****************** PROCEDURE GETLABEL ****************** *\THIS PROGRAME WILL GET THE LABELNAME AND THE DATAFILE NAME. *FIXED FOR MMMENU 4-17-87 MIKE GO FJ TOP Y.FIELD_NO = 1 Y.M_TEXT = '' DO WHILE Y.FIELD_NO < 41 AND NOT EOF(FJ) Y.M_TEXT = Y.M_TEXT + TRIM(J.LABELNAME) +'|' INC Y.FIELD_NO SKIP FJ ENDDO Y.M_TEXT = Y.M_TEXT +'"Cancel"' Y.HMENU_ROW = 8 Y.H_MSG = "PLEASE SELECT LABEL" Y.H_MSG2 = "PLEASE HAVE DATA FILE READY BEFORE SELECTING LABEL" DO GETHMENU X.FLD_NAME = EXTRACT('|',Y.M_TEXT,HMENU()) IF HMENU() = 0 OR HMENU() > 41 OR X.FLD_NAME = '"Cancel"' RETURN TO DLABEL ENDIF FIND FJ X.FLD_NAME *GO FJ HMENU() IF NOT FILE(TRIM(J.DATAFILE)) Y.ERR_TEXT = "File "+J.DATAFILE-" doesn't exist. Please press any key to continue." DO SHOWERR RETURN ENDIF USE &J.DATAFILE RETURN ****************** PROCEDURE GETLOPTN ****************** *\THIS PROGRAME WILL GET LABEL OPTIONS. DO WHILE T @ 5,0 ERASE @ 7,21 SAY CENTER('LABEL OPTIONS',39) DO HELPBAR Y.VMENU_TEXT =' 3 1/2" 15/16" 1 | 3 1/2" 15/16" 2 | 3 1/2" 15/16" 3 | 4" 1 7/16" 1 | 3 1/16" 11/12" 3 | OTHER OPTIONS' Y.MSG1_TEXT= ' WIDTH HEIGHT # ACROSS' Y.VMENU_COL = 4 DO GETVMENU Y.L_TEXT = VMENU() Y.LAB_TEXT = EXTRACT('|',Y.VMENU_TEXT,Y.L_TEXT) DO CASE CASE VMENU() = 0 RETURN TO &X.MAIL_LABEL CASE VMENU() = 1 X.LSPACE=0 DO LOPTION CASE VMENU() = 2 X.LABACROS = 2 DO LOPTION CASE VMENU() = 3 X.LABACROS = 3 DO LOPTION CASE VMENU() = 4 X.LABACROS = 1 X.WIDTH = 40 X.HEIGHT=8 X.LSPACE=0 DO LOPTION CASE VMENU() = 5 X.WIDTH = 32 X.LSPACE = 2 X.LABACROS =3 DO LOPTION CASE VMENU() = 6 DO LABOPTN2 ENDCASE Y.MSG1_TEXT = "DO YOU WANT TO REENTER " Y.VMENU_TEXT = "NO|YES" Y.M_COL = 51 DO GETPROPT DO CASE CASE VMENU() = 1 EXIT CASE VMENU() = 2 LOOP CASE VMENU() = 0 RETURN TO &X.MAIL_LABEL ENDCASE ENDDO RETURN ***************** PROCEDURE GETNAME1 ****************** IF LASTKEY() = 13 IF LEN(Y.LABELNAME) = 0 &SAYBRIGHT @ 24,00 SAY 'PLEASE ENTER A NAME FOR THE LABEL. PRESS RETURN TO CONTINUE OR ^Q TO QUIT.' &SAYNORMAL WAIT IF LASTKEY() = 13 ASSIGN USERSTAT(0) ELSE ASSIGN USERSTAT(255) RETURN ENDIF @ 24,00 ELSE Y.NUM = RECNO(FJ) GO FJ TOP LOCATE FJ FOR J.LABELNAME = Y.LABELNAME IF NOT EOF(FJ) &SAYBRIGHT @ 24,00 ESAY 'LABEL NAME ALREADY EXISTS. PRESS RETURN TO REENTER OR ^Q TO QUIT.' &SAYNORMAL WAIT @ 24,00 IF LASTKEY() =17 ASSIGN USERSTAT(255) RETURN ENDIF GO FJ Y.NUM ASSIGN USERSTAT(0) ELSE GO FJ Y.NUM J.LABELNAME = Y.LABELNAME ASSIGN USERSTAT(255) ENDIF ENDIF ELSE ASSIGN USERSTAT (255) RETURN ENDIF RETURN ****************** PROCEDURE GETNAME2 ****************** IF LASTKEY() = 13 IF LEN(TRIM(J.DATAFILE)) = 0 &SAYBRIGHT @ 23,00 ESAY "PLEASE ENTER THE NAME OF THE DATABASE YOU WANT TO USE TO CREATE THE LABEL." @ 24,00 SAY " PRESS RETURN TO REENTER OR ^Q TO QUIT." &SAYNORMAL WAIT IF LASTKEY() = 17 ASSIGN USERSTAT(255) RETURN ENDIF ASSIGN USERSTAT(0) @ 23,0 @ 24,0 ENDIF J.DATAFILE = !(J.DATAFILE) IF SRCH('.',J.DATAFILE) = 0 Y.DATAFILE =LTRIM(TRIM(J.DATAFILE))+ '.DBF' ENDIF IF FILE(Y.DATAFILE) USE &J.DATAFILE RETURN ELSE &SAYBRIGHT @ 23,00 SAY "DATABASE FILE DOESN'T EXIST.PRESS RETURN TO REENTER OR ^Q TO QUIT." WAIT &SAYNORMAL IF LASTKEY() = 17 ASSIGN USERSTAT(255) RETURN ENDIF ASSIGN USERSTAT(0) @ 23,0 ENDIF ELSE ASSIGN USERSTAT(255) RETURN ENDIF RETURN ****************** PROCEDURE GETNAME3 ****************** *\CHECK FOR VALID NO OF LINES TO PRINT IF LASTKEY() <>27 IF X.LINEPER >X.HEIGHT &SAYBRIGHT @ 23,00 SAY CENTER('THIS IS NOT A VALID NUMBER. LINES TO PRINT ARE GREATER THAN HEIGHT',78) &SAYNORMAL WAIT ASSIGN USERSTAT(0) ENDIF IF J.LINEPER > 20 &SAYBRIGHT @ 23,00 SAY CENTER('THIS IS NOT A VALID NUMBER. MAXIMUM LINES TO PRINT ARE 20',78) &SAYNORMAL ASSIGN USERSTAT(0) ENDIF ENDIF @ 23,00 RETURN ****************** PROCEDURE GETNAME4 ****************** *\ CHECK FOR VALID LEFT MARGIN IF LASTKEY() <>27 IF X.LMARGIN > X.WIDTH &SAYBRIGHT @ 23,00 SAY CENTER('LEFTMARGIN IS GREATER THAN LABEL WIDTH. PRESS RETURN TO REENTER.',76) WAIT &SAYNORMAL ASSIGN USERSTAT(0) ENDIF ENDIF RETURN ***************** PROCEDURE GETREAD ***************** @ 24,00 DO WHILE T &SAYBRIGHT ASSIGN BOX(11,20,20,60,201,187,200,188,186,205) @ 12,21 SAY SPACE(39) @ 13,21 SAY SPACE(39) @ 14,21 SAY SPACE(39) @ 15,21 SAY SPACE(39) @ 16,21 SAY SPACE(39) @ 17,21 SAY SPACE(39) @ 18,21 SAY SPACE(39) @ 19,21 SAY SPACE(39) @ 12,21 SAY CENTER(Z.MSG1_TEXT,39) &SAYNORMAL @ 13,21 SAY CENTER(Z.MSG2_TEXT,39) @ 15,21 SAY CENTER('Press ESC to abort',39) @ 17,23 GET &Z.GET_TEXT READ DO CASE CASE LASTKEY() = 27 RETURN TO DLABEL CASE LASTKEY() = X.HELP_KEY *DO HELP LOOP OTHERWISE EXIT ENDCASE ENDDO RETURN | ************* END OF GETREAD ************ ****************** PROCEDURE GETRELOP ****************** IF X.FIELD_TYPE ='L' RETURN ENDIF Y.MSG1_TEXT = 'PLEASE SELECT AN OPERATOR' Y.VMENU_TEXT = '= EQUAL TO|<= LESS THAN OR EQUAL TO|< LESS THAN|> GREATER THAN|>= GREATER THAN OR EQUAL TO|<> NOT EQUAL TO' Y.VMENU_COL = 7 DO WHILE T @ 10,00 ERASE DO GETVMENU DO CASE CASE VMENU() = 0 OR VMENU()>40 LOOP CASE VMENU() = 1 X.CMD_LINE = X.CMD_LINE + "=" CASE VMENU() = 2 X.CMD_LINE = X.CMD_LINE + "<=" CASE VMENU() = 3 X.CMD_LINE = X.CMD_LINE + "<" CASE VMENU() = 4 X.CMD_LINE = X.CMD_LINE + ">" CASE VMENU() = 5 X.CMD_LINE = X.CMD_LINE + ">=" CASE VMENU() = 6 X.CMD_LINE = X.CMD_LINE + "<>" ENDCASE EXIT ENDDO DO SHOWCMD1 RETURN ****************** PROCEDURE GETVALUE ****************** DO CASE CASE X.FIELD_TYPE ="C" DO WHILE T X.GET_VAR = SPACE (20) Y.MSG1_TEXT = '' Y.MSG2_TEXT = 'ENTER CHARACTER STRING (NO QUOTES)' Y.GET_TEXT = 'X.GET_VAR' DO GETREAD IF SRCH('"',X.GET_VAR)>0 @ 24,0 SAY ' PLEASE RE-ENTER A STRING WITHOUT QUOTES' LOOP ENDIF X.CMD_LINE = X.CMD_LINE +'"'+TRIM (X.GET_VAR)+'"' EXIT ENDDO CASE X.FIELD_TYPE = 'D' DO WHILE T X.GET_VAR ={//} Y.MSG1_TEXT = '' Y.MSG2_TEXT = 'PLEASE ENTER A DATE.' Y.GET_TEXT = 'X.GET_VAR' DO GETREAD X.CMD_LINE = X.CMD_LINE +'{'+DTOC(X.GET_VAR)+'}' EXIT ENDDO CASE X.FIELD_TYPE = 'N' X.GET_PIC = DUPCHAR(35,X.FIELD_LEN + 1) X.GET_PIC = MIDSTR('.',X.GET_PIC,(X.FIELD_LEN -X.FIELD_DEC)+1) DO WHILE T X.GET_VAR = VAL(STR(0,X.FIELD_LEN,X.FIELD_DEC)) Y.MSG1_TEXT = '' Y.MSG2_TEXT = 'PLEASE ENTER A NUMBER.' Y.GET_TEXT = 'X.GET_VAR PICTURE X.GET_PIC' DO GETREAD X.CMD_LINE = X.CMD_LINE + LTRIM(STR(X.GET_VAR,X.FIELD_LEN,X.FIELD_DEC)) + ' ' EXIT ENDDO CASE X.FIELD_TYPE = 'L' DO WHILE T Y.MSG1_TEXT = 'PLEASE SELECT' Y.VMENU_TEXT = X.FIELD_NAME + '= YES|'+X.FIELD_NAME+'=NO' Y.VMENU_COL = 13 DO GETVMENU IF VMENU() = 2 Y.LENFLD = LEN(X.FIELD_NAME) Y.LENCMD = LEN(X.CMD_LINE) X.CMD_LINE = MIDSTR(SPACE(Y.LENFLD),X.CMD_LINE,Y.LENCMD - Y.LENFLD +) X.CMD_LINE = X.CMD_LINE - 'NOT' + X.FIELD_NAME ENDIF X.CMD_LINE = X.CMD_LINE + ' ' EXIT ENDDO ENDCASE DO SHOWCMD1 RETURN **************** PROCEDURE HELPBAR **************** *\THIS PROGRAME WILL DISPLAY A HELP BAR AT THE BOTTOM. *\X.HELP_BAR &SAYREVERSE @ 24,01 SAY CENTER(X.HELP_BAR,78) &SAYNORMAL RETURN ****************** PROCEDURE LABOPTN2 ****************** ERASE Y.H_TITLE = "LABEL : "+ J.LABELNAME +" DATA FILE: "+J.DATAFILE ASSIGN BOX(15,1,20,78,201,187,200,188,186,205) DO LBLHDG @ 16,2 SAY CENTER('ENTER THE LABEL OPTIONS ',76) @ 17,2 SAY CENTER('Enter WIDTH, SPACE BETWEEN and LEFT MARGIN in number of columns.',76) @ 18,2 SAY CENTER('Enter total no. of line count for HEIGHT of the label. You can print ',76) @ 19,2 SAY CENTER('up to 20 lines on a label. Enter only the no. of lines you want to print. ',76) &SAYBRIGHT ASSIGN BOX(5,1,14,35,201,187,200,188,186,205) &SAYREVERSE @ 6,1 SAY CENTER(Z.LAB_TEXT,33) &SAYNORMAL CLEAR GETS DO WHILE T @ 7,1 SAY CENTER('WIDTH OF THE LABEL : ',27)GET X.WIDTH PICTURE "##" @ 8,1 SAY CENTER('HEIGHT OF THE LABEL : ',27)GET X.HEIGHT PICTURE "##" @ 9,1 SAY CENTER('LEFT MARGIN OF THE LABEL : ',27)GET X.LMARGIN PICTURE "#"GETFILE GETNAME4 @ 10,1 SAY CENTER('SPACE BETWEEN LABELS : ',27)GET X.LSPACE PICTURE "#" @ 11,1 SAY CENTER('LINES BETWEEN LABELS :',27)GET X.LLINE PICTURE "#" @ 12,1 SAY CENTER('LABELS ACROSS : ',27)GET X.LABACROS PICTURE "#" IF X.MAIL_LABEL <> 'MAIL' @ 13,1 SAY CENTER('LINES TO PRINT : ',27)GET X.LINEPER PICTURE "##"GETFILE GETNAME3 ENDIF READ IF LASTKEY() = 27 RETURN TO DLABEL ENDIF @ 15,0 ERASE IF LASTKEY() = 13 EXIT ENDIF ENDDO RETURN **************** PROCEDURE LBLHDG **************** IF TYPE("Z.MAIL")="U" ERASE ENDIF &SAYBRIGHT ASSIGN BOX(1,1,5,79,201,187,200,188,186,205) @ 1,1 SAY CENTER(X.MHEAD,76) @ 2,1 SAY CENTER(X.H_HEAD,76) @ 3,1 SAY CENTER(Z.H_TITLE,76) &SAYNORMAL RETURN ***************** PROCEDURE LINREPT ***************** *\CHECK FOR EXPRESSION GREATER THAN LABEL WIDTH DO WHILE LEN(X.L_LINTEXT) >61 &SAYBRIGHT @ 23,00 SAY CENTER('THIS EXPRESSION IS VERY LARGE. PLEASE REENTER',76) &SAYNORMAL X.L_LINTEXT = MIDSTR(X.L_LINTEXT,X.L_LEXP,1) @ X.L_ROW,12 GET X.L_LINTEXT READ IF LASTKEY() = 27 RETURN TO DLABEL ENDIF ENDDO RETURN ***************** PROCEDURE LOPTION ***************** Y.H_TITLE = 'LABEL OPTIONS' ERASE DO LBLHDG &SAYBRIGHT ASSIGN BOX(5,0,15,36,201,187,200,188,186,205) &SAYREVERSE @ 6,1 SAY CENTER(Z.LAB_TEXT,33) &SAYNORMAL @ 7,1 SAY 'WIDTH OF LABEL :'+STR(X.WIDTH,2) @ 8,1 SAY 'HEIGHT OF LABEL :'+STR(X.HEIGHT,2) @ 9,1 SAY 'LEFT MARGIN :'+STR(X.LMARGIN,1) @ 10,1 SAY 'NO. OF LINES TO PRINT :'+STR(X.LINEPER,1) @ 11,1 SAY 'NO. OF LABELS ACROSS :'+STR(X.LABACROS,1) @ 12,1 SAY'SPACE BETWEEN LABELS :'+STR(X.LSPACE,1) @ 13,1 SAY'LINE BETWEEN LABELS :'+STR(X.LLINE,1) RETURN ****************** PROCEDURE MAINQUIT ****************** IF VMENU() = 0 OR VMENU() = 2 LOOP ENDIF IF VMENU()= 1 ERASE RELEASE ALL ERASE EXIT ENDIF RETURN ***************** PROCEDURE SAYLINE ***************** *\ THIS PROGRAM WILL DISPLAY THE CONTENTS OF EACH LINE &SAYREVERSE @ X.L_ROW,12 SAY MIDSTR(X.L_LINTEXT,X.L_LEXP,1) &SAYNORMAL RETURN ****************** PROCEDURE SHOWCMD1 ****************** &SAYBRIGHT @ 6,00 ESAY "CRITERIA :"+X.CMD_LINE &SAYNORMAL RETURN ****************** PROCEDURE SHOWMSG1 ****************** &SAYBLINK @ 24,5 ESAY Z.MSG1_TEXT &SAYNORMAL RETURN ****************** PROCEDURE SHOWYESN ****************** Y.MSG1_TEXT = Z.MSG1_TEXT RETURN ***************** PROCEDURE STRLINE ***************** *VALIDATE LINES 1210-87 DO LINREPT IF TRIM(X.L_LINTEXT)<>'' | CHECK IF LAST CHAR = + Y.N_NUM = LEN(TRIM(X.L_LINTEXT)) IF $(X.L_LINTEXT,Y.N_NUM,1) = '+' X.L_LINTEXT = $(X.L_LINTEXT,1,Y.N_NUM-1) ENDIF ELSE J.&X.LINTEXT = X.L_LINTEXT INC X.L_CNT INC X.L_ROW INC X.LINE_CNT X.R_CODE ='T' ENDIF IF TYPE(X.L_LINTEXT) = "C" J.&X.LINTEXT = X.L_LINTEXT INC X.L_CNT INC X.L_ROW INC X.LINE_CNT X.R_CODE ='T' ELSE &SAYBRIGHT @ 22,00 SAY 'THIS IS NOT A VALID EXPRESSION. PLEASE REENTER' &SAYNORMAL X.L_LINTEXT = MIDSTR(X.L_LINTEXT,X.L_LEXP,1) @ X.L_ROW,12 GET X.L_LINTEXT READ X.R_CODE ='N' IF LASTKEY() = 27 RETURN TO DLABEL ENDIF ENDIF RETURN ****************** PROCEDURE LBLCONT ******************* Y.MSG1_TEXT = 'ENTER YOUR SELECTION' Y.VMENU_TEXT ='LABEL OPTIONS|LABEL LINES|CRITERIA' Y.M_COL = 44 DO HELPBAR DO GETPROPT IF VMENU() = 27 RETURN TO DLABEL ENDIF RETURN ******************** PROCEDURE EACHLINE ******************** * REWRITTEN 12-10-87 MWD * INPUT LINE TO WORK ON IS KEPT IN X.L_LINTEXT ROW IS X.L_ROW * X.L_CNT DO WHILE T @ 22,00 Y.LTEXT = X.L_LEXP | X.L_LEXP IS BLANK LABEL LINE FOR ENTER TEXT OPTION CLEAR GETS Y.HMENU_COL = 13 Y.HMENU_ROW = 17 Y.H_MSG = 'PLEASE ENTER YOUR SELECTIONS FOR EACH LINE OF THE LABEL' Y.M_TEXT = "TEXT|FIELD|SPACE|EDIT|NEXT|SAVE" Y.H_MSG2 = 'NEXT: Next line, SAVE: Save label, Cancel: Main menu EDIT: EDIT or Type in data' DO GETHMENU DO CASE CASE HMENU() = 0 OR HMENU() >= 7 RETURN TO DLABEL CASE HMENU() = 1 @ 22,5 ESAY "PLEASE ENTER YOUR TEXT (no quotes)----->"GET Y.LTEXT PICTURE DUPCHAR(33,J.WIDTH) READ @ 22,0 IF LASTKEY()<>13 LOOP ENDIF X.L_LINTEXT = X.L_LINTEXT+'"'+Y.LTEXT-'"' DO SAYLINE CASE HMENU() = 2 DO FLDMEN IF X.R_QUIT ='Y' LOOP ENDIF DO CASE CASE X.FIELD_TYPE = 'C' X.L_LINTEXT = X.L_LINTEXT +"TRIM("+ X.FIELD_NAME+")" CASE X.FIELD_TYPE = 'N' X.L_LINTEXT = X.L_LINTEXT + "STR("+ X.FIELD_NAME+","+ STR(X.FIELD_LEN,2)+","+STR(X.FIELD_DEC,1)+")" CASE X.FIELD_TYPE = 'L' X.L_LINTEXT = X.L_LINTEXT + "LTOC("+ X.FIELD_NAME+")" CASE X.FIELD_TYPE = 'D' X.L_LINTEXT = X.L_LINTEXT + "DTOC("+ X.FIELD_NAME+")" ENDCASE DO SAYLINE @ 14,0 ERASE CASE HMENU() = 3 Y.SPACE = 0 @ 22 ,5 ESAY "HOW MANY SPACES ?----->" GET Y.SPACE PICTURE "##" READ @ 22,0 IF LASTKEY()<>13 LOOP ENDIF IF Y.SPACE < 8 X.L_LINTEXT =X.L_LINTEXT +'"'+ SPACE(Y.SPACE) +'"' ELSE X.L_LINTEXT =X.L_LINTEXT +'SPACE('+LTRIM(STR(Y.SPACE,2))+')+' ENDIF DO SAYLINE CASE HMENU() = 4 Y.E_LTEXT = MIDSTR(X.L_LINTEXT,X.L_LEXP,1) @ X.L_ROW,12 GET Y.E_LTEXT READ IF LASTKEY()<>13 LOOP ENDIF X.L_LINTEXT = TRIM(Y.E_LTEXT) CASE HMENU() = 5 X.CODE ='N' DO STRLINE IF X.R_CODE = 'T' EXIT ENDIF CASE HMENU() = 6 IF TRIM(X.L_LINTEXT) <> '' DO STRLINE IF X.R_CODE = 'T' X.CODE = 'T' EXIT ENDIF ELSE LOOP ENDIF ENDCASE Y.S_LOC = LEN(TRIM(X.L_LINTEXT)) Y.S_STRING = $(X.L_LINTEXT,Y.S_LOC,1) IF Y.S_STRING <>'+' X.L_LINTEXT =X.L_LINTEXT+"+" ENDIF ENDDO RETURN ************** PROCEDURE MAIL ************** SET TALK OFF * MAIL.PRG 2-22-86 VERSASOFT INC. * BY MIKE DAUSEND * GLOBAL VARIABLES * SET ESCAPE OFF X.MAIL_LABEL = 'MAIL' IF NOT FILE ('MAILLIST.DBF') Y.SEL_FILE = 'MAILLIST.DBF' Y.PATH_NAME = TRIM(DFLTDRV(DBF)) Y.MSG_TEXT = "MAILLIST.DBF file not found!" Y.RETURN_TO = "MAILABEL" DO FINDFILE SET DEFAULT DBF TO &Y.PATH_NAME SET DEFAULT NDX TO &Y.PATH_NAME SET DEFAULT MEM TO &Y.PATH_NAME SET DEFAULT TXT TO &Y.PATH_NAME SET DEFAULT SYSTEM TO &Y.PATH_NAME ENDIF USE MAILLIST IF NOT FILE('MAILNAME.NDX') INDEX ON LAST_NAME+FIRST_NAME TO MAILNAME ENDIF IF NOT FILE('MAILCOMP.NDX') INDEX ON COMPANY+LAST_NAME+FIRST_NAME TO MAILCOMP ENDIF IF NOT FILE('MAILZIP.NDX') INDEX ON ZIP TO MAILZIP ENDIF USE ERASE SET DELETED OFF DO WHILE T ERASE Y.H_TITLE = 'MAIN MENU' X.H_HEAD = 'MAIL LIST' DO LBLHDG Y.VMENU_TEXT='ADD NAMES TO MAIL LIST|CHANGE OR DELETE NAMES IN MAIL LIST|PRINT MAIL LABELS|REMOVE DELETED RECORDS|MAIN MENU|HELP' Y.V_COL = 35 |LONGEST CHOICE Y.V_NUM = 1 Y.V_MCOL = 40 - (Y.V_COL/2) Y.V_MROW = 7 DO VMENOPT DO CASE CASE VMENU() = 1 | ADD DO MAILADD CASE VMENU() = 2 | CHANGE OR DELETE DO MAILCHG CASE VMENU() = 3 | PRINT SET DELETED ON DO MAILPRNT SET DELETED OFF CASE VMENU() = 4 | REMOVE DO MAILRMV CASE NRANGE(VMENU(),40,45) OR VMENU() = 6 | HELP DO MAILMNH OTHERWISE ERASE SET DELETED ON RETURN ENDCASE ENDDO SET DELETED ON RETURN **************** PROCEDURE MAILADD ***************** SET TALK OFF * ADDS A RECORD TO MAILLIST.DBF ******FILES******* USE MAILLIST INDEX MAILNAME,MAILCOMP,MAILZIP DO WHILE T STORE T TO Y.RECBAD | MAIN LOOP STORE T TO Y.NOANSWER | CHECK ANSWER LOOPS STORE ' ' TO Y.OK | CHECKANSWER VARIABLE STORE 1 TO Y.READNO | GET NUMBER OFFSET FOR READ X.ADD = T | THIS IS NOT THE ADD PROGRAM STORE SPACE(10) TO Y.FIRST_NAME STORE SPACE(20) TO Y.LAST_NAME,Y.CITY STORE SPACE(40) TO Y.COMPANY,Y.ADDRESS1,Y.ADDRESS2 STORE SPACE(2) TO Y.STATE STORE SPACE(10) TO Y.ZIP STORE SPACE(12) TO Y.PHONE DO WHILE Y.RECBAD ********* PAINT SCREEN ************ Y.H_TITLE = 'ADD MAIL LIST' ERASE DO LBLHDG &SAYBRIGHT ASSIGN BOX(7,1,19,78,201,187,200,188,186,205) &SAYNORMAL @ 08,02 SAY 'NAME :' GET Y.FIRST_NAME PICTURE DUPCHAR(33,10) @ ROW(),COL()+5 SAY 'LAST NAME :' GET Y.LAST_NAME PICTURE DUPCHAR(33,20) @ 10,02 SAY 'COMPANY :' GET Y.COMPANY PICTURE DUPCHAR(33,40) @ 12,02 SAY 'ADDRESS1 :' GET Y.ADDRESS1 PICTURE DUPCHAR(33,40) @ 14,02 SAY 'ADDRESS2 :' GET Y.ADDRESS2 PICTURE DUPCHAR(33,40) @ 16,02 SAY 'CITY :' GET Y.CITY PICTURE DUPCHAR(33,20) @ ROW(),COL()+3 SAY 'STATE :' GET Y.STATE PICTURE "UU" GETFILE MAILSTCK @ ROW(),COL()+3 SAY 'ZIP :' GET Y.ZIP PICTURE "##########" @ 18,02 SAY 'PHONE :' GET Y.PHONE PICTURE "###-###-####" &SAYREVERSE @ 21,00 SAY CENTER(X.HELP_TXT+' '+X.SAVE_TXT+' '+X.ERASE_TXT+' ESC TO QUIT',79) &SAYNORMAL @ 24,00 READ GETNO Y.READNO *********** ADDRESS FUNCTION KEY SECTION ************* * HELP QUIT SAVE ERASE DO CASE ******** HELP********** CASE LASTKEY()=X.HELP_KEY | HELP Y.READNO = GETNO() DO MAILADDH LOOP ******QUIT********** CASE LASTKEY() = 27 | QUIT CLOSE ALL RETURN ********SAVE********** CASE LASTKEY() = X.SAVE_KEY | SAVE SECTION STORE F TO Y.RECBAD LOOP ******* ERASE SCREEN********** CASE LASTKEY() = X.ERASE_KEY | ERASE SCREEN DO MAILER Y.READNO = 1 ******** END CASES********** OTHERWISE ************* ADDRESS VALIDATION************* STORE T TO Y.NOANSWER STORE 'Y' TO Y.OK DO WHILE Y.NOANSWER @ 24,00 SAY 'IS ADDRESS OK (Y OR N) ?' @ 24,26 GET Y.OK READ IF LASTKEY() = 17 .OR. LASTKEY() = 27 .OR. LASTKEY() = 189 CLOSE ALL RETURN ENDIF DO CASE CASE !(Y.OK) = 'Y' STORE F TO Y.RECBAD STORE F TO Y.NOANSWER STORE ' ' TO Y.OK @ 24,00 CASE !(Y.OK) = 'N' STORE T TO Y.ADDRBAD STORE F TO Y.NOANSWER STORE ' ' TO Y.OK @ 24,00 Y.READNO = 1 OTHERWISE BEEP STORE T TO Y.NOANSWER STORE ' ' TO Y.OK @ 24,00 ENDCASE ENDDO STORE T TO Y.NOANSWER ENDCASE ENDDO | WHILE RECORD BAD ********** WRITE RECORD ************ APPEND BLANK REPLACE FIRST_NAME WITH Y.FIRST_NAME,LAST_NAME WITH Y.LAST_NAME REPLACE COMPANY WITH Y.COMPANY, ADDRESS1 WITH Y.ADDRESS1 REPLACE ADDRESS2 WITH Y.ADDRESS2, CITY WITH Y.CITY, ZIP WITH Y.ZIP REPLACE STATE WITH Y.STATE, PHONE WITH Y.PHONE ENDDO | WHILE T ***************** PROCEDURE MAILCHG ***************** * CHANGES OR DELETES A RECORD IN MAILLIST.DBF * FILES Y.MAIL = T | VAR FOR LBLHDG USE MAILLIST INDEX MAILNAME,MAILCOMP,MAILZIP ASSIGN APPROX(T) *DEFINE VARIABLES STORE T TO Y.RECBAD | MAIN LOOP STORE T TO Y.NOANSWER | CHECK ANSWER LOOPS STORE ' ' TO Y.OK | CHECKANSWER VARIABLE STORE 1 TO Y.READNO | GET NUMBER OFFSET FOR READ X.ADD = F | THIS IS NOT THE ADD PROGRAM STORE SPACE(10) TO Y.FIRST_NAME STORE SPACE(20) TO Y.LAST_NAME,Y.CITY STORE SPACE(40) TO Y.COMPANY,Y.ADDRESS1,Y.ADDRESS2 STORE SPACE(2) TO Y.STATE STORE SPACE(10) TO Y.ZIP STORE SPACE(12) TO Y.PHONE ERASE DO WHILE T GO TOP Y.H_TITLE = 'MODIFY MAIL LIST' DO LBLHDG &SAYBRIGHT ASSIGN BOX(7,1,19,78,201,187,200,188,186,205) &SAYNORMAL @ 08,02 SAY 'NAME :'+Y.FIRST_NAME @ ROW(),COL()+5 SAY 'LAST NAME :' GET Y.LAST_NAME PICTURE DUPCHAR(33,20) @ 10,02 SAY 'COMPANY :' GET Y.COMPANY PICTURE DUPCHAR(33,40) @ 12,02 SAY 'ADDRESS1 :' @ 14,02 SAY 'ADDRESS2 :' @ 16,02 SAY 'CITY :' + Y.CITY @ ROW(),COL()+3 SAY 'STATE :'+ Y.STATE @ ROW(),COL()+3 SAY 'ZIP :'+Y.ZIP @ 18,02 SAY 'PHONE :'+Y.PHONE &SAYREVERSE @ 21,00 SAY CENTER(X.FIND_TXT+' '+X.HELP_TXT+' '+X.ERASE_TXT+' ESC TO QUIT',79) &SAYNORMAL READ * ADDRESS FUNCTION KEY SECTION DO CASE CASE LASTKEY() = X.FIND_KEY | FIND IF GETNO() = 1 SET INDEX TO MAILNAME FIND !(Y.LAST_NAME) ELSE SET INDEX TO MAILCOMP FIND !(Y.COMPANY) ENDIF IF EOF() SKIP -1 ENDIF CASE LASTKEY() = X.HELP_KEY | HELP Y.READNO = GETNO() DO MAILCHG1 LOOP CASE LASTKEY() = 27 | QUIT CLOSE ALL RETURN CASE LASTKEY() = X.ERASE_KEY | ERASE SCREEN DO MAILER Y.READNO = GETNO() LOOP OTHERWISE Y.READNO = GETNO() LOOP ENDCASE ERASE Y.RECBAD = T DO WHILE Y.RECBAD Y.H_TITLE = 'MODIFY MAIL LIST' DO LBLHDG ************ * PAINT SCREEN ************ &SAYBRIGHT ASSIGN BOX(7,1,20,78,201,187,200,188,186,205) &SAYNORMAL ************ IF DELREC() @ 08,02 SAY CENTER('RECORD '+STR(RECNO(),4)+' IS DELETED',75) ELSE @ 08,02 SAY CENTER('RECORD '+STR(RECNO(),4),75) ENDIF @ 09,02 SAY 'NAME :' GET FIRST_NAME PICTURE DUPCHAR(33,10) @ ROW(),COL()+5 SAY 'LAST NAME :' GET LAST_NAME PICTURE DUPCHAR(33,20) @ 11,02 SAY 'COMPANY :' GET COMPANY PICTURE DUPCHAR(33,40) @ 13,02 SAY 'ADDRESS1 :' GET ADDRESS1 PICTURE DUPCHAR(33,40) @ 15,02 SAY 'ADDRESS2 :' GET ADDRESS2 PICTURE DUPCHAR(33,40) @ 17,02 SAY 'CITY :' GET CITY PICTURE DUPCHAR(33,20) @ ROW(),COL()+3 SAY 'STATE :' GET STATE PICTURE "UU" GETFILE MAILSTCK @ ROW(),COL()+3 SAY 'ZIP :' GET ZIP PICTURE "##########" @ 19,02 SAY 'PHONE :' GET PHONE PICTURE "###-###-####" &SAYREVERSE @ 21,00 SAY CENTER(X.FIND_TXT+' '+X.HELP_TXT+' '+X.DEL_TXT+' '+X.SAVE_TXT+' '+X.PREV_TXT+' '+X.NEXT_TXT+' ESC TO QUIT',79) &SAYNORMAL READ GETNO Y.READNO @ 24,00 ***************** * ADDRESS FUNCTION KEY SECTION * F1 = find F2=HELP F3=QUIT F4=DELETE F7=SAVE F8=ERASE F9 = PREV F10 = NEXT ***************** DO CASE CASE LASTKEY() = X.FIND_KEY | FIND - RETURN TO FIND SCREEN Y.LAST_NAME = LAST_NAME Y.COMPANY = COMPANY EXIT ********** * HELP ********* CASE LASTKEY()= X.HELP_KEY | HELP Y.READNO = GETNO() DO MAILCHG2 LOOP ********** *QUIT ********** CASE LASTKEY() = 27 | QUIT CLOSE ALL RETURN ********** * DELETE ********** CASE LASTKEY() = X.DEL_KEY | DELETE IF DELREC() RECALL ELSE DELETE ENDIF LOOP *********** * PRIEVIOUS *********** CASE LASTKEY() = X.PREV_KEY | PREVIOUS SKIP -1 IF BOF() BEEP @ 6,00 SAY CENTER('BEGINING OF FILE!',79) SKIP +1 ELSE @ 6,00 ENDIF LOOP *********** *NEXT *********** CASE LASTKEY() = X.NEXT_KEY | NEXT SKIP +1 IF EOF() BEEP @ 6,00 SAY CENTER('END OF FILE!',79) SKIP -1 ELSE @ 6,00 ENDIF LOOP ********** * END CASES ********** OTHERWISE ************* * ADDRESS VALADATION ************* STORE T TO Y.NOANSWER STORE 'Y' TO Y.OK DO WHILE Y.NOANSWER @ 24,00 SAY 'IS ADDRESS OK (Y OR N) ?' @ 24,26 GET Y.OK READ IF LASTKEY() = 17 .OR. LASTKEY() = 27 .OR. LASTKEY() = 189 CLOSE ALL RETURN ENDIF DO CASE CASE !(Y.OK) = 'Y' STORE F TO Y.RECBAD STORE F TO Y.NOANSWER STORE ' ' TO Y.OK @ 24,00 CASE !(Y.OK) = 'N' STORE T TO Y.ADDRBAD STORE F TO Y.NOANSWER STORE ' ' TO Y.OK @ 24,00 Y.READNO = 1 OTHERWISE BEEP STORE T TO Y.NOANSWER STORE ' ' TO Y.OK @ 24,00 ENDCASE ENDDO STORE T TO Y.NOANSWER ENDCASE ENDDO | WHILE RECORD BAD ENDDO | WHILE T RETURN ******************* PROCEDURE MAILCHG1 ******************* *HELP FILE FOR FIND ERASE ASSIGN BOX(03,05,19,74,42,42,42,42,42,42) TEXT MAIL LIST FIND RECORD HELP In FIND RECORD all you will need to do is enter the information and press the find key IN the field you would like to find. Pressing the help key will return to this help screen. Pressing the ESC key (QUIT) will abandon any data on the screen and return to the main menu. ENDTEXT @ 24,00 SAY 'PRESS ANY KEY TO RETURN TO FIND RECORD.' WAIT ERASE RETURN ***************** PROCEDURE MAILCHG2 ****************** *HELP FILE FOR CHANGE ERASE TEXT MAIL LIST CHANGE RECORD HELP In CHANGE RECORD all you will need to do is enter the information. When you reach the end the prompt "IS THE ADDRESS OK?" will appear if you press a "Y" (yes) the data will be stored and the FIND RECORD screen will return. Pressing the find key will return you to the FIND RECORD screen. Pressing the help key will return to this help screen. Pressing the ESC key (QUIT) will leave the data on the screen in the file and return to the main menu. Pressing the "delete" key will delete the record. Later you will have to remove the record with the REMOVE RECORD function on the main menu. Pressing it again will un-delete the record Pressing the save key will take you to the "IS THE ADDRESS OK?" prompt. Pressing the previous key (PREV) will move you to the previous record in the data base. If you tried to find a name the records will appear in name order. Likewise for company. Pressing the next key (NEXT) will move you to the next record. ENDTEXT @ 24,00 SAY 'PRESS ANY KEY TO RETURN TO CHANGE RECORD.' WAIT ERASE RETURN ****************** PROCEDURE MAILER ****************** * MAILER.PRG STORE SPACE(10) TO Z.FIRST_NAME STORE SPACE(15) TO Z.LAST_NAME,Z.CITY STORE SPACE(40) TO Z.COMPANY,Z.ADDRESS1,Z.ADDRESS2 STORE SPACE(2) TO Z.STATE STORE SPACE(10) TO Z.ZIP STORE SPACE(12) TO Z.PHONE RETURN ******************* PROCEDURE MAILMNH ******************* *MAILMNH.PRG *MAIN MENU HELP ERASE TEXT MAILING LIST Welcome to the Mailing List Manager. This simple program will store names and addresses, and print mailing labels on standard one up computer labels. ADD NAMES TO MAIL LIST Will allow you to add new names to your mailling list. CHANGE OR DELETE NAMES IN MAIL LIST Will allow you to correct an entry or delete it. PRINT MAIL LABLES Will allow you to make selection of which labels to print and print them. REMOVE DELETED RECORDS When you delete a record it is not removed from your disk until you execute this command. QUIT Exits this program. ENDTEXT @ 24,00 SAY 'PRESS ANY KEY TO RETURN TO THE MAIN MENU. ' WAIT ERASE RETURN * ******************* PROCEDURE MAILPRH1 ******************* * HELP FOR PRINT INPUT ERASE TEXT PRINT LABEL HELP You are beeing asked to enter a selection criteria. You may press enter and all the records will be printed. If, for example, you want only the addreses in California, you would enter: STATE = "CA". You might also want a range of values. For example enter: LAST_NAME >= 'B' AND LAST_NAME <= 'Q'. Also you might want a list, just enter: STATE = "CA" OR STATE = "NY". NOTE: PLEASE INCLUDE THE "_" (UNDERSCORE) IN THE FIELD NAME! LOGICAL OPERATORS: AND : OR RELATIONAL OPERATORS = equal; > greater than; < less than; <> not equal <= less than or equal; >= greater than or equal ENDTEXT @ 24,00 SAY 'PRESS ANY KEY TO RETURN TO PRINT LABELS ' WAIT ERASE RETURN ****************** PROCEDURE MAILPRH2 ****************** * mailPRh2.prg * HELP FOR PRINT index * ERASE TEXT PRINT LABEL HELP You are being asked to enter A sort selection. You may use the arrow keys and position the curser on the sort selection you desire. ENDTEXT @ 24,00 SAY 'PRESS ANY KEY TO RETURN TO PRINT LABELS ' WAIT ERASE RETURN * ******************* PROCEDURE MAILPRNT ******************** SET TOP MARGIN TO 0 SET BOTTOM MARGIN TO 0 SET HEADING TO SET HEADING2 TO SET FOOTER TO SET LEFT MARGIN TO 0 ERASE Y.H_TITLE = 'PRINT LABELS' DO LBLHDG &SAYBRIGHT @ 23,00 SAY CENTER ('Please select a criteria for the mailing labels.',78) @ 24,00 SAY CENTER(' ALL RECORDS will print all the records.',78) &saynormal USE MAILLIST DO FORPHRAS DO WHILE T ERASE Y.H_TITLE = 'PRINT LABELS' DO LBLHDG Y.VMENU_TEXT ='PRINT IN NAME ORDER|PRINT IN COMPANY ORDER|PRINT IN ZIP CODE ORDER|QUIT' Y.V_COL = 21 Y.V_NUM = 1 Y.V_MCOL = 29 Y.V_MROW = 7 DO VMENOPT DO CASE CASE VMENU() = 1 SET INDEX TO MAILNAME CASE VMENU() = 2 SET INDEX TO MAILCOMP CASE VMENU() = 3 SET INDEX TO MAILZIP CASE NRANGE(VMENU(),40,44) DO MAILPRH2 LOOP OTHERWISE RETURN ENDCASE EXIT ENDDO X.MAIL_LABEL = 'MAIL' X.WIDTH = 35 X.HEIGHT=5 X.LMARGIN=0 X.LSPACE=2 X.LABACROS=1 X.LLINE=1 X.LINEPER=4 DO GETLOPTN GO TOP IF TRIM(X.CRITERIA) = 'ALL' LOCATE ALL ELSE LOCATE FOR &X.CRITERIA IF EOF() &SAYBRIGHT @ 23,1 SAY CENTER('NO RECORDS FOUND! PRESS RETURN TO CONTINUE.',76) WAIT CLOSE FP ERASE RETURN ENDIF ENDIF DO ALIGNLBL SET DEVICE TO SCREEN @ 5,0 ERASE &SAYBRIGHT @ 10,0 SAY CENTER('PRINTING LABELS. PRESS ANY KEY TO STOP PRINTING.',76) &SAYNORMAL SET DEVICE TO PRINT SET ESCAPE OFF DO WHILE NOT EOF() Y.L_ACROSS = 1 DO WHILE Y.L_ACROSS <= X.LABACROS Y.COUNT = 1 IF TRIM(FIRST_NAME) = '' X.ADDRESS_1 = TRIM(LAST_NAME) ELSE X.ADDRESS_1 = TRIM(FIRST_NAME)+' '+TRIM(LAST_NAME) ENDIF X.ADDRESS_2 = TRIM(ADDRESS1) X.ADDRESS_3 = TRIM(ADDRESS2) IF TRIM(CITY) ='' X.ADDRESS_4 = STATE + ' '+TRIM(ZIP) ELSE X.ADDRESS_4 = TRIM(CITY)+' '+STATE+' '+TRIM(ZIP) ENDIF IF TRIM(X.ADDRESS_1) = '' X.ADDRESS_1 = X.ADDRESS_2 X.ADDRESS_2 = X.ADDRESS_3 X.ADDRESS_3 = X.ADDRESS_4 X.ADDRESS_4 = '' ENDIF IF TRIM(X.ADDRESS_1) = '' X.ADDRESS_1 = X.ADDRESS_2 X.ADDRESS_2 = X.ADDRESS_3 X.ADDRESS_3 = '' ENDIF IF TRIM(X.ADDRESS_1) ='' X.ADDRESS_1 = X.ADDRESS_2 X.ADDRESS_2 = '' ENDIF IF TRIM(X.ADDRESS_2) ='' X.ADDRESS_2 = X.ADDRESS_3 X.ADDRESS_3 = X.ADDRESS_4 X.ADDRESS_4 ='' ENDIF IF TRIM(X.ADDRESS_2) = '' X.ADDRESS_2 = X.ADDRESS_3 X.ADDRESS_3 ='' ENDIF Y.L_LNO = 'Y.L'+STR(Y.L_ACROSS,1)+STR(Y.COUNT,1) &Y.L_LNO = X.ADDRESS_1 INC Y.COUNT Y.L_LNO = 'Y.L'+STR(Y.L_ACROSS,1)+STR(Y.COUNT,1) &Y.L_LNO = X.ADDRESS_2 INC Y.COUNT Y.L_LNO = 'Y.L'+STR(Y.L_ACROSS,1)+STR(Y.COUNT,1) &Y.L_LNO = X.ADDRESS_3 INC Y.COUNT Y.L_LNO = 'Y.L'+STR(Y.L_ACROSS,1)+STR(Y.COUNT,1) &Y.L_LNO = X.ADDRESS_4 INC Y.L_ACROSS CONTINUE ENDDO Y.L_COUNT =1 Y.L_ROW =0 *@ 5,0 ERASE DO WHILE Y.L_COUNT<= X.LINEPER Y.L_COL =X.LMARGIN Y.L_ACROSS=1 DO WHILE Y.L_ACROSS <= X.LABACROS Y.L_LNO = 'Y.L'+STR(Y.L_ACROSS,1)+STR(Y.L_COUNT,1) IF LEN(&Y.L_LNO)<>0 @ Y.L_ROW,Y.L_COL SAY $(&Y.L_LNO,1,(X.WIDTH-X.LMARGIN)) ENDIF Y.L_COL =Y.L_COL + X.WIDTH + X.LSPACE INC Y.L_ACROSS ENDDO INC Y.L_ROW INC Y.L_COUNT ENDDO SET ESCAPE OFF IF INKEY() <> 0 SET DEVICE TO SCREEN SET ESCAPE ON @ 5,0 ERASE &SAYBRIGHT @ 10,00 SAY CENTER('Printing is stopped. Press ^R to resume printing or any other key to exit.'78) &SAYNORMAL WAIT IF LASTKEY() <> 18 FORMFEED EXIT ENDIF &SAYBRIGHT @ 10,0 SAY CENTER('PRINTING LABELS. PRESS ANY KEY TO STOP PRINTING.',76) &SAYNORMAL SET ESCAPE OFF SET DEVICE TO PRINT ENDIF FORMFEED ENDDO SET CONSOLE ON SET PRINT OFF SET ESCAPE ON SET DEVICE TO SCREEN RETURN ***************** PROCEDURE MAILRMV ***************** *MAILRMV.PRG * REMOVE DELETED RECORDS USE MAILLIST ERASE Y.H_TITLE ='REMOVE DELETED RECORDS' DO LBLHDG Y.ANS = ' ' @ 10,10 SAY 'SEARCHING FOR RECORDS....' COUNT FOR DELREC() TO Y.COUNTED IF Y.COUNTED = 0 @ 5,0 ERASE @ 24,00 SAY 'NO RECORDS WERE FOUND TO REMOVE. PRESS RETURN TO CONTINUE.' GET Y.ANS READ CLOSE - RETURN ENDIF @ 11,10 SAY 'DELETING '+STR(Y.COUNTED,3)+' RECORDS. PLEASE WAIT......' PACK USE MAILLIST INDEX MAILNAME,MAILCOMP,MAILZIP @ 5,0 ERASE @ 10,10 SAY 'REINDEXING. PLEASE WAIT........' REINDEX @ 11,10 SAY LTRIM(STR(LASTREC(),4))+' RECORDS IN NEW FILE' @ 24,00 SAY 'PLEASE PRESS ANY KEY TO CONTINUE' GET Y.ANS READ CLOSE ALL RETURN ****************** PROCEDURE MAILSTCK ****************** * MAILSTCK.PRG * CHECKS FOR A VALID STATE * CALLED AS A GET FILE IF X.ADD X.STATE = Y.STATE ELSE X.STATE = STATE ENDIF IF AT(X.STATE," ,AL,AK,AZ,AR,CA,CO,CT,DE,DC,FL,GA,HI,ID,IL,IN,IA,KS,KY,LA,ME,MD,MA,MI,MN,MS,MO,MT,NE,NV,NH,NJ,NY,NC,ND,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VT,VA,WA, WV,WI,WY,GU,PR") = 0 ASSIGN USERSTAT(0) | STAY IN FIELD BEEP @ 24,00 SAY "NOT A VALID STATE, PLEASE RE-ENTER. " RELEASE X.STATE RETURN ENDIF ASSIGN USERSTAT(255) | GO DIRECTION OF KEY @ 24,00 RELEASE X.STATE RETURN ****************** PROCEDURE ALIGNLBL ****************** Y.A_ANS1 = 'Y' CLEAR GETS @ 5,0 ERASE @ 10,10 SAY " DO YOU WANT TO PRINT AN ALIGNMENT TEST ? Y/N " GET Y.A_ANS1 PICTURE'!' READ IF LASTKEY() = 27 CLOSE FP RETURN TO DLABEL ENDIF @ 12,10 SAY "TURN YOUR PRINTER ON AND PRESS RETURN TO CONTINUE." WAIT IF LASTKEY() <> 13 @ 24,00 SAY "**********RETURNING TO THE MAIN PROGRAM************" CLOSE FP ERASE RETURN TO &X.MAIL_LABEL ENDIF Y.L_COUNT = X.HEIGHT+X.LLINE SET LINE COUNT TO Y.L_COUNT DO WHILE Y.A_ANS1 = 'Y' Y.L_ROWNO =0 Y.KEYLEN = X.WIDTH - X.LMARGIN Y.TOTLINE = 1 SET DEVICE TO PRINT DO WHILE Y.TOTLINE <=X.LINEPER @ Y.L_ROWNO,X.LMARGIN SAY $('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',1,Y.KEYLEN) INC Y.L_ROWNO INC Y.TOTLINE ENDDO SET DEVICE TO SCREEN Y.A_ANS1 = 'N' ERASE Y.H_MSG = CENTER('PRINT PROGRAM',78) @ 10,10 SAY "DO YOU WANT TO PRINT ANOTHER ALIGNMENT TEST ? Y/N ---->" GET Y.A_ANS1 PICTURE '!' READ IF LASTKEY() = 27 CLOSE FP RETURN TO &X.MAIL_LABEL ENDIF ENDDO RETURN * ********************* PROCEDURE MAILADDH ********************* * mailaddh.prg * HELP FOR ADD SCREEN * ERASE ASSIGN BOX(02,05,19,74,42,42,42,42,42,42) TEXT MAIL LIST ADD RECORD HELP In ADD RECORD all you will need to do is enter the information. At the end of the data entry you will get a prompt saying "IS THE ADDRESS OK?" Pressing a "Y" will save the information on the disk, or press any key to change any information you have entered. Pressing the "HELP" key will return to this help screen. Pressing the "SAVE" key will save what is on the screen. Pressing the "ERASE" key will erase the screen. Pressing the ESC key (QUIT) will erase the data on the screen and return to the main menu. ENDTEXT @ 24,00 SAY 'PRESS ANY KEY TO RETURN TO ADD RECORD ' WAIT RETURN ************* PROCEDURE INSTHELP ************* ERASE Y.H_TITLE = 'DBLABEL HELP SCREEN' X.MHEAD = '' DO LBLHDG @ 5,0 TEXT *******************HOW TO USE THE LABEL PROGRAM******************* First make a backup copy of the DBLABEL PROGRAM. If you have hard disk, first create a subdirectory. Then copy all the files on to the subdirectory. If you don't have DBMAN in the same directory load dbman first and type SET DEFAULT PRG TO and press return. Then type DO DBLABEL. Enter Y for hard drive. If you have floppy drives, you have limited space for data. We strongly recommend two disk drives. One for the program disk and one for the work disk. If you have two drives you must create a work disk for your database files. Select a drive for your work disk in the installation procedure. You must have the work disk in the same drive every time you use the program. Enter N for hard drive. SYSDATA.DBF must be with the DBLABEL PROGRAM. ***********************PRESS RETURN TO CONTINUE********************* ENDTEXT WAIT ERASE RETURN ***************** PROCEDURE VTOOLS **************** DO WHILE T Y.H_TITLE = 'UTILITY' DO LBLHDG Y.VMENU_TEXT = "REINDEX FILES|INSTALL DLABEL|EXIT TO MAIN MENU" Y.V_COL = 15 Y.V_NUM = 1 Y.V_MCOL =31 Y.V_MROW = 7 DO VMENOPT DO CASE CASE VMENU() =0 EXIT CASE VMENU() = 1 DO IDXVEND | REINDEX FILES CASE VMENU() = 2 DO DBINST | INSTALL DLABEL CASE VMENU() >= 3 EXIT ENDCASE ENDDO RETURN *************** PROCEDURE IDXVEND *************** *\REINDEX FILES Y.H_TITLE = 'REINDEX FILES' DO LBLHDG *SET DEFAULT DBF TO &Y.PATH_NAME &SAYBRIGHT @ 10,00 SAY CENTER ('************ REINDEXING LABEL DEFINITION FILE ***********',78) CLOSE ALL DELETE FILE LABEL.NDX USE LABEL INDEX ON LABELNAME TO LABEL USE @ 10,00 ESAY CENTER('************ REINDEXING MAIL LIST FILE **************',78) DELETE FILE MAILNAME.NDX DELETE FILE MAILCOMP.NDX DELETE FILE MAILZIP.NDX USE MAILLIST INDEX ON LAST_NAME+FIRST_NAME TO MAILNAME INDEX ON COMPANY+LAST_NAME+FIRST_NAME TO MAILCOMP INDEX ON ZIP TO MAILZIP @ 10,00 ESAY CENTER ('************* FINISHED REINDEXING *************',78) &SAYNORMAL *SET DEFAULT TO RETURN ***************** PROCEDURE DATAFILE ****************** IF LASTKEY() = 13 IF $(X.DDRIVE,1,1) = ' ' BEEP &SAYBRIGHT @ 23,00 SAY CENTER('Please enter the drive name for the data files.'78) @ 24,00 SAY CENTER('Press any key to continue',78) ASSIGN USERSTAT(0) @ 24,00 RETURN ENDIF ENDIF RETURN ******************* PROCEDURE SHOWERR ******************* BEEP &SAYBRIGHT IF LEN(Z.ERR_TEXT) > 55 @ 24,00 ESAY CENTER(Z.ERR_TEXT,78) ELSE @ 24,00 ESAY CENTER(Z.ERR_TEXT+' Press any key to continue.',78) ENDIF WAIT RETURN ******************* PROCEDURE DBINST ******************* * 4-21-87 ADD SELFILE * REWRITEN 4-7-87 MIKE DAUSEND *\ INSTALL COMPANY INFORMATION TO SYSDATA FILE ERASE Y.H_TITLE = "INSTALL" CLOSE ALL X.P_DRIVE = DFLTDRV(PRG) SET DEFAULT DBF TO &X.P_DRIVE USE SYSDATA RELEASE X.P_DRIVE IF CODE = 'N' DO INSTHELP ENDIF DO WHILE T |INSTALL DBLABEL Y.T_COL = 2 Y.T_ROW = 5 Y.B_COL = 78 Y.B_ROW = 18 DO DRAWBOX &SAYREVERSE @ 2,1 SAY CENTER('********* INSTALLING DBLABEL PROGRAM **********',78) &SAYNORMAL @ 7,4 SAY 'COMPANY NAME :'GET COMPANY @ 9,4 SAY 'ADDRESS1 :'GET ADDRESS @ 11,4 SAY 'ADDRESS2 :'GET ADDRESS2 @ 13,4 SAY 'CITY :'GET CITY @ 13,34 SAY 'STATE :'GET STATE @ 13,47 SAY 'ZIP :'GET ZIP @ 23,00 SAY CENTER('Please enter your address.',78) @ 24,00 SAY CENTER(X.HELP_TXT+' ESC = QUIT',78 ) READ IF LASTKEY() = 8 OR LASTKEY() = 188 DO INSTHELP LOOP ENDIF IF LASTKEY() = 27 RETURN ENDIF @ 15,4 SAY 'Are you using a hard drive for your data ' @ 16,4 SAY 'and program files ? (Y/N) ' GET HDRIVE READ @ 15,4 SAY SPACE (40) @ 16,4 SAY SPACE(40) IF LASTKEY() = 27 CLOSE ALL RETURN ENDIF IF $(DDRIVE,1,1) = " " IF SRCH(":",FILENAME(FP))>0 Y.PATH_NAME = $(FILENAME(FP),1,SRCH("SYSDATA",FILENAME(FP))-1) ELSE Y.PATH_NAME = "" ENDIF DDRIVE = Y.PATH_NAME ENDIF Y.PATH_NAME = MIDSTR(TRIM(DDRIVE)+"*.DBF",SPACE(32),1) Y.MSG_TEXT = "Please select the disk where MAILLIST.DBF is located" Y.SEL_FILE = "MAILLIST.DBF" IF P.CODE = "N" Y.RETURN_TO = "CANCLE" ELSE Y.RETURN_TO = "MAILABEL" ENDIF DO FINDFILE ERASE Y.H_TITLE = "INSTALL" DO LBLHDG &SAYBRIGHT @ 19,00 ERASE @ 20,00 SAY CENTER('Press RETURN to save the changes or any key to reenter.',78) WAIT IF LASTKEY() <> 13 LOOP ENDIF IF LASTKEY() = 13 | SYSTEM DATA OK Y.PATH_NAME = TRIM(Y.PATH_NAME) DDRIVE = TRIM(Y.PATH_NAME) X.MHEAD = TRIM(COMPANY) CLOSE USE SYSDATA Y.Y_ANS = 'Y' DO WHILE T |INSTALLING FILES @ 19,00 ERASE IF NOT HDRIVE @ 19,0 SAY CENTER('Insert your data disk in '+Y.PATH_NAME,78) @ 20,00 SAY CENTER ('Press RETURN when you are ready or press ESC to quit.',78) WAIT ELSE @ 19,00 SAY CENTER('Installing data files in '+Y.PATH_NAME,78) @ 20,00 SAY CENTER('Press RETURN when you are ready or press ESC to quit.',78) WAIT ENDIF DO CASE CASE LASTKEY() = 27 CLOSE ALL RETURN CASE LASTKEY() = 13 Y.TEMP_FILE = Y.PATH_NAME+"LABEL.DBF" IF FILE(Y.TEMP_FILE) BEEP &SAYBLINK @ 24,00 SAY CENTER('FILES ALREADY EXIST!',78) &SAYNORMAL DO ZAPFILES EXIT ENDIF &SAYBLINK @ 20,00 SAY CENTER('*************** COPYING DATA FILES TO '+DDRIVE - ' ******************',78) USE FJ LABEL COPY FJ STRUCTURE TO &Y.PATH_NAME.LABEL USE FJ &Y.PATH_NAME.LABEL INDEX FJ ON LABELNAME TO &Y.PATH_NAME.LABEL USE FJ MAILLIST COPY FJ STRUCTURE TO &Y.PATH_NAME.MAILLIST USE FJ &Y.PATH_NAME.MAILLIST INDEX FJ ON LAST_NAME+FIRST_NAME TO &Y.PATH_NAME.MAILNAME INDEX FJ ON COMPANY+LAST_NAME+FIRST_NAME TO &Y.PATH_NAME.MAILCOMP INDEX FJ ON ZIP TO &Y.PATH_NAME.MAILZIP CLOSE FJ &SAYNORMAL EXIT OTHERWISE BEEP LOOP ENDCASE ENDDO |INSTALLING FILES EXIT ENDIF | SYSTEM DATA OK ENDDO |INSTALL DBLABEL USE SYSDATA CODE = 'Y' SET DEFAULT DBF TO &Y.PATH_NAME SET DEFAULT NDX TO &Y.PATH_NAME SET DEFAULT MEM TO &Y.PATH_NAME SET DEFAULT TXT TO &Y.PATH_NAME SET DEFAULT SYSTEM TO &Y.PATH_NAME CLOSE RETURN ************* PROCEDURE ZAPFILES ************* * DELETES ALL RECORDS IN LABEL AND MAILLIST * 4-6-87 MIKE DAUSEND SET SAFETY OFF Y.ANS = SPACE(1) @ 19,00 @ 23,00 @ 19,14 ESAY 'Do you want to delete all the records? Y/N 'GET Y.ANS @ 20,00 ESAY CENTER('Delete will destroy all your data.',78) @ 21,00 ESAY CENTER('Please make backup copies of the data before delete.',78) READ IF LASTKEY() = 27 CLOSE ALL RETURN ENDIF IF Y.ANS = 'Y' @ 19,00 ERASE @ 19,10 ESAY 'Are you sure? ' @ 20,00 ESAY CENTER('Press RETURN to delete or ESC to quit or any other key to continue',78) WAIT IF LASTKEY() = 27 CLOSE ALL RETURN ENDIF IF LASTKEY() = 13 @ 5,0 ERASE Y.ANS = 'N' @ 6,10 SAY 'Delete Label definition file ? 'GET Y.ANS READ IF LASTKEY() = 27 CLOSE ALL RETURN ENDIF IF Y.ANS = 'Y' @ 6,10 ESAY '********** Deleting label definition file ************' USE FJ &Z.PATH_NAME.LABEL ZAP FJ INDEX FJ ON LABELNAME TO &Z.PATH_NAME.LABEL CLOSE FJ ENDIF @ 6,10 ESAY 'Delete Mail list file ? 'GET Y.ANS READ IF LASTKEY() = 27 CLOSE ALL RETURN ENDIF IF Y.ANS = 'Y' @ 6,10 ESAY '*********** Deleting Mail list file *************' USE FJ &Z.PATH_NAME.MAILLIST ZAP FJ INDEX FJ ON LAST_NAME+FIRST_NAME TO &Z.PATH_NAME.MAILNAME INDEX FJ ON COMPANY+LAST_NAME+FIRST_NAME TO &Z.PATH_NAME.MAILCOMP INDEX FJ ON ZIP TO &Z.PATH_NAME.MAILZIP CLOSE FJ ENDIF CLOSE ALL ENDIF ENDIF RETURN 3FFE, 0x3FFE, 0x3FFE, 0x3FFE, 0x0000, 0x0000, 0x0000, 0x0000, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x7F` s1d*o m$m,B"HJgP"&J$YJf"Jg< Af Rf Gf Vf =f Jg#~B "&J$YJf"Jf&f2B "~EHB2 r ggSJ"g fB*`B" n#n.I+I/ ##//SA?/ / Bg?<JNA Jf.?<?<N.>N|?|BWN.>N|XON" ?N?<LNANVN/<3`/. ?.NP J@f6/<#/<1|N.PO/<3`/<1N.POp3@Nq(p3N`N^NuNV=yR=y-y-yJJy4^f p?NTONJy@gp =@By@` NȚ=@N3R3By3##JN0. | 2< `XHXW PN`Jy4`f BgNTOB@`VpG`PJygjNBf=@g\?.NTO`L?</<1|/<PNn N`(B91|NJyg?.NC TO`/<1|N$XO`p33 yf`Jy4g By4NJyfp?`d?</<P/<1|Nn Sy#Jp3RByN=@Jy4^f p?NTOJnfNvB91|N` ng ?.NrTONRy`&N^NuNV/.NXOJn g4=y3By3?.?./.NPO=@330.`?.BBBp?/.NRN^NuNV-| n-P n-hX n=P .T-@JfLBn0.nl0 n np1@ n -H n-HRn`# nBN^NuNV y hf y-P`-y3z4dBgp?/. y?(BgBgBgBgBgBg y?(?9?9HnN0 y hfnnp@p@3z4dHnHnNq>PO nf ng nf< nf4HnN(XO=@g0.`HnN>XOJ@gA-H`Ns(Jy4gJngp34Jy3gJnfp33By3p?HnN\ONXJy3g34 34By4By3Jy3gp `B@N^NuNV yfp/`( y-P n=h 3z4d09H-@Jy^gRyp?p?/. nB@( ? nB@(?BgBgBgBgBg n?( ?9?9/.N0 3z4d nBHnHnNq>PO nf ng nf nf|HnN(XO=@g0.`:HnN>XO=@gV 9NnR@y4nlHn/9NN.PO n!yN0.R@ yN#N`Ns(HnHnNq>PO nB nfp nyff n ( fp=@ 9Nny4nlL n!yN yNRNp-yN yN#N/.NMXO=@fND=@f nHh NMXO=@g` n ( fp=@ 9Nny4nl n!yN yNRNp-yN yN#NHnNXO=@fPND=@fBHnNXO=@f./.?.N\O nHh?.N\O` p6`BNs(HnHnNq>PO nf nWf nBHnNoXO=@fHnN>XO=@0.R@HйNy4nnHn/9NN.PO n!yN0.R@ yN#NHnHnNq>PO ng nXgNs( nB(` np@`Ns(HnHnNq>PO n f~ n)fvHnN(XO=@fHnN>XO=@gV 9NnR@y4nlHn/9NN.PO n!yN0.R@ yN#N`Ns(Jy3g p33`RyBy3Jy^gP/<$09S@??9N6POp?/.N\ONX/<$ ?9?9N6PO`p?/.N\ONXJy3g34 34By3Jy3gp `B@N^NuNVJyfB@`BnJn g&HnNDXO=@fN!=@fSn0.ym 09S@=@JnnBnp330.R@34X0.H-@ nJg n/(NXOHn/.NPO34\By334V nJg6 n-h n g n f/.NXOJ@gBy4V y4VfJnfN` y4Vfp094\ | 2<`XHXW PN`Bn`09S@=@`09S@noRn`Jno`09S@nf`v094Vn` nJ(gJngL nJ(g@ n/(N ZXO=@g(0.N^NuNV/./<N.POBgN3TOBy-y-yJ#JN2=@##JBgN4rTO0.N^NuNVJngN`NXByByB@N^NuNV nfNp?N TO`$ nfNd`N8p?N TOB@N^NuNVNByByBy4 NJy3g # V` #$VpP?NTO/<DNdXO/<@NdXO/<8NdXO/<Hn/<#NUBPO yJ/(NpXOHnBgp?p?N `:HnNpXONi=@Jng0.` yJ/(NpXON N^NuNVp33Jy4`g/. ?986/.N. `N nB?9zBg/.09yS@?/.?9?9N/.N>XO n 0By3B@N^NuNVp?p ?/. ?.BgBgBgBgBgBg/. N>XO??. ?.HnN0 nJg-n0.@p?HnN\O0.@HnHnNPO34\N^NuNVB.?9zp?/.?<Hn?. ?.N/. HnNUBPON^NuNVHn n /NPO?9zp?/<#?<Hn?. ?.NHnNXO n N^NuNVNBg?9?9N6\ON=@34\?.NTOJ@fp =@0.@B.Hn?9?9N6PO yJJfB@`( yJ/(NpXOHnBgp?BgN N^NuNVJy4gp34By3N"By4Jy3gp `B@N^NuNV yV PfX n-h8Jf$-|#/.p?pI?p?N `$ n .XO n0NNB@N^NuNVBy3=y4^=y4$By4^By4$NsP34^34$/<1|NpXOHnHnNq>PO nf nKg< nfpc`>JyRg344/<1|NXON"By4`fJy3gp `B@N^NuNVJng?.?. NYXO`H n fB@`PO ng nfB@`Ns(p6N^NuNVBn09H @bH0@  PNJfB@`/9NpXOHnNXO=@g0.`Jng`/.NJg/9/.NPO`/.N<` /.N XO=@g0.N^NuNV0. @bH0@ PN3HB@`~/<NEJXO=@g0.`dB `BHnHnNq>PO nf ngNs6`/<NEJXO=@g`#HnN`pN^NuNVHnHnNq>PO nfH?.N$TO=@g ng0.`0HnHnNq>PO nf nfNi"`Ns(B@N^NuNVBn-|4Jn g/</.N`,PO=@g4`p-yBBB/./.N`PO=@fL#Bp=@-yV#V?././.N& =@#V/.N_FXO0.N^NuNV n-P n -P/./<BN1PO/.HnN1~POJng#BA-H n=h2 yJgR n-Pg< n ( f0 n h d$ np h n=@ nl np 1@ XX`/.N`XO=@f^/.N#XO=@fB.HnNrXOJ@g>/.NXO=@f$/./.N0PPO/.NrXO=@g0.`#BA-H yJgp n-PgZ n ( fNHn n/N POHn y/N POHnHnHnNtZ Hn n/N@POXX`/.N" XO=@g nfPB@N^NuNV n-hX .T-@ n -hX .T-@ n=P0.SnJ@g*/./.NPO n-H n-H`N^NuNV n-hX .T-@ n -hX .T-@"n n0=@Qgp`@0.SnJ@g2 nBA( nB@( Af n-H n-H`B@N^NuNVHnHnNq>PO ngp6`` n g nfN!=@g0.`< n fp`B@=@0. ]@ @bH0@ r PN`0. @f33`0.J@f34"`0. | 2< `XHXW`33`33`33`33`33`33`x33`n33`d33`Z34`?.NTO`F n-Pg: n-hPg. n1n`"3`0. @Sg @Vf33B@N^NuNVHnHnNq>PO ngp6` n g ng nf nf$HnN(XO=@g$Hn HnNq>PO` n fp`B@=@ N!=@g0.`0. @f0. @Mfv ng 3 ^`dJng" ng n& fRp:$ $`0HnN>XO=@ nn.H`$$ B9$!B9$B@N^NuNVBn0. @bH0@ PN0.`Jp?NmTO`:N `0N@`&N!J@fB94`Nr//<4N.PO`N!J@fB95`Nr//<5`NG|`HnNDXO=@g`hB@`N`N!J@f B96`DNr//<6`~=y=yNiB=@f n fTN!=@fp?09y?09yH?0.y?0.yH?Nn `N!J@f:?<?<?<?<?<?<?9?9?.?.N6`tHnHnNq>PO nf nmgp6`N!=@f@?<?<?<?<?<?<`/<DNdXO/<@NdXO/<8NdXO/<PO nf"0. | 2<`XHXW`THnNDXO=@fD33`8By3`.p33`"p`p`p`/<8NDXO=@fND=@f/<8NDXO=@fND=@f/<8NDXO=@fN!N^NuNV n-P0. @bH0@ PN`/.NXO/.Ne\XO/.`\p?HnHnNE =@g0.`BN!=@f n-P/.NXO/./.N$PON/.NrXON^NuNV n (XT-@"n iX=P0.SnJ@g n (XT-@"n iX=P0.SnJ@gX/./.NPOJ@f6HnHnHn/.N?.?.Hn/.N ` n-H` n-H`fB@N^NuNV# yJfT n -hX .T-@ n=PBn0.nl" y X n-HRn` yBN^NuNV n -hX#B-n yJgf y-P .T-@ n=P nB0.SnJ@g,/./.NPOJ@f n ` n-H`XX`N^NuNVJyg"p?N3TO=@g0.`rBy`p33BgNTO/<NBXO=@gJyfp?N4rTO`Byp+?/<3`/<Nn N=@gNBD ng nfl yJg y hg\ nf> yJhfp` y hfp ` y hfp`p?`~ yJbN\` nfJJ9gB yHh/<NPOJ@g& yJ(1fp?N4rTO=@f0<`p?N4rTO=@fB@N^NuNV?9FNOTO-@NBDJngN5=@g0.`pXO?Hn/<$x/<HnNzp?HnND\O=@ @g ?.N>(`"BgHnNC\\O=@ @g?.N?:TO=@?.NE TOBgN4rTO0.N^NuNVp4?NTO#$*fp` y$*B0 y$*Bh.p4?/9$*?.NGPO @4gp ` y$*=h./</9$*N.PO y$*1yF, y$*Bh. y$*B0 9$*0-@0.SnJ@gZp4?NTO-@gT y$*Rh. n .0-@p4?/.?.NGPO @4fN nB0`B@N^NuNVp4?NTO#$*fp`/</9$*N.PO y$*1yF, y$*Bh. y$*B0 9$*0-@=y4^=y4$By4^By4$NsP34^34$/<1|NpXOHnHnNq>PO ng nf nJfHnNoXO=@g0.`p4?NTO-@g y$*Rh. n .0-@Hn/.N.PO?9FNOTO n!@, nB0`p4?/9$*?.NHPO @4gp`F y$*=h. y$*-h00.SnJ@g p4?/.?.NHPO @4f n`B@N^NuNVJ$*gh y$*?(,NOFTO y$*-h0 y$*=h./9$*NXOB$*0.SnJ@g n-h0/.NXO-n`B@N^NuNVJ$*g y$*-h0 y$*=h.0.SnJ@g^/./.NPOJ@f> y$*3,FBg n/(, y$*?(,NOvPO09$(@3$(B@` n-h0`pN^NuNV/.NAlXOJ@g(09$(@3$(/.NO.XO3Flp`B@N^NuNV09$(@f?9FNOFTON^NuNV y hg/<$}NZXO09$(@g^ y$*3,F"y y (6/0)4H -@Bg/.?9FNOvPO fp `(NsPNBDB@`/<3`NO.XO3FlpN^NuNV09$(@gB@`6/<$NFXO y hg/<$NZXO?.NTON^NuNV y hgp$`JyRg?9FNOTO-@=yBg y/(?9FNOvPO y0( S@3N\NsPN=@g0.`JJyRf@N\Bg/.?9FNOvPO3p3R` y3RN\B@N^NuNV-y y hgD yJd y hfp$` y hf BgN;TO`N\`SnfJn g?9FNOTO-@=yBg y/(?9FNOvPO y0( S@3N\NsPN=@g0.`\JyRfRBg/.?9FNOvPO3-y# ybNsPByRNJ@gp `B@N^NuNVNBn/9NXOJ@gpd=@Jy4`gNDN0.N^NuNVJnfB@`"Ry8NE=@gNTSy80.N^NuNV-|D/<$HnN.PO098.Bnp=@Nr-@NkJ@f@NDJ@g.N!J@g$/.NpXONi=@g0.`,BnNs(`Ni=@fBnJngp/9N>XO=@Bg?.BgHnHn/.N=@f?.Bg/9/.N np@ /9/9 NdPO`d y?( y?( y?(HnHn/.N=@f, y?( y?(/< /.N 0.Rn @ mBnR.p0@`R.NDJ@gN!N^NuNV/<$HnN.PO098.Bn-|Dp3@HnHnHnHnNrBy@ nf ng Jngpe`fHnHn n/N" J@f?././.N* 0.Rn @ mBnR.p0@`R.NDJ@g`N!N^NuNVp3@p34 HnHnHnHnNrBy4 By@ nf0Jnf*HnHn/.N J@f/./.NPONDJ@gNs(B@N^NuNVJn gHnHnNoPOBg/<NC\\O=@ @fp1`.?.?. Hn/.NIF =@?.NE TO0.N^NuNVBn Dfp=@"n Q-hX n=P .T-@-yN0.SnJ@gJng nJ(f n ( gJng/./. NPO=@Jng nfJnf nfJnfA-Hp?/./.Nn n?( N TO n1@ nHh/.NPO nHhN>XO@=@?.Hn?.NHPOngp`4T n-H`Bnp?Hn?.NHPO @fB@N^NuNV n fNX`Jn f /.NXO/.NJXON^NuNVp?/<ND\O=@ @fp`$?./.NK,\O=@?.NE TO0.N^NuNVBBn Dfp=@?<Hn?. NGPOJ@np `JnfB@`A-H n?( N TO n1@ JngHn/.HnN`Hn/. n/N" =@JngB nHh nB@(? n?( nB@( ?/././.N$=@g0.`0 nHhN>XO@HѮBg/.?. NFPO`N^NuNVp@ n-PB=y3By3/.N#XO=@fR/.N" XO=@g33 ng0.`h/.HnNPO yJJg0 yJ/(NpXOHnBgp?p?N =@fJyfN"HnNMXOB@N^NuNVBg/.HnNX Bg?9zHn?9?9N\ NXN^NuNV-| Bn n l< n-PJg$ n h,g/./.NPOJ@fp` XRn`B@N^NuNVBn n-P/.N#XO=@fNT=@/.N" XO=@g ng0.`0.N^NuNVBnBy4Z n-P n 0(=@ n Jl 0.RnJ@g2/.N,XO=@g`0.SnJ@g/.NXOR@=@ n-H yHf$0<Ȑn?/9/.NQ =@fBg/.NQ\ON^NuNV n-P nJ`g n/(`NXO nB`JfB@`6?<NTO n!@`fp`?</9 n/(`NQ N^NuNV=y4By4 n/(`NpXO/. NXO=@340.N^NuNV n-P nJ\fp`"n i\3H"n i\# n (\\-@ nJfB`#/.N>XO n-H yHf .R#p?/.NQ\ON^NuNV/. NpXONi 9J =@nmp3`?./. /.N* B@N^NuNVBy4Z n-PJn g /.N" ` /.N#XO=@ n h\!y/.N XO0.N^NuNV yV//94NRVPO=@/<4N_FXO0.N^NuNVBn"n iX=P"n iX=PJBfXO @mp3`r?< y//<`R y/N>XO @PlpP? y//<`( y/N>XO @l?< y//<BN* B@N^NuNVN!=@f NB@`:HnHnNpPO=@g0.`NHn/<|N.PONxN^NuNV-| Bn n l` n-PJgH/./.NPOJ@fp`< n-hPJg /./.NPOJ@g n-h`XRn`B@N^NuNVHnHnNq>PO nf ngp6`HnNDXO=@g0.`0.]@ @bH0@z PN`0. @%g @Bg`0.3z34d`3N`0. |>2< `XHXW`31l`|34`r34`h34`^3z`T3z`J34T`@3$`60. J@g @g `&34Z`34l`0. @4f34B@N^NuNV/ HnNDXO=@g0.`Jnm n mB@`0.H @4Jf&0.H&@4?<}NTO&fp` nf0.H @4/NdXO`p?/<ND\O=@ @gH?<}0.H @4/?.NGPO @}g?.NE TOp `?.NE TO`:p&_N^NuNVHnNDXO=@g0.`>Jnm6 n l.0.H @4Jg0.H @4/NXOB@N^NuNVJy3fp6`z nfB@`nJng?.NZTO`ZHnNYXO=@fD n f*HnNZXO=@f*NDJ@gN!=@g`HnNZXO=@g0.N^NuNVp3@HnHnHnHnNrBy@ ngp:` Jng nf/./.N.POB@N^NuNV-|DHn/. n/N" =@f0.`^=y8By8Bgp?p?/.Hn/.N=@38JnfBnp?p?Hn/.N N^NuNVHn/.HnN =@g0.`/./.NdPOB@N^NuNVHnHnNoPO=@g0.`N!=@f-|D n P (XT-@"n"Q iX=P-yN0.SnJ@g\ nJ(g@/.HnNPO=@ nfJnf nfJnf/./.NdPO n-HT`B@N^NuNV/ nm n nSn0.H @4Jf&0.H&@4?<NTO&fp`0.H @4/N(XOJ@g.0.H @4/NXO0.H @4B`|0.H @4-P nJg` n ;fP/.N>XOS@=@?. nHh nHhNn np  np @Jnf nB(R`B@&_N^NuNV/<$/.N.PO nHh?. N*\ON^NuNV n-hX n=P .T-@0.SnJ@g n ( fp` n-H`B@N^NuNV/.N]nXO=@g0.` /.N_XON^NuNV nJg n//<NPOJ@g@/<NVXO=@g0.`|/.N_FXO/</.N`,PO=@g,` n-P/.NXO=@f nHhPNkXO n PHhd/<NZPO n PHhdNC XOB@N^NuNV n-P/<NVXO=@g0.`/./<HnNk =@f .P-@ nJg n-P .` n -y nHhNpXOp34 #Ni=@By4 /.NpXOJng nHhPNkXOp-`B@N^NuNV n/NHnHn/. N ~ /./.N?./. HnN= ?93p??.HnHn/.N*|=@f/./.NPO=@fp=@ n (*1fFJy3g>?93Bg?.HnHn/.N*|=@f/./.NPO=@gJnff nJ`gHn/.NPPO=@fdJnf@?93Bg?.HnHn/.N*|=@f/./.NPO=@gDJng /.NZXO/.N XO0.N^NuNV n/N:XON^NuNV/./.N>"PO=@g0.`.p#?/. n/N# =@g/.N?0XO`B@N^NuNV nJg2 n-P nHhNkXO n/N#XO/.N?0XOB@N^NuNV/./.N>"PO=@g0.`0?94T/. n/N$f =@g/.N?0XO`B@N^NuNV n fpU` n-P .T-@ nJg6 n-P n h f"n n /.NXO`-n` y/NpXONi y 9JR@@=@0.@?NTO-@ n fp`Z?. y/ nHhN* "y n1i "y n1i n1n nB n!n B@N^NuNV n-P .T-@ nJg6 n-P n h f"n n /.NXO`-n`B@N^NuNV nJg n-P/.NmXO/.NXOB@N^NuNVJy3fB@`-nJg n-h nJhgX=y3By3 n?( nHh/.Ni =@33Jng ng n+`f n-P` nJg nHhNpXOHnNMXO=@HnHnNhPOJnf /. n/NPO=@g ng0.N^NuNVJy3gt-nJgh"n i-PgP/.N6XO=@g0.`D np1@F n (HnHn/. N ~ /./.NXO?Bg`4-n Hn n?N*\O n?( BgHn` n?( p?/. /.N =@0.N^NuNVHnHn/.N =@g0.` nB@( @b~H0@ PN`nHnHn/. /.N/. ND$XO`FHnHn/. /.N`*HnHnHn/.NHn/. NTPOB@N^NuNV?.HnN\\O?.?.?.HnHn/<8N=@g0.`/. HnNuhPON^NuNV?.HnN\\OHnHnHnN J@f/./.NPOB@N^NuNVBnp=@0.SnJ@g0.Rn?Nw TO`N^NuNV?.HnN\\O/. HnNv PON^NuNVBn n n?. NwTO`?./.NL\O=@0.N^NuNV/<HnN.PO?<zNTO-@fp`HJnfBg/<NC\\O=@ @f/.NXOp`Bg?<z/.NPO n0+ npP1@ np1@ np1@ nBh np61@ np1@ nBh8B@ n1@6 n1@BnBnJygp?N3TO=@Jnf=y3By3BgNTO=y-y-yJ#J/.?.Nzp\O=@##J3NwdJy4`g p?NTO33Jygp?N4rTO=@/.NXO?.NE TOJnfJng nFfBnJnf HnN XO0.`p?/<ND\O=@ @f/.NXOp`f?<z/.?.NGPOJ@n/.NXO?.NE TOp `2/.NdXO n P+gx/.NXO?.NE TOpN^NuNVBn?./. N|.\O=@g0.`?./. N\O094\Y@ @bH0@ PN` nm6 nl . :-@0.U@P n-H nJhzgxRn`pJnghSn`` nmV . :-@-n n@-H .P-@0.U@P n-H-n .P-@ .쐮=@ y 4\f,?././.Nn Bg?<P/.NPO`?././.Nn Bg?<P/.`pF`H/. NdXOBgB?.NFPO fp ` ?<z/. ?.NHPO @zgp`B@N^NuNV/<8NdXOp ?/<$/<$/</<Nz0. J@g @g .:-@0. U@P n-HBgpy?Bg/.BgNv Bgp?p? nHhzp?Nv Bgp?p? nHh|p?Nv Bgp?p? nHh~p?Nv Bgp3?Bg nHhp?Nv Bgp3?Bg nHhp?Nv Bgp3?Bg nHhp?Nv Bgp3?Bg nHhp`TBgp=?Bg nHhBgNv Bgp=?Bg nHhDp?Nv Bgp=?Bg nHhp?Nv Bgp=?Bg nHhp?Nv Bgp?p? nHhp?Nv Bgp?p? nHhp?Nv Bgp?p? nHhp?Nv Bgp?p? nHhp?Nv Bgp?p? nHhp?Nv Bgp?p? nHhp ?Nv Bgp?p? nHhp ?Nv Bgp=?Bg nHhp ?Nv Bgp=?Bg nHh

-H`Bnp=@0.SnJ@g .:-@0.4Ю-@ n *gp=@ nJhzg0.SnJ@g0.4Ю-@B. nJgHn/.N.PO=@g/.` n?(zHnNp\OHnNXO nP-HJngt nJhzgh n?(NrTO`TNRn`B@N^NuNV nJ(@gJy4gJy4 f /.NXO nJ(@gp`p=@Jy4g$094ny4 lNH/.NXONHn nHh@N.PO=@g nHh@NXO0.`HnNXONB@N^NuNV nJ(gJy4g094U@y4 lNHJy4gJy4 f/.NXONHn nHhN.PO=@g nHhNXO0.`JHnNXONp?/.N\O=@f nJh8gJy4gJy4 gNHB@N^NuNV nJ(gJy4g094U@y4 lNHJy4gJy4 f/.NXONHn nHhN.PO=@g nHhNXO0.`(HnNXONBg/.N\O=@fB@N^NuNVJy4g*Jy4 f" nJh6f/.NXO/.NbXO# y # .:-@p=@0.SnJ@g6 nJhzg*B. nJgHn y?( y?( y?( y/Nl=@g y/NXO0.` y hf,HnHnN.PO y?(HnHnNL n h~g n?(~NTO y #` n?(zHnN\O nP-H nJh6fHnNXOJng nJhzg n?(NrTO` nJh6f&N nJhgJy4gJy4 gNB@N^NuNV# yJg\Hn y?( y?( y?( y/Nl/.HnNPOJ@gHn/.N.POp`B@N^NuNVHn?.N\O=@g0.`Hn/.N PO/< HnHnNtZ Hn/.N@POHn0.@ ?N\O=@fHn/.N PO/< HnHnNtZ Hn/.N@POB@N^NuNV?.HnN\\O/. HnHnN N^NuNV# y # .:-@p=@0.SnJ@g4 nJhzg( nJg n h~gHnJn g n?(~` n0(~@ ?N\O=@g0.`Hn/.N PO n?(| n?(zHnHnN HnHnN.PO n?(zHnHnNL /<;l/.N@PO` n?(zHnN\O y #` n?(zHnN\OHnNXO n?(NrTO nP-H`NB@N^NuNV?./. N\O/.N>XO=@0.HЮ-@0.HЮ -@p.?/.N.\O-@gJ .=@ n-H n-H0.n0.n?././.Nn p=@SS0.SnJ@gZ0.SnJ@gN nH?NQTOJ@gSnfp=@ nSp,Sn`p=@ nS"nS`N^NuNV n?N TO n0 n?(N TO n1@ n?(N TO n1@ n?(N TO n1@ n?(N TO n1@ n?(N TO n1@ n?(N TO n1@ n?(N TO n1@ n?(N TO n1@ n?(N TO n1@ n?(6N TO n1@6 n?(8N TO n1@8 .:-@p=@0.SnJ@gV n?(zN TO n1@z n?(|N TO n1@| n?(~N TO n1@~ nP-H`N^NuNVNsPBnJy3g0NHJ@g&Nz=@0. |2<`XHXW PNJy3gJyRfJng"BgN3TON @GgRBgN4rTON=@fB@`8 ng nf0.` 34Z y4Zg y4Zg y4Zg y4Zg yG4Zf 094Z`?</<2j/<1|Nn /<3`/<N.PO3zJ94gF?</<1|/<4Nn N=@?</<1|/<2jNn JngJy3gJ93gN:=@g34ZNN?94ZNrTOp=@p33`pGN^NuNV/JyRgPO ngl ngbp6=@`XHnHnNq>PO nT=P0.SnJ@g. nT=P nT0nf 0.ngJfp3Hp#`"ByHB` yHf`HnHnNq>PO nT=P0.SnJ@g nT0ngT`Ns(`Ns6`p3T`HnNMXO=@HnHnNhPO`~HnNXOH-@`hHnNDXO`HnNXOn=@`@Hn` n fp`B@3 `"Jnf/<4N]B`0. |2<`XHXW`-|@`-|8`-|<`-np?HnHnNE `Bg`N%`@-yV#4VNi"=@#V`vJf Ni"`p34 #Ni=@By4 `>Nj`Nk`Nk`Nl`Nm$`NlN`HnNXO-@?.N$TO=@f -n` nfBn`Jf-yV`/<n/<J/<No `2/<$/<$`/<No`/<n/<h/<`/<n/<`/<n/<`/<n`/<n`B91|0<`$0<`p?NTO yBh y1yR` yJhgp#` yJhgJyRgB@3R` yJhf y3RN\`p ?NTO yp1@ y1yR693H?9FNOTO y!@ y1y `@Bg?.ND.XO`.p?`NCZ`p?NTO yp1@ y1yR yBhByR` y hgp%`ByR yJhg yJhfJy4f4-|1|p&?/.N\O-@g/.Nt4XOJ@gR`HnNXO=@f^Jngb yp1@p`~ y hf`ByR yJhg, yJhf` y hf,`LHnNXO=@g N\`HnHnNq>PO ng N\p6`3R`p+?/</<N*`NiB`.HnNXO=@`xHnNXO`"HnNXO=@`T=n=n`D/.N]n`Jnf/.N^,` nf n PHhdN~F` ng2/.Nr8`N`?.NTO`vN2`lNp`N`X?9?9NzXON`?././.NN `~Hn/.NNPO`l?.?.NV`*?.?./.N)`?.?.N+`N`,p7`?.?.?././. n?(N&N^NuNV n Pp0-@ nT  n .WN^NuNV n-P nT n0N^NuNV 9/0.H # ndNP/<$NZXO y0N^NuNV y 9/0Hї #N^NuNV nf n/ n /NPO`^ n/NXO=@f8-yV#4VByH n//94NPO=@#V/<4N_FXO0.N^NuNV n fpP`/. /.N$PO/.N$XO=@g0.`XBn/.N#XO=@f.N=@/. NrXO=@f/.N" XO=@g ng nIf0.N^NuNVHnHn/<%/. N @fp`\/<%HnNPOJ@gpX`@HnHn/<%/. N @g/<%HnNPOJ@f n-P"n iX=PBn ng( ng HnHnHn/. N&=@` ng/.Ne\XO n (XT-@HnHnHn/. N&=@fxBn0.nlP?.?.Hn/.N J@f HnHnHn/. N&=@f n-HRn`/.NrXO=@g0.`B@N^NuNVHnHn/<%/.N @fp`d nf/.?<HnN /.?<HnN nBPA-H nH=@R .-@ nHngR` nB/./. N.PO/. N>XO n0B@`Hn/<%/.N nf/<%HnNPOJ@g&p`Jnf .Vf" np0 n p/. HnNUBPO`/<%HnNPOJ@f np0 n p`b/<%HnNPOJ@f np0 n B`8N^NuNV n/NXO=@fpJn g n f?. /.NH\O`TByF/<%/<N*PO-@3FJfp`$/./.NPO=@/.NXO0.N^NuNV/<NO.XO=@lp`d?< NTO-@f?.NOFTOp`B n-P?. /.?./.N =@?.NOFTO/.NXO0.N^NuNV"n iX=PBnBn?. NGXO=@g 0.HЮ`BN^NuNV n-P/.NJXOBnBJn f.Bg/<NC\\O=@JngPp?B?.NFPO`?/.N\O/.N#XO=@fR0. @b6H0@ PN`&?.NTO`/.N` /.N0XO/.N" XO=@g n f/<%/<%/.N Jn f?.NE TO` /.NXO ng nIfB@`0.N^NuNVB.Hnp?Bg/<&/.NBn#B yJg RnX`Hn?.Bg/<&/.NHn?. Bg/<&/.NBn#B yJg4Rn y-P/.Bg?./<&/.NX`HnBgBg/<&/.NN^NuNV/<&+/<&"/.N #B yJg0 y-P nB@( @b H0@ PN`Hn/.NPOHnND$XOp"?Hnp"?/<&/` n?( n/(HnN* Hn/<&;/.N `BnHn/.N`POJnf <&C` <&I-@/.?./<&N/.N`@Hn/.NPO?.HnNxb\Op"?Hnp"?/<&W/.NX`N^NuNVp"?/.p"??.?./. /<&c/.NN^NuNVJBfZ#B n (XT-@"n iX=PBn0.nl . y XRn` yBN^NuNV#B yJg` y-PHn/.NPO nB@( @bH0@ PN`HnHnHn/.NJ=@g/.NXO?.NTO?.?./.?.NJ /.NXO`HnND$XOp"?Hnp"?/<&tHnND`Rp"?Hnp"?/<&{`Hn/<&HnND `$p"?.H?p"?/<&HnNDHn?.NAb\OX yJg/<&?.NAb\O`/<&`N^NuNV#B yJg: y-PHn/.NPOHn/<&/.N X`/.p ?N \ON^NuNVN?94nNTO#f/<&NZXONA3FN-|z .@-@ .##JNbNNBNNNNVNNN8Bg?9z/<nBgp?N\ N^NuNVN?9FNOFTON@3z34j4fNCBg?984NJXON/.N*XO/<&N*XON0BgNTON^NuNVp?/<&N\O=@m.Hn?.N$\OHnNXO @f?.NTON^NuNVBnp?/. ?.NPOJ@n n  n B(``Jng0 n  f n B(`F n Bp?p/?.NJPO`* n  f n B` n  fp=@R `xN^NuNVp=?/.N.\O-@g .S-@ n  g n  fS`Bn n  g n  gRn ngS` n  g n  fR?./.HnN* HnNC XO .R-@ n  g n  fR`A-H n  g& n  g nR"n nJgR`HnHnNPO?</.N.\OJfB@`0<N^NuNV-|% nJ g@/./.NPOJ@f/. NXO=@ n h 0` n-H`N^NuNVNXHnHnNq>PO nfp?/<&/<n/<JHnNzHnHnN|PO @fBnBnBg?9zHn?.?.N\ nHnNXOJ@o@0.@ymBnRn0.ymBnp?NTON @f NB@`8NXNN`nNs(HnHnNpPO=@g00.N^NuNV/<NVXO=@g0.`/<N XO=@gJygB@N^NuNV/<NVXO=@g0.`2/<NVXO=@f/</<NPOJ@gp0`B@N^NuNV/<&NZXON^NuNV0.@d @Yb*H0@ PNp`/.N_XO`/.N֜`?./. /.N `?./.N\O`?./.N/`0. @bH0@`?.?./.N0.H//.N`?.Nޖ`/.N_F`N`/.Nr`?.?.?./.N`?.?./.N&`4/.NM`?./.N`Nh`/.NZ`Nz>`?.N `6?.N`(N(``/.N`FN`HNR"`>?./.NO`Z/.NP` y?( y//.Ni`?.NETO=@g0.`Ry8N2=@NTSy8`Jf-|D?.?./.NL`/<&NZXO?.?.N p`v?.N `2?.N `$N`\?.N` ?.N`NB`6?.?.N4`N``?.?./.Ne`p/.Nh`Jf-|D?.?./.N*`>JnfNHT` ng nf?.NW`bJf-|D?./.NH`Jf-|D?./.NJ`?.Nm`/</<4&N.PO34Rp34$B@`,By4$`NF`pG`/.NLP`/.Nk>`N`34`NH`p33`Jng y hfBn`p=@?././. Nl>`/./. NmT`?9?9?9?9NPO`4?.NT`/<dN>XO`/<dNF`/.N`NU`33`N`Jnf?./.NoZ`/.Np`?.N!:`?.N`p?N<`vBg`N`/.Ns,`?.?./.Nw`?./.N&`/.Ntd`ZN= `\Nr`TNE^`LNP`?./.N ``?./.N`N?.N[`?.N,,`pJN^NuNV-|D"n Q-hX n=P .T-@-yN0.SnJ@gN n(Hy8f nB( nHy8f/./.NPO` n-HT`N^NuNV n f/.N XO`l?<NTO-@fp`V?<NTO-@f/.NXO`/././.Nn =@/.NXO/.NXO0.N^NuNV-n .-@ .-@-n .-@ .-@/.HnNPO=@g0.`ND=@f/.HnNPO=@fND=@fHnN(XO=@fNr-@HnNpXO=y4By4Nj=@34/.NpXOJnfpND=@fb/.HnNPO=@fJN!=@fH0@^ PN`.BnJgRnJgRnJngRn` p`p=@/.?.HnHn/</.N,=@fB@`/./.?.0.H @?(?. /.Nb?.NTOp?HnHn?.Hn?./.?./.NƶBnBn?.?.Hn?././.N̠ n fHn0.HЮ/NPO=@34\JngJ.Jg0.H @/( HnJNAPOJ@gfp?HnHn?.Hn?./.?./.NƶBn?.?.Hn?././.N̠`Nz=@34\0. |2< `XHXW PN`?9z?./.N@POJnoSn`/.N#XO=@g ng0.` 09HS@=@Bg?.?9z09y?0.yH??9?9HN 09R@H=@0.R@nnRnBgHnN˄\OHnHn/.N ~ 0. @!n0. @091@0. @091@`Jn gZJn g n g0.R@nlRn`0. @Jg4Rn0.H @1n/.?.HnHn/</.N,=@?.N TO/./.?.0.H @?(?. /.Nb?.NTO09R@H=@0.R@nop?HnN˄\OSn`0. @/(/.NPO=@fBgHnHn?.Hn?./.?./.Nƶ?.?.Hn?././.N̠Bn` n fzJngp=@ n g Jn g^ n gTJnoSn`FJng|Sn0.H @=h/.?.HnHn/</.N,=@?.N TO/./.?.0.H @?(?. /.Nb?.NTO09R@H=@0.R@nop?HnN˄\OSn`0. @/(/.NPO=@fBgHnHn?.Hn?./.?./.Nƶ?.?.Hn?././.N̠ n g0.S@=@`Bn?9z?./.N@PO0.R@nlRn`0.R@ @ fz/.N" XO=@g nf`vHnHn/.N ~ 0.R@ @!n0.R@ @091@0.R@ @091@0.S@=@p??.?9z09y?0.yH??9?9HN p?HnN˄\O`0.S@ @/(/.NPO=@f0.S@ @0(H#0.S@ @0(H# /.N" XO=@fNp?HnHn?.Hn?./.?./.NƶBn`/./.NPO=@fH0.H#0.H# 09H=@Bn0.SnJ@gd/.N#XO=@g ngJ`BgHnN˄\OHnHn/.N ~ -n09=@09=@p=@`Jng\Bg` n gnJn g0. |j2<`XHXW`(/.NXO`/.NXO` yHg?./.Nl\O?.N TO/./.?.0.H @?(?. /.Nb?.NTO`V n g`N^NuNV-nBnJn"g@p=@0.SnJ@g( np n1n0.n n -H`-nHn/.NXPOJnfNXBn n f*/.N#XO=@gP n\g0.`p=@`8 n//.NPO=@f n0(H# n0(H# Hn/./.N ~ 09H=@BnBn0.SnJ@g Jngp-@`HnHn/.N ~ n n1n09 n1@09 n1@ n -HRn?.?9z?.?.?./.?. /.ǸJnfv0.n n f&/.N" XO=@g8 n\fFp=@`& n//.NPO=@f n0(H# n0(H# ` n0B@N^NuNV0.yH0.yN^NuNV0.yH0.yN^NuNV nJg&"n n n p1@ n -H X` n BN^NuNVBn0. @b8H0@ PN`&Jg"?.?./.?./.NʰRnJg"?.?./.?./.NʰRnJng?<?<?<09R@??.Bg?.N`Bgp?/<&Bg?.N\ Rn?<?<?<09R@??.Bg?.NRn?.?./.N$PORn`jBgp?/<'>Bg?.N\ Rn?.?./.N$PON^NuNVJgfBg?. NzXO0.SnJ@gL0.RnH @-Pg&Bg?9z/. nB@(??. N\ n -H`N^NuNVBg?. NzXO0.SnJ@g> n-h Bg?9z/. nB@(??. N\ n -H`N^NuNVJn gp=@Bn0.SnJ@g0. @0.R@ "@ 0. @0.R@ "@1i0. @0.R@ "@1iRn`p=@p=@0.SnJ@gn0. @0.S@ "@ 0. @0.S@ "@1i0. @0.S@ "@1iSn`N^NuNV0. @-P0. @=h0. @0(H#0. @0(H# /./.NPO=@g n\g0.`Zp=@`HnHn/.N ~ Bn?.?9z?.?.?./.?./. Ǹ/.N XON^NuNV nB@(@=@?.?. /.N>PO?.?. /.NPOJng"Bg?9z/<'k?.?.N\ `VJnf/.p?Bg?.N n*f Bg?9z/<'?.?.N\ ?. /.N\ON^NuNV?.?. /.N>PO?. /.N\ON^NuNV=y=yp-@?. N TOBgBgNzXOBgp?NzXOBgp?/<'BgBgN\ p?p?Bgp?p?/<'/<'Nv=@0.S@ @bH0@ PN`/.NPO nf B9B@`Ns(/<NoXO=@g0.N^NuNVJ9g/<( /<N*POH-@fNP/<( NFXO`d/<("NFXO nJg/. nRH?N \O`/.p ?N \O/.p ?N \O/.NXONvN^NuNV y-h6 y ./0(4H -@ nVf .g8 yHhHnN.POp?HnND\O=@ @fp` NmzBg/<NC\\O=@ @f?.NE TO`Jgv o=|`0.=@0.H?.Hn?.NGPO=@o?.Hn?.NHPOng?.NE TO?.NE TOp`` nTg nUfb/<1|N>XO=@0.T@33?./<1|?.NHPOnfp @p @p?Hn?.NHPO @frp?B?.NFPO-@ nTg nVfBg/.?.NFPO?<Hn?.NGPO=@o?.Hn?.NHPOng`?.NE TO?.NE TOHnN XOHn/<NPO/<N XO y!n6 y1y34 yJh:f ySh:NvB@N^NuNV n-P n-hXNXN Df -|(9`: @f -|(@`& 8f -|(I` <f-|(Q/.p ?p?p?N /<(Yp?p?p?N n=PHn?.N*\OHnp?p'?p?N Jng0Jn g?./.Nj\O`p?NTO/.N`XOB@N^NuNVhAl-HhBnB@ nh0=@ .T-@-@ n=P0.ngJBn nh00.ng./.NRXOn0.yl n-HRn`Th` nhp0Al-Hhp??.Hn nh?/.NN=@N0. |2<`XHXW PN`B@`0.nlTh` nhJPgUh`N^NuNVp?NTO=y3 .T-@ n=PBnBn3 4gBy3`NXp330.Rnngp?p?/.BgBgBgBgBgBgBgp ?BgBgHnN0 p?HnN\Op??9zp ?N\OHn?./.HnN nJ( g 09z@p?HnN\ON n-HNJ@g@By3By433NN^NuNV n-P/.NXO=@g0.` n-hX/.Ne\XOp=@Hn/.N hPOJ9gp=@`Bnp?NTONJng2/<N ZXO=@fBgBgN pXO=@fz=y4\` .R/NXO/.NXO=@Jnf/.NXO=@f60.W@ @bDH0@ PN`pNPJnf/<(jNFXOJng/.NrXO=@fp=@Hn/.N hPO`"Jng/.NrXO=@fp=@Hn/.N hPO/.Ne\XO`Jng/.NrXO=@fnHnHn/.N ~ Bn .Sfp?NTO` .S//.NPO=@f U`r/.NXONB@`&Jng/.NrXO=@g`NP`6N^NuNV n-P/.NXO=@fJ g/. /.NPO=@f n-hXJ9gp=@`Bnp?NTONHnHn/.N ~ Jng,/<N ZXO=@f6BgBgN pXO=@g@` /.NXO n*f/<(xN6XO`N/.NXO34\094\Y@ @bH0@D PN`\/.NXO`L/.N`/.N>XO=@g,?.NTO/.NB`/.NBXO=@g?.NTO/.N>`/.NXO=@N`4/.NXONB@`"NP`/.N XO=@gl0.N^NuNV nf N `Jng Nۮ`NX/9VN_FXO/</9VN_PO=@g0.`N/<(NFXOBgNTO"yV Q-hX np0Bg/.N\O=@g NrB@`: yV/N`XO=@gNr`/9VN_FXO/9VN]BXON^NuNV/9VN_FXO-|4/.N]BXO=@g0.`B/</9VN_PO=@f n-P yV-P"yV Q-hX"n Q-hX .T-@ nBPByHBn/.N#XO=@fz n Pdn .T-@HnHnHn ./NHnND$XOHnNC XO?.Hn/.N* HnHnHn ./N.H?NRTO=@?./<(N.\OJg?.NvTO n@ HnHnHn ./NHnHnNTPO n1n 0.n0. @n\HnHnHn/.NHnHnNTPO0. n@ nRP n-H/.N" XO=@g/.N_FXO/.N`XO=@/9VN_FXOJnf/</<N.PO/9VN]BXON^NuNV n-P n-hXJn g?./.N\O`p?NTO/.NXOB@N^NuNV/9VN_FXO/<N XON^NuNVl nf N` nf N` nf/<N¨` nf/<N`NXNmz-|4n/</.nN_PO=@g0.`Z yV P?(6 nn P/(X yV P/(XNn /.n/9VNePOBgNTOBg yV P/(XN\O=@g2/.n/9VNePO/.nN_FXO/<N XOB@`/.n/9VNePO nn/N`XO=@g/.nN_FXO/<N XO` yV-Pv nn-Pr nvHhPNkXO/.r/.vN~PO=@f/.nN_FXO yV/HnN.PO/9VN_FXOHn/<NPO=@f/<N XOHnHnNPOHnN>XO?Hn/<(/<(HnNzHnN XOHnz/<NPOHnzN>XO?Hnz/<(/<(HnzNzp?HnzND\O=@l @g0?.lNE TOHnHnzNPO=@fHnzN XOHn/<N.PO/9VN]BXON^NuNV/. /.N$POBnByH/.NXO?/.HnN* n?( HnNp\O n?( BgHn/.N .-@ nB@( ?N@TO@B. n?( BgHn/.N .:-@ n?( HnNR\O n?( p?Hn/.N .V-@ nB@(?HnNR\O n?( p?Hn/.N n /NrXO=@fpRn`B@N^NuNVBn n-hX .T-@/<)^/.N.PO nB( np 1@ nB(Rn n-H/<)i/.N.PO nB( np1@ nB(Rn n-H/<)t/.N.PO np@ np1@ nB(Rn n-H/<)~/.N.PO np@ np1@ nB(Rn n0/.N`XON^NuNV-y0Jfp+`v yV-P nfp `^/./.NPO/<4/9VN`PO=@f0-y4/././.N =@/<4N_FXO0.N^NuNVBnJnf/. NXO n-HRn yJ/(NpXO/< y?( y?( y?(N =@g0.` y # yJ #J` yB yJB#FJ yJJgB yJ/(NpXOHnHnNq>PO yJ!y yJ #J` n-P=y3By3/.N#XO=@f##FJ yJg yJ-hHn/.N PO y/NpXOHnNMXOHnHnHnNtZ Hn/.N@PO y # yJ #J`t/.N" XO=@gL33 nfzJyfFNX#FJ yJJg*N yJ/(NHXO yJ #J`B@N^NuNVJyf0/<)NFXON?NRTO=@ @Ng@ nYf n-P/.N XO=@g0.` nJPg/.NhXO`B@N^NuNV-|4/</<NPOJ@ff/<)p.?/<N.\O/N.PONhN/<HnN.PO/</<N.POHn/<N.PO/</.N_PO=@fzp?/<ND\O=@ @f/.N_FXO/<N XOp`D/.?.N\O=@/.N_FXO?.NE TOJng/<N XO0.N^NuNV/p ?Hn?.NGPOJ@np `BgB?.NFPO fp ` .g .gB@. @gpV` .f4?< NTO-@fp`/. nHh /.?.N`fA-H n?( N TO6 n?(N TOC?NTO-@g/. n?(N TOHЮ//.?.N=@/.NXO0.&N^NuNV?< /. ?.NGPOJ@np ` n gpV` n BA( n B@(HAH@B@H@-@ n ?(N TO=@ n-P n-hX .T-@ . P-@Bn n  gpp ?/./.N* nB@( ?NvTO n@ nB@( n1@ "n niRn n-H n-H` n0 n/N`XO=@g0.` .SJg?./.?.NGPOJ@o .T-@ . P-@-n nRH=@ n=P0.SnJ@g\ nB@( ?/.HnN* Hn/.NPO nB@( n-H n-H n-H`/.NrXO=@f$ n*f"/.NXO/.NXO`B@N^NuNVp ?/. ?.NGPOJ@np `BgB?.NFPO fp ` n ?(N TO=@ n ?( N TO=@?./. ?.NGPOJ@o n /(NBXO-@ o-| n-P n-hX .T-@ .  -@Bn n  g nl~ n (M gbp ?/./.N* n( H?NvTO n@ nB@( n1@ "n ni n-HRn n -H`p n0 n/N`XO=@g0.`b .SJgR?./.?.NGPOJ@ol .T-@ .  -@-n nRH=@ n=P0.SnJ@g n (M g n (D f@ nB@(?/.HnN* HnHnNxPO?./.NL\O`. nB@(?/.HnN* Hn/.NPO n-H nB@( n-H n -H`R n BB@`@/.N(XO=@f*ND=@f/. N(XO=@f N!=@g0.N^NuNV-|4/</.N_PO=@g0.`" n/N XO=@f/<4N_FXON^NuNVJng?< NTO-@fp`/./.?.?.N$ nB nJg0. @b"H0@t PN`p` p `p `p=@0. nV@?0. nR@??. ?. NPO?<?<?<?<?<?<0. nV@?0. nR@??. ?. N6/.?.?.0. yT@?0. yHR@?/.N/.NXOB@N^NuNV0.H -@-n nB n-Pg| n-hX n=P .T-@0.SnJ@gT nB@( ?N@TO=@?./. N.\OJg/.?. /.N -@ n-H`N^NuNV/./.N.PO/.ND$XO/.N>XO n-H n g nRp, nB@( ?N@TO nR n gh nRp,/. n?( N*\O/.N>XO=@ n-H n g$ nRp, nB@(@0 nR nRp; nB .N^NuNV-n/./.N>XOHЮ/N>PO-@=n?.?././.?.?. N-| .T-@pp?/.N@\O n0S@=@Nz=@34\0. |2<`XHXW PN`Hn n/(N|PO?. n/(/.N* ` nB` n hglp?/.N@\O?.?.?.?. /./.N``2 n hg&p?/.N@\O?.?.?.?. /./.N:`0.H @ hgp?/.N@\O/.0.H @/(NPO-@?.?././.?.?. N`z n hgtp?/.N@\O n-h0.SnJ@g/./.N>PO-@`?.?././.?.?. N .T-@=n` y4\n`nN^NuNVHn n/(N|PO?. ?. n/( n?( n?N~ N^NuNV?9z0.n S@?0.nS@??. ?.Nn -| nBP .T-@Bn0.SnJ@gH n!n  n0 n1n Rn n g/./. NPO-@ PRn` n0 .T-@0.SnJ@gp?/.N@\OP`N^NuNV-| .T-@ nAe Q .`Bgp??9z0.nS@?0.nS@??.?.N  n=P0.nfSn` nRP0.HЮT-@0.SnJ@g"n n!iQ`/. n/(N>PO n!@ .N^NuNV-| n0S@=@0.HЮT-@ nAb P .`p?p??9z0.nS@?0.nS@??.?.N  .T-@0.SnJ@g"n n!i P`/. n/(NPO n!@ .N^NuNV n f . `" n ;f .R` n gR`N^NuNV n f . `&U n ;f .R` n gS`N^NuNV n BP nJg n ;g n RPR`N^NuNV/.NXO=@ @fpE`0.N^NuNVHnNXO=@g0.`rHnHnNq>PO nfJJng nfPO nfB nf:HnNXO=@fp0.-@p0././.NPOB@`pN^NuNV/.NXO=@ @npM`0.N^NuNVHnNXO=@g0.``HnHnNq>PO nf8 nf0HnNXO=@g nnpM=@`0.n=@`Ns( n0B@N^NuNVHnNXO=@g0.`^HnHnNq>PO nf6Jnf0HnNXO=@g nnpM=@`0.n=@`Ns( n0B@N^NuNV yV-Pp3@HnHnNq>POBy@0. @b&H0@` nf/.NXO=@g0.` nJPgB@ n0`JngpO`xHnHnNrPO0. @bH0@`Ns(/.N!XO`8Ns(/.N!`/./.N`PO`Ns(/.N"`p`0. @bHH0@`6-yJ/.NXO=@f NC` nn/.NpXO/.N!XO=@g nf/.NpXO`H n0`j nfHnNH&XO=@fHnND$XOHnN>XO?Hn/<n/<JHn$Nzp?Hn$ND\O=@ @g?.NE TO np`^ nBP`Ns(Jy3gJnf`0. @bH0@B PNNs(p`NC=@fHnN(XO=@fND=@fHnN(XO=@fB.NCJ@g0ND=@fHnN(XO=@fNC=@fz n0` ND=@g`\NCJ@f"Ns(HnNExXO=@f8 n-P np0Jg0. |2<`XHXW PN` nJhFfp`"n n0F`|"n n0D`lHnNExXO=@f n-PHnHn/.N ~ n*` n04ND` NC=@frHnNMXO=@f^ND=@fPHnNMXO=@fHnNDXO=@f*NC=@fJnf"`"/.N%`fNC=@fHnNXO=@fND=@fHnNXO=@fND=@f/.NXO=@fNC=@fJng$ n0`NHJ@gp`B@ n0`B@N^NuNV/< NMXO=@g0.`dHnHnNq>PO nf nf nf Ns(p`2HnNMXO=@f?.Hn/< N$ n0B@N^NuNV/< N)XO=@g0.`2HnHnNq>PO n f nfp3@HnHnNq>POBy@Jnf6HnHnNrPO nf/./< NPO n0B@`Ns(HnN(XO=@fb/< HnNAPOJ@gp`B@` nf. nOf&HnN(XO=@f /< HnN&` nf4HnN(XO=@f?.?.Hn/< N$| `LNs(pN^NuNVNr-@/.N!XO=@g ng0.`/.NpXOHnNXO=@f/< ?.N\OHnHnNq>PO nf nf nf Ns(p`HnNXO=@f nBP0. @b^H0@ PN`N0.ncD`:0.nd8`.0.nf,`"0.ng `0.ne` 0.nb np0B@N^NuNV/. /.NR`PO=@0. @bBH0@ PN`2Jno*p`(Jnl `Jnf`Jng`Jnm`JnoB@N^NuNVJy3f\ ng nfL/.N>XO=@g:/. N>XO=@g(0.no?.`?./. /.N `/. /.NPO=@0. @bBH0@ PN`2Jno*p`(Jnl `Jnf`Jng`Jnm`JnoB@N^NuNVNC=@g0.`HnNXO=@fND=@fHnNXO=@f?.HnHnHnNz?.HnHnHnNz0.nf0.nf np0` nBPNCN^NuNVNC=@g0.`rHnNXO=@fND=@fHnNXO=@fNC=@f2.A0.@Afp`B@ n0B@N^NuNV/. /.N&POJ@fp`B@N^NuNV nH |"2<`XHXW PN` n JgdB@`b n JgRR `R nJgBHn HnN'POJ@f`/. HnN'8POJ@f` n H nHAf`pN^NuNV"n Q -g nR` n-P"n Q ]g nR` n(H n HAnS nH n HAmp`&S n [g n H nHAf`B@N^NuNV n-P n -PHn/.N(DPO-@/.N>XOnlB@`:?././.N( J@fR`0.HЮ n n pN^NuNV n BP nJg n *f .`& n [f n ]gR` n RPR`N^NuNV0.SnJ@g2 nH @?g @[g" n H nHAf"RR `p`/. HnN'8POJ@fB@N^NuNV/.N)XO=@ @fpL`0.N^NuNVByHnN*8XO=@g0.`HnHnNq>PO nfJng nf=y nfHnND$XOHnN>XO=@ByHnN*8XO=@g nfpL=@`z09n @m.0<n?Hn NHhN* 3`DHn NHhN.PO0.y` Ns(Hn/.N.POB@N^NuNVp3@HnHnHnHnNrBy@0. @ bH0@( PNNs(p`B nm=|3?././.N. `JngpO`HnHnNrPOJnf n3 /./.NPO` nfz/.N)XO=@g0.`NC`JnfNHnNyLXO?./.Nxb\O/.N>XO3ND`b0. @9b H0@@`/<3/.N.PO`/.NH&XO=@fn/.NC XO`/.NH&XO=@fJ/.NI`/.NH&XO=@f* nfXOJ@f np  nB(`/.NDdXO`tNC=@fHnNMXO=@fp =@NDJ@fHnNDXO=@f nmBnNDJ@fHnNDXO=@fdJnm3?.?./.HnN `>NC=@f(HnN(XO=@f=yHnN>XO=@ND=@fHnNDXO=@fNDJ@fHnNDXO=@fJnf=nJnl0.F@R@=@0.ʐn=@BnJngSn0.̰nl 0.̰nm nBBn`60.nʰno 0.n=@?. NHh/.N* 3`*NC=@fHnHnNq>PO n gp6`p=@ n+fBn n,fp=@ n-fp=@ n/fp=@ n.fp=@ nfp=@ nfp=@ ng0.J//.N.PO/.N>XO3`^NC=@fH=y4XNC=@g"HnNDXO=@f NC=@f0.̰ym=ySnnBn0.H-@/. n/( NuPO`hHnNH&XO=@fHnNC XOHnNXO-@Jg/./.N.` nB`HnNHXXO=@ffHnHnNTPO0. n nB(p`NC=@f0HnNDXO=@f no=|3?./.N\O0nB`NC=@f nfHnNDXO=@g"`HnN(XO=@f.H=@ND=@fHnNDXO=@f| no=|3?.?./.NPO0n`ZNC=@fHnN(XO=@f*ND=@fHnNDXO=@fJnnHnN>XO=@ no=|HnNDdXOHnN>XO=@ nB0.̰no2?.0.̐n?/.NPOHn0.̐nHЮ/`0.n0@Hh`NC=@fdHnN(XO=@fPND=@fB/.N(XO=@f.ND=@f HnNDXO=@f Jno SnnBn/.N>XO=@g|0.̰nlpHnN>XO=@0.nno 0.n=@?.0.HЮ/HnNn `$/.NIRXO=@fz` nf <` <-@?</./.N* `xNC=@f4HnN(XO=@f Nr-@HnNpXO n f HnNi` HnNkXO?.N@TO n nB(HnHnNq>PO ng npUp3/.NpXO`HnNExXO=@f nB n-Pg /.`HnHnNHPO=@fR nB n-Pg Jnfp=@ n-hPSngJg n-h`Jg /.`tHnNH&XO=@f nfHn/.N|`Hn/.N}`/.NJLXO` dNC=@f/.N(XO=@f nH=@ND=@fvHnN(XO=@fbND=@fTHnNDXO=@f@Jnfp=@A-HSng,?./.N.\O-@fA-H nB`R`-n nJg" nHng nR"nR` nB`VNC=@f/.N(XO=@f nH=@ND=@f/.N(XO=@fp nH=@ND=@fVHnN(XO=@fBND=@f4HnNDXO=@f Jnnp=@ nmp=@A-HBnB@=@=@ nHng nJg RnR` nJf n(HngA-HBn`RRn nHng nJg RnR` nJf n(HngBn`RnHnN>XOnn=@ nB nf Jno0.S@?Hn/.N* nf&Jno 0.S@? NHh/.N* nfx?.0.n0@Hh/.N*`,NC=@fHnNMXO=@fNCJ@gvND=@fHnN(XO=@frND=@fdHnN>XOHЎ9-@/.N(XO=@f6NC=@f(/.Hn` /<)/<)Hn/.N8`NC=@f/<3/.N.PONCJ@gnHnN(XO=@fNC=@fHnN>XO?Hn/<n/</<3Nz`NC=@fn nB0. @g @g`/<4/.N.PONCJ@gHnN(XO=@f$NC=@f0. @g @g`p?Hn/<4N*`pJ=@-| nXVgRn`0. n nB(p`NC=@fHnNXO=@f?.NTO n nB(p` NC=@f\/.N(XO=@fHND=@f:HnNDXO=@f&ND=@fHnNDXO=@f/.N>XO30.̰ynJng-n0n0.(`/<`*/<2j` NC=@fHnN(XO=@fND=@f~HnNDXO=@fjJno noBy n`bHnND$XOHnNDdXO nf?./.HnN<`?./.HnN 3`NC=@fHnN(XO=@fND=@fHnNDXO=@fNC=@fJnoHnN>XO=@0.̰no=n0.ʐn0@Hh`ND=@f\`NC=@fJHnNXO=@f6NC=@f(?.HnHnHnNz0.S@H @8/`hNC=@fp?HnHnNE =@fND=@fHnNDXO=@fND=@fHnNDXO=@fND=@fxHnNDXO=@fdp=@/<)HnN.PONC=@g^ND=@f2HnNDXO=@fNC=@g0ND=@fHnN(XO=@fNC=@f/.Hn?.?.?.?.?.N `:NC=@f/.N(XO=@fND=@fHnNDXO=@fxND=@fjHnNDXO=@fVND=@fHHnN(XO=@f4NC=@f&SnlBn/.N>XOn=@oHnN>XO=@0.HЮ-@JnoD0.R@?0.HЮ//.Nn ?./.HnNn n-HJno20.nn n`0.HЮ/N>XOR@?/.0.HЮ/Nn`NC=@fBHnN(XO=@f.ND=@f HnNDXO=@f NC=@fJnotHnN>XO=@0.̰no=n?.Hn/.`=yN=@3 nB`NC=@fHnNMXO=@fND=@frHnNDXO=@f^NC=@fP/.?.`NC=@f6HnN(XO=@f"ND=@fAE-H/.N(XO=@fNC=@fp@ nHnp?HnNg /.p?/.Ng p@ n8f/.HnHnNtZ`/.HnHnNu /.p?HnNK /.N>XO3B@N^NuNV-n/. N>XO=@ nJg,?./. /.N J@f .R@`R`B@N^NuNV y/NpXO y0( @bH0@\ PN`/./. /. y/N`/.N)XO/.N>XO n0 n BP`h/.NMXO"y n0 n p`6/.NXO n p`"HnNXO/.?.N\O n p0"y n0N^NuNV nJg nH?NRTO nR`N^NuNVBn0.n l" nH?NRTO nRRn`N^NuNV nH?/<)N.\OJgp`B@N^NuNVHnHnNq>PO nf nfB@`Ns6pN^NuNVHnHnNq>PO nf nfB@`Ns(pN^NuNVNC=@g0.`NCN^NuNV/.N>XOHЮ-@ ng n ( fS` nBN^NuNV-n nR  g nHh/.N.PON^NuNVHnHnNq>PO nf n,fB@`Ns(pQN^NuNVHnNMXO=@g0.`Hn/.NTPOB@N^NuNVHnNMXO=@g0.`0Hn/.NTPOHnNsXOJ@l n0D@ n0B@N^NuNVHnNMXO=@fHn/.NhPO0.N^NuNVNC=@g0.`< n VNCJ@fB@`$p?Hn/.NE J@gpP`NCN^NuNVHnHnHnHnNr nf$0.@ @bH0@ PNB@` nfJnf n p0 n  ` nfl nfb ng nfj n Ff` nf nH@A=@ nf n(H@J=@Jnm( n n n 00.H n `LJng/. /./.NG J@f`$ n  n BP` n  n p0` n  n p` n  n p` n  n p` n  n p` n $ n p` n ( n p` n , n p`| n 0 n p `hNs6p6N^NuNVBn n lV0.H -@ n-PJg, nHhd/.NPOJ@f n n0B@` XRn`pN^NuNVNC=@f/.N(XO=@fNC`0.N^NuNVNC=@f/.NMXO=@fNC`0.N^NuNVp?Hn/.NE J@gpP`B@N^NuNVNC=@g0.` n V n BPNCJ@gh/.NHXO=@g/. NDXO=@fNC`> n BPNCJ@g,ND=@f/. NDXO=@fNC=@fxB@N^NuNVNC=@g0.`rHnNXO=@fND=@f/.N(XO=@fND=@fHnN(XO=@fNC=@fJnfHn/.N.POB@N^NuNV nJg nH?NR:TO nR`N^NuNV0. \@H@=@ 0. H@B@H@ @88//.N.PON^NuNVNC=@g0.``p?HnHnNE J@fND=@g `-yVHnNDXO=@fp=@NC=@gJND=@fHnN(XO=@f.H?NRTO?NvTO=@NC=@f\ nB n-Pg n-hX .T-@ n=P0.SnJ@gr ng nBA( 0.AfJSnfD nB@(? n?( nB@( ?N@TO?/./<)/.ND` n-H`/.N>XO3B@N^NuNV nB@@g nB@@ n nRp-Jn f -|Q`$ n f -|` n fp<`p-@p@@/.HnNPO/.HnHnNu -|QHnHn/.NM -|HnHn/.NM p<-@HnHn/.NM HnHnNTPOJng&?.?.?.?./<)/.ND` ?.?.?./<)/.NDN^NuNV/. HnNhPO .谮l nBP`fp@@/.HnNPOHn/. HnNw Hn/. /. N HnHnNTPOHn/.NTPON^NuNV/.NMXO=@ @fpK`0.N^NuNVHnNNXO=@g0.`HnHnNq>PO nfJng nfrHnNNXO=@g nfpK=@`p@JnfHnHnHnNtZ`HnHnHnNu p@HnHnNtPO`h npHn/.NtPONs(B@N^NuNVHnNOXO=@g0.`6HnHnNq>PO nf ng ng ng nf`HnNOXO=@g nfpK=@`p@ nfRHnHnHnNu`p@HnHnNtPO`h npHn/.NtPONs(B@`x nf0HnHnHnNw 09by$l3$b` nfHnHnHnN `lHnHnHnN\ J@gPpaN^NuNV np=ybp3@HnHnHnHnNrBy@0.S@ @ b@H0@ `.0. @b&H0@`/.NOXO` /.NOXO=@g0.` nB@ @ n`/.NMXO=@fNC`/./.NtPO0.ذybo3b`JngpO`HnHnNrPO0. @g @g8`b nB@(ybc nB@(3b/./.N PO`2Ns(/.Nx`0. @bbH0@ PNNs(p`NC=@f?94Z/.NSf\ONCJ@g$/<4ZNDXO=@fNC=@f3b`HnNH&XO=@fHnN>XO=@?./.NSf\O`/.NHXXO=@f^-n nH@ n`BNC=@f4/.NMXO=@f ND=@fHnNDXO=@fNC=@f n0.(-n nH@f/<;|/./.NtZ`/<;|/./.Nu /./.NTPO n0.֑(3b0.ְybop3b`dN|`RN`HN`>N`4Nh`*BnNC=@f NC=@g"HnNDXO=@fNC=@fHn?.N6\O/./.NPO`HnNH&XO=@fHnN>XO?Hn/<n/<HnNz nMf HnN` HnN XO=@`fNC=@fX=y3?./.NSf\ONCJ@g*HnNDXO=@f NC=@f33` NC=@fHnNXO=@fNC=@fJngp`B@=@?./.NSf\O` HnNdPXO=@f`NC=@fHnNXO=@fzND=@flHnNXO=@fXNC=@fJ0.аnc=n=n=n0.\@H@R@=@0.Sn @gSn`0.ΐn=@?.`$NC=@fHnNXO=@fND=@f/.NMXO=@fND=@fHnNMXO=@f~NC=@fpJnf ^Hn/.NtPO` J?9z/.NSf\OND` 0N` &N` N=@f3b?94`DN&` N` NC=@fHnN(XO=@fND=@fHnN(XO=@fp=@NCJ@gXOS@=@Hn NHhNAPO=@g0.nn=@Rn`3b?.`NC=@fHnNDXO=@f| nm nopZ`^0.S@?NHn/.Na6`.Hn/.Nb`Hn/.Ncv`Hn/.NdPO=@Jngpa`/<;/.NtPOp3b`*/<;`NC=@fTHnNDXO=@f@Bn?.`HnNH&XO=@f HnHnNGVPO=@f/.`NC=@fHnNMXO=@fND=@fHnNMXO=@fNC=@fHnHn/.N `NC=@fHnN(XO=@frND=@fdHnNDXO=@fPNC=@fB/.?.HnNg 3b09$аybo 3$bB@N^NuNVNC=@g0.`NCJ@gp=@Bnp=@/.N(XO=@fND=@f/. N(XO=@fND=@fHnNDXO=@fND=@fHnNDXO=@fpNCJ@gND=@fVHnNDXO=@fBND=@f4HnNDXO=@f ND=@fHnNDXO=@fNC=@gHND=@f&Nk=@f yJ( gp8`xX`NC=@f yB n4f$?.?.?.?.?./. /.N`"?.?.?.?.?./. /.Nv34B@N^NuNVNC=@g0.`HnN(XO=@fND=@fHnN(XO=@fND=@fHnN(XO=@fNC=@fA-HA-HHn/./.Nf A-HA-HA-Hp=@ nH nHAf@Hn/./.Ng\ =@Jng 0.SnJ@g nR"nR` nJgJnf nB/.HnHnHnHnHnN>XO?Nf(J@g nJgxHnN>XO n-HA-HA-H nJg nRB`A-H nH nHAg nJg nR"nR`B@N^NuNV/ nBPBn n JPgv n 0.PfT&n/.N>XOnHЮ-@?./.HnN* Hn/.NPOJ@f nRPB@` n 0nT nRP` nBPp&_N^NuNVBn nH n HAg n Jg RnR ` n Jf nT0`JHn/. /.Ng\ =@Jnf nT0Bn`0.n n -H `| nBPN^NuNV nBP nJg$ nH n HAf nRPR R` nJfB@`pN^NuNVH-nBn n -f p=@RBB-@-@-@A-Hp:?/.N,\O-@g"&nX nHhNXO& nB`/.NXO n /<Q/.N PO(/</.N PO&pPOBy4 npU0 nfJnf/.HnNrPON^NuNVNk=@g0.`Hn/.NrPOJngpL`B@N^NuNVp3@HnHnNq>POBy@ nfJnfHn/9NrPOB@`Ns(p9N^NuNVNk=@fXNDJ@g yB0.N^NuNVNk=@g0.`/./9NPON^NuNVNk=@fXHnHnNq>PO nf n gp6`8Ni=@f(X y #NDJ@g yB0.N^NuNVp3@HnHnNq>POBy@ ngp:`4Jng nf-yJ n  fR` yJ!nB@N^NuNVBy3XNl=@f8Ry3X yJ #JNDJ@f y 3Xop:` yJB0.N^NuNV/<)/<No^PO/<N XON^NuNV nl0.J/NnXO`B/<JNnXOp=@ nl$/<J0.J/N.PORn`B@N^NuNV nBHnHnHnHnNr ng ngJy4g Jng(pR`-yJ n  g n  fR`-nBn n  g0 n ,g& nJg n  g n |g RnR` nop=@?././.N* nf np:@ nB(Rn`H no@ nl80.HЮ-@ n (\g n (:g nRp\ nB nJgB@N^NuNV/</.N.PO/. /.NPON^NuNV/<n/</.No N^NuNVHnHnNpPO=@g0.`?.Hn/./. /.NzN^NuNV/. /.NpPO=@f /.NC XO0.N^NuNVHnHnNq>PO-yJ n  g n  fR`-nBn n  g0 n ,g& nJg n  g n |g RnR`/.NpXOJnfp4`, n+mpC` ?././.N* n 0B@N^NuNV y JN^NuNV .##Jp34N^NuNVNB91|Nq(N^NuNV/<1|NpXON^NuNVJy4gd#J/</9Nf"PO# y<fRy<-| nRB@3 @bH0@D PN n0 n 0Dp34` nRB@3#` nB@3D` nRB@3#/</< /9N ` n0 nB@3D n 0By4N^NuNVHn/9JNf"PO-@ n J .J n 0N^NuNVJy4g 9` 9JN^NuNV/. /.Nq>PO n  n0N^NuNV-y n ( fHnNXOJ@g-y n nB@( n 0N^NuNVBy4N^NuNVp34#JN^NuNV-|1|By3-nHn".1|0<A?/.?9FNK -@gRy0.y3JyRgXJy4^gNNNJy4$g6J94&g.094Ryf /<4&/<3`NPOJ@fp33S n ;gJ`/<*/<1|N.PON^NuNVp3@Hn nHhNf"PO-@By@ .gpL`=y4 By4 HnHnHnN J@f34 Hn/.NPOJ@f n .fR/./.N.POHn/.NtPO=@NN0.N^NuNV/. N>XO=@/<1|N>XOn @opXO=@0.R@?0.HЮ//.Nn ?././. Nn B@N^NuNV n/(NuXO n gR n p.R p ?/./. N* N^NuNV y8fpY`j y<fpZ`Z y@fpX`J yDg/.0. H @0(n n?N\O` n m n o pDN^NuNVJnf nBPB@ n 0 n0`=n n:cRn0.=@0.H=@nD0.H@=@-|*@ n0.he TRn` n0.P=@JnfSn0.HH@J@f0.HdH@J@f0.HH@J@f-|*&Jnf=|n`-|* Jnf=|m n p0 n0.hc T n RP`"n0.Q n0 n0N^NuNV0.n cp`0.n dp`B@N^NuNV n BP nH?NQTOJ@g$ nH n 0 A@0 n 0R` .N^NuNVp=@Bnp=@ n R H?NRTO=@gJngJng nf&?.NQTOJ@g nR0.=@Sn0.ng0.@A @bjH0@ PN`|=n`r nRp1Sn` nRp2` nRp3` nRp4` nRp5` nRp6` n,g n.fBn` 0.SnJ@g nRp0` nBN^NuNVp=@ n R H=@gN?.NQTOJ@g(JngBn?.NRTO=@`?.NR:`p=@ nR0.` nBN^NuNVHnHnNpPO=@g0.`/.HnNZPO/.NC XOB@N^NuNV0.S@=@=nJy3f0.HdH@=@0. @ bH0@ PNJnm0.HЮ`Jy3g&?.?.?./<*/.ND=@`?.?.?./<*`Jy3g?.?.?./<*`?.?.?./<*`Jy3g?.?.?./<*`?.?.?./<*`xJy3g?.?.?./<*`Z?.?.?./<*`DJy3g?.?.?./<+ `&?.?.?./<+`Jy3g?.?.?./<+)`?.?.?./<+8`2.H I0.H H@A n2.H I0.H H@A n@2.H I0.H H@A n@ .V`?.?.?./<+G`X?.?.?./<+T`B?.?.?./<+a`,?.?.0.H @8T//<+p/.ND`?.?.0.H @8//<+z`?.0.H @8T/?./<+`?.0.H @8T/?./<+`BN^NuNV n l-|+Jng=n` p `-|+ n g0.@ =@0. @bH0@4 PNJnmv0.HЮ`j2.H HA0.H HA n2.H HA0.H HA n@2.H HA0.H HA n@2.H HA0.H HA n@ .X`?.?.?./<+/.ND=@`4?.?.?./<+`?.?.?.?./<+/.ND`?.?.?.?./<+`?.?./<+/.ND `/.?.?.?./<+/.ND`b/.?.?./<+`~BN^NuNVHnHnHnN, ?.?.?.?. /.N~ N^NuNVHnHnHnN Bg?.?.?.?. /.NrN^NuNVBn nBP nJg` n HnR ./N|VPO-@ n R 0.Rn nR >gpT`" n R "nRRn` n0B@N^NuNV093W@ @b@H0@T PN`RJy3f/<, `6/<,`.Jy3f/<, `/<,)`Jy3f/<,4`/<,=/.N.PON^NuNVp.?/.N.\O-@g$ .=@?././. N* `/./. N.PON^NuNV n (.gp-?/.N.\O-@gZ n (>fN/. .?/.N J@f(/. nHh n P/N" J@fB@`p`094 @bH0@` PN` n V/./. yV/N" J@g/././. N J@gp`" n V/./. yV`f n /./. y`J094 @bRH0@p``-| nH? <,H-@/N.\O-@g0 .HЮ-@ n /. nHh n`-|8 nH? <,T-@/N.\O-@gB .HЮ-@ n /. nHh n/N" J@f`tpN^NuNVJg^ n-hX n=PgJ .T-@0.SnJ@g4p ?/./. N J@f n B@` n-H`pN^NuNV <D-@ n "n Q-hX n=P .T-@-yN0.SnJ@g< nJ(f /./. NPOJ@f n B@` n-HT`pN^NuNV n-P-|D"n Q-hX n0=@=@ .T-@-yN0.SnJ@fp&` nf nH=@` n-HT` n?( n/(HnN* Rn0.ngxU n-H n(Hnf/.HnNPOJ@f n ( g n `T n?( n/(HnN* nH=@`|HnHnHnN J@gp` n B@N^NuNV Df^"n Q-hX n=P .T-@-yN0.SnJ@g, n f098 n@` n-HT`N^NuNVHnHnHn/.NHnHnHn/. N0.ngp`0. @bH0@ PN`.H.HAop`Z.H.HAfB@`FHnHnNPO`4HnHnNR``HnNXO?HnNXO?N|0XON^NuNVHnHnHn/.N nf/. /.NvPO`?.?.Hn/. N N^NuNV"n n0 nB@( n0 @bH0@ PN` n? n/(/. N* ` n?/. n/(NUd`/. n/(NCrXO?N\O`j n?( n/(HnN* HnHnNxPO/. ?.`HnNXO=@g0.`/././. /.NN^NuNV nB@( @g n?( n/(N\O`> nB@(?/<;lHnNX n?( n/(HnNn N^NuNV/.NXO n hp1@HN^NuNV n-h n=h nB@( @bH0@ PN nh n hp1@HB@`$0. @bH0@`?././. Nn 0.no0.n?0.HЮ/N\O`/. NXO?NTO@B.p?Bg`/. NXO=@?.HnNxb\OHnN>XO`p?/. HnNX `0.J@g @gXp5`J0.J@g @g`0.J@g @g`HnNXO=@g0.`?.?./. ` n?( nB@(?/. /.NV J@gp `p?Hn/. NUd ?.p`/. NXO?NTO n`F/. NCrXO=@p?p?Hn`X/. NXO?HnNx\O?./.HnNn `Hn/. Nw^POJ@gpD`p?p?Hn/.N N^NuNV n ( gpK`HnHn/. /.NB@N^NuNVBgp?/. /.N N^NuNV n ( gpM`HnHn/. /.NB@N^NuNVp?p?/. /.N N^NuNV nJ( gpL`HnHn/. /.NB@N^NuNV/. N>XO=@?.Bg/. /.N N^NuNV n ( gpE`HnHn/. /.NB@N^NuNVp?p?Hn /.N N^NuNV/. /.NPO n ( f Hn/. NxPO?./. Nxb\ON^NuNV nB@( @b6H0@ PN`$HnHn/. /.N`HnHnHn/.N nB@(?Hn/. NX ?./. N\O nJ(g nBA( n0( AH@B@H@Ю S-@ nRp. n  fv nRp0`HnHnHn/.N?./. Nx\O`>HnHn/. /.N/. NXO?NTO n  n B(N^NuNV/. N>XO?Bg/. /.N N^NuNV"n n0 nB@( n0 @bXH0@ PN`Hp*? n?/. N PO`0p?/. /<;lNn ` n B`/. BgN\ON^NuNVp3@HnHnHnHnNrBy@ ngp:`XO?Hn^BgBgNHnN XON^NuNV n!nLp0. //.NPOJ@gpH`0p~? nHhN.\O-@g nBR . n B@N^NuNVJnfpN`pYN^NuNV/.HnN.PO?. /.N\OHnN>XO20. A=@l /0.H //.`Hn0.HЮ/N.PON^NuNV?././. NX ?./. N\ON^NuNV?./. N\O0.H=@/.N>XO=@0.H=@0.nl0.n n -H =n`0.n n-H?./. /.Nn N^NuNV?./. N\O/.N>XO20.A=@l ./0.H //. `/.0.HЮ /N.PON^NuNV=y4By4/.NpXO/. N(XO=@340.N^NuNV=y4By4/.NpXO0. @bH0@ PN`/.N(XO=@`|/< NMXO=@?.?././< N `\HnNXO=@?.NTO n nB(` HnNXO=@?./.Nxb\O?./.Np\O340.N^NuNV=y4By4/.NpXONi=@34Jng0.` y0( @bH0@ PN` y?( y?(/. /< N `X/< /. N.PO`D/< NXO?NTO n  n B(`/< NXO?/. Nxb\OB@N^NuNV0. @bH0@0 PNpU`pC`pN` pL`pD`pMN^NuNV0.@C @ bH0@H PNp`B@`p` p`p`pN^NuNV?. /.HnN* HnNC XOJ.f. .Am& .Jn.H@AH n B@`Hn/.HnNG N^NuNV"n iX=P"n iX=P n (XT-@=n0.SnJ@g y yB n (XT-@=n0.SnJ@g././.NPOJ@f y ` n-H` n-HX y #`n yBN^NuNV#B# yJgL yJf y/NXO` y/ y/NPOX y #`B@N^NuNVBn nBBp@/. HnNTPOHnNsXO=@ @fB@. @@p=@HnNsXO=@p=@p-@JngT0.nn0?.HnNX\O=@Hn0.H/N POЮ-@p //.N PO-@Sn`Jng .D-@ n `JnfjN^NuNVSn 0. @T@HЮ-@ nH=@0. @f 0.@=@0.@N^NuNV/ J f/.NsXO`B.J l|B -@ Bn nl60.Rn6@p //. N ,PO@p //. N PO-@ f0. n@ nH@=@BA.0.A nTBn0.nlPJngSn0.0@B@(H@`B.JngSn0.0@(.0nRn`B@&_N^NuNV/.NVXO=@f/. NVXO=@f=|HnHnNPOJ@gp`Bg/. NC\\O=@ @f/.NXOp`p?/.ND\O=@ @f?.NE TO`?./.?.NGPO=@o ?./.?.NHPOngp=@?.NE TO?.NE TO/.NXO0.N^NuNVp@/. /. NTPO/./.NTPO/./. HnNw HnHnNTPOp@Hn/.HnNu Hn/. /.Nu N^NuNVp@ nB/. HnNTPOHnNsXOJ@f/<,/.N.PO`BgHn/.N /./.NPOp@/. HnNyPO/<,Hn/. Nu /. HnNTPOHn?.N*\OJnf/<,`Hn/.NPO/./.NPON^NuNV/<,/. NR`POJ@mPp@/<,/. HnNw 0.R@?Hn/.N /<,/. /. N /. HnNTPOJng6?./.N\OJng 0.S@H @8$//.NPON^NuNV nd mH0. HdS@H @7//.NPO/<,/.NPO0. HdH@=@ n m60. H U@H @8//.NPO0. H H@=@ n m 0. S@H @7//.NPON^NuNV^BndHn^HnfHnp/. /.NJnl09n^H=@b`=nb=n`JngTn`09n`R@=@h=ndf0.fHnhlp`p=@dBnjAp-Hl0.fSnfJ@g6 nl1nb nl0`Rnj nl -Hl0.dn`0.`yo?.?.?.jHnp?.N N^NuNVBn nBP nBP/.N>XO=@ n P(g~ nRP n!n /./. NAPO=@gXSn0.yo=y n0.Po n00.nHЮ -@ n1n n -H`z/. N>XO=@ n1@ n0.Po n00.H @BJg& n -H0.H @B-PA-H n?( n/(/.N* Bn n P(g nRP"n0.HЩ n!@/./.NAPO=@ghSn0.yo=y n0.Po n00.nn=@0.nHЮ-@ n1n n -H`\/.N>XO=@ n1@ n0.Po n0Rn`N^NuNV nfBgpp?/<,Bg?.N\ nf"Bgpp?/<-Bg09S@?N\ -n =np=@Bn0.SnJ@g6 nJhg?9z/. ?.NPOBn n -HRn`BnJngJnfBn0.S@=@0.S@=@no=n0. @ Jhf?./. HnN p=@ nf?9z/. ?.NPONz=@?9z/. ?.NPO0. |x2< `XHXW PN`0.R@`Bn`0.@)`?./. HnN `r0. @ =h?./. HnN 0. @ 0(ng.`?./. HnN8`0. @ =h?./. HnN8 0. @ 0(ng`=n`>Bn`N`?.NRTO=@=n?./. HnN 0.ng0. @ hH?NRTOnf=n`PJng<=yzpp3z nfBg?.` Bg09S@?NzXO3z0.N^NuNV0. Ю -@Bg?. n?( n/( n?( n?NN^NuNV n=P0.nfBn`Rn0. @ Jhg n0N^NuNV n=PJnf=n`Sn0. @ Jhg n0N^NuNVXHnXHnhHnp/. /.N=nbn 0.XT@=@b09Hb=@`09HbH@=@\0.\HR@=@Z=ndJngTndJnnp=@BnjAp-HlJnho`0.dynT=nZf=n`^0.^Sn^J@g2 nl1nf nl0d nl -HlRnjSnhg 0.bnf`0.nd`?.?.?.jHnp?.N N^NuNV n ( f/. /.N8`* n ( f/. /.N@`/. /.NPON^NuNV0. Sn J@g4A-HHn/.N>PO/. . /N$PO`N^NuNV n ( fR n0(@g8/. N4XO/?91l nB@(? nB@?/.Nמ`-|-Tp`p nB@(=@-n nJgVA-H n ( fHn/. n/(N6`Hn/. n/(N HnN>XO=@ nB@(? nB@(??./. nB@(? nB@?NN^NuNVH n -P n-h nB@(S@ @ b&H0@ PN` n //.NnPO` n `-n n / n?N*\O nB@(? n /N` nB@(? n //.N ` nB@(? n //.N` nB@(? n //.N` nB@(? n //.NF` n //.N`( n //.NPO nBC( n /N>XO=@Cd nB@(n? n 0.HА/N` n //.N` n //.N*` nB@( @bH0@`l/< n /N.`n n?( n?( n //< N `F n &P?9 NTO n PB(`$/< NXO=@?. n /Nxb\OLN^NuNV/./. N.PO/. N>XO=@0.n?0.HЮ /N\ON^NuNV nB@( ?N@TO n  n B(N^NuNV nJh f n B`/. n?( N*\O?./. N\ON^NuNV nJ(f n B`/. nB@(?N*\O?./. N\ON^NuNV n/NpXOHnNMXO n?( n?(/. HnN N^NuNV n/NpXO/. N)XON^NuNV n/NpXOHnNXO?.NTO n  n B(N^NuNV n/NpXOHnNXO?./. Nxb\ON^NuNV n-h 0n B0.HЮ -@0.n=@?./.HnN* nB@(S@ @ bH0@ PN`/./. /.N\ =@g0.` nJPfB@`x/. /.N`f0nB`?.Hn/.Nv `DHn/.N`2?.Hn/.NL`Hn/.N`Hn/.N,PON^NuNV/. ND$XO nP nBp34 /. NpXOp3@HnHnNq>POBy4 nf nf/. /.N.POB@` np?NTOpN^NuNV n H?NvTO n@ @bH0@* PNB@`p)?NTOp)N^NuNV/. NXO=@Jno no noV non n ( f no nJ( f* n1n yV/NaHXO=@ nnB@`p?NTOpN^NuNV/. NXO=@Jng" n0( @ndp!?NTOp!`0. n@B@N^NuNV/. NXO n0B@N^NuNVN=@0.N^NuNVNHJ@gNz`B@N^NuNVJy4gZ y3R3H=@ @ f"094S@g y3  f R3Sy4 n fp =@Sy4fN` Nh=@0.N^NuNVNNz=@N0.N^NuNV=yz=yzRy3?.?.NJXON=@ n;m nDnx0.@;H @4Jg`?<Hn/<1|Nn ?</<1|0.@;H @4/Nn N?</<1|HnNn J96gXJ95fP?<Hn/<1|Nn ?</<1|/<6Nn N?</<1|HnNn NJy3g0.`j0. |B2<`XHXW PN`p=@Nq(=y<p3<HnHnNq>PO3< n f nZn 0.T@=@p?/<-^/<-Y/<HnNz?.HnN\O`BJy4Zf/<-cNFXO`(p?/<-q/<-l/<HnNz?94Z`N`NH`NF`J95g?<Hn/<1|Nn ?</<1|/<5Nn N?</<1|HnNn `N^NuNVbHnjNcXOp?/.HnjNH J@fv?<NTO-@fgLHnbN XOJ@f0/.f?. HnjN /.bNXO/.fNXO`/.fNXOp?NTOHnjN `2NP/<-yHnN.PO/.HnN.POHnNFXON^NuNV=n Hn/.?./.N&J@fNBg?9z nHhBgBgN\ BnBnHnHn/<-/.NN=@0. @g @gN`$=n`=nJng``pH?NTON^NuNVHnN XOJ@f|NBgBgBgN6\Op @p @B.?93/<-N\O?93/<-N\O?93/<-N\O?93/<-N\O?93/<-N\OHnNXO?93/<-N\O?93/<-N\O?94`/<-N\O?93/<-N\OHnNXO?94Z/<-N \O?93/<-N \O?94V/<-N \O?94X/<-N \OHnNXO/<-NXO/<3NXO?9N/<-N \O?94T/<.N \OHnNXO?94$/<.N\Op?p/?NXO/<4&NXOp?p/?NXOHn?94RNV\OHnNXO/</</</</</<h/<J/<.NJ HnNXO?94/<.AN \O?94?94?94/<.MN" HnNXO?94/<.gN\Op?p/?NXO/<|NXO/<.nNXO?93/<.rN\Op?p/?NXO/<3NXO/<.xNXO/<.|NXO/<NXOp?p)?NXOHnNXO?9z?9z?9z/<.N" HnNXO-| BnBnHnNXO/<.NXOHnNXO n gp n-Pg\ n/(< n/(8/.0.@J?NźHnNXO0.H @!n0.RnH @1nXRn`Jnf0HnNXO/<.NXOHnNXON`"HnNXO/<.NXOHnNXOBnN @fNBgBgBgN6\OHnNXO/<.NXOHnNXO0.H @-h n-P n/(< n/(8/.0.H @0(@J?NźHnNXO .P-@ nJg< n-P/.NXO nHhNXOHnNXO .`HnNXO/</NXOHnNXO .T-@ nJg n-P n-hBn-| ng XRn` n-Pp?0.@J?NXO nJhg/</3`/</8NXO nHhNXO-n`nHnNXO/</=NXOHnNXORn0.nf`/.NXON^NuNV/.NXOJn g/</L`/</QNXON^NuNV/.NXOHn?. NV\OHnNXO/</WNXON^NuNV/.NXO/. NXOp?p/?NXO/.NXOp?p/?NXO/.NXOp?p/?NXO/.NXOp?p/?NXO/.NXOp?p/?NXO/. NXOp?p/?NXO/.$NXOp?p)?NXON^NuNV/.NXOHn?. N*\OHnNXOp?p/?NXOHn?.N*\OHnNXOp?p/?NXOHn?.N*\OHnNXOp?p)?NXON^NuNVp??.NXOp?p,?NXO/. NXOp?p,?NXOHn/.NPOHnNXOp?p,?NXOHn/.NPOHnNXON^NuNVHnN XOJ@f-|D-|@-|8-|XO6/. N>XOCf^Hn/. N`/. NCrXO6HnNXOC`(Hn/. Nw^POJ@gpD`HnNXOnf nBPB@&N^NuNV?</<1|N\O=@Nq(0.N^NuNV?. /.HnN HnHnNPON^NuNVp?p ?/. BgBgp?p?BgBgp??.p?Bg/.N0 N^NuNV/ *nm0. 0.@0.@ nfJy3gp @0.@094d@0.@0.@0.@0.@0.@ 0.@ +n B0.$@0.&@*_N^NuNV-nBn0.n l n!n n -HRn`N^NuNV-nBn0.n l0. n n -HRn`N^NuNV-nBn0.n l0. n@ n -HRn`N^NuNV-nBn0.n l$ nB@n n n -HRn`N^NuNV-nBn0.n l0. n@ n -HRn`N^NuNV-nBn0.n l0. n@ n -HRn`N^NuNVJngp`p=@Bn/./././. Hn?./.NDN^NuNVB-nBn n=h0. @bH0@| PN` n-P-n n=h nB@(=@-n nB@( =@ @f Jy3gTnp`Lp=@p=@p `< n=hBnp `*p=@p=@p `p=@Jy3gTnp=@p =@Jg/.N>XO=@ n=P?.HnHnHn/.?. n?N=@g\ nfp`B@=@?.?./.?.?.BgBg?.BgBg?.?.?. /.N0 Jg n!n n00.N^NuNVJ g/. N>XO=@`Bn0. no0. `0.=@0.n=@0.yo JnoB@`0. noH0.yo 09n`0. =@0.nH=@ n00.n n`&0.n H=@ n00.n n0p=@0.yo0.y=@Rn` n00.N^NuNV/. N>XO=@Jng/. ?.?.p?N N^NuNV-nBn n0 Ю-@ nJgJg"n0H @-P`B/.?././.?. /.Nn=@g: nRP n0 n -H n -H nRPRn nov0.N^NuNVBn n=P .T-@0.SnJ@g n0( n n-H`0.N^NuNV n BP-np?/.N\OBg/.Nb\ON=@ n g?9z/.N\O`BHnN XO=@g0.`./.NXO=@g ?.NHTO/.NXO0.N^NuNV n BPBn-nA-HA-Hp=@=y3 n-hg n @fR nH |2<`XHXW PN` nH? nB@(?/.N POBn`tBy3Bg/.Nx\O`^p33p?`/./.NPO nJgp=@`././.N.PO` n ( f?93`BnBHn/.N>POBnBn/.N>XO=@ nB@(=@JgZHn/./.N Hn/.N.PO/.N>XO=@=@Hn/.N؈POHn/.NPOJng$=y4pO34NV34p=@p?/.N\O?./.Nb\ON=@Bnp =@p=@0. |2< `XHXW PN`?9z/.N\O330.`Xp =@Bn0.nlP0.nlJgHn/.N؈PO`RnRn`Bn0.nl0.nm"JnoJgHn/.NPO`SnRn`Jnf yI4fpO`pI34NV`Jng*0np ?.?././.N٘ `0.ng~0.nS@?0.HЮ/0.R@HЮ/Nn 0np @?.?././.N٘ Sn`Jng60.nm JnoJgHn/.NPO`8Sn`00.no0.n?0nHh0.HЮ/Nn 0np @?.0.S@?/./.N٘ Sn`R0.n?0.HЮ/N\OJg|Hn/./.N Hn/.N.PO?.?././.N٘ /.N>XO=@=@BnHn/.N؈POHn/.NPO`?.?././.N٘ =n`?.NTOJ@f=np=@` n ( g nB@( @g?.NvTO=@JgHn?./.Nׄ J@f:Jnfb yI4fX0.nl$0.nfSn0.n?0.R@HЮ/0.HЮ/Nn 0n0.`$0.nl0n0.0.nfRn?.?././.N٘ JgHn/.N؈`Rn`v nB@( @g0?.NQTOJ@f ?.NQTOJ@f n:g n_f0 n ( f?.NRTO?/</vN.\OJfNPJnfJy3f"0.nmJngDHn/./.N /. ?.?.Hn/.N\J@gNP`/. ?.?././.N\J@f n (g:Hn/.N>PO n ( fBn?.?././.N٘ ?9z/.N\ONV330.N^NuNV0n H=@0. |2< `XHXW PNB@` n P g n?NTOJ@g nAg nLf n?N&TO n0` n?Nv` n P g n?N,TOJ@`V n P g n?NTOJ@fp n?NQ` n?NvTO n0 n?/</{N.\OJf4pN^NuNV n =PRn0.0@H=@g?./</N.\OJg n 0N^NuNV n =P0.SnJ@g.0nH=@?./</N.\OJg n 0N^NuNV nRH=@g*?./</N.\OJg nR"n R ` nBN^NuNV nB@(? nB@(n ? nB@?N6\ON^NuNV nB@(? nB@(?0.n?0.HЮ / nB@(n? nB@?NN^NuNV nB@(??. nB@(? nB@(? nB@(?N N^NuNV n BPA-H=y3-nA-HHn/.N>PONV n-hg2 n @f/././.Nd ` /./.N.`/./.N POHn/./.N6 HnHnHn/./.N/.N>XO=@Bn0nJg0n .gRn`=np?/.N\OHn0.n?/.NR ?./.Nb\ON=@Bnp =@p=@0. |N2<`XHXW PN`?9z/.N\ONV0.`4Bn0.Ұnl0.nlRnRn`Bn0.Ұnl0.no JnoSnRn` yI4fpO`pI34NV`\0.nl8?. nHh/.Nn np 0.nfRnRn` 0.no0.ng0.nS@?0.HЮ/0.R@HЮ/Nn 0np0@`0.nn60.ng0.S@? nHh/.Nn np ``0.R@ngr0.n?0nHh0.HЮ/Nn 0np0@Sn` nB@(?/.N\OHn/./.N6 HnHnHn/./.N0.=@=@`Jngh nB@(?/.N\OHn/./.N6 HnHnHn/./.N0.=@=@/./.N$POp-?/.N.\O-@f6p+?/.N.\O-@f Jng"Sn0.0@0.` 0. n`Jngh nB@(?/.N\OHn/./.N6 HnHnHn/./.N0.=@=@/./.N$PO0.ng0.R@=@`?.NTOJ@f=np=@`h?.N,TOJ@f NP`NJngh nB@(?/.N\OHn/./.N6 HnHnHn/./.N0.=@=@/./.N$PO0.ng0.nlX yI4fNJnfRn0.n?0nHh0.HЮ/Nn 0.S@0@0.Sn`b yO4f 0.nm<`\0.ngR0.nS@?0.R@HЮ/0.HЮ/Nn 0n0.Rn/./.N$POJnfJy3f80.nm.Jnf(/. ?.?././.N\J@gNPBn`f?9z/.N\ONV0.N^NuNV?.NQTOJ@f n+g n-fp`B@N^NuNV?.NTOJ@f n.fp`B@N^NuNV/.N>XOHЮS-@p.?/.N.\O-@f .R-@Jn gD nAd6 nSH |2<`XHXW PN` neSn ` .R@ n0N^NuNV-n-n -nBnBn nJgt nH |2<`XHXW PN`HJnfBp=@`( n -g n +f&"n nQ`Jnf"n nRRnRR` nB-n Bnp=@ nJgHJngB nH |2<`XHXW PN` np Rn`Bn nRH` n0 n0N^NuNV-n -n-n n @f$R nH |2<`XHXW PN nJg@ nRH=@f p =@S nH |>2< `XHXW PN`?.NvTO n`0.`?.NTOJ@g ?.N&` np `?.NvTO=@?.NTOJ@g` n g?.NTOJ@f?.NQTOJ@gh`?.N,`?.N,TOJ@fn np0`^?.NvTO=@?./</N.\OJ` nH nngSRR` nB` nH?/.N>XO?HnN POA-H`Hn/.Nw^PO=y3By3 n Efp33?./.Nxb\O33`"Hn/.NPOA-H nJfN^NuNV-n -n-nBnB-n nR  gSp =@ n -g n +f nH=@R-nBnB@=@=@ nJg4 n .f .R-@-@ nRJgRn`RRn`SBnpS?/.N.\OJgp=@ .-@-@ n @fA-H/././.Nd RBy3Jy3f nRH |z2<`XHXW PN` n-f nRp(-|/` nRp p =@p33` n-f-|/` n-g|-|/`p=@`/.N>XO?Hn/.NUd HnNsXOJ@f/.N>XO?/.N\O`H .R-@`n-n nJg n .g RRn`-nS0.HЮ-@ .S-@Jng(JngH nH |2<`XHXW PN`"n nSSn`0. n` nH |2<`XHXW` n gJnf0. np=@` np `"n n n gnJnfh` no^ n(H=@ n$g n*g n#g n9f0 n gJng n#g n9g0.`:"n nSnSS` nJgJngB nH |2<`XHXW PN`X0. n`L"n nRSn`8 nH | 2<`XHXW` np ` np0`"n nRR`l nBJng/.NDdXO`Jg/./.NPON^NuNV0. @brH0@ " PN`bJy3g </`N </`FJy3g </`6 </`.Jy3g </` </`Jy3g </` </-@/./.N.PON^NuNV/. /.N.PO-nBn nJg. n .gJng np9` np#`p=@R`N^NuNV/./.NPO nJf/. /.N PON^NuNV-n n B nJg nR  f/./. N.PON^NuNVBgp??9z?986?984BgBgN p?NTON^NuNVp?p??9z?986?984BgBgN BgNTON^NuNV?9zNTON^NuNV?9z09y?09Hy??9?9HNn BgBgBgN6\ON^NuNVBnJy4^gp=@?9z?986?984Bg?.Nn BgBgBgN6\ON^NuNVHnHn Hn HnNHnHn Hn HnN|?9z0.y?0. yH?0. y?0.yH?Nn BgBgBgN6\ON^NuNV?9z?90. y?0.yH?NPON^NuNV?9z?9?. ?.NPON^NuNV?. HnN\OBg?9zHn?. ?.N\ N^NuNV=y3p33Bg?9z/.BgBgN\ 33N^NuNV?9z/. ?. ?.N N^NuNV/. N>XO=@gV?./. HnN* 0.no0.n? NHhN\O?.Hn?. ?.N N^NuNVByzByz384z386zHn HnNPO?./. N>XO?/. ?. ?.N~ N^NuNVBg?9z/. ?. ?.N\ N^NuNV/. N>XO=@g"?.?.?./. ?. ?.NN^NuNV nf\Jy4^gXO=@0.HЮ-@ ṉg n \fR`S`/.HnN.POHnNXO/.N XON^NuNVJygn/</HnN.POHn/<3`NZPOp?HnBgNPO/<0HnN.POHn?9N*\Op ?Hnp?NPON^NuNVJy4^g/.NFXO`$?9zp.?/.BgBgNf p3N^NuNV/. ?.?.p?N N^NuNV/. /. N>XO??.p?N N^NuNV/.p?p5?p?N N^NuNV/.pP?Bgp?N N^NuNV yO4f094h`094j34fN^NuNV/<0p?pI?p?N N^NuNV/<0NXON^NuNV/<0N6XON^NuNVJy4^g/<0p2?Bgp?N ByN^NuNV/<0?<BgBgN N^NuNVJy4^g BgJ91|g/<1|`/<0NL\ON^NuNV/.0<n ?0. X@?BgN N^NuNV/<0 NFXON^NuNVJy4^g*Hn/.NPOHnp?pI?p?N N^NuNV/.?. ?. ?.Nd N^NuNVHn?. NV\OBg?9zHn?. ?.N\ N^NuNVHn?.NV\O?. HnN\OBg?9zHn?. ?.N\ N^NuNVHn/.NPO?. HnN\OBg?9zHn?. ?.N\ N^NuNV0.@B.Hnp?p3?p?N N^NuNV/<0%p?p2?p?N /<0'p?pE?p?N /<0+p?p4?p?N N^NuNV ndf nd f Bn=y B0. yH?0.yH?N|POB@N^NuNV/ =n0.n nA-HBn0.y86l&?.?.NJXO&nRNRn`Bn0.y86lS n  gR`Rn`J g$ nRp  nB/. HnNPO`& nBHnN>XO?HnNz\ONRn`6&_N^NuNVJy4gXO?HnNz\ON34N^NuNV09zyH309zy3N^NuNV/<HnN.PO/<0RHnNPO/<0[HnN*PO-@fp?NTO` /.?984BgN|PO/.NXON^NuNVJy4^gJnf6Jy4^fJng(34^JngNND` NNVB@N^NuNVNNVNNNNNBn-| yVg XRn`0.@J?NTON^NuNVBy3HnNH&XO=@g0.`^HnHnHnN =@fJy4g,A-H0.SnJ@g nRH?NNTO`Jy3gp `B@N^NuNVHnHn Hn HnNHnHn Hn HnN|0.n R@=@o?.?.HnN PO0. nR@=@o&0.SnJ@gHn?. ?.N6PORn`N^NuNVHnp ?Nt\O=@g0.`4?.?.?.?.?.?.?.?.?.?.N6B@N^NuNVHnp?Nt\O=@g0.`(?.?.?.?.?.?.?.NB@N^NuNVHnp?Nt\O=@g0.` ?.?.?.?.?.N. B@N^NuNVBg/.NC\\O=@ @g` n ( n/(8 n/(PN.PO=@fr n/(8 n hP/(N=PO`B@N^NuNV/.N6XON^NuNVp*?/.N\ON^NuNVp ?/.N\ON^NuNV nJhFf nJhDgB@` nJXO=@g0.`< n (*1fJy3f nJ`gHn/.NPPO=@fJngB@N^NuNV nJ n?(:N TO n1@ n?(4N TO n1@: n1@<=@ n?(6N TO n1@ n?(N TO n1@ n?(8N TO?NvTO n1@ n?(0N TO n1@6 n?(2N TO n1@8 n?(.N TO n1@4 nHh< nHhN.PO .@-@0.SnJ@m . /N>XO=@g`\B@N^NuNV nJh.fB@`RB?<Hn n?(,N =@g0.`( nBh.A-H n?(>N TO n1@, n?(N TO n1@: n?(:N TO n1@4 n?(4N TO n1@. n?(N TO n1@6 n?(N TO n1@ n?(N@TO?N TO n1@8 n?(6N TO n1@0 n?(8N TO n1@2 nHh nHhXO np1@6 nBh8 np1@4 nBh: nBh< .@-@/.N>XO=@g0.` n-h np1@ n0(>T@ n1@ n?(N TO n0"n n04 np1@ n (T-@//.NPO np1@./.N&:XO=@f/./.N5PON^NuNV0.X@ n1@> n1n n1n n1n n1n/. nHhN.PO/.N'XON^NuNVpA|-Hx nxHh/.N8PO nBhBnpJy3f nJhfp=@p?.p nxHh/.N/ =@vg0.v`Jy3gT"n n0(FHЩB-@r n?( n?( n0(>Y@? nxHh nrHhN7 J@fB@`2-nxr/. NBXO nr /.x nHh@/.N1D N^NuNV/ nBh n p n0.hfJngp?/./.N/ `/. /.N.:PO=@Jnf"n n0(FHЩB-@ n/NBXO n Jng4Jnf./.NXO6 n0(>Y@? nHhNZ\OCfX n?( n?( n0(>Y@?/. nHhN7 J@fB@` n gJy3f np1@p&N^NuNVrA|-Hx nBh/.x/.N8POBgp? n?(/.xHnr/.N*|=@vf*Jnvf$ .r fB@`$Hnr/.N.:PO=@v` np1@0.vN^NuNV nBh"n n1i:< n0(< Ю@-@ n=h4?././.N5n =@g0.` n-h .T-@ n/NBXO=@ nJh?././.N5n =@g0.` n-h n0(n n1@ n0(HЮ-@ n/NBXO=@ nJhY@?/.n nHhN7 J@g././.N:PO=@g0.`/. /.N)~PO`B@N^NuNV nJhgB@` np1@ nHh@/.N:PON^NuNV n0(: Ю@-@"n n1i:< n=h4?././.N5n =@g0.`n?./. /./.N0=@f nJhY@?/. nHhN7 J@lL n0(> n h`p`8 n?( n?( n0(>Y@?/. nHhN7 J@oB@N^NuNV n -h-n n=h> n 0(HЮ-@"n n 0(i?0.HЮ//.Nn ?. n 0(HЮ//.Nn n 0.h n ?(N TO n0 n p1@ n 0(n @nB@`/. /.N2PON^NuNVA|-HA-HHn/.N7PO=@g0.`" n=h> n -h-n n 0(U@H=@0.H=@0.T@=@?.N TO n0 n 0.ho n =h n =P` n 0(nT@=@=n?./.0.HЮ/0.H /Nn -n n 0H/NBXO n n ? n /(/.N66 =@f n 0(n=@?. nHh0.HЮ/Nn 0.T@=@?.N TO n0?./.0.HЮ/0.H /Nn n 0-n n 0H/NBXO n n p1@ ?./. /.N5n =@f2 n 1n"n n0(XO=@f nHh4/.N7PO=@f"n n 04 n -h-n?. nHh/.Nn 0.T@ n 1@?. n 0(HЮ//.Nn "n 0.i n 1@ n ?(N TO n0 n p1@ B@`P nRh< n -H ?."n n 0(HЩ//.Nn /./. /.N1D N^NuNV n 0.PgD/. /.N5PO=@g0.`T?. n /(/.N6 =@f n 0 n -h n p1@ n?N TO n 1@B@N^NuNV n Jh g0 n ? n /(/.N66 =@g0.` n Bh B@N^NuNV n=h,0.H-@-|Hn/.N PO-@Bg/.?.NFPO fp ` ?</. ?.NHPO @gp`B@N^NuNV n=h,0.H-@-|Hn/.N PO-@Bg/.?.NFPO fp `?</. ?.NGPOJ@np `B@N^NuNVJnfJng>?./. /.`< nf"Jng/. /.NR`PO`&/./. `Jnf?././. N N^NuNV"n n 08gL n ?Hn/.N6 =@f^A-H n?(N TO n1@8 np1@.B@`4 n0(6Rh6 n 0 n ?Hn/.N66 =@g0.N^NuNVA-H np0 n?(8N TO n1@ n1n 8?. Hn/.N66 =@g0.` np1@.B@N^NuNV-yV=y4 -yp34 n (##V n?( nHh/. N= 34 ##V nJhf n0(>Y@?/. Np\ON^NuNV n0(> n h"n n 0(imn n0(: @A@ fp`z/. n Hh /.N9 =@g0.`T n0(=@?./. /.N5n =@f"n n 0(HЩ-@ n/NBXO n B@N^NuNV n hn n0(: @A@ fp`/. n Hh /.N9 =@g0.`~ n0(=@?./. /.N5n =@f"n n 0(i> n 1@` n0(> n h"n n 0(HЩ-@ n/NBXO n B@N^NuNV n=h> n 0(n @fH n ?/.N8\O=@g0.` n p0 n Bh n Hh /.N:PO` n 0.h n -h n ?(N TO n0"n n 0(HЩ-@"n n 0(i?/.0.HЮ/Nn n p1@ n 0.h"n n 0(nif/. /.N;POB@N^NuNVt n=h> n0(: Ю@-@t0.Y@?Hnx"n n 0(X@HЩ/Nn "n n 0(nifN n tgD n -H 0.Y@?"n n 0(X@HЩ/HnxNn n p1@ `B@N^NuNV-nJg(/. /.N)~PO=@g0.` n-h`B@N^NuNVJy3g(-nJg/. /.N+PO n-h`B@N^NuNV-nJg(/. /.N.PO=@g0.` n-h`B@N^NuNV-nJg$/.N/XO=@g0.` n-h`B@N^NuNVNr-@/. NpXO0. @bnH0@ Z PN`^/.N)XO`P/.NM`HnNXO?./.Nx\O`&HnNXO?.NTO n nB(/.NpXON^NuNV?<>NTO-@ n fp`0Bg?<>/.NPO np1@, n!n n B@N^NuNV nJg n/(NXO nB n0 nBh B@N^NuNV nJf?<NTO n!@fp` n0 nBh B@N^NuNV .@-@p =@0.SnJ@g . /N>vXO`N^NuNV n-P/.N>XO/.NXO nBN^NuNVn nJhf/. /.N.:PO` .@-@r"nr nr0(HЩ-@nAz-Hv n0(>Y@?/.v nnHhNn /. /.N.:PO=@g0.`N"nr nr0(HЩ-@n n?( n?( n0(>Y@?/.v nnHhN7 J@gB@N^NuNV nJhf/. /.N.PO`B/. /.N@PO=@g0.`&/. /.N@POJ@f/. /.N?^POB@N^NuNVn .@-@r"nr nr0(HЩ-@nAz-Hv n0(>Y@?/.v nnHhNn /. /.N.PO=@g0.`N"nr nr0(HЩ-@n n?( n?( n0(>Y@?/.v nnHhN7 J@gB@N^NuNV/. N>XO?/. ?.NHPON^NuNV?9:?9:/<NAPOJ@gNN^NuNV?.?. /.NAPO nJhg nJPfp`B@N^NuNV# yBP yBh yB yB yB Jn gJnfp`0. "n n /.NXO n-P` .-@ n-h`B@N^NuNV?.NQHTOJ@f?.NQfTOJ@gp`B@N^NuNV nAm nZnp`B@N^NuNV nam nznp`B@N^NuNV n0m n9np`B@N^NuNV?.NQTOJ@f?.NQTOJ@gp`B@N^NuNV n g n g n fp`B@N^NuNV n m nfp`B@N^NuNV?.NQfTOJ@g 0.@ `0.N^NuNV?.NQHTOJ@g 0.@ `0.N^NuNVp@/. /.HnNu .H@gp` HnNsXON^NuNVH *n>. JGf/ NsXO`|JGl <B@G>x Dl"0RD0@0H H@@0H >fDH@=@H0.ATvnl:JDgSD00@(HH`zJDgSD00@(0CHRC`B@L N^NuNVH *n>. JGf/ NsXO`z El*0RE0@0 H@@0 >fEH@6TxCl:JEgSE00@(HH`|JEgSE00@(0DHRD`B@L N^NuNVH0*n(n / NsXO>JGnBU`lH@<TzxFlB6HAA0 A8Clp`Bnp=@0SGJ@gH<gz F0mV F9nPF00.RnnmB`JngRnJng0.Rn0@ 0EBn`0H:p=@`9<H0AfJnf p=@`vSJng0.Rn0@ Jng0.U@n n 0.n n @/. Ny,XO L N^NuNVH0*n(n 0.nmp` BnB@=@=@=@=@=@=@=nH@gp=@Jngp=@H@H=@/ NsXO=@ob0.n=@0.nn=n0.nno BnBn`0.n0.nno 0.n=@0.n`bp=@0.nn=@nn0.nno 0.n=@0.n0.D@=@0.no=n0.n0.n=@T0.SnJ@gp `Jngp-0.SnJ@g6JngH@@0Bn`H@@@0p=@Sn`Jngp0Jng 9<H0.SnJ@gp0`0.SnJ@gBJno6JngH@@0Bn`H@@@0p=@Sn`p0`B@L0N^NuNVH0*n n H@gp- n H@H=@/. NsXO=@B.BnJnn:p09<Hp@0.D@=@0.RnJ@lp0`p=@-M . T(@Bn0.nl`0.SnJ@fp@9<H0.@gH`H@@@@0J.gJ.g-MRn`-MRn`0.SnJ@o p0-M`J.f9<H-M ng(0.n=@l0.RnJ@l p0`-M9<H n(HAfS nB .L0N^NuNV/. /. /.Nu N^NuNV n H@gp`f/. NsXOJ@g/. NsXO=@p@@@@/. HnNtPOp@/<;pHnNR`POJ@fHnNsXO`/<;HnHnNu /<;HnHnNtZ HnHnHnNw HnHnNZvPO/<;|HnNtPOBn nlT0. :/HnHnNu HnHnHnNtZ HnHnHnNu Rn`Sn0.?HnNR\OHnHn/.NtZ B@N^NuNVBn/.HnNTPOJ@gp`p@@@@@/<;pHnNtPO/. HnNtPOJngL0.@gHnHnHnNu n0.@=@gHnHnHnNu =@`/.HnNyPO.HnNsXOJ@g&/. HnNZPOJ@f4HnHnHnNu HnHnNTPOHnHnNyPOHnHnNtPO/<;pHnNtPOBn nlT0. ;0/HnHnNu HnHnHnNtZ HnHnHnNu Rn`HnHnHnNu nHnHnHnNu nHnNsXOn nn.0.@ nH@gHn/<;pHnNw nHn/.NtPO0.N^NuNV n H@g/.NsXOp` p@@/. NsXO=@0.H=@2.I0.ސA n @/<;|/. HnNu Bn nlr0.@gA-HA` A-HA-H/./. /.Nw /././.NtZ /<;|/./.Nu Rn`0. n @/.NsXOn n@/./.NtPOB@N^NuNVp@/<;/. HnNw HnHnNTPO/<;HnHnNu Hn/. HnNu .H@g/<;Hn/.NtZ `Hn/.NtPOB@N^NuNV/<;/. /.Nu N^NuNV/<;/. /.Nu N^NuNVp@/. HnNa6POJ@g/<;p/.NtPO`ZHn/<;NZvPO/<;p/<;/<;NtZ /<;/<;N^NPO/<;Hn/.Nw n9;H@ nB@N^NuNV/. /<;/.Nu /./.N`ZPON^NuNV/. /<;N_~PONa/<;/<;/.Nw J@gp`/.NsXO @nB@N^NuNV/<;NsXO/<;p/<;NtPOBn nn0. ://<;/<;Nu 9;H@g,0. ://<;/<;NtZ Rn`/<;/<;NtPO/<;/<<NtPO0.9;0.9</<</<;/<;NtZ /<;/<;/<;Nu ` N^NuNVp@@/. HnNtPO.H@@./<;pHnNR`PO=@Jnop`Jnf/<;/.Nt`\HnHnNZvPOHn/<;pHnNu HnHnN^NPOHnHnHnNw Hn/.NdPO n.B@N^NuNVp@@/. HnNtPO.H@@.HnNsXO=@f/<;/.NtPO`/<;pHnNR`PO=@Jnop`Jnf/.NsXO`^HnHnNZvPOHn/<;pHnNu HnHnN^NPOHnHnHnNw Hn/.NdPOJ.g/./<;/.Nu B@N^NuNV/. /<;NtPO9;H@@9;Nd/<;/.NtPO n.B@N^NuNV/<;p/<;NtPO/<;NsXO-|;-|;Bn nn0.9;/<;/./.Nu 0.9; nH@fb n0.(/./<;/<;NtZ 0. ://<;/<;NtZ -n-n-n`\Rn`TN^NuNV/. /.NZPOJ@gp`/<;/./.Nw N^NuNV/. /<;/.N\ N^NuNV n  g n  fR` n 0e n 9b/. /.Nk"PO` n ae n zc n Ae n Zb/. /.Ni` nB@ | v2<`XHXW PN`p=@p`p=@p`tp=@Bn`jp=@p`Zp=@p`Np=@p`Bp`p=@ n (=fp=@R`"p=@ n (>fp` n (=fp`p=@p`p]=@/. /.?.Nht ` nB@`=|`Lp =@ n (?fp:`xp*`p =@p#`p `p `p` n (0e n (9ch/. /.Nk`d/. /.Nh`R n (&f"=|Bn`p=@p`=|`p=@ nB@=@/. nHh?.?.Ni N^NuNVBn .T-@ . R-@ nJg@ nHnf nB/. nHhBg?.`. nR"nRRn`/./. ?< nH?Ni N^NuNV .R-@ . X-@-@ nJgP n }f2 nB n Hh/.Nw^POJ@f(/. nHhp ?Bg`* nR"nR`/. /.?< nH?Ni N^NuNV0. n0. n@ . N^NuNVH0 . T*@(nBnBn am znH@ RRRn` Am Zo 0m 9n` _fp=@` -f ,>fp=@Tn` .f ng :gBJng/. / p??.`x=y<Jy@gp3<HnHn n HhNl =@3<JnfJy@g ng ng/ NjXOJ@g/. / ?.?.Ni L0N^NuNV n  g n  fR` n (fp`B@N^NuNV-n . T-@/./.NUBPO-@f/. /.?< nH?`DBn .S-@ n .g nfBn` SRn`/. /.p??.Ni N^NuNV .R-@ . T-@Bn n am* n zn n nR"nRRn` n Am n Zo n .fX nB=y<p3<HnHn n HhNl =@3<Jnf/. nHh?.?.`/. /.?< nH?Ni N^NuNV09<S@ @bfH0@!* PN"n n 0"n n0B@`>?9?./<<`?9D/<?0` ?9KJ/<D/.Nm -@fpN^NuNVH8Bn*n 0.S@HЮ (@/.N>XO=@bh HHЍ&@?.//.NP =@lI`JnoK`/N>XO=@0.no nmp=@JnfB`,0.ng cQ?.//.NP J@gP L8N^NuNVA-H-n0. Sn J@g`"n n"n ni0.HH@=@0.Hn4.@=@=n"n n"n niT`N^NuNVA-H-n0. Sn J@gp"n n"n ni=n0.4.@=@0.@=@2.II0.HA=@=n"n n"n niT`N^NuNV0.F@=@Rn/. ?. ?.No6PON^NuNV0.@@0. @@0.@@0. @@0. n@ n .H@@.H.HAf.H.HAgp`B@N^NuNVH0*n(n >.B.0SGJ@gZBB.B@$0@VHB@%0@VHAB@ .ccp@.d`B.B@.0@Wf`B@.L0N^NuNVH0*n(n >.B.0SGJ@g^BB.B@%0@VHB@$0@VH@dAB@ .cc B..d`p@B@.0@Wf`B@.L0N^NuNVH0*n(n >.<.Fl GSG0 @g`SF0 @gB`SF0 @fL0N^NuNVH *n>. 0SGJ@gB`L N^NuNVH *n>. 0SGJ@gJgp`B@L N^NuNVH *n>. x0SGJ@gJ%BBBA0<AH@B@H@ @VHBB@ @ccxd`xB@0@Wf`B@L N^NuNVH *n>.  Gg-B@B@SGfL N^NuNVH *n>. % Gg-B@B@SGfL N^NuNVH0*n>. <.0@@FJ.g ?/ Nq\OJFg8Fo((MƞFSG0 @g B@`SF0 @gB`?/ Nq \OL0N^NuNVH0*n>. <.0@@FJ.g ?/ Nr\OJFg:Fo*(MƞFSG0 @g $B@`SF0 @gB%`?/ Nq \OL0N^NuNVH0*n>. (n<.H>GT??/ / Np L0N^NuNVH *nH>GRG?/ Nq \OL N^NuNVH *nH<Fgp`H<FT?/ NqD\OL N^NuNVH *n-HL N^NuNVH0(n*n |H>GGH>GF??/ / Np L0N^NuNVH0*n UmB.IRz?/ ?/ NsN *nUmB.IR?/ ?/ NsN RE.H<.H@g(JFmI`nI0D@<??/ NrPOKI.H>.H<0G0@f?/ / No `&?/ / NpB J@g?/ Nqn\O .I ,}l(T,/ Ny,XO-L(n/./ NtPOB@`pL0N^NuNVH0*nH< FFFH>GI-LTSF0 @g`/./. /.NtZ L0N^NuNVH0*nH>G-H>GIz?/ ?/ NsN *n H>G-H>GB.IRz?/ ?/ NsN REI?/ Nq \O.H8DDKIz.H=@ng?/ / No nfSDg&Iz?/ Nq\OIE?/ Nr\O`I.H>.H80GGG.H>Hn.H??No6PO@.H>J.fLHnp??No6PO@.H>J.f(G-L/ Ny,XO(n/./ NtPOB@`pL0N^NuNVH8*nH>G-H>GGz?/ ?/ NsN ?/ NqD\OJ@g@*n H>G-H>GG?/ ?/ NsN (nH8DDTKGzBn?/ / NpB J@fRn n g`?/ / No >Gf0.H=@0.`0.G?/ Nr\OSDf&n.H>.H80GG.H>Hn?.H?No PO@.H>J.f6Hnp??No6PO@.H>J.fG/ Ny,XOB@`/.NsXOpL8N^NuNVH0*n(MH>G|TSG0 @gJfRF`/ NsXO`JF$H>GfRFJFg6(MHl,H??No POJ@fH>GT??/ Nr`POL0N^NuNVH8*n(n -L nH:E n(H:G~?/ ?/.NsN n(H<TJFo??/ Nr`POB.G/ / NtPOL8N^NuNV-yBBB/<4/9VN`PO=@f-y4#BBnp=@ L-@##B yJgzJngt y-P n!n"n n0 nB@( n1@ @f np 0 nJhf nRP n0nSn n -HX`~ nBP=y3=y3By3By3?./. yV/N{ =@3333/<4N_FXO0.N^NuNV.=|40.R@@=@ n~op`0.X@=@.Hn4Hn6NPO=@:f. n0.4.H@B@H@XO=@ @f(9|H@0=@0. @bH0@!F PN/<z/<|N*PO#nf6BgBgBgN6\O/<|/<zN*POp`p3n3nB@N^NuNVJynf"Jng/9nNXOBnB9|B@N^NuNV=n0.@=@Jyng?.?9nNXOB@`XO=@0.HЮ-@-@-n0.SnJ@g6 n .f-n n :g n \f .R-@`S` .=@ @ op =@?././. N* N^NuNVN^=@ @fp` nfNhB@N^NuNVNC=@g0.`HnNDXO=@f ngt`BB ngr`BA ngp`B@ABgpZ`ND=@fHnNDXO=@f no=|ND=@fxHnNkjXO=@fdNC=@fV?.Hn?.NPO?.BgHn/.N N^NuNVNC=@g0.`HnNDXO=@f ngt`BB ngr`BA ngp`B@ABgpZ`ND=@fHnNDXO=@fND=@fHnN(XO=@ftNC=@ffHnHnHnN =@fH0.no=n?.Hn?.N4POB@N^NuNV2 n  f nJgR`A-H n  g nJg nR"nR` nB n  f nJgR`A-H nJg nR"nR` nBp @4HnHn5N.PONHn2?<N\OBHn4HnBgpK?NAHn2?<N\OB@N^NuNVp&N^NuNVp?p?p?NM\Opw?p?p?NM\ON^NuNVp?p?p?NM\Opv?p?p?NM\ON^NuNV0.@ @0. @ @3z3 zp?p?p?NM\OpY?p?p?NM\O.H?p?p?NM\O.H?p?p?NM\ON^NuNV0. @bZH0@!Z PN`jp?p?p?NM\Opb?p?p?NM\Op`8p?p?p?NM\Opb?p?p?NM\O?.`p?p?p?NM\Opp?p?p?NM\ON^NuNV ng p?p?p?NM\Opq?p?p?NM\ON^NuNV?. ?.NJXO?.?./. NPON^NuNV?.NTO0. Sn J@g nRH?N`?.NNTON^NuNV n fj09zy84mDBg?9HNJXOp?p?p?NM\OpM?p?p?NM\OBg?984NJXO`?.p?p?NM\ORyz`j n fByz?.p?p?NM\O`J n fp =@09zy86op ?NTOp ?NTO?.p?p?NM\ORyzN^NuNVp?p?p?NM\Opf?p?p?NM\ON^NuNVp?p?p?NM\Ope?p?p?NM\ON^NuNVBg?.NJXO0.SnJ@g,p?p?p?NM\OJngpM?p?p?NM\O`pL`N^NuNVp??. ?.N6\Op?p?p?NM\OpJ?p?p?NM\ON^NuNVp?p?p?NM\OpE?p?p?NM\OByzByzN^NuNVp??. ?.N6\O0986yzR@=@0.SnJ@gp ?p?p?NM\O`N^NuNVHnHn Hn HnNHnHnHnHn?.?. ?. ?.N. ng4 ng,0. ng"0.n g?.?. ?. ?.N*PON^NuNV0.n f 0. ng?.?. ?. ?.N*PON^NuNV nJg nRHn fS .`BN^NuNV n f=| ?. ?.p?NM\OB@N^NuNV?.p?NMXON^NuNVp?p?p?NM\ON^NuNVNp?p?NMXO-@/</.N PO-@0.=@0.=@f 0.@`6 n8f nHf=|I n2f nPf=|QN0.N^NuNVp?p?NMXON^NuNV0.SnJ@g?.p?NMXO n R ` n BN^NuNV0.SnJ@g n H??.p?NM\OR `N^NuNVp?NNTO-@?<}/./.Nn N^NuNVp?NNTO-@?<}/./.Nn N^NuNV0. @H @z=P?./.N\ON^NuNVBg/.N\ON^NuNV?.NTON^NuNV?./. ?.NPON^NuNV?./. ?.N6PON^NuNV?./. ?.NPO-@ g .`p?B?.NPO-@ . oL . n0<` . =@?.Hn?.N6POngp` p0.Ѯ`?./. ?.NPON^NuNV/./. BgpV?NA N^NuNV/.pA?NA\ON^NuNV/.N>XOHЮ-@ nSg nHn f .`BN^NuNVH0*n(n >.g,JGg(d?Bg?Bg0SGJ@g%`0SGJ@g`L0N^NuNV0. |!z2<`XHXW PN`p`p`p`p`p` p`p`B@N^NuNV n m no?.NTO`pN^NuNV nAm nZn 0.@ `. nf0<` nf0<` nf0<`0.N^NuNV nam nzn 0.@ `. nf0<` nf0<` nf0<`0.N^NuNV-|z nB@@?NTO=@g n B@@?NTO=@g0.nlp` Sn0.nHЮ-@ nBA n B@@Ab nRBA n B@@Ae nBA n B@(Ac` n B@@?NTO=@gfSn0.nHЮ-@ nBA nB@@AeJ nRBA nB@@Ab8 nBA nB@(Ab"` n BAA nB@@AepN^NuNVH0*n(n >.0SGJ@gJg`B L0N^NuNVH *n>. 0HЍ-@g n ( fS` .L N^NuNV/.N>XO?/.NZ\ON^NuNVH0*n(n >.0SGJ@gHHAf JfB@`R` GgHHAlp`pL0N^NuNVH0*n(n BAB@Af JfB@`R`/ / NPOL0N^NuNVH0*n(n >.0SGJ@gHHAf JfB@`R` Gg/ / NPOL0N^NuNVH0*n(n >.0SGJ@gJgHHAfRR` GgJgJfB@` / / NPOL0N^NuNV nAm nZo nam nznp` ?.NTON^NuNV?./<z/. ND /. N>XON^NuNV?./<z/. ND /. N>XON^NuNV/./<z/. ND /. N>XON^NuNVH *n  g  fR`Bn -fp=@` +gSR~ 0m* 9n$HC0p //N PO/0Hї .`Jng D. L N^NuNVH *n>. JgB@GfS `BL N^NuNVH0*n(n B@ngJg`BB@nfR L0N^NuNVH *n>. 0SGJ@gp `L N^NuNVH *n>. 0SGJ@gp `BL N^NuNVH *n>. <.0SGJ@g`L N^NuNVH *n>. <.0SGJ@g`BL N^NuNV/.N>XO=@n l0. n?0.HЮ/N\ON^NuNV/.N>XO=@n l(0. n?0.HЮ/N\O0n BN^NuNVA-H"n n"n ni0.N^NuNVA-H"n n "n n iN^NuNV=nA-H nP"n n nn0.N^NuNV-nA-HA-H"n n"n ni"n ni"n nQ .N^NuNVNC=@gD?<NTO-@fp`0Hn/.HnN =@Jnfp?HnN\OHn?<N\OHnBgN\OHnHnHnHnHnHnBgBgHnBgBgBgBgBgBgBgBgBgBgBgBgBgp?N@< @fpp?NTTO0.H @34094Hd34094HdH@34Bg?.HnNPOBgHnN\OBgNTTOHn?<N\O/.NXO0.N^NuNV/.NtXO=@g0.``p=@0.Ю-@ np1@ n1@ n0 np1@ nBh nBh n!| nBh nBh n1| np1@p?Bg/.NDPOJ@fpH`Rn n-H np1@ n1@ n0 np1@ nBh nBh nB np1@ nBh n1| n1y`?.p?/.NDPOJ@gpRnp=@=@?.Bg/<z?.p?/.NJ@f:Rn=nHnN(XO=@fND=@fxHnNl"XO=@fdA-H-n BnBnHnN>XO=@ n lHn/.NAPO=@fp=@/.N>XO=@`SnJng?././.N* ?.?./.?.p?/.NJ@fRRn0.H @0.T@1@Rn0.R@ n-H0.nHЮ-@0.n0.nJng( .0-@0. n1@0.Ю-@ np1@ n1@ n0 np1@ nBh nBh nB nBh n1y` n1| n1|0?.Bg/.NDPOJ@gP=nRnp=@?.Bg?.?./.N J@f=nRnBnp=@=@?.Bg?./<z?.?./.NDJ@fRnRn?.Bg?./<{ ?.?./.NDJ@fRnRn?.Bg?./<{?.?./.NDJ@frRnRn?.Bg?./<{2?.?./.NDJ@f>RnRn?.Bg?./<{E?.?./.NDJ@f RnRn?.Bg?./<{X?.?./.NDJ@fRnRn?.Bg?./<{k?.?./.NDJ@fRnRn?.Bg?./<{~?.?./.NDJ@fnRnRn0.Ю-@0. n1@0. n1@Bn0.Ұno0.H @=hND=@fHnNl"XO=@fX?.Bg?.?./.N J@f=nRnBnA-HBnBnBn ndm p=@`Hn/.NAPO=@fp=@/.N>XO=@`SnJng?././.N* ?.Bg?./.?.?./.NDJ@f0.H @0.R@dnR@0RnRnRn0.R@ n-H0.nHЮ-@0.ڰno=nJngBn0.Ю-@0. n1@0. n1@ n0(Ю-@0. n1@ n0ng n0`JnfRn` NCN^NuNV-n np1@ n1@ n0 np1@ nBh nBh nB nBh nBh n1| n1|B@N^NuNV0.Ю-@ np1@ n1@ n0 np 1@ nBh nBh n!n 0. n1@ nBh0. n1@ n1y`?.?. /.NDPOJ@fpH`B@N^NuNV0.Ю-@ np1@ n1@ n0 np1@ nBh nBh n!| 0. n1@0. n1@pPnU@ n1@ n1|0?.?. /.NDPOJ@fpH`B@N^NuNV0.Ю-@ np1@ n1@ n0 np1@ nBh nBh n!n 0. n1@0. n1@0. n1@ n1y?.?. /.NDPOJ@fpH`B@N^NuNVN/<`/</</<NR3HBn n l0.H @ p0Rn`p3 /<H/<H/< N 3H3JHn?<N\ON^NuNVHn?<N\O?9HNpTON*N^NuNVNC=@g0.` HnNkjXO=@fHnHnHn/.NND=@fHnNkjXO=@fHnHnHn/.NNC=@fHn?<N\OHnND$XOHnNC XOHnND$XOHnNC XOHnHnHnN Hn?<N\OJnfB.Hn/.NPO=@fHn/.NPON^NuNVNC=@fHnNDXO=@fND=@fHnNDXO=@fND=@fHnNDXO=@f|ND=@fnHnNDXO=@fZND=@fLHnNDXO=@f8ND=@f*HnN(XO=@fND=@f?<NTO-@fp`?<NTO-@f/.NXO`?<NTO-@f/.NXO/.`BnBnBn-nHnN>XO=@HnNl"XO=@fA-HBnJnfHn/.NAPO=@fp=@/.N>XO=@`SnJng?././.N* 0.R@ n-H0.nHЮ-@0.R@n nnop=@`0.ذno=nRn`XJnfND=@g$NC=@JnfvJngpHnHn/.?./.?.?.?.?.N/.?.?.?.?.?.?./.N=@f/.NXOSy4/.NXO/.NXO/.NXO0.N^NuNVp=@Jnop=@=n0.SnJ@gj0.SnJ@g^ n0 n1n/.N>XO=@ n1@ n!n n -H0.R@ n-H0. n=@`0.n`l0.R@ n00. T@ n0N^NuNVBnBn/.NtXO=@g0.`Rn?.?.?.?./.N J@gpH`=nRn0. Sn J@gF?. n?( n? n/(?.?./.NDJ@fRn n -H`0.Ю-@0. n1@0. n1@B@N^NuNVBnBn09P=@09=@?.?.?.?.p?Bg/.NHn?<N\OHnBgN\OBnHnHnHnHnHnHnBgBgHnBgBgBgBgBgBgBgBgBgBgp?p?p?p?N@p=@0986U@?/./. N -@ nHh/. NPO-@ . =@?././. Nn n-H n -H 0.nJng nRRn n e n0.&N^NuNVH0*n(n Bn nP nB?</ N.\O-@g6 .=@?./ / Nn ?.Bg .R(@0.n`d$ .=@?./ / Nn 0.n n0.L0N^NuNVn n g n fp`B@N^NuNV nH=@n0. @ g @ g`, n(H@ @ fp` n(H@ @ fB@N^NuNVH0*n>. <.JFo"0S@0HЍ(@|Gn LS"MSRF`L0N^NuNV n-PBn nH@ @ fRRn n  fRRnJ g n 0.P n Jnop`B@N^NuNVBn n dH nH@ @ g6 nH @ gRn`0.HR@H=@0.nnR` .N^NuNVH0*n(n Bg/ / N L0N^NuNVH0*n(n >.d8H@@ @b H0@! PN`0HR@H>`RGR`0L0N^NuNVR n P n Bp ?/.N,\O-@p ?/.N,\O-@ n S Jf-n nc-nJgR n c-n Jg .` . N^NuNVH0*n(n c H |!2<`XHXW PNR` L0N^NuNVR n P n Bp ?/.N.\O-@Jg4 nB?</.N.\O-@ np Jg .`R .`L?</.N.\O-@ nc Jg-nJf-n n S Jf . N^NuNV/ *n mHh/-NtPO=@0986S@nl / NXO`?./ Nb\O*_N^NuNV/ *n0986U@? mHh/-N -@ nHh/-NPO-@ me/./ NPO/ N|XO`/./ NPO0-R@?/-/ N *_N^NuNV/ *n m(H@ @fb m Hh/-NPO-@?. /./-N =@Jng*0986S@nm mHh/ NԢPO/ N|XO*_N^NuNV/ *n - =@ mHh/. NPO-@ nH@ @f8S0984W@mo&0986S@?0984W@?Bg0-R@?NPO+n /. /-NtPO=@?.0-T@?NXOBg?</ NҖPO m+H*_N^NuNV/ *n - =@ mHh/. NPO-@ nH@=@0. @ g @gZ`\0984W@mo(0986S@?0984W@?Bg0-R@?N0PO`&-m/ N˨XO/ NXO+n`Sn m+H?./-/. Nn /. /-NtPO=@?.0-T@?NXO n  . R+@*_N^NuNVH *nBn-m +m" m Hh/. NPO-@0984W@nm nHh/. Bg?.N\ 6986SC/./. NtPOCoPp=@0986U@?/./. N -@ nHh/. NPO-@ nH@=@ nfDp? .?/.NlPO/./. NtPO=@ n .R-@ ` .=@S?./- mHhNn n|/./. NtPO=@ n f40984W@no&0986S@?0984W@?Bg0.R@?N0PO-n 0984W@nm?.0.T@?NXORn`TJng / N,XO`+n L N^NuNVHnN XO=@f/.NXO=@/.NXO0.N^NuNV/BnBn=|HnHnNPOJ@gp`Pp?/.ND\O=@m>p0.//.?.NJ =@fN?.NE TO/.NXOp `p=@Bg/.NC\\O=@l/.NXOp`Bn?.NE TO0.@ne/.NXO`N/.Hn?./.NdJ@f`/.NXOBg/.NC\\O=@o8v6.p0.//.?.NK gp=@?.NE TO`p=@`Jng /.NXO/.NXO0.&N^NuNVBnA-H n??. /./.NJ NBpp?0986R@?/<{BgBgNf pp?0986R@?/<{Bgp?Nf pp?/<{Bgp?N pp?/.p?p?N pp?/<{p?p?N /.NXOBn=| nf/.NXO n?( n?(NИXON=@0. |!2<`XHXW PN`/.NXO`/.N˨`/.N`/.N`/.N`/.Nd`/.N͜`/.N@`/.Nվ`/.N`p=@/.NdXO/.N|`rp=@/.N`p=@/.N``L"n n (=@ n"h!I?. n/( n/(Nn n/(" n/( n/(ND n0NBn`tJng NJ@fbNp=@`RJngB@`p=@?.NTOJ@f n g n f p=@?.?./.NҖPO`0.N^NuNV/ *n?.Bg _ (fSn . +@+@+@*+@0.H@B@H@Ю +@"+@ 0.nH@B@H@Ю +@?./-/. Nn ?./-/. N =@0.nH@B@H@Ю +@?./-/. Nn / NXOBmBm/ N,XO*_N^NuNV/ *nBm-U-m0984U@mg*HnHn/./.NJ@f Rm-n`-m-m"0984U@mg*HnHn/./.NJ@f Rm-n`+n *_N^NuNV/ *n/-/-NtPO;@*_N^NuNV/ *n?-/-/-N +@*_N^NuNV/ *nHnHn/- /-NJ@gp`0?./-/-Nn +m m+H+nB@*_N^NuNV/ *n mfp`jHnHn/-/-NJ@f( m+H?./-/-Nn +mHnHn//-NlJ@f+nB@*_N^NuNVBn-n n n0 n fp`: n dHnHnNPOJ@f RRn` n n0B@N^NuNV n fp`VBn .S-@/.NXOJ@gSRn n c/.NXOJ@gR n n0B@N^NuNV/ *n/ N|XOJ@gHnHn/-/NlJ@gp`*/ N|XO0984U@mn&HnHn/-/- NlJ@f+n `Rm0986S@?0984W@?BgBgN0PO/-/-BgBgN\ `Sm/ NXOB@*_N^NuNV/ *nBn/ NXOJ@gHnHn/-"/-NJ@gT mg m(H?NTOJ@fp`+m0984W@moRm/ NXO`p=@`+n / NXOHnHn/-/NJ@f*0986S@?0984W@?BgBgNPOJngSm/-/-Bg0984W@?N\ `Rm/ NXOB@*_N^NuNV/ *n -S+@ mH@ @ g @ g R`S*_N^NuNV/ *n+m*_N^NuNV/ *n mH@ @ f/ N˨XOJ@f/ NXO` mgR*_N^NuNV/ *n mf/ NXOJ@f/ NXO`S*_N^NuNV/ *n Ug=m=m/ NXO0984U@=@*0.SnJ@g/ N|XOJ@g*/ N,XOBm0-ng/ NXOJ@fRm`;n/ NXO/ NXO*_N^NuNV/ *n m "gp=m=m/ NXO+m" / NXO*/ N,XOBm0-ng/ NXOJ@fRm`;n/ NXO/ NXO*_N^NuNV/ *n/ N|XOJ@fSm`*_N^NuNV/ *n/ NXOJ@fRm`*_N^NuNV/ *nN/-/NFPO/- /-NFPO*_N^NuNV n g nRH?NpTO`N^NuNV=nn n f^ n f(0986S@??9NИXOp?pp?Hn?.NGPO @gp ` /.NBXO n!@r n1npB@N^NuNVHn/.NڮPOBgHnNC\\O=@lp` n1np/.NِXON^NuNVBg?<HnNPOp/NBXO-@BgB n?(pNFPO fp `.?<Hn n?(pNHPO @gp` np!@rB@N^NuNV n-h HnHnHn/.NJ=@fp=n0.@ne/.NXOp`P/.Hn?./.NdJ@f"?.?.?././.N=@/.NXO0.N^NuNVHn/.NPOHnN>XO?Hn/<|;/<|:/. NzN^NuNVHnHnHn/. NJJ@gB@`././.NAPOJ@gp`B@=@/.NXO0.N^NuNV n0/./. NPOJ@gp`4/. n? n //.Nۦ=@g /. NXO0.N^NuNVHnHnHn/.NHnN4XO-@f n B nBP` n-h n=hp . -@-@ .-@Bg/.?.NFPO fp ` .ncp`/</.?.NJ -@lp `l nBp?/.N.\O-@g, .ꐮR@ @f nB`$R n fS` n-H`j .ꐮ n0B@N^NuNVBgB n?(pNFPO n/(rNBXO n!@rp? nHhr n?(pNHPO @gp` n?(pNE TOB@N^NuNV/0.R@nep`d?.Bg _ p~p?0.H@B@H@Ю /?.NHPO @gp`*Rnv6.p0.//. ?.NK fB@&N^NuNV/HnHnHn/.NHnN4XO-@f JnfB@`F n-h n=hp0.T@nep` ?.Bg"_ 0.R@H@B@H@ @ pTn0.HHH@B@H@-@0.@gRTn0.HHH@B@H@-@0.@gR .nJf n-hr n .Ѩr .-@Bg/.?.NFPO fp `bv6.p0.//. ?.NK gp`:Hn/.NPOp ?HnN\Op ?p?Hn/.N &N^NuNV/.NِXO=@fp//.NPO=@fj n-hX n=P .T-@0.SnJ@g0 n ( f/./.NvPO=@f, n-H`/.NBXO=@g nfBn0.N^NuNVN^NuNVN^NuNVN^NuNVN^NuNVN^NuNVN^NuNVN^NuNVN^NuNVN^NuNVN^NuNVN^NuNV3:0.@ H|@-@p=@ nl$ nRH2.H A:0Rn`/9N XO09N^NuNV#:"#B&#`*#.#2#6#"p ?NVTO3pN^NuNVp?NVTOpN^NuNV3`3 b3 d3f3h3j3l3n3p3r3t3v3 x3"z#$3(|3*~p?NVTO n,0 n00 n40 n80 n<0 n@009N^NuNV## pZ?NVTO n009N^NuNVpM?NVTO n0 n 0 n0 n009N^NuNVpO?NVTO n0 n 0 n0 n0N^NuNV3`# pN?NVTON^NuNV#3 `p?NVTON^NuNV#3 `3bp!?NVTON^NuNV#3 `3bp(?NVTON^NuNV#3 `3b3d3f3h3j3l3np/?NVTON^NuNV#3 `3b3d3f3h3jp*?NVTON^NuNV#3 `3b3d3fp+?NVTON^NuNV3`pk?NVTON^NuNVpe3ByBy3NN^NuNV## .Z#pd3Byp 3 n 3N n 0# #H#V#RN^Nu#"< <sNBNuNVH *nBEB@H.H< @ g F fR` F-fz` F+fRH< @0m$ F9n6Hp //N PO0.`JEf D. L N^NuNVH8&y# g.*[ g((nHHAfJgR`Jf -=f `BL8N^NuNVH8..P b d.</NXO*@ Mg`J}f&M #}#}`& y}f QP&m`(y}Q L&h)M Q@* Ѝ#}(@Q LB)KL8N^NuNVH0~ .\S@,dB`ƙ*y} gr .gH g @є .*L(Mc2  d @*`* Ѝ#} y} X`dJg @Ѝ*@`*m}f g#}Ry}09} @e Sy}`X/NXO/.NXO*@Sy} L0N^NuNVp0./NXON^NuNVH .Y*@Jf4~0G}Jg 0RG0@}H?p?p?NM\O`NlL N^Nu"o o JfSfNu"o ofJfHHNu"o o fNu o"Jf S@Nu"o oB2/ gSAfJgQHHNuNVHn/<}NPON^NuNVHn /.NPON^NuNVHn/.N>XO?/.Nz Hn HnNPON^NuNVH Bn n X -P nRH> |"2<`XHXW PN`Z/./.NXO<?Nb\O Ff`4/. n hNXO<Gg/.?Nb\O` nRH> @*fp`B@=@Jng nRH>Bn G0m( G9n"0. G@0=@ nRH>` Glfp`B@=@ Ghfp`B@=@JnfJng nRH>0 |"Z2<`XHXW`/<~/<}NPON `6Rnp `Rnp`RnBn` Rnp=@Hn?.?./.N -@JngJnfbJng n X P `Jn n X P0.0Rn`0RnHn?./.N -@-AJngJnfJng n X P .". !A` n X P .". `A-H nRH> @^fp`B@=@Jng nRH>JGg G]g nR` nBA-H/. n hNXO<`DJnfp=@/. n hNXO<-|}`/.NXO<-|}p=@Jnf n X *PBn FgH?/.N.\OJfp`B@nf*RnJnfSnf|`/. n hNXO<` Fg/.?Nb\OJngJnf GcgPB`JJnf n(H@gp`0.L N^NuNVH>. <.BJFo F o| nBP/.NXO: E-fp`B@=@f E+f/. n hNXO: nRP n0FnPJGfL E0g~ `B/. n hNXO: nRP0Fn$ Exg~`~/. n hNXO: nRP n0Flf0@W8 @ l0@78 @ l0@08m D nGm Gf0Jf*0@x8f 6HHn0H/N PO-@`z/.?Nb\OJng .` .DLN^NuNVH |KJn o n op =@ nBP n0n l/. n hNXO> |"2<`XHXW PN`|JFfx nSP nRP`JFg Ff`RF` Fn(|`JFg Fg Ff|` Fm6 Fn0|` F` Fg Fg Ff|` Fg Ff|`/.?Nb\OBHnNXOL N^NuNV//. n hNXO> @ g G g G g0.N^NuNVHn/<}NPON^NuNVHn?</.Nz Hn HnNPOHnBg nN\ON^NuNVHn /.NPON^NuNVH0-n n(PXH> @%gJGgP/.? n hN\O`p =@p=@p=@H> G-fp=@H>`Bn G0f p0=@H> G*f& nT=Plp=@0.D@=@H>`*Bn G0m G9n0. G@0=@H>` G.fJH> G*f nT=PH>`*Bn G0m G9n0. G@0=@H>` Glf&H> Gdg Gog Gug Gxf0@> `-@*@p=@0 |#\2<`XHXW PN`4 nT=PJnl0.D@=@p-p ??./ NPO*@`p ? nT?`p`p` n-PXJl .D-@p-p ?/./ N `p ? n// N *@X`p`p`/ ?./.?N4 *@P`fBn n-Pf-|}X .-@*@JgJnm noS`(Bn nT0` n//.NPO`n ./0.Hї =@lBnJnfLJng0 n0f( n -f/. nRH? n hN\O0.SnJ@g /.?.` nd /. nRH? n hN\O`Jng0.SnJ@g/.?. n hN\O`L0N^NuNVH >. *NB%0<g"0H@H@B@H@ @#>`?Bg _#Jg nR` .L N^NuNVH0*n>.IB$p0//. N PO-@g$p0//. N XPO @#-n ` n #Jg` L0N^NuNVH >. *nSGo"/. n hNXO< @g 0 @ fB Ff fB` .L N^NuNV/ *n/ mNXO*_N^NuNV/ *n "f&+|+|Bm -;n0.`> f +|` tf +|T` f +|`p*_N^NuNV/ *n+|"+|FBm -0-*_N^NuNV/ *n+|+| ;@ o -;@ -0-*_N^NuNV/ *n+|t+|Bm -0-*_N^NuNV/ *n+|/N>XOD@;@ 0-*_N^NuNVH >.*n / mNXO/ ? mN\OL N^NuNVH0*n(n Jg/ H? lN\OR`L0N^NuNV/ *n / ?. mN\O*_N^NuNV/ *|~2~d2Jg U(H@fp?//. /.N*`X`B*_N^NuNV/ *n/ NXO @fp`D?./. -H?NPO-@ gJg0.@H@B@H@Э*+@B@*_N^NuNVH *n>.|BnBnp=@ n R pr@H @rf|pw@ n g,H @bfBnR n gH @bfBnJGlJnf?/.N\O>JGl@JnfJng4?</.N\O>m Fg?NTO?/.N\O>JGmJngp?B?NPO fp?NTO*@ f ?NTO`|p@Jng- p+@*+@Bm +|"+|FG `DH @wfRn`H @af&Rn`H @+g.HHAf|`BL N^NuNV/ *n .*+@+|B-0. D@;@ m l;| +|`+| *_N^NuNV/ *n Sm lBm p` UR0.*_N^NuNV/ *n UR0.*_N^NuNV/ *nRm oBm p` URB@*_N^NuNV/ *nJf0-H@f?<NTO+@f+|t+|`n-H@f2-H?NTOJ@g}f+|+|0 -`&+|+|-H?NTOHЭ*+@Bm *_N^NuNV/p?B?.NPO. fB@`0H@.N^NuNV/ *n/ N4XO/ mNXO*_N^NuNVH >.*n / N4XO/ ? mN\OL N^NuNV/ *|~Y M~2eJg/NXO`*_N^NuNVH *n-H@fp`@/ NXO>-H?NTOJg-H@f /-NXOB-0L N^NuNVH *nBm -H@ff >o?/--H?N6POGf$JGm mAf -*+@`+UB@` 09#H fBy#`-pL N^NuNVH *nRm o/ NXOJ@f 0~f/<}NXO -?/--H?NPOD@;@ @f^09#H fBy#`-Bm `F0- Rm m+H URB@>-H@ g G gL Gg 0`Jm f-pL N^NuNV/ *n 0~f/<}NXOBm p?Hn-H?NPO @g4J@gP .f -H@ f< . f -H@ fB@.`(09#H fBy#`-`-p*_N^NuNVH >.*n G f$-H@ g/ p ?N\O @fp`0Sm l"/ NXOJ@f -S@;@ UR0L N^NuNVH >.*n G G f -H@ g/ p ?N\O @g^Bm -H@fN/ NXOJ@f@p?Hn-H?N6PO @f0` 09#H fBy#`-pL N^NuNVH >.*n G f$-H@ g/ p ?N0\O @fp`?NAXO/NXO`B@N^NuNV/Bg/.pl0H/NXO`"?.NTO=@m?.?NXO0.N^NuNV/?.?. rF?NA\O>J@f(?.NTO=@m?.?. NXO0. `0H/NXO.N^NuNV?.NTO @Cfp`B@N^NuNV?.?./. pB?NA /NXON^NuNV/?. /.p=?NAPO.m:0H.mpF?0?NXO` m n0?N(TOH./NXO.N^NuNVH A#~/9~N bXOJ@gB~p 3#p`?.NTO @Cf|9H>9HH*@SnmSGl^pQB9/<p ?NA\O>mp ?p?p?NM\Op9H>9HH*@0Gp H: Ef~` n R RF E ft B~0`0/. 0.H/?.p??NA >B~0H/NXOL N^NuNVH..Jl <`0Jf 9`$R @./pH?NA\O,g Ї# LN^NuNV0.H/NXON^NuNV/A#~/9~N bXOJ@gB~p 3#p`,/. 0.H/?.p@?NA .B~/NXO.N^NuNVH >.0V@ @bH0@# PN`*pP`&pA`"pC`JGm*y~SGmJfp`JgHL N^NuNVH >.JGm*y~SGmJfp` Jg0. L N^NuNVH >.0V@ @bHH0@# PN*y~HGg Jfp`&R` ~?N.TO`~C`~A`~P`pL N^NuNVJl .D3#p` .N^NuNVH *nA-H-nHnN XOBnBnp@=@ +g -fnRH> @.g G0m G9n G.f0.@fn`B@.@gRn`jHnNXOHnHnN POHnNXOHnNXOHnHnN DPOHnN XO0@0@HnHnN DPO0.@gDSn`< Geg GEfZ +g -fnRBnH> @0m G9n0. G@0=@`0.@g 0.D@=@0.nBn nl NJ(fRn` nf HnBgBg`JnoHnHnN POHnNXOJ@f:HnNXOJ@f*HnHnN DPOJ@fHnHnN PORn`VHnHnN POBgHnN\OBgHnN\OHnHnN DPO>gRn?HnN\OVnSnfJ`JnlB@.@fHnNXOSn`BgHnN\OHnHnN POBn n lJ0.@gBgHnN\OBgHnN\OBgHnN\OHnHnN DPORn`WnRnfdSnHnNXOJ@gHnN XOp@HnHnN DPOJ@gRnBgHnN\OHn0.@?0.@?/.NF n "(L N^NuNV/~ G lBg/.N\ORG`0.@@ n0.H@ n(Jn g n/./.N PO.N^NuNVH| Fl4>. nB@@=@ nJGg nRF`0. LN^NuNVH|zJEm.>| nB@@g| n nŏSE`0LN^NuNVH|~JGm. n BA nB@A@ n0@@<SG`0LN^NuNV/~ Gl n"n RG`.N^NuNV/~ Gl nBRG`.N^Nu"o`C"/jD$jDA`|J/j JgRJk`JjDNu"o`C"/$A`JNu"o`C$jD"/A`, g J/j Nu"o`C$"/A` NupJfpN∲cd⒒d҂dFN o"`"/ jD$/jDD$@A`" jDNu o"`"/ _$0"@0HAHBЁH@B@ЉNNVH ..|Jg 0F "@~SF`|0FJg 0RF0@H?p?p?NM\O`p?NlTOLN^Nu O$X"XHB@Nu o0/L.Nu"/0<NBNu X ^ @=TUVW  G H P w N*J?Xb"""B"B"""B"B"B"B"B"B"B"B"B"###$#$###$#$#$#$#$#$#$#$#$#b$$$$$$$$$$$$$$$$%@%%%%n%%%%%%%%%%%)*,*J0*V2*z4*b6*nT*Y+[*\*k*~**)+*0++*+*+*.r/,s/ t/4u/v/ w/0-,T,d,n,x,,,,,,,--.(.d../8///NNNNTTTUUHUr W<WFWZWd*W+WPVWn]WxjW2 WWWWVWWWWWuuuvTvv|z{zxzxzx{zxzxzxzzxzxzx{zx{zx{  D"#8"bbDl>&6XzhrtRfB.N*"Fp8L\\b ,Vh|l&4(6BD~n :JVp2@ (4BLZt &4T.8N\&x.8>LZd*n4@Jp ~v.@>fĊ nv.HLPns"tɈx".HDDXDצ4ؤغڜڜڜڜڜڜڜڜBBڜچڜnڜ 00 00000HVP  HP@  rdH PFxttt6 ` d h l `8 vHP,N8 ttt<|!|pVV  F FF "! 0 l z !! "t^tt @\######$F$P$X$`$h$p%%%$%,%4%<&*&?&[''+++,B,0/00/1818332133*|*|55f58X5V9:0:l:;j;j99-./N+6X3+;V;`<< 44*|*|*|<="18>\?@R00@v@@**|*|**|*|*|**|*|*|+h+(BzBBBCCCCBXGbGtGGGGGGGGGGFGGG,G>GPPlP|QQP\+\,\p\_ _$8^O^P^^__>_ _8_O_P_^_Q`B`T```*`v````````QWt\,QVWWXX^^YNYYYXXXXXZZJZJZJZJZJZJZJZJZJZJZJZJZJZJZJZJZJZJ[ [ [[[\,\,bb\V<]R]^@^^^^^___a__^a&______RRNS@SJSTS^SS^^S6S,TT*VXTTU^dVVa.a\^aVlVbaPQPRQQQPQQQVQQVQQjqqqqqqqqqqqqqqqxxxxx}<}F}X}d}<}F}X}<}<}X}X}p}|}|}<}F}X}}X}d}<}F}<}X}<}X~&V$(Jt 4pR^p68Xr8<d`xJRj|`dhl\p D"GHKM,PF]w  "Jl~6Thr.>R rrb6666:6RAHB>CDh]4@DzDb*HHHH˨!RARDzEАRО!*rKlM0RҮast!# 9A׺L׺N(U׺X״YT!״ۨۨۨ+ݾ-ݾ.ނ6KMRabsۨtۨ #$*.9#j$d*d,B.49j#| $*0 !ADER!D!#9&ALNUXYB!h(xBCR.XZ(#$*9S##$*,89S##9S#.#9&S#.:BJRZbjr====G"G Gg g gh6!g"g#g$g&h'g(f)f*f+f,h@-f.g/g<g2=g>g?g@g[gd\gX^h,{h|gh6h@lll6Z|***    D2XGHŘKMPŦRsŲtžw  p p Jz%HDFEFNVONX`[2cdJefnZoRsxd(z " " "%pH X X X+j-j.z0123456789Ee DlOUXc&defgodr8suTxhD0123456789ABCDEF~zDO 0##########BOFEOF*RANGE is to RANGE is to ::.fmtdBMAN STACK ERR DBMEM.MEMDBMEM.MEMDBMEM.MEMDBMEM.MEMdBMAN STACK ERR .prodBMAN STACK ERR Updating current command filedBMAN STACK ERR D_ARG000D_ARG000Y.V_A@RPRTI.DBMdBMAN STACK OVERFLOW PICTBFSZ4nBUFFERS:FILES:VIDEORAMROWMX84COLMX86GBLCNT$GBLSIZE$DBASE33%s %*d %*1s %d %*sTABLE%s %*d %*1s %d %*sDATA%d %*1s %s%sEODTRUEFALSErw+a-1,0 %s EODTABLEVECTORSTUPLESLABELDATA-1,0 %s BOT1,0 %c%s%c 0,%s V FALSETRUE0,%d %s 1,0 %c%s%c %s %d,%d %c%s%c %c%s%c%c%s%c%s%c%c%c, %sNot enough memory CLOSED ALL dBMAN FILES. CONFIG.DBM*Not Enough MemoryExit dBMAN. Esc=exit ^S=save F6=menu Pg[^D,^U] Rec[UpAw,DnAw] Fld[^L=Lt,^R=Rt] Pan[^<-,^->]Esc=exit ^D=nxt ^U=prv ^->=Pan Rt ^<-=Pan Lt*** THE RECORD IS LOCKED **** Item Move: UpAw DnAw Select: Ret Exit: Esc , Top,Bottom,Record Number Enter record number : Cannot find the record !! aCan not open 'LOGFILE'Appending to 'LOGFILE'GLOBALX.GLOBALY.LOCALZ.LOCALVariable count :Record copied** DELETEDEnter structureCDLN.dbt.dbtRecord size :Bytes remaining :No. of fields : fieldname type width decimalRecord size :Number of records : File name : fieldname type width decimalFIELD_NAMEFIELD_TYPEFIELD_LENFIELD_DEC0Are you sure? (Y/N).DBBrbabAND /100 DOLLARSCDLNTtYy%s,%c,%d,%d%02d:%02d:%02d:%02d%02d:%02d:%02d0dbtemp1BUFF*OVFLO;Zx0Nm<[y1OnnH%d%*1s%d%*1s%d%1s%1s%1s%04u%02u%02u%4d%2d%2d%02u/%02u/%04u%02u/%02u/%02u%02u/%02u/%04u%02u/%02u/%02u%04u/%02u/%02u%02u/%02u/%02u%02u.%02u.%04u%02u.%02u.%02u%02u-%02u-%04u%02u-%02u-%02u%02u.%02u.%04u%02u.%02u.%02u%02d%02d%02d%02d%02d%02d%02d-%02d-%02d%s %d, %d%s %d, %d%02d %s %02d%02d %s %dAMPM%02d%02d%02d%02d:%02d:%02d%02d%02d%02d%02d%02d:%02d:%02d.%02d%02d:%02d%02d:%02d:%02d %s%02d:%02d %s - - - - . . . . / / / / JKLMNOPQRSTYZX.DATERRCan't open ERR.DATErr72 - System Message File Error%xZERO NOHUNDRED Move: UpAw DnAw LtAw RtAw or first char. Select: Ret Help: F10 Exit: Esc Move: UpAw DnAw LtAw RtAw or first char. Select: Ret Help: F10 Exit: Esc Memo.DATHELPNo error.DATERRHELPCan't open %d %dAPPROX=CONFIRM=CONSOLE=DELETED=ESCAPE=EXACT=SAFETY=TALK=UNIQUE=ERRCODE=DATE FORMAT=USERSTAT=GETNO=VER=INTXX=OPEN MODE=BREAK= DEFAULT(DBF/NDX/TXT/MEM/PRG/Sys/DXX) (LINE COUNT=MARGIN(Top/Bottom/Left) (PRINT() TRAP() LOGFILE(VIDEO(Say/Get/Erase) (DBF FILE ,,,NO FILE IN USE ^D to continueDBF FILE ,,,RELATIONS ,FIND/GOTO,FINDGOTO^D to continueON OFF Esc=quit Any=next memory TFYNTYFNXALU!#9NYXALU!#9NYXALU!#9NYTYFN) CR DB##/##/######/##/######/##/####/##/####.##.######.##.####-##-######-##-##File : Line : MSG:CMD: DoneFRecF7=Mem F8=Sta F9=Err F10=Cmd*bad col*scrn.txtaa^S=save ^Q=quit ^E=era ^I=ins DnAw=nxt UpAw=prvEsc=exit ^D=PgDn ^U=PgUp ^->=Pan Rt ^<-=Pan LtEsc=exit ^D=PgDn ^U=PgUp^S=save ^Q=quit ^N=nxt ^P=prv ^C=carryover^S=save ^Q=quit ^N=nxt ^P=prv ^D=del ^U=undelEsc=exit ^D=PgDn^S=save ^Q=quitEsc=exit ^S=Pause ^Q=Resume24.00L OP<#d  88888888888899 9999%9/999B9K9V9`9j9r9z999999999O9999999:: ::::::#:':+:/:3:7:?:H:N:T:X:]:b:i:s:{:OY.T_1Y.T_2Y.T_3Y.T_4Y.T_5ONE TWO THREE FOUR FIVE SIX SEVEN EIGHT NINE TEN ELEVEN TWELVE THIRTEEN FOURTEEN FIFTEEN SIXTEEN SEVENTEEN EIGHTEEN NINETEEN TWENTY THIRTY FORTY FIFTY SIXTY SEVENTY EIGHTY NINETY THOUSAND MILLION BILLION TRILLION SundayMondayTuesdayWednesdayThursdayFridaySaturdayJANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECJanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember9999999999999999PxS4fU"0gqb7700q(5R@u"7dv7q@Q)'vf'0B%CWH@r6fB%Ty` PPP1AY&SX'((EEpyc&yHbSCBH%W)WyPE31b'.$KL 'KS +K] Kd ?Kk ;Kp XKw 3K~ K &K K K K >K K UK 4K K DK K FK EK [K ZK \K K K K ,L L ]L SL "L! L' L- %L3 =L8 6L= KLC 9LL LO LT LW IL^ CLb -Lh (Ln @Lt BLz L 8L L L RL L LL 1L L !L L YL <L +L +L WLJL VL JL M $M M 7M .M M& M. MM5 0M= HMC MJ QMN /MS 6MX M_ 2Mc TMh Mm Mr Mx M| PM NM GM OM M 5M M M )M AbMFM`MMuMMrM M M.MMM%NvN cNN NkN&XN- &N3dN9:NA4NI6NQ 4NWZN_<Ni Nn[Nr\Nv +Nz]N&N NNMN N NBN$NhNmN N)NRN SNKN %NO@O,O 0OPO>O$SO- O3(O= ODOINOP 6OUOXO[O^#OdYOnOq Ot!OwDO~OIOqOOOOsOOO^O8O"O#OtOOWOPOO O OO9OGOiObP -P (P;PxP BP#wP+lP/ 4P4=P9OP>+PC'PK*PR /PV /P]jPgzPm )Pu ,PyP~LPnPPP PVPPPPcPPPpPYP .PP +P +PJPUP VQQQ yQQ3Q! MQ(Q-2Q4 /Q9Q=aQHAQO?QSQ]HQc_QjgQoQyoQ Q)QfQQ QEQ -QCQTQ Q-QQ1Q~QeQ4QQQQ QGQQQR R ERDRFRR!R$KR(R+ R2 R9R< R@IRD"RGcRNRQ-RV 2R[ RbRe Rl RpRs 0Rz R~BR RR R R +R R R RR RLR3RR RJR%R R R RR R R (RS0SS 'S$S 5S";S& S. $S7S9 SC SMSR +S[]SdSgSjSm#Ss SyS| 1S S!SdS SSSS=SRSS "S !SPS5S %S S SXSS ,SSVSSTTT +T 4TT9T T" T):T- T3 T: TC &TI TN TSSTX T^*Tb /Tf /Tm )Tu T|)T`T_T T TT<T ,T/TT T T 7TTT^T@TYT .T T2T8T&T'TUU +UZU,U!U',U/ 6U9NUD6UM *US UYHU_Uc Uj Up Uz UMUUU UaU[U!UAU :U U U>UU U(U U U U 3U U ;V V V CV V 8V7V% 9V-bV51V< VD VK VP VY V^\Vb -Vf Vk Vr Vx VOVVV #VV4VV?VQV.VWVV ACCEPTALTERNATEAPPENDASSIGNBEEPBROWSECANCELCASECLEARCLOSECOMPARECONTINUECONVERTCOPYCOPYRECCOUNTCREATEDECDELETEDENYRWDENYWDESELECTDIRDISABLEDISPLAYDOEDITEJECTELSEENABLEENCRYPTENDCASEENDDOENDIFERASEEXITFINDFLUSHFORMFEEDGOGOTOIFIGNOREINCINDEXINPUTINT21INTXXJOINLISTLOCATELOOPMERGEMODIFYMODINDEXNOTEONOTHERWISEPACKPARAMETERSPAUSEPRINTPRINTERPRIVATEPROCEDUREPUBLICPURGEDIRQUITREADRECALLREINDEXRELEASERENAMEREPLACEREPORTRESTORERETRYRETURNRUNSAVESEEKSELECTSETSHOPSKIPSORTSTORESUMTEXTTOTALUNDENYUNINDEXUNLOCKUNPENDUPDATEUSEWAITZAPADDITIVEALIASALLAMERICANANDANSIASCEASCENDINGBELLBLANKBOTTOMBREAKBRITISHBUTTONCARRYCASECENTURYCHANGECLEARCOLORCOMMANDCONFIRMCONSOLECOUNTCURRENTDATABASESDATEDB2DB3DBFDECIMALSDEFAULTDELETEDDELIMITEDDELIMITERSDESCDESCENDINGDEVICEDIFDOHISTORYDOUBLEDXXECHOEMPTYENCRYPTENDTEXTERASEERRCODEESAYESCAPEEXACTEXCEPTEXCLUSIVEEXTENDEDFIELDFIELDNAMEFIELDSFILEFILTERFINDFJFKFLFLAGSFLDUPDATEFMFNFOFOOTERFORFORMFORMATFPFQFRFRENCHFROMFSFUNCTIONFXFYFZGERMANGETGETFILEGETNOGETSGOGOTOGROUPHEADINGHEADING2HELPHISTORYINDEXINPUTINTENSITYINTOINTXXITALIANKEYLEFTLIFOLIKELINELOGFILEMARGINMEMMEMORYMEMOWIDTHMENUSMESSAGENDXNEXTNOCLEARNOEJECTNOTOFFONOPENMODEORORDERPAGENOPATHPICTUREPIXELPLAINPMENUPRGPRIMARYPRINTPRINTERPROCEDUREPROTECTPUBLICRANDOMRANGERECORDRELATIONREPORTRESTSAFETYSAVESAYSCOREBOARDSCREENSDFSECONDARYSPOOLSTATUSSTEPSTRUCTURESUMMARYSYSTEMTALKTITLETOTOPTOPFORMTXTTYPEAHEADUNIQUEUPPERUSERUSINGVIDEOVIDEORAMVIEWVMENUWHILEWINDOWWITHABSAHALANDAPPROXARCCOSARCSINARCTANATAXBARBHBITCLRBITSETBLBOFBOXBPBUTTONBXBYTECDOWCENTERCHCHKKEYCHRCLCMONTHCOLCOSCTODCXDATEDAYDBFDELETEDDELRECDFLTDRVDHDIDISKSPACEDISPTYPEDLDOWDRAWLINEDSDTOCDTOKDUPCHARDXDXXEOFERRCMDERRCODEERRLINEERRORERRPRGESESCEXPEXTRACTEXTRACT2FFIELDSPECFIELDTYPEFILEFILENAMEFILESIZEFJFKFLFLAGSFLOCKFMFMENUFNFOFONTFOUNDFPFQFRFRACFRAMEFSGETENVGETNAMEGETNOHMENUIIFCIIFDIIFLIIFNININDEXNAMEINKEYINSETINTKEYSTROKESLASTKEYLASTRECLEFTLENLNLOCKLOCKRWLOGLOGINLOGOUTLONGYEARLOWERLPADLTOCLTONLTRIMMAXMEMMEMORYMESSAGEMIDSTRMINMMENUMODMODCHARMONTHNNATENDXNLISTNOTNRANGENTOLNTOTIMEORPAGENOPCOLPIPMENUPRGPRNFLGPRNTSTATPROWPTR1PTR2RANKREADKEYRECCOUNTRECEIVERECLENRECNORECSIZEREPLICATERESTSCREENRETRYCNTRIGHTRLOCKROUNDROWRTJUSTRTRIMSAMEMONTHSAMEWEEKSAVESCREENSCROLLSELECTEDSELFILESENDSISINSMENUSOUNDEXSPACESQRTSRCHSTATIONSTKSTRSTRPT1STRPT2STUFFSUBSTRSYSCALLSYSTEMTTANTIMETIMEADDTIMECNTTIMESUBTIMETONTOKENSTOMONEYTONAMETRAPTRAPFILETRIMTTSTXTTYPEUNLOCKUPPERUSERNAMEUSERSTATVALVERASEVERSIONVGETVMENUVSAYWAITCNTWINDOWWORDWOYYYEAR  *+,-./ !"#$%&':;<=>?()*+,-./01JKLMNO23456789:;Z[\]^_<=>?@ABCDEjklmnoFGHIJKLMNOz{|}~PQRSTUVWXYZ[\]^_`abc  !"#$%&'()0123456789@ABCDEFGHIPQRSTUVWXY`abcdefghipqrstuvwxy (&\ 6K98J* x|^DdFn ,  > p ` nd < t 0 h   &>  x.6B<LT\dnrvz~V".^vB &KL3 &K K  K  ,0l(LF:4F :4Fk  BKF X\LFk   L+r L*:rG Y   -`>$N:p FO ,:FO:FO:d   MNX$2<L BLFm;$ Fm# F dL$ Fm    L (U:AL Fo Fo Fo ML#FF%oF]o   -0 (^JV< +$q* p qF kFk \ P ,>TL9FkrF tL    L$':d:d(:d{ GMJ n FG $? 6<FFZSb .N,+M:*:$':G:iF:tG:t$':t jZSb M:tiF:F:FG F +M:*:!':G:iF] "L;] i GZP~M-:@ hxL$'&:@\:@Ffe h$?+LG  hG:F L!gF L"gF  L!g L 2:4* FfFG:NF Hj : B8"#: /L+ M :H:*:  +LG:s  L  +LG t  /L @.L  +:LG u \hx:h+H rM-:H*:Hv :  ZMFB VF:F:F: L + L*LFx]y &:L+ 4L*:Fx F ZL| F rK | FM-:~+~  Q:$'&:~:~*:~F:~}   "M:   :*:$':~  F hM : 0+ 0  Z `: <*: 0: ,z C  MB  $'  L;$'   M: +   : $'&: *: = <02  6 < F%  0 .LF? <@  N PL7  ZL% 7 G v vMJ4 G MJE1.6/ )F  @   %  &  "{ .| .} 4 U9  @   9UR: S:  ( 9F kF k 9 9 FG L jP d / j rLGF: F F A $'yF F  A  C /  FF k F F  LA   .L  L  * .LF  @ TLA  ^ bL  ^L F  | LA  L  L TF   5 MR ,  9Q: : FdGd  H MI , LJ F FG  6L  FL '  ~ ~R n= v LF: JG: J(: J  GF  M  8 " # :  : O P LF: F: F FL .8D"D#DAZ|L' |LPL .LF prLF!:^ OPLF:F FL 8"#ALL' FL F LF $ 4 B X nL 60)& +2,34%6B09GD'EZH^J|TYVNd[\^_axbxcx.x;x>xMCd]*hxfxgxixzxejkq~L  -NdL +-(%BSVL L RL:Fk )4L L  L9F:F:F:F  LkF:I LjL  L %F ,LID "L +N,^-f/n.v~L LF LF:RF:RF:RF:RF:RF:RFFL  LF D *LDWD  4LD 1L  G 0LGbM x(L   6P XbbLF:\F G tL M*F:F:F :x M L LJF L Fr  $*L!FFFF @L  +RAVLF F #nL zL LZX HLF L+ L*::      $' $L;$'  9   F F F F:b L+ L L ' FL* FL   IL#,G $p49<nFoN F[  +L[:[:[:[: F  pL,  p FL$:t:tF:t ,  F L! L;!L+ L*:Fw Fx FHMl+6 X:>*:6  nLFi G: G: F,  @L :@ Fkdbtmp1dbtmp2dbtmp3dbtmp4qsort failure !4.DBF.NDX.CMD.TXT.MEM.DIF.FRM ___________________________________________________________ | | | | | dBMAN - Version 4.00L Serial No. XXXXXX | | (C) Copyright 1986,1987 VersaSoft Corporation. | | | | for | | Atari ST | | | | VersaSoft Corporation | | 4340 Almaden Expwy Ste 250 | | San Jose, California, USA. | | | | | | Please read UPDATE.DOC | |___________________________________________________________|aCannot open %s0pAeOeUeaeoessue%d%u%ld Desk -------------------- Desk Accessory 1 Desk Accessory 2 Desk Accessory 3 Desk Accessory 4 Desk Accessory 5 Desk Accessory 6 ^Q=Quit ^S=Save ^E=EraLine ^->=LineEnd ^<-=LineBeg ^U=PgUp ^D=PgDn Edit: Abort Editing ? (Y/N)^Q=Quit ^S=Save ^E=EraLine ^->=LineEnd ^<-=LineBeg ^U=PgUp ^D=PgDn.dbt Bad pointer in free. Bad format in scanf {NULL}"F!"F!"F#}}~ You must compile with the -f option to include printf() floating point! ~CCAP????????????????????????0123456789ABCDEFUser abort at 00000000 L"20            ,H   &, < .  8   (   (      4  $$4       &"        0(  "      " D    $ $(  $.6 (&.dx8 * $&   (F  "          "  "   "       *  $   (P * h&8 .:4" "     "(  &  f64  6$                 $       $&.$"$$ $(.    0                      ,( &(  $      $                         ,    .,     &.DF6  ."L&     64,2  "   * 2 $   0( 4*,   *   "  *(4"(&   4 $ ,"  (  &&0H  "< d   B    " $ (4  $ ":"R    . &NX >2< "& ", f v0 .6 "&4:JB$  *6 \<0 ":     \. $,&,2  l    *    L 2 2  H    &    "     R&00 L " 0 $        F  $$  n     0N:R8&  ,      P>.P    : (     2          $   *4*" , 2    D&.&( ,R   < .$ $ ,xB L4&0 .   6           * :             JDl0   $                 &     &0 ` $6  $ 8 $J :,*& ,0&    ((F2 ,&"2"~ ,&"2"$8(,  "$ 4 $  6 ,z0 @"(,  ^(("  .& x0.            "  .@  &&   "   dF H$<  $  "        $     *@ $*4* 0                0nR,">~,4 4|* Z  H& "( 4 & :,&"    * 66 (          :BDB     $ (  X$"$(: 2 2 4 4 $N  B         ( *V  2(               &"      "D( "LL\0`: "x^0< "  0.FL0"R<4J $(>@T, 42 p*  &0 & *$&&& "&& Z<2&fH&@&"@ "  " **&,, @    &  $   ,R$ < "   $   ( $   "lF*F.R"L" " (    "   &         *    .4& :  2d  2^8.,   & ,& ,   0    * 8< , &$ * (4*"\ (&*$$$4   $@        ,&$668 "  0 $    ,.    &t    ,.0 >&   $ 0  2  ("$ 6&""" &.    $       ,$ (Hb $0b  "V     "  $            .  (j*     (  "  $,r.(    P "  (B >hZ,>4 "(        ,                :4,L 0 &    . ,0F "&    *  2 , (,t&.L2"&>\F  6v  >.2(6.  FTp&,0 NB@* $0  "<2   $ J",  X(&   *  "  $         & $         8D    L*  62                  .(&   $ ><:NH"2R8:"n ("p  :.6 ",   FR$.  ("( &.$<D2TXF (> ^$fFF00N& 4$D$, .&8lzF  H >.tHBL X:         (&        &   $. .  & " B     "   ("   .  & 6B   (               * &&0<0(  $&   n    & F $ &      $ & &"@ "T$* . `6 2>$.D4*> *.> *(4B"L $$ ($>80"$ ""::,$ 2&$,0$0((:@:d$& & :("$V0((6"& :$:r4.Jj2.20*,6&F40N(&($  0>0  FD80DR $(JF046",j2D$hNj(26.T8N&:Lf"6(dh :."$P<0&L&$26L @ J&. >4&*   b.,X.V>2*F>XX4*2:*  "@8^ (PR*VR * &6 @   2P 4 N(($"<jBJ B,jJB,JTN2 .`N B08..@t0 $$:xb&4"Ƭ"`P^j><*&     ( $& 0 &.J         (   .  "   $8 H<΀^NJ  `j 8& :0$HN4H8(<:><02(bB88 B$$F40"2D$ B.N$ jH^>` 2>    *  B>.<.*^DD8V.:L.0Lx*",  "   ",X( DD.&d"  *& dTPB*>4 T* (D*DTNX<   `<(( F   |"*&"zd&02""""""",0"L&$&0l$j     $,$d:* \.P4 (P$($ ,  .N ("(*0R,$ <@JzD .^  : 0" <.  ,H 6B  , $ 4      B" $00 &&8(.P&ZP"2  $  46 0 $" *.    44>(< &Z$ @6   & $,  $ **     4,>2 ",  $@("  "$$$T>&n$L,,*J .                h0j  @J$  $2$ .>` .NtjJ&vFP( LD   &>& (&"",p$  .6*" .J0.$nBF\ @$@(  .8*046  & 6& ,$ &(2> 00v   0$"$0DX:4>t   0 RD[d1QUIT_TOTHMSG1_TEXTH 2DO YOU REALLY WANT TO QUIT NOW?+Sd0ERRMSGC0 Err01 - More Memory is Required.~3~ Err02 - A "(" Parenthesis is Needed.~3~ Err03 - The Key is Too Long.~3~ Err04 - Beginning Of File. No More Records.~3~ Err05 - End Of File...No More Records.~3~ Err06 - The Printer File Cannot be Opened.~3~ Err07 - System Error.~3~ Err08 - An ENDIF Command is Needed.~3~ Err09 - An ENDDO Command is Needed.~3~ Err10 - Printer Write Error.~3~ Err11 - A Disk Read Error has Occurred.~3~ Err12 - System Error.~3~ Err13 - The Number is Too Wide for Field.~3~ Err14 - No Matching Record was Found.~3~ Err15 - The Field Name is Illegal.~3~ Err16 - Disk Full or Write Error.~3~ Err17 - The File Name Already Exists.~3~ Err18 - Error Opening the File.~3~ Err19 - File Name Not Found or Illegal.~3~ Err20 - A Right Parenthesis ")" is Needed.~3~ Err21 - An ENDCASE Command is Needed.~3~ Err22 - The Record Number is Invalid.~3~ Err23 - Too Many Fields are Defined.~3~ Err24 - The Field Width is Invalid.~3~ Err25 - The File is Not a dBMAN DBF File.~3~ Err26 - The Memory Variable Buffer is Full.~3~ Err27 - The File is Already in Use.~3~ Err28 - The File is Open for Read Only.~3~ Err29 - CONTINUE Without a Prior LOCATE.~3~ Err30 - Too Many Suspended PRG Files.~3~ Err31 - System Error.~3~ Err32 - JOIN Error (Sec Same as Pri File).~3~ Err33 - The Decimals Value is Too Big.~3~ Err34 - Field Input is Mandatory.~3~ Err35 - A Prior IF Command is Needed.~3~ Err36 - A Prior DO WHILE Command is Needed.~3~ Err37 - A Prior DO CASE Command is Needed.~3~ Err38 - System Error.~3~ Err39 - The File is Not an Index.~3~ Err40 - Too Many Characters for the Field.~3~ Err41 - The Data Type is Invalid.~3~ Err42 - The Key is Invalid for This Mode.~3~ Err43 - No DBF File is in USE.~3~ Err44 - The File is Not a Database.~3~ Err45 - DBF and NDX Files are Mismatched.~3~ Err46 - System Error.~3~ Err47 - Too Many @ GET commands.~3~ Err48 - The File Name is Invalid.~3~ Err49 - Cannot Create MEM.MEM File.~3~ Err50 - The Argument List is Missing.~3~ Err51 - The Expression is Too Long.~3~ Err52 - The File Name is Missing.~3~ Err53 - Data Conversion Error.~3~ Err54 - Syntax Error.~7~ Err55 - The Command Name is Illegal.~7~ Err56 - The Expression is Invalid.~7~ Err57 - The Field Name is Invalid.~7~ Err58 - The Variable Name is Invalid.~7~ Err59 - The Record Number is Missing.~7~ Err60 - The Command Buffer is Full.~3~ Err61 - Duplicated Key Word.~7~ Err62 - Too Many Records for File.~3~ Err63 - System Error.~3~ Err64 - No NDX File is in Use.~3~ Err65 - The Files do Not COMPARE.~3~ Err66 - System Error.~3~ Err67 - The File Name is Too Long.~3~ Err68 - The Month or Day is Invalid.~3~ Err69 - The Date Expression is Invalid.~7~ Err70 - Quit. Command Aborted.~1~ Err71 - PRG File Execution Aborted.~1~ Err72 - System Error.~3~ Err73 - The File is Empty.~3~ Err74 - System Error.~3~ Err75 - The Numeric Expression is Bad.~7~ Err76 - The String Expression is Bad.~7~ Err77 - The Logic Expression is Bad.~7~ Err78 - The Variable is Bad.~7~ Err79 - The Variable is Undefined.~7~ Err80 - The File Area ID is Invalid.~7~ Err81 - A List Separator is Needed.~7~ Err82 - The Drive ID is Invalid.~7~ Err83 - The File Name is Invalid.~7~ Err84 - A Terminating ">" is Needed.~7~ Err85 - The RELATION is Illegal.~3~ Err86 - The File is Not a dBASE II DBF.~3~ Err87 - The Expression is Not a String.~3~ Err88 - The File is Not in a DIF Format.~3~ Err89 - SAVE is Invalid for FX Memory.~3~ Err90 - System Error.~3~ Err91 - The Key Expression is Bad.~3~ Err92 - The Record or File is Locked.~3~ Err93 - The File is Not a RUN File.~3~ Err94 - System Error.~3~ Err95 - System Error.~3~ Err96 - RETRY or IGNORE Without a Trap.~3~ Err97 - Overflow or Undefined Result.~3~ Err98 - System Error.~3~ Err99 - An ENDTEXT command is needed.~3~ Err101 - Bad Argument Count.3 +Se|ERRHELPC| Err01 - More Memory is Required. dBMAN needs more memory than is currently available. -> CLOSE some .DBF or .NDX files. -> Change BUFFERS in CONFIG.DBM file to use less memory. ~~ Err02 - A "(" Parenthesis is Needed. The command line has a function or expression that needs a "(" parenthesis. -> Insert the required "(" and try the command again. ~~ Err03 - The Key is Too Long. The combined width of all fields in the SORT command "ON" phrase must not exceed 124 characters. -> Reduce the number of fields on which to SORT. ~~ Err04 - Beginning Of File...No More Records. The record pointer is at the beginning of the file (record 0) and no record is available. ~~ Err05 - End Of File...No More Records. The record pointer is at the end of the file (last record + 1) and no record is available. ~~ Err06 - The Printer File Cannot be Opened. -> Check to see whether the printer is available. ~~ Err07 - System Error. ... NO DATA DESCRIPTOR BLOCK -> Please report this problem to VersaSoft. ~~ Err08 - An ENDIF Command is Needed. Every IF command must be terminated with a matching ENDIF command. -> Locate the orphaned IF command and insert the needed ENDIF. ~~ Err09 - An ENDDO Command is Needed. Each DO WHILE command must be terminated with a matching ENDDO command. -> Locate the orphaned DO WHILE command and insert the needed ENDDO. ~~ Err10 - Printer Write Error. -> Verify that the printer: 1. is powered on 2. is on-line / selected 3. has paper ~~ Err11 - A Disk Read Error has Occurred. -> Check if the disk is operational. -> Check if a diskette is in place. ~~ Err12 - The File is corrupted. -> Recreate the file with INDEX command if index file. -> Restore from backup if database file. ~~ Err13 - The Number is Too Wide for Field. The field width is too small to receive the number. -> Check the Width and Decimals structure of the field. ~~ Err14 - No Matching Record was Found. No record was found that matched the specified condition. ~~ Err15 - The Field Name is Illegal. -> A field name may only be used once in a database file. -> The first character of the name must be an alphabetic character "A..Z", and have nore than one character. -> Blank names are not allowed. Use ^E to erase any unwanted fields. -> Logical Key words may not be used as field names. e.g. AND, OR, etc. ~~ Err16 - Disk Full or Write Error. -> Delete unused files if the disk is full. -> Remove the write protect tab if the diskette is write protected. ~~ Err17 - The File Name Already Exists. -> You cannot USE the same file in more than one area. -> Use SET SAFETY OFF if you wish to overwrite the file. -> Delete the file and try the command again. ~~ Err18 - Error Opening the File. dBMAN cannot open the file because the maximum number of files allowed by system are already open. There is no space in the system directory for the file. -> Close open files. -> Delete unused files and try the command again. ~~ Err19 - File Name Not Found or Illegal. dBMAN Cannot find the named file in the system directory. -> Check if the filename is spelt correctly. ~~ Err20 - A Right Parenthesis ")" is Needed. Missing right parenthesis in an expression or function. -> Correct or insert the ")" and try the command again. ~~ Err21 - An ENDCASE Command is Needed. Missing ENDCASE command for the DO CASE command. -> Locate the orphaned DO CASE command and insert the needed ENDCASE. -> Also locate any missing ENDDO or ENDIF. ~~ Err22 - The Record Number is Invalid. The record number specified in the GOTO command does not exist. ~~ Err23 - Too Many Fields are Defined. Record structures are limited to no more than 128 fields. ~~ Err24 - The Field Width is Invalid. The specified field width is not valid or is not defined... OR -> Valid widths are: Character 1..254, Logic 1, Date 8, Numeric 1..17 The sum of all field widths is greater than 4000 characters. -> Use ^E to erase the field... OR -> Reduce field widths as required. ~~ Err25 - The File is Not a dBMAN File. -> Check the file name or file extension. -> Check the file is the correct version. -> Check the file is the correct file type. -> The file may be corrupted. ~~ Err26 - The Memory Variable Buffer is Full. Exceeded the total number of available memory variable... OR the total buffer capacity in bytes. See the "TECHNICAL SPECIFICATIONS" for the number of available memory variables and the size (in bytes) of each memory area. -> RELEASE unneeded memory variable(s) and try the command again. ~~ Err27 - The File is Already in Use. The file is already open in another File Area. It cannot be used in the specified File Area, deleted or renamed. -> CLOSE the file and try the command again. ~~ Err28 - The File is Open for Read Only. An attempt was made to write a file which is open for read only. ~~ Err29 - CONTINUE Without a Prior LOCATE. A LOCATE command is required in the specified File Area before the CONTINUE command can be used. dBMAN maintains the LOCATE criteria for each File Area separately. ~~ Err30 - Too Many Suspended Program Files. Only two Program files can be suspended at any time. Execution is suspended: When an error occurs...OR If ^W or ^T are pressed...OR If a PAUSE is executed...OR As determined by SET BREAK TO. -> Use ^R or ^K to resume or kill execution. ~~ Err31 - System Error. ... SORTER LOGIC ERROR. -> Please report this problem to VersaSoft. ~~ Err32 - JOIN Error (Sec Same as Pri File). The "Currently Selected" file area must not be area FS...OR The primary and secondary file names are the same. ~~ Err33 - The Decimals Value is Too Big. The value for the Decimals portion of the field definition must be at least two less than the Width for positive numbers and at least three less than the Width for negative numbers. This provides space for the decimal point, leading 0 and minus sign. ~~ Err34 - Field Input is Mandatory. You must enter data in this field. -> Press any key to save the data. -> Press ^Q to exit the command without saving the data. ~~ Err35 - A Prior IF Command is Needed. An ELSE or ENDIF command was found without a matching IF command. -> The most probable cause of this type of error is a missing END command in some other control structure (IF, DO CASE, DO WHILE) within the program. Verify that all conditional commands are correctly terminated with the appropriate END statement. ~~ Err36 - A Prior DO WHILE Command is Needed. An ENDDO, LOOP or EXIT command was found without a matching DO WHILE. -> The most probable cause of this type of error is a missing END command in some other control structure (IF, DO CASE, DO WHILE) within the program. Verify that all conditional commands are correctly terminated with the appropriate END statement. ~~ Err37 - A Prior DO CASE Command is Needed. A CASE, OTHERWISE or ENDCASE command was found without a matching DO CASE. -> The most probable cause of this type of error is a missing END command in some other control structure (IF, DO CASE, DO WHILE) within the program. Verify that all conditional commands are correctly terminated with the appropriate END statement. Err38 - System Error. ... FILE POINTER NOT INITIALIZED. -> Please report the problem to VersaSoft. ~~ Err39 - The File is Not an Index. The specified file is not a ".NDX" index file. -> Check for correct file name and file extension. ~~ Err40 - Too Many Characters for the Field. Too many characters were intered into the field. -> Use MODIFY STRUCTURE if the field width needs to be increased. ~~ Err41 - The Data Type is Invalid. The field data type entered is not valid. -> Use one of the following: "C" for alpha-numeric Characters "D" for Dates "N" for Numbers "L" for Logic "M" for Memo -> Use ^E to erase the current field. ~~ Err42 - The Key is Invalid in This Mode. The key that you have pressed is not valid. -> Check the key and try again. ~~ Err43 - No DBF File is in USE. The command you are using requires that a database file be USEd in the File ID Area specified. -> Open a database file with the USE command. ~~ Err44 - The File is Not a Database. The specified file is not a dBMAN .DBF database file. -> Check for the correct drive id, file name and file extension. ~~ Err45 - DBF and NDX Files are Mismatched. The index file was not created from the database file... OR The INDEX key field(s) were changed without the NDX file in USE. -> Check for the correct file name and file extension. -> Recreate the required NDX file. -> MODIFY FIELDNAMEs to match the INDEX key expression and REINDEX. ~~ Err46 - System Error. ... INCORRECT INTERFACE. -> Please report the problem to VersaSoft. ~~ Err47 - Too Many @ GET commands. You cannot have more than 128 GETs or the PICTURE buffer is full. -> CLEAR GETS to delete current GET commands. -> Increase PICTURE buffer size in CONFIG.DBM file. ~~ Err48 - The File Name is Invalid. The old or new file name specified in the RENAME command is incorrect. 1. The old file does not exit..OR 2. Wild card characters are used in a file name. -> Correct the file name and file extension. ~~ Err49 - Cannot Create the DBMEM.MEM File. dBMAN is unable to create the DBMEM.MEM file for local memory variables on the default SYSTEM drive. 1. The disk is write protected; 2. The disk is full; 3. The system directory is full. -> Delete unneeded files or remove the write-protect tab. ~~ Err50 - The Argument List is Missing. The command is missing an expression list, field list or variable list. ~~ Err51 - The Expression is Too Long. The expression text (not the result of the expression) is over 128 characters long. ~~ Err52 - The File Name is Missing. The command requires a file name argument. -> Add the file name and try the command again. ~~ Err53 - Data Conversion Error. You cannot store data into a field with non-matching data type. -> Check data type of the source and destination fields. ~~ Err54 - Syntax Error. A phrase in the command is either invalid, missing, extra or repeated. -> Correct the command and try again. ~~ Err55 - The Command Name is Illegal. The first word in the command line is not valid. -> Check for the correct spelling. -> Use the F10 key for a list of all command names. ~~ Err56 - The Expression is Invalid. The expression contains an invalid operator...OR A data constant delimiter ( " { } [ ] ) is missing...OR A field or memory variable does not exist...OR A command, phrase or function keyword is misspelled...OR Data types are mixed in the expression. ~~ Err57 - The Field Name is Invalid. The variable name does not exist. -> Check spelling and memory area prefix (X Y Z) -> Create the required memory variable. The field name does not exist. -> Check for correct spelling and file area prefix (J..S) -> Verify that the file is open in the specified file area. ~~ Err58 - The Variable Name is Invalid. The variable name is invalid or is not specified. Keywords should not be used for variable and field names. ~~ Err59 - The Record Number is Missing. The command must have a record number argument. -> Enter a record number and try the command again. ~~ Err60 - The Command Buffer is Full. The command text is too long. The maximum number of characters allowed in a command is 236 characters (including white space characters). ~~ Err61 - Duplicated Key Word. The phrase is used more than once in the command. -> Press F10 key for the correct command syntax. ~~ Err62 - Too Many Records for File. dBMAN can accept no more than 2 billion records per file. Note: The demo version of dBMAN is limited to 21 records per file. ~~ Err63 - Stack Error. ... INSTK POPPING This error is usually caused by: 1. A program calling the same program directly or indirectly without returning; 2. If you are using a trapfile and you have a problem in the trapfile. Turn off trap and try again. ~~ Err64 - No NDX File is in Use. An index file must be used before executing a FIND command. -> USE the file with an index... OR -> SET INDEX TO the index file. ~~ Err65 - The Files do Not COMPARE. At least one field of at least one record in each of the DBF files does not match. ~~ Err66 - System Error. ... EOD OF LOCATE -> Please report the problem to VersaSoft. ~~ Err67 - The File Name is Too Long. The file name used in the command is too long. The maximum length allowed for a system filename is 43 characters. This consists of: Drive/path.... 31 chars (A:\dev\) File name..... 8 chars (MAILLIST) File extension 4 chars (.DBF) ~~ Err68 - The Month or Day is Invalid. The range of values for month is 01..12 and the range for day is 01..31. -> Check the order of arguments in the date expression. ~~ Err69 - The Date Expression is Invalid. The field, variable, constant or function is not a date data type... OR The variable, constant or function used with a date is not numeric. ~~ Err70 - Quit. Command Aborted. This is not an error. ~~ Err71 - Program File Execution Aborted. This is not an error. ~~ Err72 - System Error. ... SYSTEM MESSAGE DAT FILE ERROR. -> Please report the problem to VersaSoft. ~~ Err73 - The File is Empty. There are no records in the database file. ~~ Err74 - System Error. ... UNDEFINED INTERPRETER CODE. -> Please report the problem to VersaSoft. ~~ Err75 - The Numeric Expression is Bad. The variable, constant or function is not a numeric data type. ~~ Err76 - The String Expression is Bad. The variable, constant or function is not a string data type. ~~ Err77 - The Logic Expression is Bad. The variable, constant or function is not a logic data type. ~~ Err78 - The Variable is Bad. The memory variable name does not exist. -> Check the variable memory area ID (X. Y. Z.) -> Check the spelling of the variable. ~~ Err79 - The Variable is Undefined. The field or the memory variable does not exist possibly due to wrong spelling or file not in USE. ~~ Err80 - The File Area ID is Invalid. The valid file IDs are FJ, FK, FL, FM, FN, FO, FP, FQ, FR, FS. OR the alias name is spelt incorrectly. ~~ Err81 - A List Separator is Needed. A comma (,) is missing in the function argument list. ~~ Err82 - The Drive ID is Invalid. A drive ID consists of a valid system drive letter terminated with colon (:). -> Verify that the Drive letter is terminated with a ":" character. ~~ Err83 - The File Name is Invalid. The word is not a valid file name. Check for spelling and use of any of the dBMAN reserved words. ~~ Err84 - A Terminating ">" is Needed. The terminating ">" is missing in the ESC() control code character string. ~~ Err85 - The RELATION is Illegal. The parent and child file IDs are the same...OR A RELATION between the parent and child already exists. -> Clear the old relation first: "SET RELATION TO " ~~ Err86 - File is Not a dBASE DBF. The source file to CONVERT is not dBASE II or III database file. ~~ Err87 - The Expression is Not a String. The expression used is not a string expression. ~~ Err88 - File is Not in a DIF Format. The file to APPEND from is not in a "DIF" format. ~~ Err89 - System Error -> Please report the problem to VersaSoft. ~~ Err90 - System Error. ... Invalid Printer Number. -> Please report the problem to VersaSoft. ~~ Err91 - The Key Expression is Bad. The UPDATE ON Key expression is invalid. ~~ Err92 - The Record or File is Locked. Another workstation on the network has already locked the record or file. -> Try the DENYRW command again later. ~~ Err93 - The File is Not a RUN File. The file is not a dBMAN run-time RUN program file. ~~ Err94 - Undefined Network Lock Status. The Lock status code returned by the network is undefined. -> Probable cause is the network lock table is full. ~~ Err95 - System Error. ... Undefined Network Unlock Status. -> Please report the problem to VersaSoft. ~~ Err96 - RETRY or IGNORE Without a Trap. RETRY and IGNORE cannot be used without an error trap condition. -> Use these commands ONLY within an error TRAPFILE. ASSIGN TRAPFILE(""), TRAP(T) ~~ Err97 - Overflow or Undefined Result. The computed value exceeds the 16 digit capacity of dBMAN. The function argument would return an undefined value. ~~ Err98 - Network Spooling Error. An error has occured while spooling printer output to the network. -> Use the CANCEL SPOOL command to abort spooling. ~~ Err99 - An ENDTEXT Command is Needed. Missing ENDTEXT command for the TEXT command. ~~ Err100 - Run error. Check if your command line is correct. Check if you have enough memory. ~~ Err101 - Bad Argument Count. The number of arguments in the parameter list does not match with the number of arguments in the parameter list of the DO WITH command. ~~ *FINDFILE *4-22-87 *Z.SEL_FILE = FILE LOOKING FOR *Z.PATH_NAME = DEFAULT PATH *Z.RETURN_TO = PROGRAM TO RETURN TO IF NO FILE SELECTED *Z.MSG_TEXT = PROMPT TEXT ON LINE 23 Y.SEL_FILE = Z.SEL_FILE Z.PATH_NAME = MIDSTR(TRIM(Z.PATH_NAME),SPACE(32),1) Y.PATH_NAME = Z.PATH_NAME @ 23,00 SAY CENTER(Z.MSG_TEXT,78) @ 24,00 SAY CENTER("Please select the proper Drive & Folder and select "+Z.SEL_FILE,78) DO WHILE T Z.SEL_FILE = TRIM(Z.SEL_FILE)+SPACE(12-LEN(TRIM(Z.SEL_FILE))) ASSIGN SELFILE(Z.PATH_NAME,Z.SEL_FILE) IF TRIM(Z.SEL_FILE) = '' BEEP @ 23,00 ERASE @ 24,00 SAY CENTER("ERROR! NO FILE SELECTED. PRESS ANY KEY.",78) WAIT IF Z.RETURN_TO = "CANCEL" SET DEFAULT TO SET PROCEDURE TO CANCEL ENDIF RETURN TO &Z.RETURN_TO ENDIF IF TRIM(Z.SEL_FILE) <> Y.SEL_FILE IF $(Y.SEL_FILE,1,1) = "*" AND SRCH($(Y.SEL_FILE,2,4),Z.SEL_FILE) > 0 EXIT ELSE BEEP @ 23,00 SAY CENTER("REQUESTED FILE NOT SELECTED!",78) Z.SEL_FILE = Y.SEL_FILE Z.PATH_NAME = Y.PATH_NAME LOOP ENDIF ENDIF EXIT ENDDO Z.PATH_NAME = $(Z.PATH_NAME,1,AT("\",Z.PATH_NAME,TOKENS("\",Z.PATH_NAME))) RETURN +SsHELPC Commands - At the CMD: type a command and press F10. ? COMPARE DO FORMFEED MODIFY RECALL SET USE ?? CONTINUE EDIT GO MODINDEX REINDEX SHOP WAIT @ CONVERT EJECT IF NOTE RELEASE SKIP ZAP ACCEPT COPY ELSE IGNORE OTHERWISE RENAME SORT APPEND COPYREC ENDCASE INC PACK REPLACE STORE ASSIGN COUNT ENDDO INDEX PARAMETER REPORT SUM BEEP CREATE ENDIF INPUT PAUSE RESTORE TEXT BROWSE DEC ERASE JOIN PRINT RETRY TOTAL CANCEL DELETE EXIT LIST PRIVATE RETURN *UNDENY CASE *DENYRW FIND LOCATE PUBLIC RUN @UNINDEX CLEAR DIR *FLUSH LOOP QUIT SAVE @UNPEND CLOSE DISPLAY MERGE READ SELECT UPDATE For dBMAN Atari ST | * = Multi-User Only @ = Single-User Only ^D > General Info | ^U > Functions | Esc > CMD: ~100 104~ CREATE Create a new database file. The default file extension is ".DBF". FIELDNAME: 1..10 characters ( A..Z 0..9 _ : ) TYPE: 1 character ( C = Character, N = Numeric, D = Date, L = Logic ) WIDTH: 1..3 chars ( C = 1..254 N = 1..17 D = 8 L = 1 ) DECIMAL: 1..2 chars ( 0..15, Digits to right of the decimal ) ... move to next entry in the current FIELD DEFINITION ^N ... move to Next FIELD ^I ... Insert blank FIELD ^P ... move to Prior FIELD ^E ... Erase current FIELD ^S ... Save FILE and exit CREATE ^Q ... Quit CREATE without saving FILE See also MODIFY. ^D > MORE CREATE | ^U > CREATE REPORT | Esc > CMD: ~93 79~ DISPLAY [] [] [] [FOR ] [OFF] Display all records that satisfy the "" & "FOR" conditions in the file area (current or "Fi" ). "OFF" shuts off display of record numbers. If an "expList" is provided, only that information is displayed, otherwise all of the fields are displayed. dBMAN will display one window full of records and wait for one of these keys: ^... pan data display window right ^... pan data display window left ^U .. show prior data page (unless FOR phrase is used) ^D .. show next data page Esc ... exit DISPLAY command ^D > LIST | ^U > DISPLAY MEMORY/STRUCTURE/FILE | Esc > CMD: ~58 94~ APPEND (direct entry from keyboard) APPEND adds new records to a data base. ^N ... save & append Next blank ^P ... save & move to Prior record ^C ... Save & Carryover data to next ^S ... Save all records and exit APPEND ^Q ... Quit without saving current (appended) record Note: If you ^P to the prior record then ^N for next, dBMAN will append a new record - NOT return you to the record where you pressed the ^P. APPEND FROM [FOR ] Append all records (or selected by "FOR") in the "FROM" file to current file. FROM file can not be in use. See MORE APPEND for appending to open files. ^D > MORE APPEND | ^U > UNPEND | Esc > CMD: ~95 53~ SELECT [ | PRIMARY | SECONDARY | | ] Make one of the ten file IDs ("Fi" = FJ..FS) the current file ID. Its associated file becomes the current file. The initial "Fi" is FP. PRIMARY and SECONDARY are equivalent to "FP" and "FS" respectively. is the Alias name given to the file when the file was USEd. is the area letter A...J. SELECT (without an argument) resets the selected file ID to "FP". Most dBMAN file-reference commands allow the use of an optional "Fi" file ID so that operations which move the record pointer may be used without doing an explicit area SELECT command first. The commands which may require a prior SELECT are: APPEND, COPY, CREATE, EDIT, JOIN, MODIFY, PACK, SORT, UPDATE ^D > USE | Esc > CMD: ~6 0~ USE [] [ [INDEX ] [ALIAS ]] Close any open files in the current (or "Fi") file ID area & open the new DBF (and index files). If a file extension is not specified, ".DBF" and ".NDX" are assumed for the database (and index files). If the "INDEX" phrase is used, access to the DBF file is in the order determined by the first NDX file in the list. See also SET INDEX. Examples: USE Maillist | MAILLIST.DBF opened in current file ID area USE FQ Costs.BAK | COSTS.BAK opened in ID area "FQ" USE Inv INDEX Inv, Qty | open INV.DBF in current area with INV.NDX & | QTY.NDX indexes. INV is the "master NDX" If the ALIAS is given the file can be referenced by the rather than by SELECTing the work area. If no ALIAS is given the filename becomes the . ^D > CLOSE | ^U > REINDEX | Esc > CMD: ~7 57~ CLOSE [] [INDEX []] ] Close the DBF file (or NDX files) used in the current or "Fi" (FJ..FS) area. When the INDEX phrase is used, the index files listed are closed rather than the DBF file. Index files which are not listed will remain open. If the "master index" is on the list of indexes to close, the lowest numbered index remaining open becomes the new "master". Using "INDEX" without arguments will close all NDX files in the current (or "Fi") area. Examples: CLOSE FJ INDEX | Close all NDX files in file ID area FJ CLOSE INDEX Qty | Close only the QTY.NDX file in the current ID area CLOSE {ALL | ALTERNATE | DATABASES | FORMAT | PROCEDURE} CLOSE ALL & DATABASES | Closes all DBF & NDX files in all file IDs (FJ..FS) CLOSE ALTERNATE,FORMAT,PROCEDURE | Closes file opened with SET. See SET. ^D > SET | ^U > USE | Esc > CMD: ~52 6~ UPDATE FROM ON [RANDOM] Note: WITHList = WITH [, WITH ] ... etc. Update fields in the current DBF file using the "" expressions. Fields of the "FROM " file may be used in expressions by use of a "T." file ID prefix to the fieldname. The "FROM" file must be pre-sorted on the "ON ". The current DBF file must be sorted or indexed on the same . RANDOM searches the primary database using the of the FROM file. The primary file must be indexed on the . The FROM file can be in any order. Example: USE InvTotal | use the InvTotal file to be updated in the current area UPDATE FROM InvUpdt ON Part:No On:Hand WITH On:Hand + T.On:Hand,; Cost WITH T.Cost * 1.1 ^D > SORT | ^U > JOIN | Esc > CMD: ~14 20~ MODIFY STRUCTURE dBMAN saves the current file to a temporary file ($TEMP1) while the new structure is being defined from the keyboard. After the structure has been modified, the records from $TEMP1 are appended to the new file and $TEMP1 is deleted from the TOS file directory. Field data types may be changed. MODIFY FIELDNAME ... very fast, but only the fieldnames can be changed. ... move to next entry in the current FIELD DEFINITION ^N ... move to Next FIELD ^I ... Insert blank FIELD (Modify Structure only) ^P ... move to Prior FIELD ^E ... Erase current FIELD (Modify Structure only) ^S ... Save FILE and exit MODIFY ^Q ... Quit MODIFY without saving changes ^D > MODIFY REPORT | ^U > CREATE | Esc > CMD: ~79 2~ COPY [DELIMITED | DIF | SDF] TO [] [] [FOR ] [ADDITIVE] All undeleted records within the specified "" and "FOR" conditions are copied to "" in any of four formats: DBF (the default), DELIMITED, DIF (Data Interchange Format "Spread Sheets") or SDF (System Data Format "fixed length"). All fields (the default) or only fields specified by the "" are copied. The file extension default for DELIMITED and SDF files is ".TXT". ADDITIVE is for non .DBF files only. See also APPEND. COPY FILE TO Copy the contents of to . Any file type can be copied. There are no default file extensions or path names. ^D > COPY STRUCTURE | ^U > MODIFY | Esc > CMD: ~96 9~ QUIT Close all open files, terminate dBMAN, and return to TOS. All data will be saved. ^D > CANCEL | ^U > PAUSE | Esc > CMD: ~53 62~ EDIT [] Change data in the current record (or record "") of the currently selected DBF file from the keyboard. ........ clear current FIELD from cursor. ........ move down one FIELD ........ move down one FIELD ........ move up one FIELD ^N ... save & move to Next RECORD ^D ... Delete RECORD ^P ... save & move to Prior RECORD ^U ... Undelete RECORD ^S ... Save changes to RECORD and exit the EDIT command ^Q ... Quit EDIT without saving changes to current RECORD NOTE: Multi-User should have SET FLDUPDATE ON first. ^D > REPLACE | ^U > APPEND | Esc > CMD: ~13 4~ REPLACE [] [] WITHList [FOR ] Note: WITHList = WITH [, WITH ] ... etc. Replace information in the current record (or all records within the specified "" and "FOR" condition) for fields listed in the "WITHList" clause. The optional file ID ("Fi" = FJ..FS) and field ID prefixes ("J." .. "S.") allow replacements in unselected databases. ^D > UPDATE | ^U > EDIT | Esc > CMD: ~8 12~ SORT ON TO [{ASCE | ASCENDING} | {DESC | DESCENDING}] Sort on specified fields of the current file and put the sorted records into the new "TO" file. If a file name extension is not specified, dBMAN uses a ".DBF" extension. Sorting can be done in ASCENDING order (low value to high value) or in DESCENDING order. Fields are sorted in the standard ASCII character sequence and ASCENDING order is the default. The can be up to 7 fields and contain up to 128 characters. The can also be a field expression. Examples: SORT ON zip_code TO mailzip SORT ON last_name,acct_numb TO acct SORT ON $(last_name,1,5)+STR(acct_numb,5) TO acctnum ^D > JOIN | ^U > INDEX | Esc > CMD: ~20 47~ STORE TO Create one or more variables (contained in varList) and assign the value of the "" to them. If any of the variables already exist, they are assigned the new value. The type (N,C,L,D) is changed as required. STORE may also be used to assign values to fields in any open database. If the data type of the field is different than the "", a Syntax Error occurs. Use file ID prefixes ("J.".."S.") when the field is not in the currently selected area. You may also assign a value to a variable with the "=". For example: Today = DATE() Other dBMAN commands which create memory variables are: ACCEPT, COUNT, INPUT, SUM, RESTORE and WAIT. ^D > SAVE | ^U > RELEASE | Esc > CMD: ~49 48~ DELETE FILE Delete the named file from TOS directory. When no filename extension is specified, dBMAN assumes that ".DBF" is the file extension. Files that are in use can not be deleted. DELETE [] [] [FOR ] Mark the current record (or all records that satisfy the optional "" and "FOR" conditions) for deletion. Deleted records are not physically removed from the DBF file until a PACK command is executed. Deleted records are displayed with a "*" character following the record number; can be made "invisible" by SET DELETED ON; can be tested for by the DELREC() function; and can be undeleted with the RECALL command. see also: SET DELETED, EDIT ^D > RECALL | ^U > PACK - Remove Deleted records | Esc > CMD: ~18 67~ GO [] { | TOP | BOTTOM } GOTO [] { | TOP | BOTTOM } Move the record pointer in the current file (or in the file selected with the file ID "Fi" = FJ..FS). The record pointer can be moved to the record number given by "", or the record pointer can be moved to the first (TOP) or last (BOTTOM) record in the file. Note that TOP and BOTTOM are often NOT the first or last "physical" record if the file is indexed. see also: SET RELATION TO, FIND, LOCATE ^D > FIND | ^U > LOCATE | Esc > CMD: ~56 32~ RECALL [] [] [FOR ] Clear the "deleted mark" in the current record (or all records selected by the optional "" and "FOR" conditions) in the currently selected file area or in the area specified by the optional file ID ("Fi" = FJ..FS). Records that have been removed by the PACK command can not be recalled. ^D > PACK | ^U > DELETE | Esc > CMD: ~19 16~ PACK Physically remove all records in the current file ID which are marked as "deleted" records. They can not be RECALLed. Automatically REINDEX all open indexes Will PACK "in place" - deleted records will be over written. ^D > ZAP | ^U > RECALL | Esc > CMD: ~67 18~ JOIN TO FOR [] Create a new database "" from two currently open DBF files (one in area FJ..FR and the other in area FS). The new file structure is defined by the optional "" or combines all fields in both files. Each record in the currently selected DBF file (FJ..FR) is compared with EVERY record in the FS file according to the "FOR" expression. If the "" is true, a new record is appended to "" using "" fields from both source files. At least one field must be in common to both source DBF files. Example: SELECT | force current area to FP USE InvA | USE 1st file in FP USE FS InvB | USE 2nd file in FS 2nd file MUST be in FS JOIN TO NewInv FOR Price = S.Price,Item,Supplier,Cost See also: SET RELATION TO ^D > UPDATE | ^U > SORT | Esc > CMD: ~8 14~ SUM [] [] [TO ] [FOR ] SUM [] [TO ] [FOR ] Add the numeric values in the "" and store the total in the variables specified in the "". The expressions must yield a numeric result. The variables in the "" can also be a field name (in some other use area). The number of expressions in the "" must match the number of variables in the "". The default "" is ALL, but records can be selectively totaled by use of "" and "FOR" clauses. If the "Fi" file ID is specified, records in unselected DBF files can be summed. If the " TO " clause is omitted, the first five numeric fields are totaled and displayed to the "CMD:" mode user. ^D > COUNT | ^U > TOTAL | Esc > CMD: ~54 80~ IF | executed only if is TRUE [ELSE ] | executed only if is FALSE ENDIF The "" logic expression is evaluated for a TRUE or FALSE result. If it is TRUE, all commands between the "IF" and "ENDIF" (or optional "ELSE" command) are executed. If it is FALSE, all commands between the optional "ELSE" command and "ENDIF" command are executed. If there is no "ELSE" command, execution continues with the first line following the "ENDIF". ^D > ELSE | ^U > ENDIF | Esc > CMD: ~23 24~ [ ELSE ] [] Used in conjunction with the prior IF command. All commands between ELSE and ENDIF are executed when the "IF " is FALSE. ELSE is optional. Comments may be used following ELSE without the "|" comment character. (see also: NOTE for rules on use of comments) ^D > ENDIF | ^U > IF | Esc > CMD: ~24 22~ ENDIF [] Terminate the prior IF command. Every IF command MUST have a corresponding ENDIF command or misleading error messages may result. e.g. "ENDDO without matching DO WHILE" can result from a missing ENDIF command. Comments may be used following ENDIF without the "|" comment character. (see also: "NOTE" for rules on use of comments) ^D > IF | ^U > ELSE | Esc > CMD: ~22 23~ DO Execute the "" command file. The default file extension is ".PRG". see also: RETURN DO WHILE Execute all commands between DO WHILE and matching ENDDO while "" is TRUE. When "" is FALSE, execution continues after the ENDDO command. DO CASE Like IF...ELSE...ENDIF conditional command except DO CASE allows testing of many different conditions with selective execution of commands only for the first CASE which is TRUE. ^D > ENDDO | ^U > CASE | Esc > CMD: ~27 34~ RETURN [TO ] Return control to the previous command file at the line following the calling DO command. When the "TO " phrase is used, dBMAN returns to the specified file (if it was in the calling "DO " program chain. If the "" is not in the calling sequence, control returns to the first command file which was executed from the CMD: prompt. If the end of file in encountered dBMAN will assume a RETURN. RETURN MUST be the last command of any procedure - including the last procedure in the procedure file. See SET PROCEDURE. see also: DO, CANCEL, QUIT~~ ^D > CANCEL | ^U > DO | Esc > CMD: ~53 25~ ENDDO [] Syntax: DO WHILE [LOOP] | force evaluation of the [EXIT] | force exit from the DO WHILE ENDDO Termination of a DO WHILE loop. The "" is evaluated the first time the DO WHILE command is executed. If it is FALSE, execution continues at the next line following ENDDO. If it is TRUE, all commands following the DO WHILE are executed until a LOOP or ENDDO command is reached. Either of these cause the "" to be evaluated again. An EXIT command can be used to force the immediate unconditional termination of the DO WHILE from within the loop. ^D > LOOP | ^U > EXIT | Esc > CMD: ~29 63~ SKIP [] [] Move the record pointer forward or backward in the current file or the area specified by the optional file ID ("Fi" = FJ..FS). The record pointer moves forward if the "" is positive; backwards when negative. If no "" is specified, the record pointer advances one record. A SKIP beyond the TOP of file will set BOF() to TRUE; beyond the BOTTOM will set EOF() to TRUE. Other record pointer commands: GO / GOTO, LOCATE, FIND, SET RELATION ^D > GO | ^U > FIND | Esc > CMD: ~17 56~ LOOP [] Used inside a command file DO WHILE ... ENDDO loop to force the immediate re-evaluation of the prior DO WHILE "" (as specified by the ""). When the is not specified, dBMAN loops back to the prior DO WHILE. DO WHILE DO WHILE LOOP | re-evaluate LOOP 2 | exit inner loop & re-evaluate ENDDO ENDDO ^D > EXIT | ^U > ENDDO | Esc > CMD: ~63 27~ RENAME TO Change the old file name to a new file name in the TOS directory. The default file name extensions are ".DBF" if no extensions are specified. ^D > COPY | ^U > DELETE FILE | Esc > CMD: ~10 16~ COMPARE TO [] Perform a comparison of all records in the currently selected DBF file with another specified database file. If a "" is specified, fields which are not in the list are ignored. COMPARE is for use at the CMD: prompt or for programmed applications which can not continue normal processing if the files do not compare correctly. Esc > CMD: ~0 0~ LOCATE [] [] [FOR ] Examine all records according to the optional "" and "FOR" conditions until a record matching the "FOR " is found. That record becomes the current record. If the "" is large enough (ALL, NEXT 65000, REST, etc) and a matching record is not found, the EOF() flag is set to TRUE. To locate the next record that satisfies the "FOR" expression, use CONTINUE. LOCATE saves the "FOR" expression and "" independently for each open file. i.e. CONTINUE can move each file record pointer independently. LOCATE with no "" and "FOR" arguments moves the record pointer to record 1. ^D > CONTINUE | ^U > FIND | Esc > CMD: ~33 56~ CONTINUE [] Used in conjunction with the LOCATE command. CONTINUE moves the record pointer of the specified file to the next record satisfying the LOCATE expression associated with that file. A LOCATE command must be executed before using CONTINUE or an error message will result. ^D > FIND | ^U > LOCATE | Esc > CMD: ~56 32~ CASE Select one of several possible choices, based on the result of the "" expression associated with each CASE. Only those commands between the first CASE that is TRUE and the following CASE, OTHERWISE or ENDCASE are executed. DO CASE CASE | Execute if is TRUE CASE | Execute if is TRUE [OTHERWISE Execute if every CASE is FALSE ] ENDCASE ^D > OTHERWISE | ^U > ENDCASE | Esc > CMD: ~35 36~ [OTHERWISE []] An optional command used with the DO CASE..ENDCASE commands. The commands between OTHERWISE and ENDCASE are executed when all the prior CASEs are FALSE. Use of the OTHERWISE command without a DO CASE command is invalid. DO CASE CASE CASE [OTHERWISE Execute only if every CASE is FALSE ] ENDCASE ^D > ENDCASE | ^U > CASE | Esc > CMD: ~36 34~ ENDCASE [] Every DO CASE command must be terminated by a corresponding ENDCASE. Comments may be used following ENDCASE without the "|" comment character. see also: NOTE for rules on use of comments DO CASE CASE CASE [OTHERWISE ] ENDCASE ^D > CASE | ^U > OTHERWISE | Esc > CMD: ~34 35~ @ [{SAY | ESAY} [PICTURE ]] [GET [PICTURE ] [RANGE ,] [GETFILE [CHANGE] [MESSAGE ]] = where "x" = line number 0..24, "y" = column number 0..79 SAY displays the result of the expression using the optional "PICTURE" format at "". ESAY erases the line from "" to the end of line before the "" data is displayed. Both use the VSAY() video attributes. GET will display the variable or field specified. When a READ command is issued, the cursor will go to the GET and allow data entry. GET can not be used to create a new variable or change its data type. PICTURE Formats: Char Data { U L X A 9 # ! } Num Data { S # 9 $ * , . } RANGE will not let the user proceed if the value entered is not in RANGE. ^D > MORE @ | ^U > CLEAR GETS | Esc > CMD: ~97 40~ READ [NO CLEAR | SAVE] [GETNO ] Used in a command file to read user input from the screen. You create input prompts and screen displays by using @ SAY and GET. The READ command can be used to get user data for up to 64 GETs. READ automatically CLEARs all GETs. Using the NO CLEAR or SAVE GETs are not cleared. Using the GETNO, the READ will place the cursor in the field. Example: STORE SPACE(20) TO Var1,Var2 | initialize variables @ 3,0 SAY "First Name: " GET Var1 | write prompts & @ 4,0 SAY "Last Name: " GET Var2 | variables to screen READ | get user input See also @. ^D > CLEAR | ^U > @ | Esc > CMD: ~40 37~ ERASE [] The ERASE command clears the display in the data window. The coordinates associated with the "@" command ( ROW() and COL() ) are reset to 0, 0. ERASE will delete the file from the TOS directory. See also DELETE FILE ^D > CLEAR | ^U > DELETE FILE | Esc > CMD: ~40 16~ CLEAR [ALL | GET | GETS | MEMORY] ALL - clears the screen, closes all open data bases, selects file ID "P", releases ALL memory variables, resets screen coordinates to (0,0), and clears any pending GETs. Use to reset dBMAN to know starting point. GET | GETS - Clear all of the previously issued GET commands. Each time a READ command is executed, data may be entered into all open GETs. When the READ is exited, the GETs are automatically CLEARed unless the optional NO CLEAR or SAVE commands are used. A READ followed by a CLEAR GETS is simply redundant. MEMORY - release all memory variables. ^D > CLOSE | ^U > SAVE | Esc > CMD: ~7 49~ ACCEPT { [""] [TO [PICTURE ]] } Read a character string from the keyboard into the named variable or field- name. If "" is not a field (and no variable with that name exists) a new variable is created automatically. The "TO " is always a character data type. The optional "PICTURE" clause allows programmed control of data entry in the same way that "@ GET" does. The optional "" is displayed as a user prompt at the start of the next line. The "TO " is entered at the current cursor location and may be used with the @ SAY command. You can also test the key pressed with the LASTKEY() function. ^D > INPUT | ^U > WAIT | Esc > CMD: ~42 43~ INPUT { [""] [TO ] } Read any type of data from the keyboard and store it in the "TO ". Date, Logic and Numeric data may be entered directly. Character type data must be surrounded by quotation marks or square brackets ([ ]). Date type data may be entered using curly braces (e.g. {1/14/85} ). Logic type data is entered with the characters T, F, Y or N. The "string" is displayed as a user prompt. The "TO " can be a fieldname or variable. The variable will be created if it does not already exist. An existing variable data type can be changed simply by entering a new type from the keyboard in response to the INPUT command. You can also test the key pressed with the LASTKEY() function. ^D > WAIT | ^U > ACCEPT | Esc > CMD: ~43 41~ WAIT [""] [TO ] Command file execution to wait until any key is pressed. The key can be stored in the "TO " variable as a character data type. If the "TO " does not exist, the WAIT command will create it. If the optional "" is specified, it will be displayed as a prompt on the next line (if called within a program) or on the "MSG:" line (if called from dBMAN "CMD:" mode.) You can also test the key pressed with the LASTKEY() function. ^D > ACCEPT | ^U > INPUT | Esc > CMD: ~41 42~ ? [ [PICTURE ]] [,ESC()] The "" is evaluated and displayed on the next line. (A CR/LF is issued before displaying the result.) The display location is the line following the current cursor position. The "" and "ESC()" phrases may be repeated but must be separated by commas. The PICTURE phrase may be used to format the output using the same "" characters as the @ SAY and ACCEPT commands. The "ESC" phrase is used to send a string of control codes to the printer. ESC() does not display these codes on the screen. Non-printable codes must be enclosed in angle brackets "<", ">". e.g. ESC("<27>D<0>") will send the byte sequence 27, 68, 00 to the printer. ESC does not increment the ROW() or COL() - as opposed to CHR() which does. Use SET PRINT ON command to output to the printer. SET CONSOLE OFF to suppress output to the data window. ^D > ?? | ^U > SET | Esc > CMD: ~60 52~ PRINT [,] Print an image of the data window to the printer. This is used for printing data displayed on the screen with the @ SAY and ? commands. Print is from to (when these are specified) or from line 1 to the last line previously written to by @ SAY or ?/?? commands. must be 0..18 with SET TALK ON; 0..24 with SET TALK OFF. see also: SET FOOTER, SET HEADING, SET LINE COUNT, SET PRINT ^D > EJECT | ^U > FORMFEED | Esc > CMD: ~46 59~ EJECT Send a page eject (Form Feed code) to the printer. Set the values of the dBMAN internal line and column counters to zero. see also: SET FOOTER, SET HEADING, SET LINE COUNT, SET PRINT ^D > FORMFEED | ^U > PRINT | Esc > CMD: ~59 45~ INDEX [] ON TO [{ASCE | ASCENDING} | {DESC | DESCENDING}] [EMPTY] [LIFO] Create an index "" for the current database file or the DBF file specified by the optional "Fi" file ID phrase. The components of the index key "" must be of the same data type. The key can contain up to 8 fields and up to 128 characters. EMPTY - creates an empty index file for use with the MODINDEX command. LIFO - If several records have the same key the last record entered will be the first record returned. This is not necessarily in record number order for if you change a key that record will become the last key entered. FIFO is the default. see also: CLEAR, SET INDEX TO, SET SAFETY, MODINDEX ^D > REINDEX | ^U > CLOSE | Esc > CMD: ~57 7~ RELEASE [] Memory variables are deleted explicitly (by the "") or in groups. If RELEASE is used without a "Fm" memory area phrase (FX, FY or FZ) then the GLOBAL memory variables are deleted. FY memory variables are released when execution returns to the calling (or any higher) program. RELEASE FZ ALL will release all of the calling programs FY variables. RELEASE [] ALL [LIKE | EXCEPT ] All memory variables are deleted or only those that are LIKE or no like (EXCEPT) the . Wild cards are * and ?. Example: RELEASE FX ALL LIKE ABC* see also: CLEAR, STORE, SAVE, RESTORE ^D > CLEAR | ^U > STORE | Esc > CMD: ~40 15~ SAVE [] TO [ALL {LIKE | EXCEPT} ] Store all global, or those LIKE or not like (EXCEPT) the , memory variables to the specified "" file. When is specifies all variables from FX global or FY local of FZ local are stored. dBMAN assigns a filename extension of ".MEM" when one is not specified by the user or program. Note: A special file ($MEM.MEM) is used by dBMAN to retain local "Y." variables for programs which call subprograms two or more levels deep. ^D > RESTORE | ^U > STORE | Esc > CMD: ~50 15~ RESTORE [] FROM [ADDITIVE] Read the "" of memory variables previously saved with the SAVE command and place them all into the memory area specified. The default area is GLOBAL memory. If you specify "Fm" (FX, FY or FZ), the memory variables are restored to that area rather than to the GLOBAL area. Note: Before memory variables are restored, ALL existing variables are released in the memory area selected by the RESTORE unless you use the ADDITIVE phrase. ^D > SAVE | ^U > STORE | Esc > CMD: ~49 15~ NOTE [] * [] | [] The NOTE and "*" commands allow comment lines in a program ".PRG" file. The comment "" can consist of any ASCII printing characters. The entire line following the "NOTE", "*" or "|" is dedicated to comments. The "|" character may be used anywhere in a command line to indicate that the remainder of the line is comments only. When the "|" character occurs within a quoted character string, the character is treated as normal text. Note: DO NOT use "|" following the ";" line continuation character. In fact nothing may follow the ";". Esc > CMD: ~0 0~ SET Switches: SET ALTERNATE [on | OFF | TO []] SET BOTTOM MARGIN TO SET BREAK {on | OFF | TO [,]} SET CENTURY {on | OFF} SET CONFIRM {on | OFF} SET CONSOLE {ON | off} SET DATE {AMERICAN | ANSI | BRITISH | ITALIAN | FRENCH | GERMAN | TO } SET DB3 {on | OFF} SET DECIMALS TO SET DEFAULT [DBF | NDX | TXT | MEM | CMD | SYSTEM | DXX] TO [] SET DELETED {on | OFF} SET DELIMITERS {on | OFF | TO [] [DEFAULT]} SET DEVICE TO {print | SCREEN} SET ERRCODE TO ^D > SET page 2 | Esc > CMD: ~98 0~ CANCEL Terminate the execution of a "DO" program file. Return dBMAN to the interactive keyboard "CMD:" mode. Note: CANCEL in the run time is the same as QUIT. ^D > PAUSE | ^U > QUIT | Esc > CMD: ~62 11~ COUNT [] [] [FOR ] [TO ] Count the number of records (qualified by the optional "" and "FOR" conditions) in the current file (or the DBF file specified by the "Fi" file ID). The result is stored in the variable specified by the optional "TO" phrase. If no is give the result is displayed on the screen. ^D > SUM | Esc > CMD: ~21 0~ UNPEND [] Physically remove the last record of the current file, or from the file specified by the optional file ID ("Fi" = FJ..FS). This allows fast removal of unwanted blank records from the end of the file and is much faster than DELETE and PACK for such removal. Note: Not supported in the Multi-User version. ^D > APPEND | Esc > CMD: ~4 0~ FIND/SEEK [] FIND and SEEK work the same. Search for the first index key matching the "" in the current DBF file using the "master" INDEX file. If no matching records are found, then EOF() is set to TRUE and the record pointer is set to one greater than the number of records in the file. Use of the optional "Fi" phrase permits FINDs in all unselected DBF areas. Note: The first index file in the USE command or the latest index file in a SET INDEX TO command is the "master index". See also: SET INDEX, ASSIGN APPROX() ^D > LOCATE | ^U > USE | Esc > CMD: ~32 6~ REINDEX [] Rebuild all index files used with the current DBF file. The optional "Fi" file ID (FJ..FS) permits reindexing files in unselected DBF areas. see also: SET INDEX TO ^D > USE | ^U > INDEX | Esc > CMD: ~6 47~ LIST [] [] [] [FOR ] [OFF] [TO PRINT] List all records that satisfy the "" and "FOR" condition in the specified file. The OFF option shuts off display of record numbers. LIST [] MEMORY [TO PRINT] List the GLOBAL (or selected "Fm" = FX, FY or FZ) memory variables and contents. The ^A7 key in debug or command mode will also display memory. LIST [] STRUCTURE [TO PRINT] List the record structure (fieldname,type,width,decimal) of the DBF file. LIST FILE [] List files in TOS directory according to . "*.DBF" is default. ^D > DISPLAY MEMORY/STRUCTURE/FILE | ^U > DISPLAY Records | Esc > CMD: ~94 3~ FORMFEED Issue carriage returns until the line count equals the sum of the current TOP MARGIN, BOTTOM MARGIN and LINE COUNT settings. And reset the internal counters to 0. see also: SET LINE COUNT, SET PRINT TO, SET TOPFORM ^D > PRINT | ^U > EJECT | Esc > CMD: ~45 46~ /@OAπOOAC @pppϒ ρOOL894:1221:77!#9nce is output before the print expressions and/or ESC() codes are sent to the screen and/or the selected printer device. ^D > @ SAY | ^U > "?" | Esc > CMD: ~37 44~ BEEP Output a brief "beep" sound. Esc > CMD: ~0 0~ PAUSE Suspend execution of the command file on the next command. PAUSE is used for program debugging. When command file execution is paused, you can display variables with the ^A7 keys, display environment switches and files with the ^A8 keys, edit and save program line changes with the ^AA keys, delete the program lines with the ^AC keys, insert additional command lines with the ^AD keys, execute any dBMAN command or execute another PRG file. ^K ... KILL program execution ^L ... reLoad the line (unparsed) from the PRG file ^U ... Resume normal execution ^T ... execute the current program line (single sTep) See also: SET BREAK ^D > QUIT | ^U > CANCEL | Esc > CMD: ~11 53~ EXIT [] Used inside a DO WHILE...ENDDO loop (or "nested" loops) in a command file. EXIT unconditionally terminates the DO WHILE loop and execution resumes on the command following the ENDDO statement. When is specified, dBMAN unconditionally exits out of the Nth level of DO WHILE nesting. Note: EXIT will not exit a DO WHILE in a calling program. Note: When EXIT is executed within a trapfile, the effect is the same as if it was executed in place of the command which invoked the error trap. ^D > ENDDO | ^U > LOOP | Esc > CMD: ~27 29~ CONVERT TO Convert a dBASE II or III DBF file to dBMAN DBF file. "" is the dBASE database file name and "" is the dBMAN file name. When a file is specified without an extension, dBMAN will assume the extension is ".DBF". If both file names are the same, dBMAN will rename the dBASE file using a ".DBB" file name extension. Note: If you have a dBASE III file you do not need to CONVERT it. Just USE the file and dBMAN will read and write to it. ^D > CREATE | ^U > COPY | Esc > CMD: ~2 10~ ASSIGN Execute any dBMAN function where output to the screen, printer, a variable or a DBF field is not required. Example: ASSIGN SELFILE(Y.PATH,Y.FILE_NAME) ASSIGN TRAP(T), TRAPFILE("MYTRAP") ASSIGN APPROX(T) ASSIGN DX(55),AX(5) ^D > Functions | Esc > CMD: ~104 0~ INT21 Not Available for dBMAN - Atari ST. ^D > ASSIGN | ^U > Functions | Esc > CMD: ~65 104~ ZAP [] Equivalent to DELETE ALL and PACK. Eliminates all records from the current DBF file or the file in the specified file ID (FJ..FS). NOTE: All unused file space is NOT returned to the TOS directory. ^D > DELETE | ^U > PACK | Esc > CMD: ~16 19~ INTXX Not available for dBMAN - Atari ST ^D > ASSIGN | ^U > Functions | Esc > CMD: ~65 104~ INC Increment all numeric variables in the "" by one. @ϙOϘ OϜπGǀ DEC pϙ ώπ O OρOόO@pppppppppppppppϒOϘ OϜπOǀ DENYW NOT SUPPORTED AT THIS TIME ^D > DENYRW | ^U > UNDENY | Esc > CMD: ~72 73~ / DENYRW (Multi-User Only) Note: FiRecList = and/or / list ( = record number) Places an exclusive lock on the files and/or records. Other users are denied both read and write privileges. If a DENYRW is placed on the current record, the current record buffer is updated from the disk. ERRCODE() will be set to 92 if the lock request fails. dBMAN will make RETRYCNT() lock attempts with WAITCNT() duration between attempts before the "file locked" status is returned. The default is 5 for both RETRYCNT() and WAITCNT(). Set the CNT() values to minimize the occurrence of error 92 for your paticuler network, network traffic, and application priorities. Note: Novell version; TIMECNT() is used instead of WAITCNT() to allow the file server to control the time between lock attempts. The default is 5. ^D > UNDENY | ^U > RLOCK() | Esc > CMD: See also RLOCK() Function. ~73 113~ UNDENY (Multi-User Only) Note: FiRecList = and/or / list ( = record number) Unlocks all records and/or files included in the . The current record buffer is written to disk. All records and files which are locked must be unlocked. All locks are released when you QUIT. Note: If you are using a expression to point to the locked record make sure that you are pointing to the same record to unlock it. Otherwise the operating systems lock table could be filled causing an error. ^D > SET FLDUPDATE | ^U > DENYRW | Esc > CMD: ~99 72~ RETRY This command must be executed within a trapfile; otherwise an error 96 is posted. RETRY forces the command which caused a trappable error to be re-executed. Note: There are only three approved ways to exit a trap file: RETRY, IGNORE, and RETURN TO . Any other command such as RETURN or EXIT may cause an error 63 INSTACK POPPING. ^D > IGNORE | Esc > CMD: ~75 0~ IGNORE This command must be executed within a trapfile; otherwise an error 96 is posted. IGNORE forces the command which caused a trappable error to be ignored and the following instruction to be executed. Note: There are only three approved ways to exit a trap file: RETRY, IGNORE, and RETURN TO . Any other command such as RETURN or EXIT may cause an error 63 INSTACK POPPING. ^D > RETRY | Esc > CMD: ~74 0~ PURGEDIR (Novell only) Not available for dBMAN - Atari ST. ^D > DISPLAY FILE | ^U > DELETE FILE | Esc > CMD: ~94 ~16 FLUSH (Multi-User Only) Note: FiList = [,] ... etc. Forces the current record buffer of any file included in the to be written to disk. No records or files are unlocked by FLUSH. Note: Modified (dirty) record buffers are also written to disk by: 1. Moving the current record pointer 2. Use of UNDENY on the current record 3. The CLEAR command 4. The CLOSE command 5. The QUIT command Esc > CMD: ~0 0~ MODINDEX [] [] TO [FOR ] ADDITIVE Used to selectively update a partial index for the current (or ) database. All records which satisfy the optional "" and "FOR" clauses are added to the index. The index to be updated must not be in use. Example: USE MyFile INDEX ON state TO TempIndx EMPTY | Create Empty index MODINDEX ALL TO TempIndx FOR Paid ADDITIVE SET INDEX TO TempIndx LIST ALL | dBMAN lists only paid records ^D > SET FILTER | ^U > INDEX | Esc > CMD: ~52 47~ REPORT [] FORM [] [FOR ] [HEADING ] [SUMMARY] [TO PRINT] Print the report form for all records that satisfy the "" & "FOR" conditions in the file area (current or "Fi" ). You may change the HEADING by including a new . SUMMARY will print a summary report if a GROUP ON has been defined. TO PRINT will print the report on the printer otherwise REPORT will go to the screen. Note: HEADING over rides any heading defined in the report and any heading in the SET HEADING TO. SET HEADING TO also over rides any heading defined in the report. ^D > MODIFY REPORT | ^U > CREATE REPORT | Esc > CMD: ~9 2~ TOTAL [] ON TO [] [FOR ] [FIELDS ] [ADDITIVE] Creates a new file with records (limited by the SCOPE and FOR) which contain the sums of all numeric fields (or numeric fields in ) which have the same value as . Numeric field widths are automatically increased to ten unless the ADDITIVE phrase is used. The group specified by ON is an expression and can contain several fields. Note: The new file will have the same number of fields as the source file. Note: The file to be totaled should be indexed or sorted on the . ^D > SUM | ^U > UPDATE | Esc > CMD: ~21 8~ UNINDEX [] (Single User Only) Remove the record from the index and moves the record pointer to EOF(). ^D > MODINDEX | ^U > INDEX | Esc > CMD: ~78 47~ TEXT ENDTEXT This command outputs all the text lines between the TEXT keyword and the ENDTEXT keyword to the screen or the printer. ^D > ?/?? | ^U > @ SAY | Esc > CMD: ~44 37~ RUN RUN executes any TOS commands or any exicutable files and returns to dBMAN after the program execution is complete. Note: You must have enough remaining memory to run the new command because dBMAN remains resident in memory. Example: RUN edit myfile.c Esc > CMD: ~0 0~ MERGE [] FROM TO [] [FOR ] [DELIMITED ,] This command copies the text of the skeleton or FROM which contains dBMAN expressions enclosed in the delimiters start "<" and end ">" to the TO , replacing the delimiters and expressions with the result of the expression. Text is append for each record specified with the scope and FOR phrases. The default scope is the current record only. If your skeleton file uses on of the delimiters you may specify another with the DELIMITED phrase. Esc > CMD: ~0 0~ ENCRYPT [] To encrypt an already existing data file and any open indexes. To ENCRYPT an already existing data file you must first LOGIN() to the password table, SET ENCRYPT ON, USE the file and any indexes. Then you may ENCRYPT. To encrypt a new file simply LOGIN() and SET ENCRYPT ON then you may CREATE and the file will be encrypted. See the Security section of the manual. Esc > CMD: ~0 0~ SHOP [] [] [FOR ] ,,, Displays the records of the specified data base file and allows the user to select a record. The SHOP command is very useful to find cryptic data like a part number from a more descriptive field. , are headings placed above the data with a line between. is the field, field list or field expression, to be displayed. is the picture used to display the . Note: ,,, are all required even if you do not need one. you may use "" (null string) for no headings or picture. ^D > DISPLAY | ^U >LIST | Esc > CMD: ~3 58~ COPYREC [] TO Copies the contents of the source to the current record of the target . COPYREC only copies the matching fields. Example: USE FP inv USE FJ order GO FP 3 GO FJ 4 COPYREC FP TO FJ | all matching fields are copied from FP record 3 to * FJ record 4 ^D > APPEND RECORD | ^U > COPY | Esc > CMD: ~95 10~ PUBLIC To share values of memory variables used in different programs. If a variable is declared PUBLIC the variable is available in all programs and can be changed in any program. If the variable is changed the new value will be seen in all the other programs. ^D > PRIVATE | ^U > STORE | Esc > CMD:89~ 15~ PRIVATE ALL [{LIKE | EXCEPT} ] PRIVATE PRIVATE declares memory variables either ALL, LIKE or EXCEPT, on in the list as a local variable and cannot be accessed from another program. The variable is automatically released then the program ends. ^D > PUBLIC | ^U > STORE | Esc > CMD:88~ 15~ BROWSE [] [] [FOR ] [FIELDS ] Allows full page editing of the specified file limited by the scope and FOR phrase. Displays all the fields or those specified by the . Keys: ^R & Move field right ^U Move up one page ^L Move field left ^D Move down one page Move up one record ^ Pan the screen right Move down one record ^ Pan the screen left ^S Save - Saves all changes, terminates BROWSE. ^Q Quit - Terminates BROWSE. Does not save changes to the current record. - Display menu to move cursor to the TOP, BOTTOM, or specific RECORD. ^D > DISPLAY | ^U > SHOP | Esc > CMD: ~3 86~ PARAMETERS To declare variable names for the parameters which are passed from the calling program. PARAMETERS is used in conjunction with the DO WITH . The parameters in the calling program get assigned the variable names from the . Example: DO saymsg WITH "Error bad entry." *saymsg.prg PARAMETERS Msg @ 24,00 SAY CENTER(MSG,80) RETURN ^D > STORE | ^U > DO | Esc > CMD: ~15 25~ DIR Displays a listing of the data files in the current TOS directory. If the is used any file may be seen. The uses the standard TOS file and wild card system. ^D > DISPLAY FILE | ^U > DELETE FILE | Esc > CMD: ~94 16~ CREATE FROM Creates a new data file from an extended structure data file. CREATE STRUCTURE TO MIKE DBF? Creates a empty extended structure data file. See also COPY STRUCTURE EXTENDED. ^D > MODIFY | ^U > CREATE | Esc > CMD: ~9 2~ DISPLAY [] MEMORY Display variable names and contents for Global (the default area) or "Fm" (FX, FY, FZ) memory area. DISPLAY [] STRUCTURE Display the structure of the file used in area "Fi" (FJ..FS) or in the current area. Information displayed includes: FieldName, Type, Width, Decimal, Record Size, and Number of Fields. DISPLAY FILE [] Display the file names in the TOS directory which match the optional "". The may contain: path, wild-card characters ("*" and "?") and file extension. "*.DBF" is the default "". ^D > LIST | ^U > DISPLAY | Esc > CMD: ~58 3~ APPEND { DELIMITED | DIF | SDF } FROM Append all records in DELIMITED (comma delimited, quoted fields) or DIF (Data Interchange Format) or SDF (System Data Format "fixed length") files. APPEND [Fi] BLANK Append a empty record to end of the current or "Fi" (FJ..FS) area file. APPEND [] RECORD TO Append the current record in the selected or file to . APPEND [] [scope] TO [FOR ] Append records (just like APPEND FROM) except both files are open. ^D > EDIT | ^U > APPEND | Esc > CMD: ~12 4~ COPY STRUCTURE TO [] The structure of all (or "") fields is copied to "". COPY [] STRUCTURE EXTENDED TO Creates a extended structure data file. Where each field is an record in the new data file. The extended structure looks like: fieldname type width decimal FIELD_NAME C 10 FIELD_TYPE C 1 FIELD_LEN N 3 FIELD_DEC N 3 See also CREATE STRUCTURE, CREATE FROM. ^D > CREATE STRUCTURE | ^U > COPY | Esc > CMD: ~93 10~ @ [{SAY | ESAY} [PICTURE ]] [GET [PICTURE ] [RANGE ,] [GETFILE [CHANGE] [MESSAGE ]] GETFILE - program is run when the user exits the GET field during a READ. If the CHANGE is used and user has changed the data the program is run. See also USERSTAT(). MESSAGE is displayed a the coordinate specified by the SET MESSAGE FIELD. @ ERASE Erases the display to the right of and below the "" position. @ [CLEAR] TO [DOUBLE] Draws a box or vertical or horizontal line. CLEAR erases box and contents. DOUBLE in ignored. ^D > READ | ^U > @ SAY | Esc > CMD: ~38 37~ SET Switches Page 2: SET ESCAPE {ON | off} SET EXACT {on | OFF} SET [] FILTER TO [] *SET FLDUPDATE {on | OFF} SET FOOTER TO [] SET FORMAT TO [] SET {HEADING | HEADING2} TO [] SET [] INDEX TO [ | ] SET [LEFT] MARGIN TO SET LINE COUNT TO SET LOGFILE TO [] SET MESSAGE {TO [] | FIELD TO ,,} SET OPENMODE TO ^D > SET Switches Page 3 | ^U > SET Switches Page 1 | Esc > CMD: ~99 52~ SET Switches Page 3: SET PAGENO TO SET PATH TO [] SET PRINT {on | OFF} SET {PRINT | PRINTER} TO {1 | 2 | 3 | | LPT1 | LST | PRN} SET PROCEDURE TO [] SET RELATION TO {FIND | GOTO | GO} SET RELATION TO [ | RECNO() | INTO SET SAFETY {ON | off} SET {SAY | GET | ERASE} VIDEO TO SET TALK {ON | off} SET TOP MARGIN TO SET TOPFORM SET UNIQUE {on | OFF} ^D > SET Switches Page 1 | ^U > SET Switches Page 2 | Esc > CMD: ~52 98~ dBMAN Editing and CMD Mode Keys: .. execute CMD: or move to next field ... erase CMD: or field from cursor to end ... Toggle Insert / Overstrike Mode ... move cursor right ... move cursor left ... delete character BkSp .. delete character left of cursor ^L .... reload command F1 ... replace line in active PRG file F7 .... display memory F2 ... insert line in active PRG file F8 .... display status F3 ... delete line in active PRG file F9 .... display error F9 ... append line to fileTXT LOGFILE F10 ... display command F10 ... append screen image to SCRN.TXT ^D > Syntax Definitions | ^U > FUNCTIONS | Esc > CMD: ~101 104~ Key to dBMAN Syntax Definitions: < > = Argument Supplied by User [ ] = Optional Item(s) { } = List of Required Items (means CHOOSE ONE) | = Separates Alternative Items (means OR) .. = Denotes an Inclusive Range of Values Cexp = Character Expression, ONE or 1st Character Dexp = Date Expression, range Jan 1, 1940 .. Jan 1, 2040 Lexp = Logical Expression, evaluates to T or F Nexp = Numeric Expression Sexp = String Expression, 0 .. 254 Characters List = Items separated by "," Fi = File Area ID: FJ..FS Fm = Memory Area ID: FX, FY, FZ scope = { ALL | RECORD | NEXT | REST | WHILE } ^D > Function Codes | ^U > Editing and Command Keys | Esc > CMD: ~102 100~ dBMAN Function Codes: Tmode: 1 = "HHMMSS" 2 = "HH:MM:SS" 3 = "HHMMSSDD" 4 = "HH:MM:SS.DD" 5 = "HH:MM" 6 = "Hr:MM:SS pp" 7 = "Hr:MM pp" Key: HH = 0..24, Hr = 1..12, pp = AM..PM PICTURE Formats: Char Data { U L X A 9 # ! } Num Data { S # 9 $ * , . } ^D > Extended Key Codes | ^U > Syntax Definitions | Esc > CMD: ~103 101~ dBMAN INKEY() Extended KeyCodes: ^A ... ^Z = 1 ... 26 Esc = 27 ^D > Functions | ^U > Function Codes | Esc > CMD:~104 102~ Functions Page 1 # Current record number !() Converts the string to upper case $(,[,]) Extracts string data ABS() Absolute function APPROX(]) APPROX switch setting ARCCOS() Arc cosine trigonometric ARCSIN() Arc sine trigonometric ARCTAN() Arc tangent trigonometric AT(, [,]) Searches for the substring BAR(,,,, ) Draws a bar BOF([]) Checks beginning of file ^D > Functions Page 2 | ^U > Editing and Command Keys | Esc > CMD:~105 100~ Functions Page 2 BOX(r1>,,,,, ,,,, ) Draws a box CDOW() Character day of week CENTER(,) Centers a string CHKKEY() Checks a character in keyboard buffer CHR() Converts a number to character CMONTH() Name of the month COL([]) Cursor column position COS() Cosine trigonometric CTOD() Character to date DATE() System date DAY() Day of the month DBF() DBF file name in use ^D > Functions Page 3 | ^U > Function Page 1 | Esc > CMD:~106 104~ Functions Page 3 DELETED() Checks if the record is deleted DELREC([]) Checks if the record is deleted DFLTDRV({DBF | NDX | TXT | MEM | CMD | SYSTEM | DXX}) Default path DOW() Day of week DRAWLINE(,,,, ,,) Draws a line DTOC() Date to character string DTOK() Date to key string DUPCHAR(,) Duplicates the character EOF([]) Checks end of file ERRCMD() Command with an error ERRCODE() Last error code ERRLINE() Error line number ^D > Functions Page 4 | ^U > Function Page 2 | Esc > CMD:~107 105~ Functions Page 4 ERROR() Last error code ERRPRG() PRG file name with an error ESC() Send printer control codes EXP() Exponential function EXTRACT(,,) Extracts a string EXTRACT2(,,,) Extracts a string FIELD/FIELDSPEC([,] [,]) Field definition FIELDTYPE() Check field type FILE() Checks if the file exist FILENAME([]) DBF file name in use FILESIZE() File size *FLOCK() Locks the current file ^D > Functions Page 5 | ^U > Function Page 3 | Esc > CMD:~108 106~ Functions Page 5 FMENU(,,, Menu selection for field names [,[,]]) FOUND() Result of database search FRAC() Fraction GETNAME() GET variable name GETNO() GET field number HMENU([,,, [,, , [,]]]) Horizontal menu IIFC (,,) Returns one of the two character strings IIFD (,,) Returns one of the two date values IIFL (,,) Returns one of the two logic values IIFN (,,) Returns one of the two numeric values INDEXNAME([ [,]]) NDX file name in use ^D > Functions Page 6 | ^U > Function Page 4 | Esc > CMD:~109 107~ Functions Page 6 INKEY([<0>]) Returns a key from the keyboard INSET(,,) Checks if element exists in a set INT() Truncates the number to integer KEYSTROKES([]) Number of keystrokes LASTKEY() Last key code LASTREC([]) Number of records in the database LEFT(,) Extracts a string from the left LEN() String length LN() Natural log LOCK() Locks the current record LOG() Logarithm ^D > Functions Page 7 | ^U > Function Page 5 | Esc > CMD:~110 108~ Functions Page 7 LONGYEAR([]) Long year format LOWER() Converts string to lower case LPAD(,,) Pads leading blanks LTOC() Converts logical to character LTON () Converts logical to numeric LTRIM() Trims leading blanks MAX(,) Returns the maximum value MIDSTR(,,) Replaces string inside a string MIN(,) Returns the minimum value MOD(,) Modulus MODCHAR(,,) Modifies a character in a string MONTH() Month of the year NATE() Naperian constant NDX() Index file name in use ^D > Functions Page 8 | ^U > Function Page 6 | Esc > CMD:~111 109~ Functions Page 8 NLIST(,,..,) Checks if a number is in the list NTOL () Converts number to logical value NTOTIME(,) Convert number to time value NRANGE(,,) Checks if a number is within range PAGENO() Current page number PCOL() Printer column position PI() Constant PMENU([,,, ,...,]) Creates a pull down menu PRNFLG() PRINT switch setting PROW() Printer row position RANK() Converts ASCII to ASCII code READKEY() Last key code RECCOUNT([]) Number of records in the database ^D > Functions Page 9 | ^U > Function Page 7 | Esc > CMD:~112 110~ Functions Page 9 RECLEN([]) Record length RECNO([]) Current record number RECSIZE([]) Record length REPLICATE(,) Duplicates the character RETRYCNT([]) Sets retry counter (multi-user) RIGHT(,) Extracts a string from the right *RLOCK() Locks the current record ROUND(,) Round ROW([]) Cursor row position RTJUST(,) Right justify a string RTRIM() Removes trailing blanks SAMEMONTH(,) Checks two Dexps for same month SAMEWEEK (,) Checks two Dexps for same week SELECTED() Selected file id ^D > Functions Page 10 | ^U > Function Page 8 | Esc > CMD:~113 111~ Functions Page 10 SOUNDEX() Generates soundex code SPACE() Creates a string of blanks SRCH(,[,]) Searches string1 in string2 STATION([]) Station number STK() Bytes remaining in stack STR(, [,]) Converts number to string STUFF(,,,) Replace portion of a string SUBSTR(,[,]) Extracts substring data SRCH(,[,]) Searches string1 in string2 STATION([]) Station number TIME([]) System time TIMEADD(,) Add two time values TIMESUB(,) Subtract two time values TIMETON(