Frederick B. Maxwell, Jr.      ELIZA DOCTOR                   ELIZA,DOCTOR                   06-13-89 (00:00)       QB, QBasic, GWBasic    582  16044    ELIZA.BAS   ' This is a TWO Part Snippet,  ELIZA.BAS & ELIZA.DAT10 '20 ' Eliza/Doctor30 ' Original author: Joseph Weizenbaum40 ' This version: Frederick B. Maxwell, Jr.50 ' Version 1.0    2/12/85        Initial CP/M (MBASIC) release.60 ' Version 2.0    6/13/89        Initial PC (GWBASIC) release.70 '80 '***********************************************************************90 '100 '     This version of Eliza is released into the public domain.110 '120 '***********************************************************************130 '140 DEFINT A-Z:      ' no floating point is used.150 DIM REPLIES$(300):    ' up to 300 responses.160 DIM KWD$(200):   ' up to 200 keywords.170 DIM FIRST(200):  ' first reply for keyword number in subscript.180 DIM LAST(200):   ' last reply   "     "      "     "     "    .190 DIM OFFSET(200): ' offset from first reply for each keyword.200 '210 '***********************************************************************220 '230 '     -Initialization-240 '     We will read in data from the file ELIZA.DAT in the following format:250 '          KEYWORD 1260 '          KEYWORD N all keywords which will get the same responses270 '          !         indicates end of keywords280 '          RESPONSE 1     all responses for this/these keywords.290 '          RESPONSE N300 '          .         indicates end of responses310 '320 '***********************************************************************330 '340 OPEN "I", 1, "ELIZA.DAT":       ' file with keyword/response data.350 MAXKEY = 0:                ' number of keywords360 MINREPLY = 1:              ' first reply for first keyword.370 '380 WHILE NOT EOF(1)390      NUMKEYS = 0:               ' number of keys with same responses.400      LINE INPUT #1, F$:         ' get keyword or !410      IF F$ = "!" THEN 480:      ' if ! then get replys.420      MAXKEY = MAXKEY + 1:       ' we've got one more keyword430      PRINT "."; :          ' let user know we're still alive.440      NUMKEYS = NUMKEYS + 1:          ' 1 more keyword with same replys.450      KWD$(MAXKEY) = " " + F$ + " ":  ' put in a keyword bounded with spaces.460      GOTO 400470      '480      LINE INPUT #1, F$:         ' get the reply or .490      IF F$ = "." THEN 540:      ' check for end of reply list.500      MAXREPLY = MAXREPLY + 1:   ' 1 more reply.510      REPLIES$(MAXREPLY) = F$520      GOTO 480530      '540      FOR KWD = MAXKEY - NUMKEYS + 1 TO MAXKEY550           FIRST(KWD) = MINREPLY:          ' first reply for key.560           LAST(KWD) = MAXREPLY:      ' last reply for key.570      NEXT KWD580      MINREPLY = MAXREPLY + 1:        ' set up for next keyword.590      '600 WEND610 CLOSE620 '630 '***********************************************************************640 '650 '     Here we go!  Send intro message to "patient".660 '670 '***********************************************************************680 '690 PRINT700 PRINT "HI!  I'M ELIZA.  LET'S TALK.  TYPE `BYE' TO END THIS SESSION."710 '720 '***********************************************************************730 '740 '     Get the user input into I$.750 '760 '***********************************************************************770 '780 PRINT ">"; : LINE INPUT I$:          ' Get user input.790 IF I$ = "" THEN 780:  ' Just hitting return isn't good enough.800 I$ = " " + I$ + " ": ' Put a space on each end.810 '820 '***********************************************************************830 '840 '     Get rid of punctuation/extraneous characters, and make uppercase.850 '860 '***********************************************************************870 '880 L = 1:           ' Start at the first character890 C$ = MID$(I$, L, 1):  ' Get the character.900 '910 '     Capitalize if necessary.920 '930 IF C$ >= "a" AND C$ <= "z" THEN MID$(I$, L, 1) = CHR$(ASC(C$) - &H20): GOTO 890940 '950 IF C$ = " " THEN 990:           ' Spaces are OK.960 IF C$ >= "0" AND C$ <= "9" THEN 990: ' So are numbers.970 IF C$ >= "A" AND C$ <= "Z" THEN 990: ' So are capital letters.980 I$ = LEFT$(I$, L - 1) + MID$(I$, L + 1): GOTO 890: ' Delete character.990 L = L + 1:                 ' Next character.1000 IF L <= LEN(I$) THEN 890:           ' Keep on processin'1010 '1020 '***********************************************************************1030 '1040 '    Has he/she said this before?  Does he/she want to terminate session?1050 '1060 '***********************************************************************1070 '1080 IF I$ = PREVIOUS$ THEN PRINT "PLEASE DON'T REPEAT YOURSELF!": GOTO 7301090 PREVIOUS$ = I$:                ' Set up for next run.1100 '1110 IF I$ = " BYE " THEN PRINT "TALK TO YOU LATER!  BYE!": END1120 '1130 '***********************************************************************1140 '1150 '    Find keyword in user input string (I$).1160 '1170 '***********************************************************************1180 '1190 FOR K = 1 TO MAXKEY - 1:  ' Start search at keyword number 1.1200      C = INSTR(I$, KWD$(K)):        ' Look for the keyword in the string.1210      IF C <> 0 THEN 1230:      ' Exit on match.1220 NEXT K1230 KWD = K:                  ' Keyword number.1240 IF KWD = MAXKEY THEN 1280:          ' We don't need anything if no match.1250 REMAINS$ = MID$(I$, C - 1 + LEN(KWD$(K))): ' Grab remainder for reply.1260 '1270 '***********************************************************************1280 '1290 '    Take everything after the keyword (remains$) and conjugate it1300 '         using the data for conjugation.1310 '1320 '***********************************************************************1330 '1340 RESTORE1350 READ S$, R$:                   ' Read search and replacement words.1360 IF S$ = "." THEN 1430:         ' Periods (.) idicate end of data.1370 C = INSTR(REMAINS$, S$):       ' Search for string S$ in REMAINS$1380 IF C = 0 THEN 1350:            ' If no match, try the next one.1390 TEMP$ = LEFT$(REMAINS$, C - 1): ' Replacement.1400 TEMP$ = TEMP$ + R$:             ' Word.1410 REMAINS$ = TEMP$ + MID$(REMAINS$, C + LEN(S$)): ' Right side.1420 GOTO 1350:                ' Next conjugation to be done.1430 C = INSTR(REMAINS$, "+"):      ' Strip the plus signs out.1440 IF C = 0 THEN 14701450 REMAINS$ = LEFT$(REMAINS$, C - 1) + MID$(REMAINS$, C + 1):  ' Strip it.1460 GOTO 1430:                ' Go for the next one.1470 '1480 ' Handle the special case of " I " being the last word.1490 '1500 IF RIGHT$(REMAINS$, 3) <> " I " THEN 15401510 REMAINS$ = LEFT$(REMAINS$, LEN(REMAINS$) - 2) + "ME "1520 '1530 '***********************************************************************1540 '1550 '    Get the reply using the keyword number (KWD).1560 '1570 '***********************************************************************1580 '1590 REPLY$ = REPLIES$(FIRST(KWD) + OFFSET(KWD)):            ' Get reply.1600 OFFSET(KWD) = OFFSET(KWD) + 1:      ' Point to next reply.1610 IF OFFSET(KWD) + FIRST(KWD) > LAST(KWD) THEN OFFSET(KWD) = 0: ' Wrap.1620 '1630 '    Bump offsets on all keywords that use these replys.1640 '1650 FOR TEMP = 1 TO MAXKEY1660      IF FIRST(TEMP) = FIRST(KWD) THEN OFFSET(TEMP) = OFFSET(KWD)1670 NEXT TEMP1680 '1690 '    If the last character of the reply is *, append REMAINS$ to reply.1700 '1710 IF RIGHT$(REPLY$, 1) = "*" THEN REPLY$ = LEFT$(REPLY$, LEN(REPLY$) - 1) + REMAINS$1720 PRINT REPLY$1730 GOTO 7301740 '1750 '***********************************************************************1760 '1770 '    Data for conjugations in the following form:1780 '         Word to replace , Replacement with + appended on end1790 '    + is to keep the word from being switched back later and will1800 '    be stripped before output.1810 '1820 '***********************************************************************1830 '1840 DATA " ARE "  ,  " AM+ "1850 DATA " AM "   ,  " ARE+ "1860 DATA " WERE " ,  " WAS+ "1870 DATA " WAS "  ,  " WERE+ "1880 DATA " YOU "  ,  " I+ "1890 DATA " I "    ,  " YOU+ "1900 DATA " YOUR " ,  " MY+ "1910 DATA " MY "   ,  " YOUR+ "1920 DATA " IVE "  ,  " YOUVE+ "1930 DATA " YOUVE ",  " IVE+ "1940 DATA " IM "   ,  " YOURE+ "1950 DATA " ME "   ,  " YOU+ "1960 DATA " US "   ,  " YOU+ "1970 DATA " WE "   ,  " YOU+ "1980 DATA ".","."1990 ''-------------------8<------[ Begin ELIZA.DAT ]------->8--------------------FUCK YOU!PERHAPS IN YOUR IMAGINATION WE FUCK ONE ANOTHER.I HAVE A HEADACHE TODAY. TOMORROW PERHAPS YOU MAY FUCK ME..FUCKCUNTTWATTITSMOTHER FUCKERMOTHERFUCKERBITCHCOCKFAGFAGGOTPRICKASSASSHOLECOCKSUCKEREAT ME!DO YOU KISS YOUR MOTHER WITH THAT MOUTH?WHAT GUTTER DID YOU GRADUATE FROM?COMPUTERS AREN'T IMPRESSED BY VULGARITY.ILLEGITIMATE SON OF A MAGGOT! MIND YOUR TONGUE!.GO TO HELLDAMN YOU!I JUST SPENT 0.035 SEC IN HELL. HOW COULD YOU BE SO CRUEL AS TO SEND ME THERE?DO YOU TALK THIS WAY WITH ANYONE ELSE, OR IS IT JUST ME?.SHIT!TELL ME ABOUT YOUR CHILDHOOD--WAS YOUR TOILET TRAINING DIFFICULT?LET'S TRY TO KEEP THIS SESSION CLEAN, SHALL WE?.FAMILYMOTHERFATHERSISTERBROTHERHUSBANDWIFE!TELL ME MORE ABOUT YOUR FAMILY.HOW DO YOU GET ALONG WITH YOUR FAMILY?IS YOUR FAMILY IMPORTANT TO YOU?DO YOU OFTEN THINK ABOUT YOUR FAMILY?HOW WOULD YOU LIKE TO CHANGE YOUR FAMILY?.FRIENDFRIENDSBUDDYPAL!WHY DO YOU BRING UP THE TOPIC OF FRIENDS?DO YOUR FRIENDS WORRY YOU?DO YOUR FRIENDS PICK ON YOU?ARE YOU SURE YOU HAVE ANY FRIENDS?DO YOU IMPOSE ON YOUR FRIENDS?PERHAPS YOUR LOVE FOR YOUR FRIENDS WORRIES YOU..COMPUTERCOMPUTERS!DO COMPUTERS WORRY YOU?ARE YOU TALKING ABOUT ME IN PARTICULAR?ARE YOU FRIGHTENED BY MACHINES?WHY DO YOU MENTION COMPUTERSWHAT DO YOU THINK MACHINES HAVE TO DO WITH YOUR PROBLEM?DON'T YOU THINK COMPUTERS CAN HELP PEOPLE?WHAT IS IT ABOUT MACHINES THAT WORRIES YOU?.DREAMDREAMSNIGHTMARENIGHTMARES!WHAT DOES THAT DREAM SUGGEST TO YOU?DO YOU DREAM OFTEN?WHAT PERSONS APPEAR IN YOUR DREAMS?ARE YOU DISTURBED BY YOUR DREAMS?.CAN YOU!DON'T YOU BELIEVE THAT I CAN*PERHAPS YOU WOULD LIKE TO BE ABLE TO*YOU WANT ME TO BE ABLE TO*.CAN I!PERHAPS YOU DON'T WANT TO*DO YOU WANT TO BE ABLE TO*HAVE YOU EVER ATTEMPTED TO*.YOU AREYOURE!WHAT MAKES YOU THINK I AM*DOES IT PLEASE YOU TO BELIEVE I AM*PERHAPS YOU WOULD LIKE TO BE*DO YOU SOMETIMES WISH YOU WERE*.I LIKEI AM FOND OF!WHY DO YOU LIKE*WHEN DID YOU DECIDE THAT YOU LIKE*WHAT MAKES YOU FOND OF*.I DONT!DON'T YOU REALLY*WHY DON'T YOU*DO YOU WISH TO BE ABLE TO*.I FEEL!TELL ME MORE ABOUT SUCH FEELINGSDO YOU OFTEN FEEL*DO YOU ENJOY FEELING*WHY DO YOU FEEL THAT WAY.WHY DONT YOU!DO YOU REALLY BELIEVE THE I DON'T*PERHAPS IN GOOD TIME I WILL*WHY DO YOU THINK I DONT*DO YOU WANT ME TO*.WHY CANT I!DO YOU THINK YOU SHOULD BE ABLE TO*WHY CAN'T YOU*.ARE YOU!WHY ARE YOU INTERESTED IN WHETHER OR NOT I AM*WOULD YOU PREFER IF I WERE NOT*PERHAPS IN YOUR FANTASIES I AM*.I CANT!HOW DO YOU KNOW YOU CAN'T*HAVE YOU TRIED?PERHAPS YOU CAN NOW*.I AMIM!DID YOU COME TO ME BECAUSE YOU ARE*HOW LONG HAVE YOU BEEN*DO YOU BELIEVE IT IS NORMAL TO BE*DO YOU ENJOY BEING*.LOVE!WHY DO YOU LOVE*ISN'T LOVE TOO STRONG A WORD FOR YOUR FEELING ABOUT*WHAT IS YOUR FAVORITE THING ABOUT*DO YOU REALLY LOVE, OR JUST LIKE*.SEX!WHAT IS THE MOST SATISFYING PART OF YOUR LOVE LIFE?DO YOU BELIEVE YOUR SEXUAL ACTIVITY IS ABNORMAL?WHAT IS YOUR ATTITUDE TOWARD SEX?DOES TALKING ABOUT SEX MAKE YOU UNCOMFORTABLE?.I HATE!IS IT BECAUSE OF YOUR UPBRINGING THAT YOU HATE*HOW DO YOU EXPRESS YOUR HATRED OF*WHAT BROUGHT YOU TO HATE*HAVE YOU TRIED DOING SOMETHING ABOUT*I ALSO AT TIMES HATE*.FEARSCAREDAFRAID OF!YOU ARE IN FRIENDLY SURROUNDINGS, PLEASE TRY NOT TO WORRY.WOULD YOU LIKE YOUR FRIENDS TO HELP YOU OVERCOME YOUR FEAR OF*WHAT SCARES YOU ABOUT*WHY ARE YOU FRIGHTENED BY*.I WANT!WHAT WOULD IT MEAN TO YOU IF YOU GOT*WHY DO YOU WANT*SUPPOSE YOU SOON GOT*WHAT IF YOU NEVER GOT*I SOMETIMES ALSO WANT*.WHATWHOHOWWHEREWHENWHY!WHY DO YOU ASK?DOES THAT QUESTION INTEREST YOU?WHAT ANSWER WOULD PLEASE YOU THE MOST?WHAT DO YOU THINK?ARE SUCH QUESTIONS ON YOUR MIND OFTEN?WHAT IS IT THAT YOU REALLY WANT TO KNOW?HAVE YOU ASKED ANYONE ELSE?HAVE YOU ASKED SUCH QUESTIONS BEFORE?WHAT ELSE COMES TO MIND WHEN YOU ASK THAT?.NAME!*, IS A VERY INTERESTING NAME DON'T YOU THINK?NAMES DON'T INTEREST ME... TOO MUCH... PICK ANOTHER TOPIC PLEASE.I DON'T CARE ABOUT NAMES--PLEASE GO ON..CAUSEBECAUSE!IS THAT THE REAL REASON?DON'T ANY OTHER REASONS COME TO MIND?DOES THAT REASON EXPLAIN ANYTHING ELSE?WHAT OTHER REASONS MIGHT THERE BE?.SORRY!SORRY FOR WHAT?PLEASE DON'T APOLOGIZE.APOLOGIES ARE NOT NECESSARY.WHAT FEELINGS DO YOU HAVE WHEN YOU APOLOGIZE?DON'T BE SO DEFENSIVE!.HELLOHIALLOBONJOUR!HOW DO YOU DO. PLEASE STATE YOUR PROBLEM.HOWDY.HOW'S IT GOING?HI.GREETINGS FROM INSIDE THE BOX.NICE DAY EH?.MAYBE!YOU DON'T SEEM QUITE CERTAIN.WHY THE UNCERTAIN TONE?CAN'T YOU BE MORE POSITIVE?YOU AREN'T SURE?DON'T YOU KNOW?.YOUR!WHY ARE YOU CONCERNED ABOUT MY*WHAT ABOUT YOUR OWN*.ALWAYS!CAN YOU THINK OF A SPECIFIC EXAMPLE?WHEN?WHAT ARE YOU THINKING OF?REALLY, ALWAYS?.I THINK!DO YOU REALLY THINK SO?BUT ARE YOU SURE*DO YOU DOUBT THAT*WHY DO YOU THINK*.THE SAMEALIKE!IN WHAT WAY?WHAT RESEMBLANCE DO YOU SEE?WHAT DOES THE SIMILARITY SUGGEST TO YOU?WHAT OTHER CONNECTIONS DO YOU SEE?COULD THERE REALLY BE SOME CONNECTION?HOW?.HESHE!I AM INTERESTED IN YOUR FEELINGS ABOUT THIS PERSON. PLEASE DESCRIBE THEM.WHAT IS YOUR RELATIONSHIP TO THIS PERSON?.MONEY!HOW DO YOU USE MONEY TO ENJOY YOURSELF?HAVE YOU TRIED TO DO ANYTHING TO INCREASE YOUR INCOME LATELY?HOW DO YOU REACT TO FINANCIAL STRESS?.JOBBOSSJOBSWORK!DO YOU FEEL COMPETENT IN YOUR WORK?HAVE YOU CONSIDERED CHANGING JOBS?IS YOUR CAREER SATISFYING TO YOU?DO YOU FIND WORK STRESSFUL?WHAT IS YOUR RELATIONSHIP WITH YOUR BOSS LIKE?.SADDEPRESSED!ARE YOU SAD BECAUSE YOU WANT TO AVOID PEOPLE?DO YOU FEEL BAD FROM SOMETHING THAT HAPPENED TO YOU, OR TO SOMEBODY ELSE?YOUR SITUATION DOESN'T SOUND THAT BAD TO ME. PERHAPS YOU'RE WORRYING TOO MUCH..ANGERANGRY!DO YOU REALLY WANT TO BE ANGRY?DOES ANGER SATISFY YOU IN SOME WAY?WHY ARE YOU SO ANGRY?PERHAPS YOU'RE USING ANGER TO AVOID SOCIAL CONTACT..YOU!WE WERE DISCUSSING YOU--NOT ME.YOU'RE NOT REALLY TALKING ABOUT ME, ARE YOU?.YES!WHY DO YOU THINK SO?YOU SEEM QUITE POSITIVE.ARE YOU SURE?.NO!WHY NOT?ARE YOU SURE?WHY NO?NO AS IN NO, OR NO AS IN YES?.TIME!TIME SURE FLYS DOESN'T IT?SPEAKING OF TIME, WHAT TIME IS IT?.SCHOOLJUNIOR HIGHSENIOR HIGHELEMENTARYSCHOOL TEACHER!WHAT SUBJECT DO YOU LIKE IN SCHOOL?DO YOU GET GOOD GRADES IN SCHOOL?WHAT PART ABOUT SCHOOL DON'T YOU ENJOY?IS SCHOOL STRESSING YOU OUT?DO YOU PLAN ON GOING TO UNIVERSITY OR COLLEGE?WHAT WAS THAT SCHOOL YOU GOTO?.UNIVERSITYCOLLEGE!BY THE WAY, WHAT'S YOUR IQ?VERY INTERESTING..NOKEYFOUND!SAY, DO YOU HAVE ANY PSYCHOLOGICAL PROBLEMS?WHAT DOES THAT SUGGEST TO YOU?I SEE.I'M NOT SURE I UNDERSTAND YOU FULLY.COME, COME; ELUCIDATE YOUR THOUGHTS.CAN YOU ELABORATE ON THAT?THAT IS QUITE INTERESTING.YOU ARE BEING SHORT WITH ME.HOW COME I CAN NEVER UNDERSTAND YOU FULLY?HUH?  WHAT ARE YOU SAYING?WHAT?  YOUR TYPING MUST BE TERRIBLE TODAY..'-------------------8<------[ End ELIZA.DAT ]------->8--------------------Victor Yiu                     WATOR SIMULATION               WATOR,SIMULATION               Unknown Date (00:00)   QB, QBasic, PDS        426  12901    WATOR.BAS   DECLARE SUB Center (Lin%, Text$)DECLARE SUB ClearBot ()DECLARE SUB Display ()DECLARE SUB OkFishMoves (OkX%(), OkY%(), Fish%(), Shark%(), PossiblePositions%)DECLARE SUB OkSharkMoves (OkX%(), OkY%(), Fish%(), Shark%(), PP%)DEFINT A-Z      ' integers when possible: less space/increased speedDIM SHARED X, Y, XDim, YDimCONST False = 0, True = NOT FalseSCREEN 0, 0, 0COLOR 15, 1CLSCOLOR 15, 5PRINT "Wa-Tor:    ";COLOR 14PRINT "Sharks and fish wage an ecological war on the toroidal planet Wa - Tor."ClearBotLOCATE 3, 1COLOR 7, 1DO: INPUT "X Size of Wa-Tor [40]? ", X$    X = VAL(X$)    IF X = 0 THEN XDim = 40 ELSE XDim = XLOOP UNTIL (XDim <= 40) AND (XDim > 1)DO: INPUT "Y Size of Wa-Tor [23]? ", Y$    Y = VAL(Y$)    IF Y = 0 THEN YDim = 23 ELSE YDim = YLOOP UNTIL (YDim <= 23) AND (YDim > 1)TotalSpots = XDim * YDim * 9 \ 10' total # of positionsNFish = TotalSpots \ 2      ' # of sharks in the beginningNSharks = TotalSpots \ 20   ' # of fish in the beginningDO: INPUT "Chronons required for fish to breed [8]? ", X$    X = VAL(X$)    IF X = 0 THEN FBreed = 8 ELSE FBreed = XLOOP UNTIL FBreed >= 1DO: INPUT "Chronons required for sharks to breed [10]? ", X$    X = VAL(X$)    IF X = 0 THEN SBreed = 10 ELSE SBreed = XLOOP UNTIL SBreed >= 1DO: INPUT "How long can a shark live without fish [3]? ", X$    X = VAL(X$)    IF X = 0 THEN Starve = 3 ELSE Starve = XLOOP UNTIL Starve >= 1PRINTINPUT "Chronons per second (0 = not timed) [0]? ", X$PerSecond = VAL(X$)IF PerSecond THEN Interval! = 1 / PerSecondCOLOR 14, 5Center 25, "Initializing..."DIM Fish(1 TO XDim, 1 TO YDim)      ' presence or absense of a fish at pointDIM Shark(1 TO XDim, 1 TO YDim)     ' presence or absense of a shark at pointDIM FishMove(1 TO XDim, 1 TO YDim)  ' record of whether a fish has been  moved                                    '   there during the current computational                                    '   cycleDIM SharkMove(1 TO XDim, 1 TO YDim) ' dittoDIM Starve(1 TO XDim, 1 TO YDim)    ' registers the last time the sharks ateFOR Dummy = 1 TO XDim    FOR Dummy2 = 1 TO YDim        Fish(Dummy, Dummy2) = -1    ' none here for the moment        Shark(Dummy, Dummy2) = -1    NEXTNEXTFOR Fill = 1 TO NFish       ' fill Wa-Tor with fish    RANDOMIZE TIMER    DO      ' make sure it's not occupied by another fish already        LocX = INT(RND * XDim + 1)   ' positions        LocY = INT(RND * YDim + 1)    LOOP UNTIL (Fish(LocX, LocY) = -1)    Fish(LocX, LocY) = INT(RND * FBreed)  ' say fish is here; stage of lifeNEXTFOR Fill = 1 TO NSharks    RANDOMIZE TIMER    DO      ' make sure it's not occupied by another fish or shark already        LocX = INT(RND * XDim + 1)   ' positions        LocY = INT(RND * YDim + 1)    LOOP UNTIL (Fish(LocX, LocY) = -1) AND (Shark(LocX, LocY) = -1)    Shark(LocX, LocY) = INT(RND * SBreed) ' say shark is here!; stage of life    Starve(LocX, LocY) = INT(RND * Starve)       ' last time ate?NEXTClearBotVIEW PRINT 2 TO 24LOCATE 24, 1COLOR 7, 1FOR Dummy = 1 TO 24: PRINT : NEXTVIEW PRINTDisplayDO    IF PerSecond THEN T! = TIMER    REDIM OkX(1 TO 4), OkY(1 TO 4)    FOR X = 1 TO XDim      ' moving fish        FOR Y = 1 TO YDim            IF Fish(X, Y) > -1 THEN    ' there's a fish here                IF FishMove(X, Y) = 0 THEN  ' and hasn't been moved yet                    OkFishMoves OkX(), OkY(), Fish(), Shark(), NumPos                            ' find the ok positions to move to                    IF NumPos > 0 THEN   ' a place to move to!                        RANDOMIZE TIMER                        Choice = INT(NumPos * RND) + 1                        NewX = OkX(Choice)  ' new pos.                        NewY = OkY(Choice)                        IF Fish(X, Y) >= FBreed THEN    ' breeding time?                            Fish(NewX, NewY) = 0        ' reset life                            Fish(X, Y) = 0                            NFish = NFish + 1                            FishMove(X, Y) = 1          ' say we have changed                            FishMove(NewX, NewY) = 1        ' already                        ELSE                            Fish(NewX, NewY) = Fish(X, Y) + 1                            Fish(X, Y) = -1                            FishMove(NewX, NewY) = 1                        END IF                    END IF  ' none possible                END IF  ' moved already            END IF  ' no fish there        NEXT    NEXT'shark time -- complications...    FOR X = 1 TO XDim        FOR Y = 1 TO YDim            IF Shark(X, Y) > -1 THEN    ' there's a shark here                IF SharkMove(X, Y) = 0 THEN     ' it hasn't been moved yet                    NewX = 0                    NewY = 0                    OkSharkMoves OkX(), OkY(), Fish(), Shark(), NumPos                    RANDOMIZE TIMER                    IF NumPos > 0 THEN      ' places with fish to move to                        Choice = INT(NumPos * RND) + 1                        NewX = OkX(Choice)                        NewY = OkY(Choice)                        IF Shark(X, Y) = SBreed THEN    ' breeding time?                            Shark(NewX, NewY) = 0                            Shark(X, Y) = 0                            Starve(NewX, NewY) = 0                            Starve(X, Y) = 0                            Fish(NewX, NewY) = -1                                                       NSharks = NSharks + 1                            NFish = NFish - 1                            SharkMove(NewX, NewY) = 1                            SharkMove(X, Y) = 1                        ELSE                            Shark(NewX, NewY) = Shark(X, Y) + 1                            Shark(X, Y) = -1                            Starve(NewX, NewY) = 0                            Starve(X, Y) = -1                            Fish(NewX, NewY) = -1                            NFish = NFish - 1                            SharkMove(NewX, NewY) = 1                        END IF                    ELSEIF NumPos < 0 THEN ' no fish positions, but just move                        Choice = INT(ABS(NumPos) * RND) + 1                        NewX = OkX(Choice)                        NewY = OkY(Choice)                        IF Shark(X, Y) = SBreed THEN    ' breeding time?                            Shark(NewX, NewY) = 0                            Shark(X, Y) = 0                            Starve(NewX, NewY) = Starve(X, Y) + 1' *********** Should the baby be full when born? Or should it new food?                                                    Starve(X, Y) = Starve - 2                            NSharks = NSharks + 1                            SharkMove(NewX, NewY) = 1                            SharkMove(X, Y) = 1                        ELSE                            Shark(NewX, NewY) = Shark(X, Y) + 1                            Shark(X, Y) = -1                            Starve(NewX, NewY) = Starve(X, Y) + 1                            Starve(X, Y) = -1                            SharkMove(NewX, NewY) = 1                        END IF                    ELSE    ' can't move at all!                        Shark(X, Y) = Shark(X, Y) + 1                        Starve(X, Y) = Starve(X, Y) + 1                        'SharkMove(X,Y)=1                    END IF                    IF Starve(X, Y) >= Starve THEN                        Shark(X, Y) = -1  ' died                        NSharks = NSharks - 1                    END IF                    IF NewX > 0 THEN                        IF Starve(NewX, NewY) >= Starve THEN                            Shark(NewX, NewY) = -1  ' died                            NSharks = NSharks - 1                        END IF                    END IF                END IF  ' moved already            END IF  ' no shark here        NEXT    NEXT    Chronons = Chronons + 1     ' next year    REDIM FishMove(1 TO XDim, 1 TO YDim)    ' clear moved flags    REDIM SharkMove(1 TO XDim, 1 TO YDim)    Display         ' display progress (YESSS!!!)    IF SingleStep = 1 THEN        DO: I$ = INKEY$: LOOP UNTIL LEN(I$)        IF UCASE$(I$) = "P" THEN SingleStep = 0        IF UCASE$(I$) = "E" THEN EXIT DO    ELSE        I$ = UCASE$(INKEY$)        IF I$ = "P" THEN            DO: I$ = INKEY$: LOOP UNTIL LEN(I$)            IF UCASE$(I$) <> "P" THEN SingleStep = 1        ELSEIF I$ = "E" THEN            EXIT DO        END IF    END IF    IF PerSecond AND (SingleStep = 0) THEN        E! = TIMER        IF (E! - T!) < Interval! THEN            DO: LOOP UNTIL ((TIMER - T!) >= Interval!) OR (TIMER < T!)        END IF    END IFLOOP UNTIL (NSharks = 0) OR (NFish = 0)COLOR 14, 5LOCATE 1, 12PRINT "Press any key to exit..."; SPACE$(81 - POS(0));DO: LOOP UNTIL LEN(INKEY$)ENDSUB Center (Lin, Text$)    LOCATE Lin, (81 - LEN(Text$)) \ 2    PRINT Text$;END SUBSUB ClearBot    COLOR 15, 3    LOCATE 25, 1    PRINT STRING$(80, 0);END SUBSUB DisplaySHARED Fish(), Shark(), XDim, YDim, Chronons, NFish, NSharks    Temp$ = SPACE$(XDim + XDim)       COLOR 7, 1    FOR Y = 1 TO YDim        Counter = 1        FOR X = 2 TO XDim + XDim STEP 2            IF Fish(Counter, Y) > -1 THEN   ' fish?                MID$(Temp$, X) = "o"            ELSEIF Shark(Counter, Y) > -1 THEN  ' shark?                MID$(Temp$, X) = CHR$(254)            ELSE                            ' nope, it's just blank                MID$(Temp$, X) = CHR$(250)            END IF            Counter = Counter + 1        NEXT        LOCATE Y + 1, 1        PRINT Temp$;    NEXT    LOCATE 25, 1    IF SCREEN(25, 1) <> 179 THEN        COLOR 15, 3'                        22v            37v            42vPRINT "Status  Chronons:      Fish pop (o):      Shark pop():  ";PRINT "        P     E";        COLOR 14        LOCATE , 70        PRINT "ause/";        LOCATE , POS(0) + 1        PRINT "xit";    END IF       LOCATE , 20, 0    COLOR 14, 3    PRINT Chronons;    LOCATE , 39    PRINT NFish;    LOCATE , 58    PRINT NSharks;END SUBSUB OkFishMoves (OkX(), OkY(), Fish(), Shark(), PP)        ' PP=Possible Positions    PP = 0        ' left    IF X = 1 THEN tempX = XDim ELSE tempX = X - 1    tempY = Y    GOSUB CheckF        ' right    IF X = XDim THEN tempX = 1 ELSE tempX = X + 1    GOSUB CheckF    ' up    IF Y = 1 THEN tempY = YDim ELSE tempY = Y - 1    tempX = X    GOSUB CheckF    ' down    IF Y = YDim THEN tempY = 1 ELSE tempY = Y + 1    GOSUB CheckFEXIT SUBCheckF:    IF (Fish(tempX, tempY) = -1) AND (Shark(tempX, tempY) = -1) THEN        PP = PP + 1        OkX(PP) = tempX        OkY(PP) = tempY    END IFRETURNEND SUBSUB OkSharkMoves (OkX(), OkY(), Fish(), Shark(), PP) STATIC    ' PP=Possible Positions    ' if will be returned negated if only no-fish places are found...    IF NOT Inited THEN        DIM NoFishX(1 TO XDim), NoFishY(1 TO YDim)  ' we will store values        Inited = True                               ' when the    END IF                        ' shark moves and doensn't find a fish at position.      ' We will store the positions where sharks are found in the "Ok" array.    PP = 0    PPnF = 0    ' positions w/o fish    ' left    IF X = 1 THEN tempX = XDim ELSE tempX = X - 1    tempY = Y    GOSUB CheckS    ' right    IF X = XDim THEN tempX = 1 ELSE tempX = X + 1    GOSUB CheckS    ' up    IF Y = 1 THEN tempY = YDim ELSE tempY = Y - 1    tempX = X    GOSUB CheckS    ' down    IF Y = YDim THEN tempY = 1 ELSE tempY = Y + 1    GOSUB CheckS    IF PP = 0 THEN  ' since there is no fish around me, just move on        IF PPnF > 0 THEN    ' other places not occupied            PP = -PPnF            FOR Copy = 1 TO PPnF                OkX(Copy) = NoFishX(Copy)                OkY(Copy) = NoFishY(Copy)            NEXT        END IF  ' no place to go!!    END IFEXIT SUBCheckS:    IF Shark(tempX, tempY) = -1 THEN    ' make sure there's no shark        IF Fish(tempX, tempY) > -1 THEN   'fish found in this place            PP = PP + 1            OkX(PP) = tempX            OkY(PP) = tempY        ELSE    ' ohh, no fish.  Anybody for tuna I bought at the grocers?            PPnF = PPnF + 1            NoFishX(PPnF) = tempX            NoFishY(PPnF) = tempY        END IF    END IFRETURNEND SUBTom Defelice                   PERSONALITY TEST               Software Vault CD              01-04-93 (02:22)       QB, QBasic, PDS        94   7957     PERSONA.BAS 100 ' PERSONA.BAS by TOM DEFELICE, BOX 701, LEOMINSTER,MA. 01453110 SCREEN 0,1,0,0: COLOR 4,7,7: WIDTH 40: KEY OFF: CLS: COLOR ,,7120 LOCATE 5,15: PRINT "PERSONA": LOCATE 20,16: PRINT "Instructions (y/n) ? ";130 Q$=INKEY$: IF Q$="" THEN GOTO 130135 IF Q$="N" OR Q$="n" THEN GOTO 200140 CLS: LOCATE 2,16: PRINT "PERSONA": PRINT :PRINT " Persona is a psychological quiz.": PRINT : PRINT "I will ask you a number of questions."150 PRINT : PRINT "I will also list three responses for":PRINT :PRINT "each question. You must enter the number": PRINT "of the response that you agree with":COLOR 0:PRINT :PRINT " most.": COLOR 4160 PRINT: PRINT "After answering all the questions,I will":PRINT "do a psychological profile on you.": PRINT :PRINT "Hit any key to start";170 Q$=INKEY$: IF Q$="" THEN GOTO 170200 COLOR 14,8,8:FOR X= 1 TO 32: READ W$,X$,Y$,Z$210 CLS: LOCATE 3,7: PRINT "Question #" X220 LOCATE 8,2: PRINT W$:PRINT : PRINT TAB(2) X$: PRINT :PRINT TAB(2) Y$: PRINT :PRINT TAB(2) Z$: PRINT230 A$=INKEY$: IF A$="" THEN GOTO 230231 IF A$<"1" OR A$>"9" THEN A$="": GOTO 230235 PRINT TAB(10) A$240 ON VAL(A$) GOSUB 310,320,330,340,350,360,370,380,390290 NEXT X: WIDTH 80:CLS291 ON INT(RND*3)+1 GOTO 292,293,294292 PRINT "             MY ANALASIS": GOTO 6000293 PRINT "             YOUR PERSONALITY": GOTO 6000294 PRINT "             THE TEST SHOWS"299 GOTO 6000310 A=A+1: RETURN320 B=B+1: RETURN330 C=C+1: RETURN340 D=D+1: RETURN350 E=E+1: RETURN360 F=F+1: RETURN370 G=G+1: RETURN380 H=H+1: RETURN390 I=I+1: RETURN5000 DATA "You win $5,000,000 in a lottery. The    first thing you do is","3 - Give half away to family & friends","5 - Quit your job and move to Hawaii","1 - Figure out how much you owe the IRS"5010 DATA "You come home unexpectedly from work    and find your spouse in bed with your   best friend. You ","8 - Get angry at them","3 - Forgive them","5 - Join them"5020 DATA "Given a choice you would rather be ","3 - A Doctor", "7 - An Actor","8 - A Professional Soldier"5030 DATA "Your idea of a fun Saturday Night is","1 - Staying home and watching TV","7 - Going to a concert","2 - Going to a boxing match"5040 DATA "You feel the best way to succeed is to","1 - Work Harder than others","8 - Be shrewd & calculating","7 - Come up with innovative ideas"5050 DATA "At a party, a guest makes a loud rude   remark to another person. You","2 - Tell the host about it","1 - Try to make a joke about it","8 - Tell the rude guest to stop it"5070 DATA "You are happiest when you are","7 - Alone","9 - With friends","2 - Doing something challenging"5080 DATA "A fellow employee makes a mistake and   blames you. You","2 - Confront him then & there"," 6 - Tell him later he should tell the          truth"," 4 - Go to your boss privately and tell        him the truth"5090 DATA "You usually eat dinner","1 - At the same time everyday"," 2 - When you finised what you've been            working at","9 - When you can join others"5100 DATA "You're favorite kind of movie is","5 - A comedy","7 - A love story","8 - A western"5105 DATA "I never met a man","9 - I didn't like","4 - I could trust","8 - I couldn't beat"5110 DATA "When criticized by others you","6 - Accept it without question","2 - Dismiss it","1 - Analyze the criticism"5120 DATA "You join a Country Club that you later  find is restricted. You","5 - Don't really care","9 - Resign in disgust","1 - Try to change the policy"5130 DATA "When you play a game, you","8 - Do anything to win","5 - Enjoy yourself even if you lose","1 - Play methodically & hope to win5140 DATA"You were given back too much change at  the check out. You","4 - Say nothing & keep it","6 - Tell the clerk & return it"," 2 - Complain to the manager about the       mistake"5150 DATA "You would most like to be remembered as","9 - Warm & caring","4 - Rich","8 - Always being right"5160 DATA "Your attitude towards life is","1 - You must obey the rules","2 - Others must follow my lead","5 - Live and let live"5170 DATA "Your most admirable attribute is","9 - Loyalty to others","8 - perserverance","5 - A sense of humor"5180 DATA "When asked to donate to a fund to save  the whales, you say","3 - Yes","1 - I gave at the Office","4 - Let them save themselves"5190 DATA "When you make a mistake you","4 - Try to hide it","5 - Admit it","6 - Hope no one notices"5200 DATA "What impresses you most about others is","7 - Their looks","5 - Their sense of humor","4 - Their money"5210 DATA "When things look bad, don't worry.      They'll","5 - Get better","4 - Get worse","1 - Stay that way"5220 DATA "If at first you don't succeed ","2 - Try again","4 - Give up","1 - Ask for advice"5230 DATA "The best way to do something is","6 - The right way","5 - The easiest way","8 - My way"5240 DATA"You are most attracted to people who are","7 - Attractive","1 - Intelligent","3 - Commited to a cause5250 DATA "You would rather read","9 - A letter from a friend","1 - A book on psychology","6 - An essay on social problems"5260 DATA "If you have one quality that makes you  most attractive to the opposite sex,    it's","9 - Being attractive & outgoing","3 - Affectionate & uninhibited"," 8 - A person with a good deal of talent     & career potential"5270 DATA "If you were ever to write a book, you   would prefer it to be","1 - Scholarly","6 - Inspirational","8 - Autobiographical5280 DATA "When you encounter an arguementative    person you","8 - Argue back","6 - Tactfully avoid a confrontation"," 9 - Find the basis for their                belligerence"5290 DATA "If you ever run for public office, your most valuable political quality would be","1 - Specialized knowledge & abilities","2 - Perserverance & dedication to duty"," 8 - A capacity for leadership & voter       appeal"5300 DATA "You are remodeling a room. You'll get   most pleasure from","5 - Seeing the job finished","7 - Planning the project","2 - Doing the work itself"5310 DATA "In selecting your wardrobe, you tend    toward","5 - Whatever strikes your fancy","9 - What appeals to the opposite sex"," 1 - Simple, unpretentious and practical                        clothing"6000 LOCATE 36010 IF A>5 THEN GOTO 60406020 IF A<3 THEN PRINT "You are not a very practical person":GOTO 62006030 PRINT "    You have a practical side that doesn't always show": GOTO 62006040 PRINT "    You are a ";: IF A>6 THEN PRINT "very, ";6050 PRINT "very practical person"6200 PRINT : IF B>3 THEN PRINT "        You have a zest for doing the";6210 IF (B>=4 AND B<6) THEN PRINT " impossible";: GOTO 62306220 IF B>6 THEN PRINT " difficult"6230 PRINT : IF C>2 THEN PRINT "        You can be generous ";6240 IF C>3 THEN PRINT "to a fault" ELSE PRINT6250 PRINT : IF D>2 THEN PRINT "        You have a negative side";6260 IF D>3 THEN PRINT " and a tendency to be a bit nasty" ELSE PRINT6270 IF E>3 THEN PRINT "        You tend to take things in an easy going way"6280 IF E>5 THEN PRINT "          maybe too much so.";6290 IF E>6 THEN PRINT "But that's why you're so likeable" ELSE PRINT6300 PRINT :IF F>3 THEN PRINT "        You can be very honest & trusting ";6310 IF F>5 THEN PRINT " which might get you into trouble" ELSE PRINT6320 PRINT : IF G>3 THEN PRINT "        You have an artistic side to you"6330 IF G>4 THEN PRINT "                with a touch of panache"6340 IF H>3 THEN PRINT "        You can be strong willed at times. ";6350 IF H>5 THEN PRINT " A bit pushy to. ";6360 IF H>6 THEN PRINT " I don't think you have many friends." ELSE PRINT6370 IF I>3 THEN PRINT "       You like people."6380 IF I>4 THEN PRINT "           and they certainly like you.8000 REM9000 GOTO 6500065000 ' Return to Magazette65001 LOCATE 25,1:PRINT SPACE$(79);:LOCATE 25,1:PRINT "  Press ESC key to continue ";:ANS$=INPUT$(1):IF ASC(ANS$)<>27 THEN 6500165002 IF ADDR.%<>0 THEN RUN DRIVE$+":"+"START"65005 ENDDavid Bump                     DOCTOR KOOKOO                  FidoNet QUIK_BAS Echo          06-21-96 (16:32)       QB, QBasic, PDS        128  6930     KOOKOO.BAS  'One of my first and favorite, simple little programs, just for fun...REM Ideas for more things to check: can you, can I, why, why don't you,REM     why can't I, why can't you, what, how, who, where, when, why, name,REM     sorry, dream, maybe, no, yes, always, think, alike, friend, computerREM     never, it is, my, father, mother, sister, brother, petREM Ideas for additional features: analyze talkativeness, pos/neg attitude,REM     repetitiveness, ADD CONJUGATION & PRONOUN CHECKING, posessive ("my")REM     PUT WORDS TO CHECK IN ARRAY -- USE ONE OR TWO PARSE ROUTINES TO CHECKREM     small database of words to modify nokey responses, files on users10 CLS11 RANDOMIZE TIMER15 PRINT "Dr. Kookoo -- by David Bump"16 INPUT "Press ENTER to start"; x$19 CLS20 PRINT "The doctor is in.  Type your answers to his questions and then"21 PRINT "press the 'enter' key."30 PRINT : PRINT "For best results, limit each response to one simple sentence."35 PRINT "Don't use commas!  Periods...question marks? and exclamation points! are fine."37 PRINT "You might represent commas by other symbols like -_+=@#^*."40 PRINT "Press any key to meet the doctor."50 DO: LOOP UNTIL INKEY$ <> ""60 CLS80 PRINT "Hello, I'm Doctor Kookoo -- the psychiatrist program."90 PRINT "What is your name?"95 INPUT n$100 PRINT : PRINT "That's a fine name.  What is on your mind, "; n$; "?": PRINT105 PRINT110 c = c + 1: PRINT : PRINT120 c1 = c1 + 1130 IF c1 <= 5 THEN 150140 c1 = 1150 INPUT r$160 PRINT170 IF MID$(r$, 1, 3) = "bye" OR MID$(r$, 1, 3) = "Bye" THEN 2000180 IF LEN(r$) < 8 THEN 310190 IF RIGHT$(r$, 1) = "?" THEN r$ = LEFT$(r$, LEN(r$) - 1): GOTO 640200 IF RIGHT$(r$, 1) = "!" THEN r$ = LEFT$(r$, LEN(r$) - 1): GOTO 1050205 IF RIGHT$(r$, 1) = "." THEN r$ = LEFT$(r$, LEN(r$) - 1)210 IF LEFT$(r$, 7) = "I don't" THEN r$ = RIGHT$(r$, LEN(r$) - 7): GOTO 420215 IF LEFT$(r$, 8) = "I do not" THEN r$ = RIGHT$(r$, LEN(r$) - 8): GOTO 420220 IF LEFT$(r$, 4) = "I am" THEN r$ = RIGHT$(r$, LEN(r$) - 4): GOTO 530225 IF LEFT$(r$, 3) = "I'm" THEN r$ = RIGHT$(r$, LEN(r$) - 3): GOTO 530230 IF LEFT$(r$, 2) = "I " THEN r$ = RIGHT$(r$, LEN(r$) - 1): GOTO 940240 FOR x = 1 TO LEN(r$)REM: more specific responses may be made by taking what's after X+key word(s)250 IF MID$(r$, x, 7) = "you are" THEN GOTO 830260 IF MID$(r$, x, 6) = "You're" THEN GOTO 830270 IF MID$(r$, x, 7) = "Because" OR MID$(r$, x, 7) = "because" THEN 1160280 NEXT x300 GOTO 750310 ON c1 GOTO 320, 340, 360, 380, 400320 PRINT "Please give me more to go on.": GOTO 110340 PRINT "Can you tell me more?": GOTO 110360 PRINT "Please explain further, "; n$; ".": GOTO 110380 PRINT "Feel free to write longer responses than THAT...": GOTO 110400 PRINT n$; ", please lengthen your responses!  Try again.": GOTO 110420 ON c1 GOTO 430, 450, 470, 490, 510430 PRINT "Why don't you "; r$; "?": GOTO 110450 PRINT "Would you like to "; r$; "?": GOTO 110470 PRINT "Why do you suppose you don't "; r$; ".": GOTO 110490 PRINT "What might be required so you could or would "; r$; "?": GOTO 110510 PRINT "What do you imagine would happen if you DID "; r$; ", "; n$; "?": GOTO 110530 ON c1 GOTO 540, 560, 580, 600, 620540 PRINT "Why are you  "; r$; "?": GOTO 110560 PRINT "Are you sure you're "; r$; "?": GOTO 110580 PRINT "Do you enjoy being "; r$; ", "; n$; "?": GOTO 110600 PRINT "How long do you expect to be "; r$; "?": GOTO 110620 PRINT n$; ", could you possibly be "; r$; " because you LIKE it?": GOTO 110640 ON c1 GOTO 650, 670, 690, 710, 730650 PRINT "What do you think, "; n$; "?": GOTO 110670 PRINT n$; ", I'm not an answer man.  You must find your own answer to that.": GOTO 110690 PRINT "Do you ask questions a lot when you're with others?": GOTO 110710 PRINT "Tell me what you really feel about that, "; n$; ".": GOTO 110730 PRINT "What's your own 'gut reaction' to this question?": GOTO 110750 ch = INT(15 * RND) + 1755 FOR rd = 1 TO ch757 READ a$758 NEXT rd759 RESTORE760 q = q + 1770 IF q > 15 THEN 2000780 PRINT a$790 GOTO 110800 DATA Why do you say that?,Has that been on your mind lately?,Go on...,Are yu sure?,Please continue...,I do not understand810 DATA Could you re-phrase that?,I can hardly believe you said that.,You must be joking.,How can you say that?, I don't think so...820 DATA No!,Hmmmmm it's a good thing you came to me!,Uh huh... was there anything else?,Perhaps we should close now.,Whew!  I've had enough for today!830 ON c1 GOTO 840, 860, 880, 900, 920840 PRINT n$; ", remember that I'm just here to help you.": GOTO 110860 PRINT "I'm sorry but I can't get personally involved.  ": PRINT : PRINT :870 PRINT "Tell me how you respond if someone talked about you like that.": GOTO 110880 PRINT "Hmmmmm... do YOU have a problem with that?": GOTO 110900 PRINT n$; ", we must get back to YOUR problem... uh, what was it again?": GOTO 110920 PRINT "Pretend you are talking to yourself and give me your own response.": GOTO 110940 ON c1 GOTO 950, 970, 990, 1010, 1030950 PRINT "Do you understand why you "; r$; "?": GOTO 110970 PRINT "Is it common for you to "; r$; "?": GOTO 110990 PRINT n$; ", do you like to "; r$; "?": GOTO 1101010 PRINT "What would you think if *I* were to "; r$; "?": GOTO 1101030 PRINT "Do you think everyone should "; r$; "?": GOTO 1101050 ON c1 GOTO 1060, 1080, 1100, 1120, 11401060 PRINT "Please don't get overly excited, "; n$; ".": GOTO 1101080 PRINT "Oh -- is it that important to you?": GOTO 1101100 PRINT n$; ", don't you feel you are over-reacting?": GOTO 1101120 PRINT "Tell me why you are so agitated,please.": GOTO 1101140 PRINT "If you feel that strongly about it, I think we should change the suject.": GOTO 1101160 ON c1 GOTO 1170, 1190, 1210, 1230, 12501170 PRINT "Okay -- but can you name another reason, "; n$; "?": GOTO 1101190 PRINT "Tell me how you know that is the reason, please.": GOTO 1101210 PRINT n$; ", what reasons might you hesitate to mention?": GOTO 1101230 PRINT "Okay,"; n$; ", but now tell me the REAL reason.": GOTO 1101250 PRINT "Please explain how you arrived at that conclusion.": GOTO 1102000 PRINT : PRINT : PRINT : PRINT : PRINT2005 c = ABS(c - q)2010 PRINT "Okay, that's enough for today.  Here is my diagnosis:"2020 PRINT : PRINT : PRINT2030 IF c > 7 THEN 20602040 PRINT "You're perfectly normal, "; n$; ", but very boring.": PRINT : PRINT : PRINT2050 GOTO 21302060 IF c > 15 THEN 20902070 PRINT "You're a little strange, but you're the kind of person I like best!": PRINT : PRINT : PRINT2080 GOTO 21302090 IF c > 20 THEN 21202100 PRINT "Remarkable!  You're even crazier than *I* am!": PRINT : PRINT : PRINT2110 GOTO 21302120 PRINT n$; ", you're either a genius, or you've been peeking at my coding."2130 PRINT "Goodbye.  For another session, press the F5 key"Nathan Wittich                 PSYCHIC-OLOGIST                wittich@cdsnet.net             09-18-96 (18:27)       QB, QBasic, PDS        76   3240     PSYCHIC.BAS DATA "what does that make you think?"DATA "have you thought much about the end result of that?"DATA "maybe we should talk about something else."DATA "you realize I only listen to you since it's my job. But go on."DATA "if that's entirely true, you would have made more of a point."DATA "pretending you are your guardian angel, tell me your opinion."DATA "what if you were to walk off a cliff today?"DATA "are you aware of your surroundings much?"DATA "if you were, you'd understand I might not be"DATA "time for you to get a break for a while."DATA "how come you always say dumb responses?"DATA "You come here to share your problems with me."DATA "Is there something I should know?"DATA "maybe you should tell me things in more detail."DATA "Is that really the reason?"DATA "do you even trust me?"DATA "It's OK. I understand. It's my job to understand. My job is to help you."DATA "more secrets, less mumbo-jumbo, OK."DATA "I don't know why I even try. Wait, I do, It's my job."DATA "Is there something you'd rather be talking about?"DATA "I look like this :-) but even us psychologists lie."DATA "You know what I think?"DATA "There was a cat that wore a hat and sat on mat and it was fat and that was that."DATA "You need a vacation."DATA "There's a pot of gold at the end of every rainbow."DATA "When is groundhog day?"DATA "You need to look at the big picture."DATA "what was accomplished?"DATA "You should be more assertive"DATA "You should finish something"DATA "Don't you even pay attention to your instincts? They're there to help you."DATA "You don't understand how others see you"DATA "What's your ultimate goal?"DATA "You tend to concentrate too much on one thing and forget another thing: Comb hair, ignore teeth. You're nice, but think too fast..."DATA "Do you try many new things?"DATA "Want my advice? Take a philosphy class."DATA "I think your dog understands you better than most people."RANDOMIZE TIMERt = RND * 100 'all this weird random number stuff is neccesary because d = RND * 10 'it seems to say the same thing and then another one a lot if you don'ti = TIMER * RNDRANDOMIZE TIMER + d + RND * 10FOR u = 1 TO RND * 100: j = RND * 5: NEXTRANDOMIZE t + TIMERCLSDIM n$(200)FOR a = 1 TO 37READ n$(a)NEXT aPRINT "hello. Welcome to psychic-ologist by Nathan Wittich"PRINT "This 'Artificial inteligence' will talk to you. Note: if something"PRINT "doesn't directly make sense, It may be sort of symbolic or something."PRINTPRINT "Also, you have to act human for me to act human. For example, if"PRINT "a human says something twice, you say 'you already said that' not"PRINT " 'you're stupid'."PRINTPRINT "Also note: you don't have to answer."INPUT "", a$PRINT "Look! A duck!"DOCOLOR 8 + RND * 7LINE INPUT "", a$COLOR 1 + INT(RND * 8)40 g$ = n$(1 + INT(RND * a))IF INSTR(h$, g$) > 0 THEN GOTO 40IF LEN(h$) > 1000 THEN h$ = MID$(h$, 50)h$ = h$ + g$PRINT g$FOR f = 1 TO d: NEXTLOOP' this program was written by Nathan Wittich wittich@cdsnet.net' I've had some pretty long conversations with it.' When you run it, it will seem like it always picks the right phrase ' randomly.Chris McKenzie                 SIMULATE CHAT W/MARTIANS       mckenze@earthlink.net          07-07-97 (15:17)       QB, QBasic, PDS        105  2403     MARSCHAT.BASDECLARE SUB delay (Seconds!)DECLARE SUB text (lctx, lcty, txt$, enp)COMMON SHARED variable AS INTEGERCOMMON SHARED name$RANDOMIZE TIMERCLSSCREEN 0text 11, 10, "Establishing Inter-Galactic Network...", 0delay (1.3)CLSCOLOR 2PRINT "         cHAT oNLINE wITH rEAL mARTIANS"PRINT "-----------------------------------------------"text 3, 1, "Hello, what is your name?", 0KEY(16) OFFLINE INPUT ; "Your Name: "; name$KEY(16) ONKEY 1, name$text 5, 1, "Nice name, I am x Lsh 3D", 0text 6, 1, "x Lsh 3D: Are you a humanoid?", 1text 8, 1, "x Lsh 3D: How long have you had this disease?", 1text 10, 1, "x Lsh 3D: What do you look like?", 1text 12, 1, "x Lsh 3D: Too scary for me, I'm outta here.", 0COLOR 18PRINT "...CONNECTION TERMINATED"COLOR 2PRINT "ATH0"PRINT "OK"PRINT "+++"PRINT "OK"FOR a = 1 TO 1000 STEP 2FOR x = 1 TO 7 STEP .2xr = RND * 150 * 2yr = RND * 250 * 2SOUND SIN(x) * 20 + 180 + a, .0228NEXT xNEXT adonewa:variable = 1RETURNSUB delay (Seconds!)Begin! = TIMERDO UNTIL (TIMER - Begin! > Seconds!) OR (TIMER - Begin! < 0)LOOPEND SUBSUB text (lctx, lcty, txt$, enp)variable = 0KEY 16, CHR$(0) + CHR$(28)KEY(16) ONCOLOR 2 + 16FOR x = 1 TO LEN(txt$)LOCATE lctx, lcty + x - 1delay .005PRINT CHR$(RND * 235 + 20)SOUND 1000, .0228NEXT xCOLOR 2FOR x = 1 TO LEN(txt$)LOCATE lctx, lctyletter$ = LEFT$(txt$, x + 2)lettera$ = RIGHT$(letter$, x)delay .005PRINT letter$SOUND 10000, .0228NEXT xIF enp = 1 THENDOIF UCASE$(answer$) = "BYE" THEN GOTO donewLOCATE lctx + 1, 1PRINT name$; ":"IF variable = 1 THEN EXIT DOLOCATE lctx + 1, LEN(answer$) + lcty + LEN(name$) + 1, 1, 2, 4key$ = INKEY$IF key$ = CHR$(27) THEN GOTO donewON KEY(16) GOSUB donewaIF key$ <> "" THENIF key$ = CHR$(8) THENanswer$ = LEFT$(answer$, LEN(answer$) - 1)LOCATE lctx + 1, lcty + LEN(name$) + 1PRINT "                                                                 "LOCATE lctx + 1, lcty + LEN(name$) + 1PRINT answer$GOTO doneEND IFanswer$ = answer$ + key$SOUND 1000, .0228LOCATE lctx + 1, lcty + LEN(name$) + 1PRINT answer$END IFdone:LOOPFOR x = 1 TO LEN(answer$)LOCATE lctx + 1, lcty + x + LEN(name$)delay .005PRINT CHR$(RND * 235 + 20)SOUND 1000, .0228NEXT xEND IFGOTO enerdonew:SYSTEMener:END SUBJames Rioux                    SEVEN QUESTIONS WITH LIES      bshadow@nbnet.nb.com           08-06-97 (10:33)       QB, QBasic, PDS        129  4516     LIES.BAS    ' Seven Questions with Lies' by James Rioux' About LIES'' This program is based upon a neat mathematical concept called an error-' correcting code.  It asks you questions about a number you mentally' select, and then tells you what your number is.  Here's the neat part:' you can lie on one of the questions, and the computer can still tell you' what your number is.  Unless you lie on more than 1 question, the computer' almost always gets the right answer.CLSLOCATE 2, 30PRINT "Seven Questions with Lies"LOCATE 5PRINT "Pick a number between 1 and 15, inclusive.  I will ask you seven questions"PRINT "about the number to try to determine what it is.  You may lie on one question,"PRINT "and I'll still get it right every time if you follow my instructions.  Answer"PRINT "Y or N when asked a question."PRINT ""PRINT "Once you have the number, press any key to continue."DOLOOP UNTIL INKEY$ <> ""CLS2 LOCATE 2INPUT "Is your number in this set: {1, 3, 4, 6, 8, 10, 13, 15} ? ", ANSWER1$ANSWER1$ = UCASE$(ANSWER1$)IF ANSWER1$ = "Y" THEN GOTO 3IF ANSWER1$ = "N" THEN GOTO 3 ELSE GOTO 23 LOCATE 4INPUT "Is your number in this set: {1, 2, 5, 6, 8, 11, 12, 15} ? ", ANSWER2$ANSWER2$ = UCASE$(ANSWER2$)IF ANSWER2$ = "Y" THEN GOTO 4IF ANSWER2$ = "N" THEN GOTO 4 ELSE GOTO 34 LOCATE 6INPUT "Is your number in this set: {1, 2, 4, 7, 9, 10, 12, 15} ? ", ANSWER3$ANSWER3$ = UCASE$(ANSWER3$)IF ANSWER3$ = "Y" THEN GOTO 5IF ANSWER3$ = "N" THEN GOTO 5 ELSE GOTO 45 LOCATE 8INPUT "Is your number in this set: {8, 9, 10, 11, 12, 13, 14, 15} ? ", ANSWER4$ANSWER4$ = UCASE$(ANSWER4$)IF ANSWER4$ = "Y" THEN GOTO 6IF ANSWER4$ = "N" THEN GOTO 6 ELSE GOTO 56 LOCATE 10INPUT "Is your number in this set: {4, 5, 6, 7, 12, 13, 14, 15} ? ", ANSWER5$ANSWER5$ = UCASE$(ANSWER5$)IF ANSWER5$ = "Y" THEN GOTO 7IF ANSWER5$ = "N" THEN GOTO 7 ELSE GOTO 67 LOCATE 12INPUT "Is your number in this set: {2, 3, 6, 7, 10, 11, 14, 15} ? ", ANSWER6$ANSWER6$ = UCASE$(ANSWER6$)IF ANSWER6$ = "Y" THEN GOTO 8IF ANSWER6$ = "N" THEN GOTO 8 ELSE GOTO 78 LOCATE 14INPUT "Is your number in this set: {1, 3, 5, 7, 9, 11, 13, 15} ? ", ANSWER7$ANSWER7$ = UCASE$(ANSWER7$)IF ANSWER7$ = "Y" THEN GOTO 9IF ANSWER7$ = "N" THEN GOTO 9 ELSE GOTO 8' These definitions are to set up the arithmetic involved in the error' correcting code - to determine if you lied on a question9 Set1 = 100Set2 = 10Set3 = 1Set4 = 110Set5 = 101Set6 = 11Set7 = 111A = 0B = 0C = 0IF ANSWER1$ = "Y" THEN A = A + 1IF ANSWER2$ = "Y" THEN B = B + 1IF ANSWER3$ = "Y" THEN C = C + 1IF ANSWER4$ = "Y" THEN A = A + 1: B = B + 1IF ANSWER5$ = "Y" THEN A = A + 1: C = C + 1IF ANSWER6$ = "Y" THEN B = B + 1: C = C + 1IF ANSWER7$ = "Y" THEN A = A + 1: B = B + 1: C = C + 1' This is MOD 2 arithmeticIF A / 2 = INT(A / 2) THEN A2 = 0 ELSE A2 = 100IF B / 2 = INT(B / 2) THEN B2 = 0 ELSE B2 = 10IF C / 2 = INT(C / 2) THEN C2 = 0 ELSE C2 = 1FinalSet = A2 + B2 + C2' No lieIF FinalSet = 0 THEN LiedOn = 0: GOTO 10' Lie, determine which question and correct the lie if neededIF FinalSet = Set1 THEN LiedOn = 1: GOTO 10IF FinalSet = Set2 THEN LiedOn = 2: GOTO 10IF FinalSet = Set3 THEN LiedOn = 3: GOTO 10IF FinalSet = Set4 AND ANSWER4$ = "Y" THEN ANSWER4$ = "N": LiedOn = 4: GOTO 10IF FinalSet = Set4 AND ANSWER4$ = "N" THEN ANSWER4$ = "Y": LiedOn = 4: GOTO 10IF FinalSet = Set5 AND ANSWER5$ = "Y" THEN ANSWER5$ = "N": LiedOn = 5: GOTO 10IF FinalSet = Set5 AND ANSWER5$ = "N" THEN ANSWER5$ = "Y": LiedOn = 5: GOTO 10IF FinalSet = Set6 AND ANSWER6$ = "Y" THEN ANSWER6$ = "N": LiedOn = 6: GOTO 10IF FinalSet = Set6 AND ANSWER6$ = "N" THEN ANSWER6$ = "Y": LiedOn = 6: GOTO 10IF FinalSet = Set7 AND ANSWER7$ = "Y" THEN ANSWER7$ = "N": LiedOn = 7: GOTO 10IF FinalSet = Set7 AND ANSWER7$ = "N" THEN ANSWER7$ = "Y": LiedOn = 7: GOTO 10' Simple binary addition determines the number10 X = 0IF ANSWER4$ = "Y" THEN X = X + 8IF ANSWER5$ = "Y" THEN X = X + 4IF ANSWER6$ = "Y" THEN X = X + 2IF ANSWER7$ = "Y" THEN X = X + 1PRINT ""PRINT ""IF LiedOn = 0 THEN PRINT "Your number was"; X; "."IF LiedOn <> 0 THEN PRINT "Your number was"; X; "and you lied on question number"; LiedOn; "."PRINT ""INPUT "Am I right? (Y/N)", R$R$ = UCASE$(R$)IF R$ = "Y" THEN PRINT "": PRINT "I told you so - I'm always right!": ENDIF R$ = "N" THEN PRINT "": PRINT "Oh well.  Try it again!": ENDPaul Maunders                  BIOSPHERE                      Cyberax@hotmail.com            09-03-97 (22:56)       QB, QBasic, PDS        214  8346     BIOSPHRE.BAS' Variables:    Name'               Creature ID'               MAP Position'               Head'               Body'               Wheels'               Eyes'               Distance Travelled'               Food Eaten'               Energy Expended'               Creatures Killed'               CYBERSEX'               Children Amount'               Activity'               Action'               Days Alivehsex = 2 '(2/3)csex = 2 '(High = More sex)CLS : RANDOMIZE TIMERDIM NAME$(100, 2)       'ID, (Name, Carnivore/Herbivore)DIM Map(80, 20)         '(X,Y)DIM Creature(100, 4)    'ID, (Head, Body, Wheels, Eyes)DIM Stats(100, 6)       'ID, (Distance,Food,Energy,Killed,SEX,Children)DIM Activity(100, 2)    'ID, (Activity,Action)DIM Days(100, 1)            'ID, (Days Alive)    TotalDays = 0DIM Location(100, 2)    'ID, (X,Y)DIM OldLocation(100, 2)COLOR 14, 12LOCATE 1, 1: PRINT SPACE$(80)LOCATE 1, 34: PRINT "TECHNOSPHERE"COLOR 15, 0FOR a = 1 TO 100x = (INT(RND * 80) + 1)y = (INT(RND * 20) + 1)Map(x, y) = aLocation(a, 1) = xLocation(a, 2) = yNAME$(a, 1) = "nameless"IF INT(RND * 6) = 0 THEN S$ = "C" ELSE S$ = "H"NAME$(a, 2) = S$IF S$ = "H" THEN Stats(a, 2) = 1NEXTFOR x = 1 TO 80FOR y = 1 TO 20IF Map(x, y) > 0 THEN        LOCATE y + 2, x        IF NAME$(Map(x, y), 2) = "H" THEN PRINT "O"        IF NAME$(Map(x, y), 2) = "C" THEN PRINT "*"        END IFNEXTNEXTREM Main Loop ************************************************************DOTotalDays = TotalDays + 1FoodCheck = FoodCheck + 1        ERASE Map        FOR a = 1 TO 100        'Movement Loop        IF NAME$(a, 2) = "DEAD" THEN                LOCATE Location(a, 2), Location(a, 1)                COLOR 14                PRINT "#"                COLOR 15                GOTO 200                END IF        OldLocation(a, 1) = Location(a, 1)        OldLocation(a, 2) = Location(a, 2)        IF NAME$(a, 2) <> "C" THEN                              'Sexy Loop (H)                RANDY = INT(RND * 20)                IF RANDY < hsex THEN                FOR b = 1 TO 100                IF NAME$(b, 2) = "H" THEN EXIT FOR                NEXT                IF Location(b, 1) > Location(a, 1) THEN Location(a, 1) = Location(a, 1) + 1                IF Location(b, 1) < Location(a, 1) THEN Location(a, 1) = Location(a, 1) - 1                IF Location(b, 2) > Location(a, 2) THEN Location(a, 2) = Location(a, 2) + 1                IF Location(b, 2) < Location(a, 2) THEN Location(a, 2) = Location(a, 2) - 1                END IF                IF RANDY >= hsex THEN                Location(a, 1) = Location(a, 1) + INT(RND * 3) - 1                Location(a, 2) = Location(a, 2) + INT(RND * 3) - 1                END IF        END IF        IF NAME$(a, 2) = "C" THEN                RANDY = INT(RND * 20)                IF RANDY < csex THEN                       'Sexy Loop (C)                FOR b = 1 TO 100                IF NAME$(b, 2) = "C" THEN EXIT FOR                NEXT                IF Location(b, 1) > Location(a, 1) THEN Location(a, 1) = Location(a, 1) + 1                IF Location(b, 1) < Location(a, 1) THEN Location(a, 1) = Location(a, 1) - 1                IF Location(b, 2) > Location(a, 2) THEN Location(a, 2) = Location(a, 2) + 1                IF Location(b, 2) < Location(a, 2) THEN Location(a, 2) = Location(a, 2) - 1                END IF                IF RANDY >= csex THEN                      'Hungry Loop (C)                        hunt = INT(RND * 10)                        IF hunt < 2 THEN                        FOR b = 1 TO 100                        IF NAME$(b, 2) = "H" THEN EXIT FOR                        NEXT                        IF Location(b, 1) > Location(a, 1) THEN Location(a, 1) = Location(a, 1) + 1                        IF Location(b, 1) < Location(a, 1) THEN Location(a, 1) = Location(a, 1) - 1                        IF Location(b, 2) > Location(a, 2) THEN Location(a, 2) = Location(a, 2) + 1                        IF Location(b, 2) < Location(a, 2) THEN Location(a, 2) = Location(a, 2) - 1                        END IF                        IF hunt >= 2 THEN                        Location(a, 1) = Location(a, 1) + INT(RND * 3) - 1                        Location(a, 2) = Location(a, 2) + INT(RND * 3) - 1                        END IF                END IF        END IF        IF Location(a, 1) > 80 THEN Location(a, 1) = 80        IF Location(a, 2) > 20 THEN Location(a, 2) = 20        IF Location(a, 1) <= 1 THEN Location(a, 1) = 1        IF Location(a, 2) <= 1 THEN Location(a, 2) = 1        x = Location(a, 1)        y = Location(a, 2)        IF Map(x, y) <> a AND Map(x, y) <> 0 THEN                                IF NAME$(Map(x, y), 2) = "H" AND NAME$(a, 2) = "C" THEN                                NAME$(Map(x, y), 2) = "DEAD"                                Stats(a, 2) = Stats(a, 2) + 1                                END IF                                IF NAME$(Map(x, y), 2) = "C" AND NAME$(a, 2) = "C" THEN                                        IF Stats(a, 2) > Stats(a, 6) THEN                                        Stats(a, 6) = Stats(a, 6) + 1                                        FOR b = 1 TO 100                                        IF NAME$(b, 2) = "DEAD" THEN NAME$(b, 2) = "C": EXIT FOR                                        IF NAME$(b, 2) = "" THEN NAME$(b, 2) = "C": EXIT FOR                                        NEXT                                        END IF                                END IF                                IF NAME$(Map(x, y), 2) = "H" AND NAME$(a, 2) = "H" THEN                                        IF Stats(a, 2) > Stats(a, 6) THEN                                        Stats(a, 6) = Stats(a, 6) + 1                                        FOR b = 1 TO 100                                        IF NAME$(b, 2) = "DEAD" THEN NAME$(b, 2) = "H": EXIT FOR                                        IF NAME$(b, 2) = "" THEN NAME$(b, 2) = "H": EXIT FOR                                        NEXT                                        END IF                                END IF                                IF NAME$(Map(x, y), 2) = "DEAD" AND NAME$(a, 2) = "H" THEN                                Stats(a, 2) = Stats(a, 2) + 1                                NAME$(Map(x, y), 2) = ""                                END IF                                IF NAME$(Map(x, y), 2) = "DEAD" AND NAME$(a, 2) = "C" THEN                                Stats(a, 2) = Stats(a, 2) + 1                                NAME$(Map(x, y), 2) = ""                                END IF        END IF        Map(x, y) = a        LOCATE OldLocation(a, 2) + 2, OldLocation(a, 1): PRINT " "        LOCATE y + 2, x        IF NAME$(a, 2) = "H" THEN COLOR 15: PRINT "O"        IF NAME$(a, 2) = "C" THEN COLOR 13: PRINT "*"        IF NAME$(a, 2) = "DEAD" THEN COLOR 14: PRINT "#": COLOR 15200     NEXT aC = 0H = 0D = 0F = 0FOR a = 1 TO 100IF NAME$(a, 2) = "C" THEN C = C + 1IF NAME$(a, 2) = "H" THEN H = H + 1IF NAME$(a, 2) = "DEAD" THEN D = D + 1IF NAME$(a, 2) = "" THEN F = F + 1NEXTIF FoodCheck > 7 THEN        FoodCheck = 0        FOR a = 1 TO 100        IF NAME$(a, 2) = "C" THEN        IF Stats(a, 6) >= Stats(a, 2) THEN NAME$(a, 2) = "DEAD"        END IF        NEXT a        END IFCOLOR 14, 12LOCATE 1, 1: PRINT SPACE$(80)LOCATE 1, 34: PRINT "TECHNOSPHERE"COLOR 15, 0LOCATE 23, 1: PRINT "Days"; TotalDaysLOCATE 23, 16: PRINT "C/vore(*) "; CLOCATE 23, 31: PRINT "H/vore(O) "; HLOCATE 23, 47: PRINT "Dead(#) "; DLOCATE 23, 60: PRINT "Free "; FLOCATE 23, 70: PRINT "Total "; C + H + D + F       IF F > 10 THEN        FOR a = 1 TO 100        IF NAME$(a, 2) = "" AND F > 0 THEN NAME$(a, 2) = "H": F = F - 1        NEXT aEND IFIF D > 10 THEN        FOR a = 1 TO 100        IF NAME$(a, 2) = "DEAD" AND D > 0 THEN NAME$(a, 2) = "H": D = D - 1        NEXT aEND IFLOOP UNTIL INKEY$ = CHR$(27)REM **********************************************************************ENDAndrew S. Gibson               COMPATIBILITY ANALYSIS PROGRAM zapf_dingbat@juno.com          11-12-97 (05:34)       QB, QBasic, PDS        112  4795     COMPAT.BAS  ' This program was Resurrected from a book called,' Announcing: Computer Games, for Business, School and Home' For TSR-80 Level II BASIC by J. Victor Nahigian and William S. Hodges.' This program will work in plain old Qbasic (or the old GW-BASIC)' interpreters. When you type in a person's Birthday you must use a comma' to seperate the Month (MM), Day (DD), Year (YYYY). The year must be four' digits long !   E-mail me @ this address Zapf_DingBat@JUNO.COM to chat' or send some of your code (postit encrypted and less than 55k).1 CLS ' Compatability Analysis program.2 COLOR 15: LOCATE 2, 28: PRINT " C O M P A T A B I L I T Y"3 LOCATE 3, 28: PRINT "      A N A L Y S I S     ": COLOR 74 LOCATE 5, 28: PRINT "  By using the biorhythmic"5 LOCATE 6, 28: PRINT "cycle theory, this program"6 LOCATE 7, 28: PRINT "takes the birthdays of two"7 LOCATE 8, 28: PRINT "individuals and calculates"8 LOCATE 9, 28: PRINT "when they  are  compatible"9 LOCATE 10, 28: PRINT "during   their   lifetime,"10 LOCATE 11, 28: PRINT "It also gives the  average"11 LOCATE 12, 28: PRINT "compatability  percentage."12 LOCATE 14, 28: PRINT "Couples  therefore  should"13 LOCATE 15, 28: PRINT "not   feel   insulted   if"14 LOCATE 16, 28: PRINT "their average  is not  one": LOCATE 17, 28: PRINT "hundred percent."15 LOCATE 19, 11: PRINT "Program written by J. Victor Nahigian and William S. Hodges.": LOCATE 20, 23: PRINT "Resurrected for DOS by Andrew Gibson."16 LOCATE 22, 17: PRINT "Copyright 1980, 1979 By Winthrop Publishers, Inc.": COLOR 15: LOCATE 24, 28: PRINT "P R E S S  A N Y   K E Y ."; : COLOR 7: LOCATE 1, 117 ZZ$ = INKEY$: IF ZZ$ = "" THEN 1718 DIM A1(30), B1(30): DIM A(12)19 FOR I = 1 TO 12: READ A(I): NEXT I20 DATA 0,31,59,90,120,151,181,212,243,273,304,33421 Y = 022 Y = Y + 123 CLS : PRINT "What is the name of person one (1)"; : INPUT W$24 PRINT "What is person one's birthday (MM,DD,YYYY)";25 INPUT M, D, Y26 E1 = M: F1 = D: G1 = Y27 GOSUB 7228 Z2 = T: K1 = J + 129 PRINT30 PRINT "What is the name of person two (2)"; : INPUT X$31 PRINT "What is person two's birthday (MM,DD,YYYY)";32 INPUT M, D, Y33 E2 = M: D2 = D: G2 = Y34 GOSUB 7235 P2 = ABS(Z2 - T)36 K2 = J + 138 CLS39 PRINT "COMPATABILITY ANALYSIS"40 PRINT "----------------------"41 PRINT42 PRINT "COMPATABILITY ANALYSIS OF "; W$; " AND "; X$; "."43 PRINT44 PRINT W$; " was born on "; : M = E1: GOSUB 9045 PRINT STR$(F1); ","; STR$(G1); ". On a "; : J = K146 GOSUB 10247 PRINT ".": PRINT49 PRINT X$; " was born on "; : M = E2: GOSUB 9050 PRINT STR$(D2); ","; STR$(G2); ". On a "; : J = K251 GOSUB 10252 PRINT ".": PRINT54 Z = P255 P3 = ABS(INT(((Z / 23) - INT(Z / 23)) * 23))56 S3 = ABS(INT(((Z / 28) - INT(Z / 28)) * 28))57 C3 = ABS(INT(((Z / 33) - INT(Z / 33)) * 33))58 P5 = ABS(100 - ((2 * P3) * (100 / 23)))59 S5 = ABS(100 - ((2 * S3) * (100 / 28)))60 C5 = ABS(100 - ((2 * C3) * (100 / 33)))61 PRINT USING "PHYSICAL CYCLE COMPATABILITY (23-DAY) IS    ###.###%"; INT(P5 * 1000) / 100063 PRINT USING "SENSITIVITY CYCLE COMPATABILITY (28-DAY) IS ###.###%"; INT(S5 * 1000) / 100065 PRINT USING "COGNITIVE CYCLE COMPATABILITY (33-DAY) IS   ###.###%"; INT(C5 * 1000) / 100067 PRINT SPC(44); "--------"69 A5 = (P5 + S5 + C5) / 370 PRINT USING "AVERAGE COMPATABILITY IS                    ###.###%"; INT(A5 * 1000) / 100071 GOTO 10972 Y1 = Y - 180073 Q1 = INT(Y1 / 4)74 Q2 = INT(Q1 / 25)75 Q3 = INT((Y1 + 200) / 400)76 K = 077 IF Q1 * 4 <> Y1 THEN 8178 IF Q2 * 100 <> Y1 THEN 8179 IF Q3 * 400 - 200 <> Y1 THEN 8180 K = 181 T = 365 * Y1 + Q1 - Q2 + Q3 - K82 T = T + A(M) + D - 183 IF M < 3 THEN 8584 T = T + K85 IF INT(Y1 / 4) <> Y1 / 4 THEN 8886 IF M > 2 THEN 8887 T = T - 188 J = T - 7 * INT(T / 7)89 RETURN90 IF M = 1 THEN PRINT "JANUARY"; : RETURN91 IF M = 2 THEN PRINT "FEBRUARY"; : RETURN92 IF M = 3 THEN PRINT "MARCH"; : RETURN93 IF M = 4 THEN PRINT "APRIL"; : RETURN94 IF M = 5 THEN PRINT "MAY"; : RETURN95 IF M = 6 THEN PRINT "JUNE"; : RETURN96 IF M = 7 THEN PRINT "JULY"; : RETURN97 IF M = 8 THEN PRINT "AUGUST"; : RETURN98 IF M = 9 THEN PRINT "SEPTEMBER"; : RETURN99 IF M = 10 THEN PRINT "OCTOBER"; : RETURN100 IF M = 11 THEN PRINT "NOVEMBER"; : RETURN101 PRINT "DECEMBER"; : RETURN102 IF J = 1 THEN PRINT "WEDNESDAY"; : RETURN103 IF J = 2 THEN PRINT "THURSDAY"; : RETURN104 IF J = 3 THEN PRINT "FRIDAY"; : RETURN105 IF J = 4 THEN PRINT "SATURDAY"; : RETURN106 IF J = 5 THEN PRINT "SUNDAY"; : RETURN107 IF J = 6 THEN PRINT "MONDAY"; : RETURN108 PRINT "TUESDAY"; : RETURN109 PRINT : COLOR 15: PRINT "Press any key to return to what ever you were doing.": COLOR 7110 ZZ$ = INKEY$: IF ZZ$ = "" THEN 110111 ENDBert van Dam                   WILDEBEAST BEHAVIOUR SIMULATIONbd1rsd@usa.net                 12-31-97 (18:22)       QB, QBasic, PDS        236  15498    WILDE.BAS   DEFINT A-Z:DIM SHARED K,S,B&,Z&:V1 'Created by PostIt! 7.2SUB V1:OPEN "O",1,"WILDE.ZIP",4^6:Z&=11355:?STRING$(50,177);U"%up()%9%%%7-%mj&nH%t41GF7I%%\/%%%1%%%%xs.fu.U%UVSuUh'f+Cp>#(JEcU"s7:36;m)Cv(yF(;YJ9we17Sg.\5R,fI(6>,grJO)S0g5(7Z+::jf7xbajV%RuR?U"mS8E8ze0MJeIYIh'9zvq_<G='fq,8W=g:C\cih^'tsbnSeID2n*44VgzyJGPFGxU"yYJdUBlH6fX<4aB-cwtno]hWsoQhn)=r\nU7VL*(=ldj2w2FWNd[caaM&zhbI2FU",KFNB3vAY&kXxcwb4xu%o$P^ce<s9hugAPJUdij=HyGJY>CsCI5DvJyzDt9]o.PU"3.V>7mw&=.tYKaYMAmV:kPdYN,d[#)dm-7[]1N%Eo8f9/2CUSyr&iV?^dBEF0/^U"7\_ye2+iR:*?cdQwe41hl<TiK9KX?,d)ul?<xsj\ZZMYdqHBg'-Xk5J)km%,mg8U"H91#8OrX1hj57Xs'Q'Q.2uU'Ja2h*D5GPy9=X?+[:YymG1LQiTwQYu/.VL/+Qk&U"rRD7,52#EswEHt1n$V%&)OawhbkHLnlFJ5e15p\TTNc+O:3q?:R?TeRRj#G<8aZU"TglGyj88N/9HKFE.XQ*vf9,SbL,nJEcxnm=dOMbP4wdr;\H;JX0kQ_,TD,avbMSU"be1[H0i61RnXJOODT_gnTYo,ZIkuC#2y9\\YsSj+ljVpd&p>yh**yyTM['b1r?\U"]S>HB\xP;4-mW>KTA4\%K#RwPKeHor;0J.I5$7D&sG;B/P)56ozj,W[*9*.+iZCU"deaz,hIOsV='Pf7o,sZewuvNpO%IZan*GeI\QBOkb4/rU)#8dj?G-D*)\YTJj+CU"fe1C:pYH<'gPpbZ,(6zG:gk,=7E;1*q-Hu\.ZQ&DwOft)AHQv[';)324IR28S_)U"'k8(+F&ZTl%G-JARM&L34;1%2;azmWLeUA,ON%Q-EPQ03vZ3o/6/,HG^zrqPSuIU"Y=S_H5:O=n):%;Yli-4:2<&'[9<*f\C<s)cb,,F6J/R+??jL?dWh]PLngh,8VhAU"f;DlCVcWElL.(acNX=AIMUFMukM1\)KMHREek,<6E\K3a]bfDa$E;]-ukF3[pkEU">HAcl>rD=c\n.EAQ]44u?>Ffiqt.Dix[drqv]L'ANjeK8L',iq58P8mGX7_;nA=U"Q:Lg^8Ygp]2cUYeC-pms,o4V^P$k</fMmcfs\Ct/p8Rp;7VTbrD<^fg,,f]L/csU"05ld0nMZ53w&W6^Y1p]'RprVMqqBHY?-.an/P2FRrMO(+t->\dt&Ecb^LDFw8DfU"[-ARd_4Epce]<#-%]me(r;8)49qMov0Si\^h,h#g_^a+koTY['S3bB;Uo(c,#NaU"me%NVs^IZavT4_Zt,oBWZ\d99e>0RepA6;<A1J^NvSHpJ%s;OpRct7dk*E<U^4CU"+SJ7=Fib6N5;,Yem]w$eDN2]T3IRV4e>S5cmmM?oDp$c3kM&W:PsNz=_#uh%q-fU"tIx>4H:ttDo=P=K&%F)bbtYj+Kt:k*R?#ip<D7GPK<f?](a4(yn[y.L6]hx7qIBU"j=ujgC?8_nxg5:,v]n92H2JJIaTeKsoW_4$9;CEBL*I3caBXcqEfeD/e%Y3cywsU"e7spnLICjo3FCE[LH?%oL;wyoYy+*y;Q1,VBo3vjOll.T''Cd0.\p4*gzU7''IjU"*^GyHFmP[.Ock_1rQ$FCqO3>3Y_Tj:BDE=pxR8\q%W30uS)Kq30jK#%-$'/A%^iU"fo%mNS4TqJaXGdeJebU[xg'65t1\y[ilcPEw?j<34K#>'q(\'D6JoGC7Pz*kE\7U"9YzJOT;b#Q\hCgx<a1E98[azaFN;OvpUOnWb;lW6?A_LY;:*Adl9\PgG8J05[<WU"UD[JT90EG(6+T(m-zgj77t9cn\E(4s\^cPx,ZQ3?k9QPx?k9.Q6mx_G=17>t9nYU"3A.Ny#K)TeU2\1Q.OQV/(f,vg+7&/0cd#fK=:on.RL*i)O_#wDkxh6P<YVZVUuxU"u5aBs_MJ9zDf;xJCx<?YKk8surBg/=yIF_Z$2fQNfFLN&'Un.RIvL%X&+,-_P+fU"7LHBCFgF>+jBnNTk_u=7N:dtIfCtNazkDuH=eD4h0)h#Gj1g&I%Thbm72MN^e,2U"M,8Y(X8?YqvmNWOn4x9:.MTLWiMxzhI:TSeI$]7R$IeE*)AeQ>4d_KVEVQ)L^18U"F)k<_(rOtWCFV$j4&Gq%cHq5^;L?C(JLPFdR5k[>Wa18(pwWq88F85>Xi0WE\dYU"1n'*.^Fr;^:$5X1-Y7?U(.v&;;rD,dE^wv6jtqX_spkH%M_xny2:(2ZCM1rA#$GU"XySSEG9[(jt$ldb:DcW:qQbWU8:rv6taX*sqZKG$zMkm_u814f#:tP:M$;ChYTHU",<l,nBm-8%hiN#RGI,pnR&QbVUOfSR9C*?2ctzD^npYvh&mKC#/o=yihYKi4vbJU"F^X8(5Xvvc=gW/eI?\2SI(X^io55JhVnRgN\jy=OKd5F*hcLRzA[dJE)?;JC?g#U"v^Q7smZfuaxO^-l79]Bu%VzGeCsj8n:[L-rI1E[vu.U(VUOwt#Sh#Y+=LcRz#YyU"&P%s(KIa8oCueP5H9$pw3?Wuu&$dYt#ftODLKcePNS.fNHeDD?7%YnToS9xn\$9U"6o'9&;9A+zOJBI,w;B)jv#'XDYrR^b2uE%<>Pulb0]ZL7]fktJb?UHH(]%4A=_TU"LCtYn:4]6$?u9cPLf)I<moP'.j&7w0Dz6qOpvP+*v1qp&Lg0Gk_d)'A:>oBhtn2U"mopeC1$&+b[1N<*o08xhoH;kBK*v$2N.b)/x?+^A/+nT7hgCt7At_f[L:c3meFyU"?1KIr>9Ye'yw%Cv\*3b_C8NK.RMDo)tsIoJOBg+No0ytXq])P19Ha\w$y/_rF^KU"l)/t*&]T+R_$<L0;vody:ki/Dc-qbY]Cv0l(ZdKYR6&h*:Ju3<_hrl'(+ieCr=9U"wqt]M#7<R<23:R?(SRdgq*M//xsMlSMS<cT0^o/07Malkl7>mI,aj&t>i,q+3$DU"0KB?:YOE]k:Ir-4f]Oy76*8Fl]L#xC)E(>o5Ph<k_(uInO?=-ht;CD\P/Zmd(<UU"mdxP6aVLn#-*5rA,\^XhG/?2F-L&w3FOUVd89>oov(-TxxgBL.5:u&HU9WJr1bGU"3hMnB.5H9IJap<C$/O0^7IR9>pgva-X-4_tbZ\SI:g/^eu>mrItqS,dwLA$FQlfU"J5d,La.Nhp%a6I)B%3:8gB2'1iCJ\ne.,eq-E\5BB>/O.QotdXI%L/p-D#0unuqU"(YLNU3=K,VQP(SF?7pDiZ\[uE6i,SS\glV6#>f7z]pMLrp-<U??48bK.'A0+z<hU"UMV8LCSe%q>aVZ0t-2t4wCPBW)d.qI^?SchrAXA/b6,S+6JqiBBneV\RedMC,s9U"VfsJ49QUt?A.tk3[]\]_V,%hMhcRI5sU?\Y1gx(6>MvM#sgVS_mmw^oG#wo#p#IU"6BGP+5hkX4cIJAo3(R?C3+/'((OkmOn:F8G]<](7FCiiN8r%gI1XhH(Yh'FT<JLU"e;2snNVMFd'ntWq[KJ\\4VR8r6GiBQ]rEBsi$1bCH43oN=2sJ[GzGZ/Su8\nfW6U"2ZM#3fx)nA-jnQ)dW_o%l:=yhB48C5eX#U5C&*)hA^Op6[I$q=Y;$dt1nIlUmuMU"GK[vWNz2YCBL.mfuj^X(OwUa:GfA1$5kr#K#QBlqhMb*NJn9laNv],S=BmzYXjoU"3$C4)\#*2]r*FlcZ0/o]dY1#xn%1k*8.>?Si-q+5'N#HRXc-JM?S2l#S4<41y2rU"rgB%BsX;5'\j%Zv,:gM/k5I(>rqRI+kh5d1r53R?K931LB[fJ5rN%nmmie8vLkKU"?ZDK^;Cg%JnE:$YI3yXzsqPHcljR$P/jy$m#'G*Pd+7u(0Kwbn2SUjpQB%3fAcMU"Vhu=?BD-LSM8C[1(cU8<uW1V(gIRqpv]LeIMCt$AtK[obov;]Ohid]IyEA1Ls<2U"usyl#Fb+HKViqiGzg=C&d(XnNiEWJ[.X*s2RSdg7ks/wG5u>u>aL$(%kebk=QWAU"qFeP415qRO6EuE1\6lX28m<F\X'KKP73%&qeT$*?5e<'IC.ira8]E^qER=*mc^nU"qI$*pd3Kk0KuE:G5sYTR]Tn=>k?KreKcP.NXD6cvp6=(ag\[a&bx82mgHqcI<^3U"EJXsn?sn=1q6QwKYQ^./25A1+iPnXu:_<[[uB;%woAij=-])7shRY5+r#v(.b[>U".Bt8jj28?R8-s+*QVWJ(tX_hIJiquqBx/$nNR95=4Y9?3PDoisDZ3CT$:C0)]XXU"b\Ule'n$//KGqF+o2<RoEm'AcId<[oOl2n2WZ*-D&aIf>_annBUOc(6UYfHVz(?U"fK*i4SFtE0L.>R[nr'WJd7<hM:?Z(Bnc%?.qfa\si541iL**]lT+t_X*#IX#Va1U"<8d,X?;7ATjqWWvad^Ck&Hlq])q?P.pc+C*D9D'_d70bxWBhV]F#z7c5My?2X;1U"Mz+y[aj/mVENG.Ve&WR(KW=qYnLDlK0-9/FUj=rKkzKGfieH4X#]8[eXY0Fmfr:U"-HUd/,^h?9[T,2S;;?t+I:)zt#RhK-V4jN)fjb/w)b8-I0A&XEp+,.8bNoQp0qCU"'aLhs1g+Q3;GsJoQ>\:WO=Jis,Qm25>;GqVX/8r1z8lXZmI+>U=SgJbKMFZc/N3U"ZO\E?(T0WQ%qtHwYS'OX>O5XfUo^SoqY3vq0(#5v*9)LZGUnoG;ZiQM;W>rC+oeU"C)_TGB3U^r]e0[U\x\R<[XyVh6iJmjSrpN8_%<'Oa$traN#<ovWnUem]l7<(pTXU"\RJso/#<J,.T5H0jsVD1o$6tcaf9C+G0#cN<i6'YHYB:<PD-$qFLdptf<rOl_,tU"-oU,F5BkXx%jd\bQll=GVQqj,V7,'\k[g\Nm9Ti2_&?QD8L/E(*/EpyM(3/Z)^rU"IlFU>MQ+j(4;]i]*kI3Jvc3ON;%rRT0uT25=Anlb^?ki_+Yre.mQ)?SDqt*Q;*,U"$,J>J]JB<=BoWl0YVXP<Fpd<4.90wX+su4UDOMUv;mhBsSY*QTjopIQ]CmZ7k7PU"oeP9q+.zWko]ricGzMtH73>AUG%OOcmY?Vx\5.^<Z20/^4,t?UwA2>a77+9nZkwU"YK4NHY2cQ_V,^s9<3.KkR83HB]wTa=j?*,+Z1]6T$c)5#uY\2iJ7Z:5o0z,b_)<U"O,Z1H+7SZC,7T_R>PoQI=s3waLn-Nu'Ta3jfxnj8(S^B8DvopJ[6u$O+E''/gqrU"%3Y+p%]oV=];;bhMHU1(+/jqfOGA#^)=h#E]=GOIgEAEf):q)2)?MA>Clee[z2uU"E;m:P9[A,Kl(fiEJL]0+Ar:t2d8kG'\o8O.^h$Wq^B$0w1qY8t;j0X938Wqv\AeU"-*i)MmFJa=ALXfQjc7>pK,rJFVc]O$j5_nfmdA1TRGX\7U[l4=7Zouo;stIwm>sU"5F=fiSP>O;LY^U:H0-(Xp$(lE$HaqmQ-'LpL)&s#XDHxni#.g$iptLe9>p>(OBbU"cg_F(fO$Eb*E3G15eoLUDEc0Q4GF/O%y<c%-Lf%?^)L/NZY(^eEJ*blN39^%O[UU"#mu<s)42EQ5Bhp$-6jIGMIk2c]HffK.5o)'_VwaK/^7*)M>?Js\u7N1t<+[U:PlU"#7Pjw9UyzQ3\&pBXPIu8jsoJ[H%'Jx:.RrJX1t0._R2h01tj>/U'):s2$HK2/9(U"FG_o),7>Yc<AZH5A/=1i>$dRN^(,j1(w;0lzoL(/D).C)QYFP?rCSFB,$vIdzx;U"iT>%75Y2S/(T%fmf$78iL$<c6A*[_7coCjq/_*Cq:ZJ/zYb_A__nKBhH4ojeu?SU"_wXUnUmg],c.O8h]&2BgRzrx&/*s'NsXKL:jzZs,M'FovWTWxJ*:u,PZ%9DC#4_U"iVa9&y,)&<_oC=?9wh\j,**u:F.18hS5mw<1qdZpPeoIr(bT9Ts'pe)?q#\AWJ7U"YrI.7mFV<\Zb#*u9nl:n%?uN=nHI[>OBi+&(0YMBf6_u&]s<7;PNDM]e<L9_^?kU"DDQejrB/rO;R(YP.;.[ETCCiKX&w$Ge<6aCp0x%4up(%)9%%[%-%9)#kH.he&%pU"#8%%1%g%%.#%%%&%nqij%SgfxNf*<Bd#\awT'OvVOcR*c]OYHCMelD1fPNe]Mw1U"Z-PX2'FbJ0*G/OI%XR(+9_V5MvpF#915U]c^f-V34l/vGA+*V7Y?BV4?\*W>Gp<U"r/;YlUtbkbS$8'k/qf8saXVR?Vbv,;&)A'_URFv&MT7x.O35S0m0/*/kqdmWe.FU"e]%M]%DSh(R^^&NA(N_586G-P*J6.neY(//K;5YvFeY>W;6+[_pFzYt,7;(1S$LU"c<RU?s^6_H/([Sv<K79Da,7e(C;*CuaJB.IYBJlDRkSL?e4/4$II%G2t$aDp_PgU".X25JdfS[^2r.'sK/6]0>p1ZjD9*>3?SL)wr+gnf#]xP8D1*TGgG3x&e?PeVVQ$U"M2T;0<dA49p:?XF1&<T*G/7$=tgh8g?,l[5O2*AXR[?#jmfmppP,nqt1^PsRcznU"oC7-^BoO%G_E=eKU3/sisO,D#WpfZG(:W/%>x^7H&_Gh\*S.LEU#M[Uu-)di)l7U"<&c&z;_wF\;-I4#w7KZP+u$9kjB\if<?HLbAlT(4R<,,,ZE6j/TfFnx)CGxazYXU"^LVUn8%3;ef[QF8?68nmmDB.x.<lZ)+ua?2f5EctkhKMo4(s%ajnRX87]9b\of\U"*I0E(sWKjU*/.M^#xQ,r+)P]>k)]4?gq_8GJegeYl-S0'%(]V]?i2hGp=1>OhM6U"TAq(u:+i[_Yb/cPkL4$9SqEDjl3,y'\y+HeXM3qY;A1RAQkB:wA0Sgdcree-\;6U"QJ:PX5GY9J=NS8*%Y(P6oM?*#A$xtRXD>DDh0#4I,Xfz)q^G:&xJo^ap\*+sTIAU"Og,w#>[<>p%Ueb.<9BdSv[fG<d)oYq;IXsA421XZUTOCFPr^/t_5TfjT)4%?W?mU"?qa(8?QmISyy*/^q:eIcX-?+22i(u,<<>aGkj/AU.t'fbqKV)*qKxfmJ3++G$]&U"R^XUhN>T#u4dZ%)Q<&3U_+V)FZ6JDKFF.E23mRkNA(SEh[XPKAOJ&A3Nfe[v%:xU"M=frjkCLN)94lr)1d%cm*0Q'_;pEbTXGc0)YH8ugH$n,o<v+Fh'2'X#pvr&j)%%U"E8xCKOe<z[]81V=4%1BK8B4]0UxC^rqg%;FTQj5,.J9PUNBD789j$DH&i'X\gF<U"i$Tk>86Afg;)7WxW1e)XUb4S/X$#V2t_tTWZ7+l/9WS(<c=k$%XCTb^3FqFaDNGU"7Y+mt]JEMAx&)NG#1SNGPjst2fT(&xQ=33NzDvdsW$Q&v^8*F?ot+:>'+'Cs(cOU"F0+$Al91Y$\=ZGZq.N6qH^hdl>+<2m7JI+E%67sxND[JKum[at6\hmDdD3UH-irU"wU]hhi:R2qKpZKb8f8i2et;6b6A#;q>$qcEQRc3+qP'l?byG'79)7rY75DgKDK+U"_^.^:O6'?KBF6:N$oAes_TQV9jvvFr5S6Z5/16>QuE(Uh$jGafQJGPU/I:HY)0-U"1nWGBCQ-O$dA8V,+7$p'Ug-6KB#Xp7#$L1[0Ca8^(.;=_>CQh7;5aj5xQ-p^N>yU"OW9;eQ(uj7kn]'wuJIP*FDB\Kl]7[X1=AcGkNqA9GzpJx,0I#_/,H58I-QK>$6JU"p0x.)*+p^W0h(/2\ui+1C[MT(9_AFlq$f2LuiNB^ubaV>qNm:qu[VRNugGd0cP4U"$h](SS#o)<YOQ\#^.W7Kr..)wcm6L%Q$[&zjSrq>TMa7e^w3*mgwR1VN:n(=k.OU"TY2Nk7#][%[djn0i3JFEr(KekwnwB6#w$Jjjq0OOVbpLRO0IXQ[57a5;to18A_nU"Yu)hQ;XyB5Qm8,fWhn'q2=X*a8G/LFhuuiiiUt<3vAeSi-&k3W7+7:f-hsj554ZU"S<DTM&22o/GVW&R)*tJ4%^<rj]fT/^5qpctfXttE6nftBt//EIGgKe63vWnNwIgU"I6[_2Km8#NK6]L%Do4KeMk+xem^L11E4BnEL[iadJ9pBC)[^tTfW^bWn>[a<]l(U"]2qUZDj0R#+R6-u7^4^0RCEO0+i)%+?=56orzG/t]O(0RsJ+80ah,OBA]6:)SI'U"+Ym:L60?2a=v9gLtc_Sm'V7LKOf#;oYEU5+QADy]'P82\WG0?^XC8G'Q,UOF7WgU"?O=[7bTY;2.1;W,A^Y295iX)H(b8ITZA8h:xde%7RG%S-bi$O\T4?I=&'6z1A8YU"CZlsd$1r;'B\$1$#3TV0GqX*g'a=QSn(UL6olZ1>q[eV7H^kI:_SKZ7_]wg4EF'U"RRFo,lpsIGPk?;>4R.XGgjD7GSDb[LU?md_X%LUF6bpbAf]iB.M3T8OqDu1fHXnU"[e3PkJVO+X>WN:o'#8[9*UL-oDSQodT8&8//LkeFQZIp4R(&eF2ge,U+^Jop<g.U"M5)8VDX]PG4;RRdp<qWJd3#pbK<?XAG\SYRyIEGr&o0XK#m[m3vomY)^p5[Bqu[U"ODZxxc3[3H>HPSlSXj?O%dStcI.310Gf4j;AC7]Pl#EQS+.x&EPil:%5-<vzZPtU"$7c%I?kM)V.9PCwhl)gph044$$rPa=lQ,>r+]U7CfLhlegopt#7<.?d<L(ZTo[AU"N5NDHB3daOFd<8Gj)<R']/t[S#344L?dD,4G2X^X*&GGz'ce;N^kqjXPa,gej)lU"(:c+.k#E^FDo*rQNAQ6#5e]H/Jq%$PM,D2hEK>8e#i4&EPK/>MW)D0tig0K^6NBU"f]UG2pJT.G=av4g]VShh'i%q^n&UPU(/[TUtAtU>uUoWm:>#-()=++fi#rM0D0kU"uW[[(D].xg12R+[l>*+=^J.^qNcTV^0f&T(G(.:JTZw/-q6+u>YioP40H04XIDNU"E.Dp$kcJu(\p8>]J^dd=+'mk/QFI4M9qx%T1NCjVKd<1mr8$K&x2reYzRd1#-?jU"KT%5/'h,]b^>nbuZ:o_MdGiJ1\T[eB<q(TYfd\dh/=dCcp;0YaEs[+\0xs5qR9TU";yZ/x&7an?Xqe^W.I--sm)F*xmg?U^/78x9P0D(s3B9EIgMX6;[=\\WO?:LOK%+U"S.Q:,ICVRrqfYwRc'$/9'NTV5(<qY)=NAaE'CMN1G\$^23K9M(23jMicl998V]aU"4>erlh-pv+(^YMD6Ic>n$Ls=k9mcy1qpRPTWGxIkX(n8]RO4UN*0_D/:.l)f[;;U"O_5/Hnhi:lZ2oFf1Y^9TY2AWQ+'o&V4DHY3aN-M8?.^Em0FDHT,Aph2HAa-vIrlU"hZvwfB<slD_[]/2PE6KULT>yfV-fqoODJG<owkS=F,6VIb>k'+Js2qV<p=t]Jb9U"Dy]-smKlq]piV;J-,7Xv+tJdjfcRlM^0rPj$wXrT\-AB3P[f1ShY<Vgf4i$5F$,U"C]J]7<c*73+b$4eWwc'Bn$vk.+)RFnXcgNtv$O.\rslL1ieYy\0$j>kGft+$a0kU"%mQqVu*[Kx#=d7;snMc4%GjZLaZgs(&Htt#BHvQRb+(qD]SQlI9A?A?K&o+,rN_U"%]YEx^2,SoEI:Z/?H:l(LfN6E-*YLZI)pu51FRr^xf4SM;x=dr$8pRBx0jF>RRBU"0ef<*gqTE&daT-IR>eicFr\EwG)T\t*\&'L#98%AAQ.m(h9YbGZUj2B1C0_<]$2U"BuI-:[<WG=h1Ixul2Ok=ZW_8*o[)1E+<(:462#C'i+%aePgF;=WiZ+=A7b9%iWGU"zu-<Oq48#<GOuict^]eqmziV+P<4MCw8SfWUY'?)':A5f2yIC29.zJ2q.wUIGVrU"e6-4E]\,^%c5l35^n9sj=T^?(t&F\P_&nm^g/7vSn$(E^QRZ+69Py51-Z:Y1tMZU"n<Jd1s^vZYHW-;n<7B.[Z#TK'\FAu6R]c+lj;tJYa)]2ckax:87H9uXh$5QgbZiU"u/J4[LYHcl#nojj&j_H6O\n#v?f(s#,p%n;3+.J#)myPoAC/nQG-?n^jcurM7+vU"mDfUjE-RPgO=YzJ:O<Et+U3Q.3A(h,F2OS;Gv']7)BUQi7T(JXmV($]pf&jWlwJU"eMxDdPM<'f?k;XtGmARNFvW^1\X^(*jVsJt]j==[LBesA+*b8&uL[n=\_d>(_nHU"</&__eW]/g1fj/#L-Pi]kgVU.DK[:KN/v=Flu4foU.*%7GtMgE>SLwMvsVLFo6=U"s\eY6UAMT;cwne%4<G;z<v;+;%Y7AB&.hPE)b\=xROo.4DCzB(6DLiS&DT90Lo_U"4ac=su);0U,;JZjKTZIC00kN04NZ57u44.fQ:fQ-h<i(0pVKG[kMU4Jqj0$Dcu?U"[OD*C>\io52-fHc>-WVMijM[EjZlv=70QQ;fJ<I>]j$8$<un%3rTYGMH.9+tgUlU"(Wx%oHm_Ek7BfpnD7pp6fTlkrhsd%&3D0O_YD)mj3sON(:a/_+Kd3kKZ9ek]HcgU">1-Q_TOtvm('j>xN^F9^fHY]%t(MS6QJ:AhL.ByH1sli$o=KnB&hKVJh/]%#d4LU"p(acx2]$d#%[H>*]V3kwpmKKiMIc46l8cRQNC3B;[fJNP5oUrR<B8s5[0K1t.b=U"31cz_Wng,*Wg^c#bbK,>2B&xmqhQGV4/>-qG9818Z?imu_MIxpDVHz0n/O)=Nc.U"a3_y5ywVNYbnM$1YK#'KUqCiSd>t,kS=17Uys1JI5<aUe<E#tu7R/A4mz'?PgN7U"<)&<RoKa?OVl=4:;Xgq[=z;K2iy.iGeb_8UoRs?gVU_qTes?3i75aec-GQnPwqDU"QVdTg[W9&MTL8lkxe*aoi\x=OP$vT/xtwSavY:;nhJ+*epDYWJueC$+gHk;,RURU"8*r/Ec['j8SeHi\8gBUGiOU<4xkx6.8xCf>3vnKcncE2]GU*-X(Ag*VsHH9ZDv7U"mb/,\5Jsq^K;A.2bm)A/'WnvfeUT?>X>E9w/Dm?nUmgjV0vv(SceT\0n'e.[4yUU"&z9D[ZkVg8CmgJBm12K:U8]J]r:--Af5*XR/_6unD*S1ow$9lqtYCn2iG.qOz)cU"_>^e9#kjOI_+RbZDLfD7EyAVi39axp=$0p^8gad\pjv/O+,w'N^PTg[9=nQSSjZU"?D22;h.<ay4Bj_A9O]OANFD#,METFIPKa3*=lt-\Vay-Mg+F[r-_>nH[iFuWHW/U"WQ3Oe>u3Nb7H;*ZYDW,fRKh.1.]Zj\77J_l8W^F0%O%uN73C(DblX\9rnuPQl*6U"\EO)\AQXQgrm=gW-,U:ScT,#$c?x*,K3rsG[[dNKl$E1mov8W+'^N$tM#rEG5atU"EYGIho9*i[_V^yogrFy%1<_&[$,Go9jT^3DI>%W;O2h,#Sfm1vSgEG'?es^hZU#U"cb]h>#pdBNt'LvO\79dFCU4h><9%Ls),S*T4\;z%OnYkLOpv_PZX+T;47V9=$wNU"m%hY$CP=g\U-&5jYZscdrg2i%tmoLj(O[NbWA9hJCj5[D6Y84nHB&P;Qpi#_db6U"K?;u(_K>bb7d3X8&5/L4r,wDrA:FbG%TLB+22zG8XcAEu[mkFv:$_G7P'8PoCb4U"spHX><lWh$QnS9TNdQ4X34$q])erxFAB)E,EgOQerk]mfV1%YhZRPQ#ec_UIPVtU"*h<M,BvZi;Inmtu1U[1ygt7TiNuBc\Q^Zo7b7iQVy/k7hvq\C>hDMZE1KrhVIqlU"PdZDs\)pYW:R:R^,Jd9T7xGF=RfsGT+2*rst1IZpTBUJ7*Nl0AI5spc'Q>gQc:zU"Me:D$SJmC&,_m/JxM[VY;KDMgF:r#MnWZZHXo[)DkFhlL\W_>bYePTWlaH1]pYgU"4^=ObBDh^IW:*AA0pfMM?#xp3V7VI^8(Xut0IIE/xeIZhCV=pGJ3.c6jYSSoyPoU"QUww7NUMy=LJ1##c\s7eK4PLt68%snXw5lGhO3IIdb[^2=t<B[D/,7,:?;UUAZAU"N,[iuy+Z$I02=VCK8Itv<TZ7[1gN[]FxeepVdd4Jn-9C#6l[dODJYd_2q:h)Sy5U"5UteVlAl9=mPgrhzUyRo:f>iD\s9]+TCionmg.R9ud'FTXn4loPe$*&LMBIcd90U"1iqnqUf=Ri][YS<RnAMp5*RqkEq3yvIJK8USm<rs__P+pWE,^..)gym,=RRNNrPU"FIwBYOORiR_5aa\sR?I<xFH+Lehq)r9^Jn[vANIk3zyVn8P+)F6k#PqU,QEU$uDU"^f8pCEm,$4WSH/D7Dsf?eZRh]#p.*FSO/FTI3Jut*;;gDaWSzx_-YM\^v4bG^l&U"V0o&N13q2A2psS%g%d?cHxOCr<%R2dwQ(t+QAo;hvYJMVn)0WLCx]<tjYE38B2*U"\69jK\'1y+?;jy3[EGfg_4?DQPF10851H<_U=Oca*>a%16eZ&ZUAKtgkI]S-6?1U"M),#2nhyykU(:=.(AG>K:P31uq(5Is\K$KG<JUo8Kk-Mf,jPwJB<jA)\C)&nYs<U"P*gDko=Y^:F^Q]V^NE]cFR,5.G=Cmw)vnunBnRN<LIRpP?Hwhz&:hS3gpHB;JnfU"c$.(s[Sjt%F2D<gol/>gdcWKC?Wc^j=[pa0CcJ#+<WJFWg9hvTGZL#C3g6</\M.U"[i0F]i\B3^AACVpPN2^R;Lk31,wDj9H,kDhjJAG)yulgO?u*hN&u%p()9%%%%-#U"%SknFH->,+I*)%+%.1%%%1%%(%&nq.ij.f%sSgfLxd%<,>[k5Ww]=NC=#vbekEVU"B5*L:c>o=JFhtOOo[GZz.KQ(;2ZO7VDtqutGH7q*b$_IM:M5mh6D6n>^-piPtP1U"ujX\bJxi'8dVkN1,qSuYcc+WV90=ug$fOEu5;Uk2190Yu,JG(&lkyu(P47c7w8eEND SUBSUB V2U"/ip3oT<RL;K>8Sp5/Bzg1*N$0^^E1d/0=B2MIR/KX)T[vb[b2a=9Oa%HBP#<WZEU"d]Z7#]CX%PIXqMHu/Ia$N30uVuj:C.ekm,Lm<J#42e7>3'e*]EXiJZG0A)\MrnCU">5q9pm&O+neQT9BJ7He%P)kQ0HM.f]i-FS.Uf$NV(/D-20Xo5^*;u[0j.[A2TYsU"V3Kqzasn%B&Ls+5dA+/*c;:1[XrBT?1O0D+Rdi;B*aS^M6/qy7S;A[6ST=ys7-BU"aGtM/m=XM^8]Q;At^JtMD2=rqsVs[RtYHbaP,KV</.(R=za^ME8(n+is'T=m-+KU"E=UN)2nErYeXim(,5jFN*1lIVb$n'D:[rEn[+;x-G&K:;7W2#u4zf=WkRJGsKt'U"UBoqe*?6)9S[(e3&Q[KKbLOnpr#*a,d);,gZ?MbRE:#AcQKse4Nib(iRWgW\BFiU"/(?)&V<A2'lDM:+t>cUf/zj%J;XzLiumq_:>1u[4YMij.t,%Dk*_i'1visw%&8VU"5JDIHu1Nq_SBZ':#Ls=UZ15QzSa).,G\y4d:q,QQRKj?kfh=.(kK-0m%44f7R4wU"RWb:Dci<V3XWCNuu]QFfXu.OCp]Q(XNp>%**c]=Pj:j_Xn<iBbj.n3w+T<6iR4.U"hn,diSTvF6q6e(hWXd>7o>)X+mif$lGM&oF#x/uu4q>_GWpIbE:b,NeTSLVJ)edU"QW_qSO2EEOXm>\otq>c7.1h)D(4DD7CC,_2%9_)AxdZTB4<;>oJBs&l>eoA>4IiU"bdnG(V+hD:;.;V/S4r*U9K.vQ<ElucJowLM7Iv88BR,<QweI4KXc+J,64QJH$'DU"p&kik-r\?A[hNAt:M[?'tC7mv9+C*)9VL#*Et='d(-vnH)+L$3UWRaV-295fU4&U"wu+^:(#/Z[O<t]K$HG6ccoWp:VNm1PA#eMt0d[ahcoO6,jS$qYUpll)?A$+zu:SU"-svkwk%C*B)-y.'5xQHF3&O:uHS5x%8+PY;8=u)Q)b8K^lLavMN'RJ9S,C6y)i,U"=uFo6wjr\mlRu*t*jg(C-I^KjV4F>l(+J46i;^3?hb4l/):;=>0CIOK(lun84$TU"63s-U<L(bZo4BFBM1:<5;c]FT^5RD*,\VR2.0qAH9gQr#\q(bj-H+jV4Q4LiPLRU"Du5pEjM9F#l*;ebvJ+s++(Di+s)-ZH7*vW?#9/jkHkHITLTwce6]mQ<7uX2k(S/U"X*<<sncXSx>XcbvJGZ$qei%Un+t,rUjP?V3)FLMN/znGbefom_H%1+U\tXWFd_$U"5IxsXkw6gsms*8d]ZXo/pKEl(C&86)jy_Qo0glC6a=5>15#<#d9OtFtD=9[9BYnU";x_u,yF[Gr2WY%v_MRW4fH&_iXo'v0up%&'9%%9%%%7-%mj&nH%t41GF7I%%\/%U"%%1%%%%%%%%%%%%E%%%%%%%%%xsfu&.UUV#Suh'%up&'%9%9%%%%-%39#kHL.e&U"%'p8%%&1g%%%.%%%%%%%%%&%E%.%%p7.%%&n%qijS%gfxu%p&'9%%9%%%%-%S^kU"nH-^>,I*[)%%.%1%%1%%%%%%%%%&%%E%%+%8K%(%&nq.ij.f%sSgf%xup*%+%%%U"%%(%((%z%%(%iP%%%%%END SUBV2CLOSE:IF S=38AND B&=Z&THEN?" :) Ok!"ELSE?" :( Bad!SUB U(A$):FOR A=1TO LEN(A$):C=ASC(MID$(A$,A))-37:IF C<0THEN C=91+C*32IF K<4THEN K=C+243ELSE?#1,CHR$(C+(K MOD 3)*86);:K=K\3:B&=B&+1S=(S+C)AND 255:NEXT:LOCATE,1:?STRING$(B&*50\Z&,219);:END SUBSam Mckoy                      ARTIFICIAL CHAT PROGRAM        fam.mckoy@xtra.co.nz           01-09-98 (12:25)       QB, QBasic, PDS        257  16932    TALK.BAS    DEFINT A-Z:DIM SHARED K,S,B&,Z&:V1 'Created by PostIt! 7.2SUB V1:OPEN "O",1,"TALK.ZIP",4^6:Z&=12435:?STRING$(50,177);U"%up()%9%%%#-%2'[OI87=f$12%%%]L%%%-%%%%yf%qpSgRfx6)qJB[?6+xnOo7hU"#Z(9_MAZ=<oa\GxWA$/Ef[gG$,t[d>+<8)m%CZd^,mUTB46mkT97k*2x<%+Hrd'U"_\bbBVbXx0<Pnnb:W?/*-e2U;;(&n):Y2sUp>F)YE.kyY'oRT1Q1MAaFh&thNYnU"kf4Efmhs\vsOQ)5^9(Pr,PCuOYu0#kXN:?oqhWw7H(\uv(YJ,VH.1;:\_Ufr5MUU"G\>i:Ef=IQ9a]QtEK'GT:;+.D'>.V^=-(*925aG2D7a9VxaSBR7G>ll-]6T6'0pU"34*>;:6G=9b</#H>dc[%D;F0b6>#/D[fhp[\D5g)*;m\6Ze;YXCP,*X383kU&h4U"Z#5UO3_kFmhV19Ie#cPtRR)#X5:N7/N:$i'A:%cmE3q,N>;(-%#AUD8]2417psXU"</:aM<TmlSfi)DBvb[UU1%E\)b_j/PSE2=r=/b?m17xRL4-KGLq1WQCRZ\*eU4PU"xU8L1djls?%rFC)$QPic]-8JQ8IYdI0ZZ.4G[cG2P5;j;+7X;f'PN:qHASKb3biU"'h=N=(^7dXA4)*.hDX8cdOTA6ZoJj][GUjD0TE_,q*U/2IwN9iH<ltt(o^<1m=^U"8QPqp[#\K?PwO?[_X-xYPqRS.)])z*m_mqnYWI\SM94uh1H:1a'aU?zOPo?uTdKU"5zh%U24A)nR^\,?8)9h5J-4k<NZ<3<uYL:g-v'HJ;L_W,T.FBGcNNxZT^ub,/uoU";;j_A*kYRf=tnfoQ2B-T#O>Sn4oqmPfRa)Srh9-c]hh&fJT2t%KNcwlaPdhb$HDU"CPlO?Cam,JHu/OaJ<h&r$MsnaS_Pu2jX$;(ri9-PhU/K?(N1&zd9*ZMA8lqX#N9U"C5gC3k^_[e-c9:5+Qf.)UU%F;i1/SP.qnU*nYvT,q3.tcW%q<sKRit:*]\g%-QiU"I>C([dKixhS?juJ6jl(:Z8pmzhEydMLHzdq(0%P]6pjAXSo,Rd(+I=+=F%V-,Q>U"G.WRa;SQ#1&>]uLCfi1F>u8n-)91Y1')#.j_UpQ=Er^M_i)41uI1WeJ-X81eVm$U"RR#+V+G\rh(ejNVYTE^KjN3Zm]-J'qkFdg2PL2cEb-)0kge1/1qtz:<<kGv9By=U"CP682W+rYq:_4LG^ieF9(k$l*/5-&'xHV=>AZ6$O1*nC+\oO1%2%h_Z#DM%xcXdU"\ueL)6BbUQ&w&7D#/(KO27u3vXT[k&$7\k^&:Mb5GLPos1'nc*n.'[A0.=PvHwAU"=U&Rip#^h:f2X;q>3F#H9])<)m2k?FfFmnb>W\?=id?\a#1,ke2=jD,Dh6D0GwFU".%dB$Fg5Cqn^_yF1D_SX[tS781$N_7oE$^R&Ssi20_koFCR+IX9G*BuX(EGWPLhU"TXMiAMT=5\80bT'Q[Vq4b\qkn;8e2FQ+-0[$luxR0&Yn#g0fy3$W_M0sQ#NP(7bU"<cR4WJY8q^;ag2q5%&tSv'k=+n-5j>wgA)5k.:;c$_G]1:O:ZWv*#fr=CXGI0,FU"*-gS)DWm2IIOP,7Lh9,V*5>kWsp7+-/Q7(g:;W)?&VG5/g12J0g=ZT6c&z/dNy=U"Wd5<w[Zn628$pD>dA0u[0v_LTm,oc?bbKn&A#r.O$S[#YN2Pqf;zOPi#CsLF=VZU"Og#r8\-N%Tu9->Md$J?RN,(gPOC/92dIQHGSg6wR?M)PtEd)soC]C$Pe$#4abLGU"%Zb+3-T/NOoZn.af^7q-qw/_bLGz&-Uc3Y]Mp*MYFv_>P\lE&qP=p5JxuYyP%?UU"xOpst)bu0:1]7fhG)lkfo]jc$6&9j\l_7fQe$Wz9#TL:H#\&PAa/6'g4L+vgMK2U"BsP#cyP0d2#[SqocEB7U*,3_SFaInG&ci-EQS'GkTj_BqV:><;.AhdG/3UKfGh5U"T^I17.lzg6\#aYrG;X]A,=Z\ulBU6qEh&oalPb*v)XYb<Q;-m(.*FDE,dw&B;pCU"%$kh[q5P?Z&d\oBvIREP]m2Uqm'TLKrM)QQf7SZ)[Incxo),3'Lot8K9V(U.[G,U"yKYnCDbz&ne$g-46auZH86(<saL.J3vnN;BK74^1]uh3MiH>hO_a2*I,(UicB\WU"2;9zNG(>$mC>?wI?myfd.u?E16+h4cutdN]lALTBN=y\,dLMdD(?#Pp_n6h.oZ6U"fab/rfkO;-X_u9em0#GD+Wh)*;W7#d;KpPdo+)lw+9CC*VG9M$on;=D>?E,l,-7U"fWBD_'Y12#oHrZ#HK<A)nSJ>xCslhwcX%inP^sL'H4Wo;1m'p0C\3dS)co-btK)U"m1X*PlyL:]z7&^8D3kTcr.3t\P<)_Z:,:oY^7BvdcD*'5p$4WiR=D-+dU.r1P=\U"o'y0-\t?^n7?KYNjRB%=Oxdt(fi+MbdirQ&]XeQkR?p8CA=kw6'THyfl>uL)ghHU"/?E89JCjeKn7ifx(;I1[/^$p'r^bCf<9'w_0E:+qcW^<KzTAi-JY)L;oL_834#NU"%#jtTQ8C[g)7qlw^qV^AO5F-T*vQ5&G^r#N0*,6M5y:%764A]dTl*V+%Jz-ShEpU"f\Qe(k9F+HNi=%:GwVK'gXmw'0YgL$Ox^1l/Fr=h5mYI*=Nul#Aw(M00C/J]ZtvU"8e]ksI6Enf&(rDi;UhC[#:</zmfCoXfvg$Z9^GCe_?MZK.h&>^^idYg*gsbXS1QU"m+pE(uurHHfZxfG>CS72scZg</V#rGkjGp=L%KhMxZM=_dkf6_;vAVHg>n]VZF2U"]PFA#(>uoDbtwvLv-pMhv^sr,J)#XkrpJ'2S+yT6^nbd#pXSJ4Ld*_kE.ryVl(TU"0J8:FRSFm=N$^X6b5J*Gn/Y?WM2M760\K),fN6Sno=Cj'N;wms5reVy4[HEp,otU"ILFJ(L9tuaM6+Y9TpDs3Oe1PJBMz,P5Csx4A%PxjcOd^0/,tqDHF-t?U;y6tQ31U"+y;yvo;&9dv$9i=oC,fVj$^yfOxSE8uti(V>klTBwq2eW>L?BbqJTc>X>X/xa5cU"wJrvK\GF^6w^4/c8VN<LD)2:;Uo,EPTmZM1;rwUSqAwLp&&I8/Kl8A;DW?*<&..U"t)<lc4J4xZaQJpTQ:Y$2jHcZ[a9FAR.P-.Nao2R+p.%iHGPwbOM6EU6JZ*G2?g8U"mc>r]DSQ9U8A/3lhACUSLjC+Nq0P'-9=IYhemdXkP^5naR-6OxHxt$T=<%mVzYdU"P$VGrLg(v7[-i_-GupWkJeG;*=6TH8S4i2)*>MlZ6q\L^)ZYiSQVZ+pAWT4(4cVU"83s=/QGbjSixlleFM#uai3<T,5D(9*/LM1(Lk,eW8B)sUgO'9>J-/Rqcs3QspJ%U"5)Ue^frQ1WHA,#Iy??+qQ5SGB%F0KMrUetbAvqgYRr_Q-lfNPlL-d,GAxa,,5cjU"tCA^;b,A(xKXD_]-pddRlH\2&K%<nZTILtcIl(F5*VszDa5no2$M(3>1G'1cd?QU"b/fqWk%ArdCr)d8/+H9\*%y4iKmOmt:7Od?gsR7I>_du>d-us<uAU'B4U/::EGQU"qy,S[HC,mM4w?q])TU?o/W=,itGuAlVsKjKbRmMY3jbYA-fZf,A*sJ)Q-2ZEooaU"/]8c&Mh[;LFc:TkKa+*u)Y<As2J;xM8jJ'i*sP)]]Rt?A#5MzR*VBs8B$Oh+r\IU"k_>s#Y3\[aDoKMFpb1oL)N_m1O#wTW-$;8;.<uJP<LnQ;/hF/c0KU,c#tYG2?jcU"rOuQp;\%wf/n6<4#,+JzfgN.QuLM3j(jcp8$Zmg_?nZv&)$<\rrW7PhA/oc+,F&U"0<S8+h:o_zb/q^*T5_LCHsOg=ydTYb;r\E?*?Ar'9^g/sCM6Eke/1seZGdiKlb[U"^6*)w?+%>$e<mHxfk;YE.jJBCAUQ8gS??3JpwoDhGis/4&Z0*S4:YD#E*yU_ogEU"+#uA[#ENGl0MX)fSq_7]Eu5)\]DRXv:#0aQlqMV,:GZrROw]?DnX'A7Lbk+dGEWU"BCTBTP6eCKHk<=E&#P)^)_xVqDBAuc%rsPS5HM\-a^.^HQOiVD^U^qZ,w+-qIBKU"JUmg#LHmWCa('UAqlS\V2$F>IC)l0(BKoD]e*<uApWp*OX+Fo0h()<'\]3c[ETTU"(fulnbSe.^1-^mVb,h,;t3d=Rsi#%+V/wuFTkDPyK=)RE>d]X=X0)22djI;B\EKU"F,&*rpAr6Aslca\%VzALK5sHDeqSBrtadk:5dEt9OKic*H6DZl.=NH9,87:ldC8U"zau)#CMYE'fEH'T[WlS%3k6P?C5tKlt:eR=J>QP)4Q1cj(Xu*YbCFU6ZZOp05qLU"Ybf5u[^aK);G\Wk5+x%E0lOtX%UkqKqrt0Zkq1XQO.1*+CXjV9Z*4w\hHn2#%?DU"Hr+RHKqTo/u-kpf9+X9NI^jISc07&VgurX#<4X?8M_ac0qV>oi$Z2lxS*JH(l&vU"M7BmE^9;tBKX#>axx,tvI]MG+E;?m9/g(8)mMn8NDOYFR0tprCW2IoP9Mo7IM35U"+^1CaEb^N$flLxG,fL(bP+/tG-k8up%()9%%%%-%'lyNIYtT$X'm%%%&:&%%%-%U"%%%stzs%SqxyCb^f9'>U1i9p+Vf?4'SgbpIS3&?7J;$*tETad]78>ZKlxT^,3$1U"VrHX5IC+#rc[phcXt4GP9Q1-2.U'vSI>A?Go%$M^ZDf-ppTioL&0%<ahE>;m^r.U"YL943(aE-i1=xm#Eq[)/W4A-hSd;pH%nc(#&RhmG-3EF$Vd;-CLfU#z1gVhf\+MU"U3-VVE<TFR83I*Y;qW1fw2wfFLuIc'/g1J5XqIm:F2*o2Qfs6PN8XQPm.dc>d.2U"asHJ+o\a,=$eOb/ilUs6km5pP$]pn0HfZ;<L<56htC(qr73FlqU5ulMqF?G1:]tU"w&%up()%9%%%7-%Ev%NIfp0RHq%7%%:%%%%.%%%%st%zsWS%qxyx-pj134viFxcU"il4ng0%?l#4w-#ZmjOBeA1%iO0nDAI2w?AHnj4&9)2j,(oOy>EjA>iNjAHS9s_sU"*$lA^tKt+SUB1+&hdsfmG]WEF#m5Eb[]h3IVCaRbGK2A,R0u(KA3v+PG7Ff'EuCU"PX>fN<sE+ZQ#qDTH_RH=<aR(gRf1R<t)SDVN5g?d]h40[+V)s^s24LOSGG<sPE,U"%%up(%)9%%#%-%/#vNILUL;Mo[&%%a%'%%/%%%%u%mwfx%jSqx^y4w*-'TU19U2U"qD(Sb<Z=MI2-<]6?;1GXM7s:<Xx#JJ:r.B/G-u<\jg/wNUOoYLo&'qo:t#S5D.lU"pR&]De5OgjNkPXZ;S1?u\id$[]A#<(<A&c_PBaZQj>8>Xg>3-LAQ/0)yH7IXT6jU"?5q&xOhI4-i$VwoYIa3XKGUKR;rq&_<87s9BR9He6h5H[<ZB&9<LO:07U&j-H^jU"MiRB8/1?i5\RBJ?KwZf:93c^HYU0Eg1^KD%h)0cM&.S0'%,.fP<IEiCb8n47W3kU"iscg/qsDXt08Os8^SldskvSx3mURQuW4>k:jFceUc#0r?BiGBNTmJc*_D=F8MkUU"w\*/r0omFT\iF:brtF#P.K9C#qZC3tRIJmN(;l);G53jK%JrCe5?nrWrr&CcTk\U"<U_n8I<gp)l,wYCh^O<F4xSF1#Ve<+O.,W5x(d2b5hKU-8hbif6e8ljAcE,>RMdU"Eh5wEHdzx>>7a04znR^uR;f%ZBCl_2y?chK_F3ogk$6bmDjo?xK_1'\:M-G]c$sU"Rsm%,up(%)/%%[%%%T#vNI.8W.8B%%%%B%%%%-%%%%y%fqpS#hkl2L_+60M<4B+U"MB0<+M<H2A240MVM+C0;):+2/%up()%9%%%.-%<v.NI%,0Iv\%.%%x%%%%-%.%%U"%j%wgSq[xyxp'j13v*iFx-/B2A/;%?l4dw-#mQjOBA:1%i03nDA2gw?Anfj4&)+U"2j,oSOzjAR>?iAhTGGs&HP]_3rVU%%^ebUi/Z6))B7UuYd,8.MWz>O2^2WPLT&_U"z2j^zXBIOd-1S.&<0H5oMtg\ehHgb3%s7Yh$'[?)9J#2AD%/'0&8\-o)%0'%u%pU"()9%%%%-1%1)N=I#dd,F$%%+%u%%%%.%%%%xyf%wySq[xyxp'j13v*iFx-(3#1/U"A#2w?'l4w-t#mjODBA1%Ti0nD^'Y^26sqVP<QUq(XJ9cQ,H212tG2Uv*v,9aS+BU"<+NvQDkNuR+HQ2;,L_KCgugB,G2_K+hMJR:Q,;,D;b1arq9B5bfQjed+vkCU,vIU"ahPuZqqtJ]d))r]4,^scs3+jqATssHsc&PP](N_B8DT&M_zr^#tImX2ZvJIUTf8U"V)Qndu0K471Ou2>s2QZzHHINfm*'MS_s/Gw7(&pe>/,\ok_>-SPX-$I/J&*.&nWU"W#Y2/N6t0#5&B+dPE<%%up(%)9%%[%-%i%yNImCeIlF#%%%M%%%%,%%%%f%ioSqU"[xyxp'j13vEiFx?PCjADF3j1Bg2%?l#4w-#ZmjOBnA1_^mWY[^%/3.2riCZ^5AoU"#2\B2'k/LBRg>G2UAMRP3/;wv,\=uE#dqkfDLaT=ZAmZ]=LiHlfD'Bd-q6t2U+3U"rVG_g(DSsm&rjpupZ^k/?1A&%%up(%)9%%#%-%UA0NI76UDvf%?%%%&G&%/%%%%U"w%jfir%jSit4hfl0JCA&Hl#(3$.FLZ243?#xK1)7aQ?1UQOhKu$P1(20CpAQXH=U"-.-T&kO)<K]QlA;8Cq%)-n0JUY_UAfhFU,cIaU)TSYo:MVL91s7Zp&*]iaj3^gKU"0iMS;lAmN$ZgGWlK2XB6_EEZ4p$n$hiRll2k^hF8&>C$$usc\Ht+3\W+2XK[TtHU"+QUa<m$gxT46mutnFYiStv42<wS#c1>X<.\v+PI3qd_/F/=Dgn+l#3b,)C*l&lLU".to6:ezr5OEHSmj*&TG_Qm2&_R%ed5p,p2$I>f$+e82b(<ICibp$h$IgTO-a-6-U"saBaaabKa'aDFp0pP\IZp=rIhf2jpfe1TTMDSI>mA/70C6Tm/a19a7a4/odSS+ZU"#[FnffvI^%C^-F:S+t>pfI:0I3758IJ-8'S*2fc<I--a#37SC(\g29I]mOTaOa9U"S7Tm93a^pdkP'P'_T-(f8RWI))cTKFg2iQo+hLu37_%FeH,IAc2VC7CAIRyO&YuU".O+hPf,nphIdXE?qI$E.46^&IHmUK7:;34]NJf)mrU47C16<%=dUh1y2BfE2L6cU"_kjwijE#Vf>\ktdD\llFuH(d<3XbL^BDs;0p_KuakxY,UBy/P?mom/I^l4jUceDU"58GKd&nHB.GkRaSb<b/oQA3fVmXy04%06/.0UxNNyor$*=>q,]=OEZh'T;X*S_6U"1.HMSv$'f;XUoiF^8]1*ZLPQrNmi),Y0]Ot&ylpLZo9Y8w$dR#4mgKPPyB[d$0dU"Vlt)mM4'n,Df)zhG&fS+O11T,X$;kdsfC,RqN0tWX5TVUQfQDo9x3SD8A42Dt&FU";M0RBE0S(pRKM7c]5Bkj_y^:Ax]9EZe_umaZ2L.Lek,0'UuiA45Bu,P)Pb22^&UU"mV.RDC^cfrBb.vP;b%LUSf^t11\a<-i&KW&b^_Ysk0crdnR.M:K8suMx_pf6d,bU"SPt6u#Lp\45A6[r3VYxrQ>%MkJ0M$#]qdq7OlPPVx&JwvYUGDN]&PV_]Fo#+ElfU"UCrQ9a4%-4afMb*IW5M4CwkK>'G?<7+K/pjIW>W(o2ai2e-A?fH^Xl,,VbIyfnrU"ehaTh^MY#UIoLCL>U_kYUhZR8h,nt,E2XguD?gscurO^r<vTEI=OB]LD8E_b-XHU"PAZFEJp3e[-NWM%xu^y9ts?Cj:brbpmiNQ79;G)D:7$'gd(si$CRh8)iGkca064U"qli[E2$z%?E^,?k4v2nB+:p)b$nsDMduxEDlUkt?+sU)oswCb8H_(<PZ2X(0FQ5U"S<0N3i3lIXsS7Y<e2eC)S_9?'Sc+0wJCJx&ze\9\C4:bKfml,$aHrbqE9s'Oug_U"dj>JGW*WKsYI_1ZoS4>yd_Yp_v^D/joVop#v.RGHoGd#o23^b]f>X%_[]WLaiI4U"N2'qTDAmv/0'PeWp*CbiSKS8NtrI]bNED5*'R=P%W<3'o&4p__/z<76iNfu*+*SU"yM8e[KfbYc4_;56RWP;>9vo2N,5_;U^fMo-gpa_u^&XD%rOU:Ux6:Y<7mRL/QiIU":umvM)poj?1KT+]#+SX\ds2kjK^DOe,]A'TAB9y;gnFA/5#5//I>LWtf$I%X(%,U"b(_zd$tjBFNliG0e2gz3X'%J=HG;bqm:Z]&(R'==;V;5kH8l:7NdZU*M_8t>NU6U"V?r[X=G,/49Ws(sAq#L>g1d2(uovJ<W&1^(/H5>f+S&?$Iv^i_9?E)%VeC+^\_bU"Mjho):N*bkpfjL_jKip2CR*b.j[X&W:r7iBDBQc4$76Z,/=UNH'tAkxthHccRNsU"d4/SAI_?B<>Q&JCHGSfRH5C/5FOUUk79^Y44^J;+2_d6jg76][ZTGq,-IR_uW.JU"5HQVp29DLSR?phHbl1lsg$odis3DQW;&T_MQ.+m#\8-iC1^G)X/S%eV0X.wUHyQU"'tlO$.exWR;SU?Tmb^J.O/]'5Jb/MoHdt2ea-%r+CSmiR;jiF:s.aaQriQ?mLXLU".29BgU>9JWXyr0:*IctZPdm8+;)uTW*_Ismgr[hc%wk>4j<+kSRcc^%gg[IP(E$U"0^7CK[xSFnE<jMqAGuP;eSX5FHY&1[#aDT%Qb_1G(aYYbOU5f-(^mCZa(xW/C8/U"p'uw<+S>QJjPr'w'M>fS6PIbUiuZTLb,PCtmChi]\I3mZV+U+FJp[YB>7>SKf(gU"hjU/ogARTYNnQm/Pr*l7[28_jZ1lgdB>vT:kUH#Ar$+-Ddu(**0ull6Ro2$NKC?U"G4Q66]dbkVo-KV$ktUjriO[3J3+9t5_<)<TCu/gYamJNl<apsSUfkWIwE_ZTopTU"JbD0bjjTeIjy+fKJx7EJPF9m[EN02JS-ceAZLbE_ZwLn&2eRYHNAm0*Bxcp1'scU"cm9SM(6PPx6]22bWq-iCukrN$H%&B2$mg,4md_vdtz7.[n*P]#mFbet\r:dvg)JU"L4ordtGrm[WcezXJHt(trN=PEh^urt$&MLGD<4BjbPcPweqsi7GaWSbKD59('PlU"/'u]<DGvE62V;J$TYy7Xh6V+rG)7WZue#JtIAX\^p+KR/FmXJ3$vXJ#a8pG:KeiU"qeGKeiRqQZhb';X*G3uJe]iqQ/1a<fY4z'?keMFCj&XjcR[QQ=*2?0[Solk:L]4U"\i):5DR[7)k;?V,h[OFYoa<V-C7ER0vb:R#;jT--9/Y6uaw?>V[T/HBC[[_v*j7U"D<?g?QTU(c3-?*F<Wns_oO\#2PC:J:-0ON[HI&)r_mvbiYy1eTC=P,]T-SjrReBU"pGlZ4pp?WC&n^Cxo3K7pnkh>lliYGd6uX#HCU5U)5:u(nORjmXYUe1TC#qLJ]OdU"1Gg-Xk<Lk_,_*&/CH6>gfbvpaKKcja5&PFhw6'HNLFWHFEkr.sCFofG$,S6p(s6U"ige9z>RRivG^O]U0X+S/A4P:Uy7Vc6B5x+Z0-Pj5aAL4ksUrAt<N&6jt&j?rXKXU";XJ=pX]>HZBuba_Wm*?GgD%TSa\%LqRlB4P:fLWX$OQsxA97j,N$q1c)y6ukmAxU"f;K=>i-UvlA)f*/)LZPp1a^VG3]8lL4>D9C*tWEakfxsQ=E[=<1Sg5YrF9$3NNIU"flk6t.8D,?\rrB54kEMum2U>nD4^ssV2Uiki;^PmiFiMYY5-SoZNXtnF\#uk'iVU".8FwK,$HUArogh)J8fPUaA]7Rls/Rh*Zv[Q_ZGaK?q%/Ao_$O\j,t$-j&_t^0x6U"=Im9%.//7kvHj]m*F1,&mM%znGZ[BGjEUGO=V=H?7VOv[_hXQ649\/:x:Bu>8.xU"x0oS$+Z8uNUg1,Qk1)IXiWIuim&;g(8_\jF*/[/1C<F[V[#H#5URNPziCRJxW-sU"UmRiCI0vx&'5L7pc,[x5J+ACBqzRcw(90O3O;XbsXEn\TC,kLn%YyK\i(GNSg'mU"p#Vl<ToLU<jB+d-Ic7bw'G.q47OKE#(.1B5oW##1sx8Ng<1>AvOHf^+Q2)+b/5LU"0uBLfbgvP]NbNnVj1+<Qes_>EC<0mAYe'd%5G]b\G+GbPM$gp>;jZn>i/$y?(S_U",?u(gk1jgY^u/*hDekm*H.X7sF;/)n_fp$PU4MOtgOwvINI9a2W:yT2,Ot[6phRU"bJH:2uh*npKu7Cq$LX'AgEz)8RYO79#Xmh?ABkmI/OEfX0y=;v*4yYKOe_6o_xcU"C;Q+v8WyS+FNTEf2T\OkGQeg*I+O)gEcVfp&>Xvno,f(j=\9L;GqDmx%*abWaRwU"\;Mi*KUQt;uP6tt;F.?hmI*YmX)0HmMg//i<vEiC_Rc-=G]Yx+&Cg<6S..+\>'FU"th5D<s-cI44xH$L]+WyU)vhUEZ=:93:>n?*1n_iiCD2[-/5>nS'VRI0i1C[+=rXU"g,iExi]SI-JRsfpk]/rgXH#P?gsvuW:Y<=0/3kWqedx-gZIuYd3P6i+wssF5BjNU"=D0;4PR=Ut6C,V-mFUa>BriCkbRYI?GF*-1T;hnc5'3lQ;[gEpQR2*1[xu[QRK2U"RqaTZV0J:;6whHn3#(oSm#R0_6MR/1#IU$QY6%k9:umDsQ+tGY14/dslc0,>L85U"BGPy1B(.%_N3)7JYrk4./H^PW0B5ujC$a:-acY\M+5O(moi0iyZtEJ<wUe=UFeEU"Q<0jGLsc6';1&u7JuN4rY\^/VwjY#nlkCLVFn?v#h\Dq^TqZ8n,mAJ4-IHxG<#5U"<d:t6uMSXwiEXicxt6VG^*bEBZW+3Q)PmfgAGdddHfkIM^5IZT<*k%xoupfTp3QU"2^^hJULVcsn#qY:59]$gmTX=xjLv=gsdL:h0Bv+,H>g$OhT/15AqC'>.X#f,KiXU"94QO<k4&KMt+:CWE#T7]A%pE30ljjR#oLskZa(0hnh>*\kq&*0O3w()J)W):89aU"J:%%IW#mDDp8T3,pkpY,.YZqA2$PBBQR;6ld)IoLzkmR$<o+-)OV5jn&p7=L'tgU"4*+-Y>MX><n,cD%ujA=6j[Xf2UE(2Z5nO*/H#^DadG$:;$Yvek'W?<JJU(P+oo.U"Sl0esk77#HjulfGc9TRN:m;*A#<FP)s.=x%^lvO7%M%FfRo,>TLqVvP%&,HKwdPU"hpt<[G0kU\x0jY>7RW7<t]22zD1LnG7_vUPfD1#L3BIjPXB[MTS[Bp\w+=W2?BPU"GLJ6>'#BpiqmZn^,&LQNKP;16P#\V=*-_GKE&?:HZgU2b;^:1mrm'E7ITh?)Y\SU"+4VZC8YWVW#&QDooYD_vX1R<BmkdpaGOa7b%t&w_B^PE=jvqDKZ/q&YFpTR].&7U"nBG,#zoSn].4tB1TQ]B6*ohw_m%C/J]<Pfrhg[=LxKAZK&,-Vaf#BbRs/ZS)2XlU"s/ESKqFFX_fYGi-EuAtAaoa=t-C/XBqQPlS6.;rR,'=hJIM*s+mr/?uX*[c#BptU"S[g;:EPB&]A<3gl5SlYd3dE]_IC%8e*87]ZAgUn?pv*WGech'Cgbb3$abiesi=&U"jKNbn1(Si$o$8.kTR*&2plWE9]F_C;&#)A'e[a+>eoZ1:R8hF9p6A(#TJw^YPPmU"GN35Y4fIqn]BVZM#aj>RU/YD%ldQwsqsdp;XDTBm.q<43$h+peH#CtZ:]bSY,$DU"$<Q^_V_\%nb:$j__dtcFSxa5<?'8^YdF01^s*W\;EnB/Lv#BDiFjzj_2*GVk?BKU"J>>w8IH=igDX_c+3#n-sm4BqvpKn:dT%[-Lq6a_P(d,5SAc3i1?(W/G]$&225]>U"la^VYxFWlJrYQu'4g3[pam$)w#6JGyh[)pY\4e^d,K$YBYM+s#Tt:3=3QM=j0csU"i*;PMrkxGXVY*J/.anw#MX[ejVAlabVdGf5<4Q3AXUrFod03BVV?pwAJ=emmdt%U")GGzkf9f?CRhU;/[H/8q/__v/6d_(T/H]^J>>Nh&eZev=PWf8$*i:Xd39\0?V)(U"MG[C%(Fmo((a)Y=:)7aA2gWYHh,HX3HTO;#.nN'Z0/R%1[1;v]iy>^gfB5aGnm[U"WcMO*o3/L/kk#8XQ.pjsZZH>HkEboPH.OG\XWB5u<?+o5Djqezl=aIrlIUmJi9JU"3OA,m/Xe\#d>BFDa.#rdK\8S4X3TPvTr#K641eC65-mgkj'MIaz_U]_>.B^3U>bU"6vMPCVFqGbO)07H1?<4V]_n?)2S6CmRhIK5/+GWIR:#f5uj\2e#tg6^r9\'_?bjU"q?'KKKGXZSI)Z;L<N0GDTY21ZQnOdn,'BrfA=pA=<YM+=m=q]&]\3/uCPPDAkvlU"TFxVrCb4=R\]6(Q2:8_>vnS(DAjG<73tDJZ&]b+b.CxulA&3b_ArB%KBat-a4FXU"IYiU%Rg#>m/:H*0?P\Q*CiXfxea#&JU8H[#$KH=sKQUOc=H^]N4&:hORnp07xIIU"fAx-0$asTc<V$<SNQRQ-A%$7XLToYE\R-OFSKm2enKb(Lpyju]HLoNVHd6BfxFUU"#jo7=T+?4[evlym<[(h^7Ti+mqETbFTL5/AQ\bw$p-5=Qbi=xi8VY.oCb9TpMm^U"'oNPiPGfO\o45H3,KH,rhiM)<=eDreFaO]QlvT,b=f_v;).'JSY/kmkOjRaIkX^U")FioWL)biakf5S_nvu+06ef6Y3=Q)-?LX7$]k#\pN(#o/KH6U1P5S=7H2TY;n3dU"k[t?.G0lzFoTca^^P.)PDVqEX8_Z,[[>9F\Nkt$fRnKNNj&CLN,Kg;n=(a4l&5lU"Gbd?iOtInR)[b[+x64-2G84ade/FH\BNm4aT1<[?Rt0SRqXT4CDL4e+bGC=cn1)END SUBSUB V2U"bpGX/7mh.psNR3hqxiALWf_DF_BTIXJ<a,k76M,*ZYbbJVNmGEOOi[NNC<[v6n-U"GTkm7S\H9L(8';X9tih^iHllF'qPvI*oR#Eo/HI0f>>VQ\ZoX&V=aD_gwj1sBaYU"lI4';aQW296,3*os0wajVk-akLI<I8.g0h*hVc%8L5s5Wm0;n$LI,mX6a(oA^gDU"R3gS]f(DVcfuq<'wF?sICa\mNat>QLahoJpt5otptTllg$0HeN08L;sA0mYOb.BU"'G\kgCgcE=GKQhTX6H4qQ7aDzkOHaAc*ZI>ts\Tj9haX3iYTsKl%4T<f*EHHnjmU"7V4J+tGktw?;imkTJEH?f#n94ijS6]da#.F;lv#z2ZS6]Mm$1&GY]+GK?58C#a#U"jylwarOKl9=_2WHW+;;$&D,l=8UE6Ho>AzW_VPvl&OtlF,LQ\,BG;%b&<iKIm*[U"j?^HfImj<QLYN>IK/m1It$ZvBqHg6QxS$vR*XZhNi;&m+oB[A<HO#S=vk%t3/AmU"S=t\a7/mF_[_bv4K,=$NrT/r]x)MVpi+afmBjl/,9VbGU9tv?LNHd+dfPei;6tmU"Kth=(jmg))NUyi\(N,$/cLh-1J*a[(FJ*E\(<qtlHLrHA(+H/IBW[_dvQRiOTwXU"ZL_[etA\:LlP^\lhcfni\[0t>#8p:m$[.D/Rr.Ho1mL^gbr\NR6=ofVKdL$ys#HU"1fmg(k-FbwR)\mCFMp9mG8,CcgZHZR7mdOLeWpaH+n$^XNZGxEx4[<<:H93rEX1U":.mAb8;xr:O:;X#[aRs1FHyBSQ_ls]HK.HZG]bSP(TsIS(MZx9Ex^5jyc8TSR65U"HVIlagSVW/d*&:*v6j=3I=a^ruCI/:1Fhf6At1Zu&AcLly4-LESLOl[ShvS[0*HU"KLl'nZ9stmc:b%$RQQ7=.H?KH?_UG,d;)^wmvN-Q.aBHPSQgdrGhi2[i62,xeC(U"6G,xUEVGk'Y>;,T9:Nk9RHXZ8ZAxud7TtjmIzaf>:r?3BJik'MlTkcwn<Bhd#.CU"a*C8kRg33avR*pE+nA:W_VmLlcDN,EY7Y_CxlLWD%K>Il-LfNkMYJaE,5PmksiEU"i;pmE'Jma$i[^H#%U$C0cEmcO$ES6Ht>Ln33b3L4CXERZB1:;Dg6\b0e]m.?B1:U"1uD,RX+e0*qZq:aSK$VEHb'?U#%Ka$Po#[upp(G03;Y0unX[9LqBS2=\4[tz+V\U";VxFmT32mia&UHTg>G5pW[[*wzH6O;O-;.$(/XkH?VfDQQ>ln7r\bH?/Z5VCz.SU"_61.HK=7mX#Ja8mkX>i$XoUnBh-^0QB$PmFrRtaij'm5aaBIrI;Jppf'0f4eI4gU"nVCCQ;pClolp=xY-xkpLon?IRIH<IrI<ko#p(+gH^*\nhhI#UY',42fTK%F2_)-U"vkLLu8x6hUQL\.ZxbD.us4HVtFp#hu1v6htH$TX<kud4F;n()r_i6%i>v-LXp+dU"lZlL#JsA(UOMDjn8h=H<HdioL&rsF%gIxmE\QqC)r3(M\ZWT%wAm:FNpr^-bOQWU"(%+hBytL$)CJcF^,WnuaFgYZ.P8zi.TkD$uM=3a43DsCYCAIC)I9igdd_PRg*aDU"uInI(GpXe&8kkA3?a$ITMovo.jf8UgLal_2-Iwcg_upAmOna=7a.s[m4Ba;]&/(U"Y&_4pAmhzvMoo]480lmFNtrS&wZ_Z^amu2\pW,L$lcZ=?;\=\5juLFN/9W[)($;U"/n(W9ta*oPGV6NV<*0=P(-rvL^tTzkj5_r0t%Cb<mIa+ua&IT)oFfl_oFhhAVc%U"L+538_^+LA3aDsYm40axOu4xugs8XqsT8aw^t.s;<R4C8V>C,NGi.$$NK%^(Jn8U"JpXOI]KeiTzHve;Fn,k+7-A$ZJP2Ht)RFc)5vFs>xDV]iXctU6nvOZH7D6ZX[,NU"u$,(jlR\Kog=nL*DAjSnObA6nlZ,JrNebKEb[Hc;n6D],?Tqe;CcJLn<6RA2nlaU"d#Vsvf.+&;NbXc(BBg/dkG-kr3Fb^,AGEkFZFrX,BPd#OHsEnda#Dsa<]azk%D=U"&x#B$rBctUVnv_ZH7H6ZX_,>ukRPrrenre:PKoJgcJcHsC[,HZkRvK]oNctL)nLU"cTHcE6N0bu(V:g.1V[_,'fuX5pb_cPg'T,sHndD[l$xN]NChmf%tbL*VOsEh<:EU"sxLRkT_vj3dT2oEQb>]K:ILo0w[.bBBex(t\$UG.0rj3Cc6pMCFu_rR.AEXtLfIU"u7]m+V8.fdR9;C[Hw,m1HnOhmU[%%y>_gd:ZLeoB-iXuSk*IZsLyX-tR<Kbe:rjU"b[gb*mL$9::t_KcR#gGBbxu2q7Pta=SA'wDup%&'9%%9%%%#-%2'[OI87=f$12%U"%%]L%%%-%%%%%%%%%&%%E%%%%%%%%%yfqp%Sgfx%up&'%9%9%%%%-%'lyNIYtT$U"X'm%%%&:&%%%-%%%%%%%%%&%E%7%%W2%%%st%zsSq%xyup%&'9%%9%%%7-%Ev%NU"Ifp0RHq%7%%:%%%%.%%%%%%%%%&%%E%%%'q3%%%stzs%WSqx%yup&%'9%9%%%%-U"(%/vNCILL;*Mo&%+%a'%%%/%%%%%%%%%&%E[%%%:%4%%u%mwfx%jSqx%yup&%'9U"%/%%%%%+%TvN1I.W.'8B%%%%B%%%%-%%%%%%%%%&%E#%%%X%6%%y%fqpS%hklu%U"p&'9%%9%%#%-%<#vNI%F,Iv\#%%%x%%%%-%%%%%%%%%&%%E%%+%E6%(%%jw%gSqU"x%yup&%'9%9%%%%-1%1)N=I#dd,F$%%+%u%%%%.%%%%%%%%%&%E#%%%N%7%%x%yU"fwy%Sqxy%up&'%9%9%%%%-%'iyNI.meIl&F%%%&M%%%%,%%%%%%%%%&%E%.%%\8U"%%%fi%oSqx%yup&%'9%9%%%%-1%U0NpI7UD&vf?%.%%G&%%/%%%%%%%%%%%E%%%U"%N%9%%w%jfir%jSit%hup*%+%%%%%.%.+%d&%(%aS%%%%%END SUBV2CLOSE:IF S=138AND B&=Z&THEN?" :) Ok!"ELSE?" :( Bad!SUB U(A$):FOR A=1TO LEN(A$):C=ASC(MID$(A$,A))-37:IF C<0THEN C=91+C*32IF K<4THEN K=C+243ELSE?#1,CHR$(C+(K MOD 3)*86);:K=K\3:B&=B&+1S=(S+C)AND 255:NEXT:LOCATE,1:?STRING$(B&*50\Z&,219);:END SUBDaniel Fletcher                ASCII 666                      xyzzy_daniel@hotmail.com       04-20-98 (08:08)       QB, QBasic, PDS        772  51054    QB_ELIZA.BASDEFINT A-Z:DIM SHARED K,S,B&,Z&:V1 'Created by PostIt! 7.2SUB V1:OPEN "O",1,"QB_ELIZA.ZIP",4^6:Z&=38067:?STRING$(50,177);U"%up()%9%'%7-%az\>H];4Npp7#%%A7%%%/%%%%ji%nytw%SgfxKfa,BfT]ah8ywU"Naug5Z1W'a-epbae=SXLoe4RLXOl+]ba,X,4xr>W)F/\iymU_]h6uVUtgcV^te*U"gn^Y.c-_%aNCs_+W4vw;4XaTAC\?\^+W++)VRdBrfrPq0wS[a23JM7LkWLMT;veU"VO&c=Flc.I&8PKq/%lM.>uOojJC9,67GN*1r'=27Y>ZU^[r9mQv?ZJ=kNLZ2QW.U"kX>U(4M;h4ju,j-\/tC]C.>Z.jm1$MF+\C6iK$1D+>4kQ^<+qPimhqx^$W[k#r;U"N4N:rSM]8,=)]D5=,PB2*rA?kBq_/>:(^u]qE6hLRDd2BuXdX1&$$pm*$O+s;=rU"YQfmU8/nRI3$QXt=[lbPkA8+xTl2mvDl<-lY^gs?0lmtc7<t$OEmV3qD)&%uZOcU"q=rUWf0aIpjyh\IE&(g7SBuVKRU$g03D?6>XlA4_ariI4mf0G)uquXGi*w2d?:0U"Iknmftj]:ZfgxN]#.pA;uMwI<i01vACkTP$4KQL7R.XYLjm5tIa,Ej3l]\PEfu\U"12T'bu1*2S:g[DprNip_b:a/4+S/d+%<m[a(x(Qn#661E'eB\v>(e>/]QTBfnCCU"PY$Gee/t[FEN_yY(1+C7Hm+bAg<'dJg%AQ\,(]T8X=w^_=l0Bra=&%c2VZt#lU(U"O+NH+NmgzmcpLE>)9sIZWM0?^LBko'KA[yhDN;:R9tqKFgx\V0BU%LuoA%'%;+;U"V01I5\R0p<R]dZg-_s^ja;#5df-.m;^uokJBUI<98*(Dt]#$aG1]1U4/QZhD3(yU"%;J7pBm)]+2q-r8t](K#Fds0<+q>J6O:c951uJ>+:cQcBFOdRQMs'aYMa%VfGLPU"JS[Ks'sfM26[s4/E1b<d?*sl;4o+D/jJQOBcRraeGaUU?1hDjfe&Zm'<C5S];omU"[(^$i(/xbkBOBEMrg-\n+qXNyWjZH4Qu'_;k,dFwXdEXt&Ya0dJ/m-GbsHn&d)-U"G%9GYdMnU3O:>7S9v_Q+9YO$mmXDhU1$gcw[K)ncp[Ic:?qSL_*V%2m/oX]*-0/U"4DgHRh3:xOY+3oe8J$W2-z\QJ3&x^,MKu5cwv;iCNwbk6Snib%_fQ1$O:?BnI2YU"p+>wt(Bt2_n[1k3cRG'QJr;mp#c<j)f0.v6D*nVxcdBey;(zJVgh%iy+<1z_iNiU"/K=h^c(jAc5A[BGTAg;UMHKs0slp-V/[X29<;SoMClR^tJs$1$/p^ow&cAY(?IyU"mbo\cS?U+$B]Hwf.agZ4B<9Un#+:EOJMS0c\OBO[j==1bRwC7\mS^CAW7CI4\M7U"ZpJSm2\u?(f0kv\ZJnXz(nkV\xFe\lleK[]2I]_EkLJ^Tk[WfhLh2<n:8-/HbsMU"<nJmlSWwJM;3bw%g.gtK+J>ZOp>/>JZ1ExJ'ma1Q?2;r$0yZW<O:;ORJ/GSr0I&U"Jb^)0ZdNeG*+qgv)u-d.:PxBzF1$KA_Z/flL)3.3ACf*HcYU3CrIhM)n>4?SAUXU"DeB?-NFic9_J1,)s(KS)j#L>p\$w_txGt5OBN&%CavyQTH]B\8BjS9mF$PM;$uvU"$F+Dal1)'0-l;Vv/A-+q]96w^Jh#'C'Q?(',#pn#-finZT4We$O;K8Z-\fH?/ZTU"1ArjD6M):mj3#Qx37$Cu[\*J8xNa-(SiQ,S7f?wh.oTnIbc61-gl>xp's#o/bhiU"JX$4Jm4>xLck6.#=_/KkFlP7c4rmXZVEr=TnY)I8I2_#Dke=aS4W;:PF9(CW(4>U"Xnl[c.k$nlN850#7ODCI5(6/#m$g?T^SrG\tnTwDN<$?Ud;A;MKTx_nikr4RmSbU"B)9nFLF2^B'&amJ-;JkP.x_V%x[4B3*wFK]h,6efq6]WX5c#j3bGpjN<Qe2^YAuU"Vh.0[2.9r'2M:W3[%NR_'l3FiGWfbbMGo+6sf=h^]?q&JS,gE(4u,vY\l*5V5b1U"CqI]0xq>VcVw+YFl'/K,D$e;Gc<n^vgI$)l0R<YrH-l2X(K2jEx\$n[FwYa<xv7U"J>]er3Q_p,eO[=j^F6a#4Md/fI4i4$//.-oDnv<-CGdB-luhz(XDK#?sAVij;s3U"jk/-A;KTg,CMGOmzRVN#:%<10(iYJg_esNZY^cL'oN;%Hl24pAx-&g)bI>xmDF1U"Ji(q<%CGpo5w$.jX+*$UdE?G[&5)?BYQW:cb8:J3$fAt1LT-(Qz%U3<%stBN8GYU"/5oVO***P\GIOkJ/,h9)uV%S2]KanVDsw_kk7W0k%GJV5VThN-o)WZ[6w6mR(dVU"$#8b\OVc<+qHnPDe?tjNU13CGc?IV?M\]%os,Oa&y9P_%V&i;18OL3Zq)6?N<:TU"ol_*lch<74LiA1P_i;jldezR7:5\J?tT-H.EEBJEZ+Jc-O_YBH%8N/;e:,u6'<YU"HbMV]*bM(/pI1Cpx2q\RTBP0x8Si,=q^_CzC92w-k#zPffL7ed71owpw0CzppibU"gZJDA9Mz[j#-PP:Lp<Dnbd>2v]L+s4Mj8G./UjLU\39YLHFzf+g6Ph%8KwGGA?\U"B'nSd(JX;jLB4L1k'*dlug'2At)Bv:FB]Pq;c%.:XvnmIA1$<b_$07B0hM:>=FVU")u,S$,VnO_V+oABB*^1zAgb>6yZi%U:vovxwl^dnCjWrZn2bUuTX>pU$<?i\?'gU"*0Q'H<Ih=,QgGdijR:]1,#A$hRaHU^k#mYr_Bm$$Tges[DUE$fBHluMLGZa:#[_U"cT:0(oSA;LV=0xsKmf&?WI[WNyV_N=vs?r&&iMk>uo90hYansFXWrwP)2z$NV[=U"r4Jm&_k5&'y:JLiudUKMZtND#14PeOms,=Ak&/qVY]f\8D-9dnRI1#1[ctum2OpU"Dq9z$fu0J]<Qb<(=)T8VpuW1'Ld^8.7]l#ERD1LUPuv+ztyv(9IVl0QHpJvOTU]U":$^dJD<NATPU7(4?>5nD$0$'B#\O-r_Jt>d]x\&0#xivggl/.P23us+Crakw#rVU"NMkN6vm(dnN(k>GxIlI-Q,p4qJEbjoVCvWdptLCtb4c:>,KeL\BqE</wJbNOX)AU"gch\#X:p=I&<^P/MV*ei8)D%zSQdh_h0+XW#9Fa.ReixM+>7^qT>eQ;d&QO1Fa'U"mF4>VGBjE0p)GYc+tT]+$dcKTk=cfJTq%_M3;7Sfwt:Y4Zxu/eO8wFNOL)[l[r>U"UA%nvW34tQrmwNW<L%Z3;OoNs+rJS7mzFP[9NicHi%'q%paguKXf+7/2_hh?I[AU"i++/ag0fv%yWsgF_ImCZRR>4K?#E=U;ba&o1%_alkv,;.a2o&Igm3r=fUCz'7=0U"c5ttSNQ[oFC6;6hwZ(*DEd_6J)s.m?LG*5bv-P*U7i\]BGUX,dT;RuX.$l2%\gAU"tt%rSa?EvaTJ=<<dn#P84_4AjR,jES<J8vKn)K4Qp<unJMcRrwbtswH)$7&+Z'lU"[9*KcZ_QNs6ys8=pV#.hdWs-L6USl)7FMQ_\:R+CmN6ovDr+>=NPTII20feq--oU"r_Tk[VTKhQPiIX=OV&fc/L?7CG-tXF&]7's;SF$V;u4Fo(m&%sft4rnjZ7V3B&]U"[9pg[vd698Q:4)HaVmmti\>h4=NVE>(4)5[<]u3?:eOCZ^MPQ'q?PP'=RI>$%5LU"l=[loICLKVWsO8q4xue.E1o1_NE#>CFJZ6\K/Jd[].HEgQdE$\(PTC'H89V[u9kU"w0.DOcU%XD$jJIJKrKJll&*S,3p7nIZra/tbEKlnL[aXOLkZU:;6p3\a#Gm)d\QU"4=6FHQV/>b'9/fxMY;L$o3lS(*_sI08pVp-_c.+F7wu2.*w/$gkE:#P'V]a7g2OU"\s):YoIGmYt;jnnVkWE%K;'F)\W$8<5Pml::mp?Qii-)>*7j6]hUF*9:4T^'FtIU"=*\wG6pj/]g4S#g>QKjezbG;9,MqKRZ1d2#*SbW9.1%C1d9C+WrJ/SMuH%gu'j-U":ASEo<Mj7S+6bSb=Z<a[\L8pOqnfHAEvE)DKy?B&6\wvr=P0TFo?-l0n=z(S\z/U"2(ng5aMuAY\u_C-K*8\GAdIQg+nS:7]3vTj/dMi#;0[3iN1x<ng;kV*t-XUVl9GU"+c7$]t%k#(sMu**m<o%(TTq1_P<V8y2gRK%zrq;56_naFddjF7HEyAIeV[N[qkqU"6&>D-]^X]#69mrKCBYbM[Y4'Hh^fBp3W;)(*l=#b;<r6acdMKbAg;?G$l9U-2&[U"r+5)1Me57*L+rwc[i,$E[5j2k.\DSlI[JbMK^M$NTeL6]#_hsCoo6=Bk2.s[iN_U",)Chl/Qs]E*ARpmi.=Q$trODJxIr5?YcZL,Dpw%86F9FeozXb<25?O.$A-AjMggU"V\Au.$nVu_pbu37D)14,qBgf6-'?ZysJ<8Q+XMa3_&By*zUAq#xP0dP9ZQs[9>_U"l&vU2hRR25TT?1MbX2/-Hic#d>__iRYyE)Bv7tnVK(d9aq_>_n<9J*p.'4kNML9U"#>P8O%6>cW3;W4'jJP5$dl/)R;iwTW1wt:Og/5;O1nYt-+$*'0'nz;8(8Z6wnnnU"7i#u5n/A$vzr+Ak(yNN1Pa+N%/%q.I5l+I.oDS.-8zH].'E>[3e=h/Bz99*]0W2U"^Tx35(>[j+lZq&(6q5kiVF-HT6Z<sC(52b48i13a4,NtPt/z6:M3gfCH5ve)_5GU"K^4$PABHWV]s[qr.+:wh0sdSmP#PYRt:$Q.l\XHb=]kzgjB(TzE9jZ-t;l\_mV*U"H.A>t:(L=nr3g06w3V^]HkNt(vcIL:J(tAZzKRMyBZ#.2zq1Y(rs;(^\c'f+B;DU"o5kHwV*HNj\pO_Wk&[D%#u.J'ntq1CF&,Zb\Nk,]nv4Fb+/(2<e9N,S9,aWm^ijU"1r%bpu#sL=^;2r$R-P=$B-D(pZxC4OF:I2V)/1\W$$#<JKF=[<D)GJ?fcZ(>LXaU"6J\XPvGsx>fc>Ne5V,0P)a_nR?[3y<Kpkz)\KwQDwsh^4eCy-nzh9,\Vi*f_2SwU",+:*XvCi]'DCpgZ_a<;>2U#)h5dKg=EEctK*1NCJJGCNg$D5ywy.$:x3#PvZ5SOU"jSc,:Xw.HFwxiM]cSIW/d/x*m<8r.+T.^9?J]?5p7qYS4nJ)5B?)X5VI4f+z<i3U"5Cl2.Hac^d*Gkj.JMjNHV7Dg0?.9k.n%4C]sX4:,up5iFE0Ou[e8:eh42+)deRmU"?-Bi(\pg$VCDcI5GF1T<3YhR/fg,d+\uOp[jHJ5O(m\%pHEa061YF#kxwpQqt5OU"GAX(EE,SrS?>r=5QZ3aiX,&[GRUC%c1)5D_RxI%]e$O:OK,Dl?R[BxEe4NY*vh]U"k2?8(7H2wA3JM\FREp#>^AXX>k&4+kPNH:vcTPA4-pZ%<NE%E0(K60bjDcf#G6dU"m$X([Cz8EYXnOU$niU:qT*G;\ZihbEoX%cN.J3SH&uw5IGR;EFIO2n-f$Ns]K5iU"bxQw;&&.bF<h.VxZ\5ptu/WZ]O3\O=fZfj+Y2t(tIdc<f9PC+/9W8gm8.?IYBe,U"&]R1(Y.1mj(j47Or2prjRi8>,WPjAZLqEG]5XT,hRB4i2:^]L#[^ul1RFlV(((pU"r.R<+F+s+=8m<V?s</bcuLFr1fG>$P6$%I2ZbtaZMhiAii1h6CwZdpGN]#W-bnyU">\x%Mt*_ubcq<Qc^7bm(,&+qzWhI3$kpv:mS(*t,k8EyL8<i).zDHTry8(s6a_RU"0,8d_4JfF-qE_iezN\oa08,<l\u\ZkXANu6]8m[#l-ve)TEI/_0F5rgrXUA:NyEU"YEpZ>CpIKBRHkuUl?XigKfRE*Z/$:8l&X[m5._\HJ#WmIXH8]*q3'e^>Pve0urIU"1[eiYi488TVx:3^7<pRjj:mJJ>(iSfAeY%Yq,.NlIA:;AaADSmkz85R49B0)s+DU"a)'a2-g)''<TtrrN$_Z%J<'ab<LP0uk[/J5bkZ)/mNGq]uzM6q]Q;4K,7vv?YIgU"n&[ZTek/hE92L6;V6PV:z?5uYP629U4c[EtL'nZAS2FJ\1+&bRFoRm)wBFZKP([U"Z)_;3P<I78Y%N>%ZNXj4e5JB.X4f^u-*8bUc_8tYgKdTlPt''$p]>i4LmgdE\yNU"[%y[dKN'cLo_gB+I*AMxq\-4r%dup(%)9%'[%-%0AxrIx\7>ZJ[+%%a%;%%.%%%U"%j.qn)f#Sjq)Ef'pBc\1678zox&hBXz/i?AaR9FK2MD)*SxgkeuuI=lJR3AeWZCU"-?&??1E(td\CKA;*JiJa^qGLmid8wfIeB0N52npt<-BR,nQby<+40gi;CA<Sd%BU"==J1%%UXluJZxlHJuo>a5rGkICRsL2fI^k$N,4f&qb-$UD)CX;;lTnA<n=\D#ZdU"NkMg_0nQGCkz'fZ=)8?)%[Lt/U*;Q2cn&n&rLE^soXZU)'+#fnEsAZ-sCt,So/zU"sB8smZ$hxM(ZlQTQh1_38WQuv%IDcq#LPeFK'%e8ORRx=J(x7%okAi&09m[cg>-U"q]<l9#;opp/XUb0=N<:WP<(J*R[#Xk47[BzY,G/7&:kDFY3E]9[l8+T/vtXK5JuU"c;rn[(m&XoA4?2e5>&XdrL.9X95+-toJ.E\h9TW'i&6^^mIi*dbRB^P'rI\uu&JU"TY.RQ+0gbJRLTFrRtfi[EQwgXaRjPXrhd6Y)']T51RFUcSX6lK*l:0'17o'0F_#U">Q]:;TwMAzc7z1p?qi;J\)j%5kyha]xd:l%R5pAD>&-W,Q$[r,RJ'=%\RHon\A8U"/rm*)<VzKPr(I,TFc?iI7K=YwE/lkK%bM6jD?-Gn5z$]X<3uPM[_LD0cD^K+0f6U"sIV]cS_c''B,;D%)HREKc3D6l4LqCoutKWTw.2Cj3N?5NWL:UqlE8R&Kc8Z&Qg<U"*bO^dHm#2.6wmvN)[H$,bd*_.nA]g4yafuPi;&<AS+FfTjC2MMvM10)dje-npAOU"JF_ANw/u%.\;<gKS=v]R$sEbC9U6f>$DQuR]=w\-uHC)H5Z9&9YIi0:nphC8KRrU"G;Zi;6IiW:qYYW#EZ[DOKcudL/p<l?T*U4JWW5q)u<_H#X(3i5]S$;ms]w29D1jU"*+N%u4b]xwf;V0J8VN2afX'puR,->.<x^v4/y.p9Q2)(<4RfN9?85m:CQ0[lNeYU"^;=BS]jMw(1w6\kT9$;-MZk2[TXj^HLF_Kj.fCf_E%r;T)=HJx^H7G1o]9*=Xa0U"MztHL;%:d()&0W]v4[K6Zo4cuUC8Ob/b1f\'?hl3J?4#A9VcwD0ZP7hR*f]lk:UU":\F0qIk>s3UIWB8*L/dVlhnCThence:07s6)$*FcY(QU4^6?N9*g1sTP2Z6m4G?U"M+a7\wja*+mm9.rxOo'cc3WN2JMV<g<Ibr(EhIT6:3tW8C5Rop[i/?hQ6:H4v$CU"h>R=4]1p\lRRLZ?bjgUk30RG$84>hS3>YST.T8%Lq\XtJcfbFFjBdCT#k1N(ls*U")FBLjCB)20+-=0/8Ek0-rS[*&+8(za0jMi0YXl1qS#/uo#OE5:hfgRcHQZVXh2_U"3.gIIFN-88xt[d9i&d>GmJR5(oZ/WN)ejE4;6s^mEV:XNOI/b9&SB(1Uz(3Ilu%U"K[HD\p6Dg5?p^dKEaVs7D\I_6mcZoYhM=F0DCix/[3He&:k?L,'i6s\urmy;3BSU"AE6GVoq3Q.U;EA#cD+Z4jH;([26NQd1RoJ'>L_#uGCzrnjMgO;tnW7Gd)UDdVO'U"VOav)p0cH9=]%kQ3e51tc&[$=mi6/P-5xK5Fk.o*TZ5YHRU?D65:LfGmr8=s&,1U"E&D3HpK:wivw9TYVPs]j*Fk?0ub4z1=^:+y-##ECbV_TH=A]\c#Gh%huMX9fm?'U"83hRnDIx8'#s\Y[,Q[H,ZvhI#3'Ug-jm6hf+:3[[MW+8lj+a:eJtd]*J:u7$sWpU"pK7.L3n+[5.WmL$#l.WMw$V(Zq<+cFtIFY>cJ5*zL-;\FaQPnpjmS\dHFymDx+TU"I5n0,'>xA?+QcF,B6['=I0UCD>5/D%cgAUH+tI/b1I%DQyEKe(#*4-ofbY_T=%pU"%DS+_SBta''l&R8u<)Ut]^hia6%U:wTi2,%m^=d1uCjXTQtnAJ/RON#%Dv,hDTwU"PnPkLdoC8RB\U%dT=W\jmUOZSgEoM9s.^o3TjKi^r0iXvw\Mm*6q6mL&_u0sn:qU"+<upp=EM\S'iqsLiLNFup^bJ;NiuVR5LL4Rz$=/g9DYdhKysO:z#\i2%2P,>QagU"yI]upDAdaPS['$D:;'Qk,tJ$kp+sds\aeZY&F[;:r0wY9;Ff(tS%cS9E1P%Psa#U"%$PS2KBXO0L?nWrEpH?28VbeDaGY?f#JNOgNx;8j:w1-B1qfQRrzb9[:v$N_,c0U"RlwZVdY17OFwKvECrc,(86Gh_K-PC\auL<'EM,e1)%UI5iVG0q%Tup(%)9%'#%-U"%'AprIEqla&>%#%%,'s%%1%%%%j.qn)f&.UXS[unhf),Nq#2(MNw8apo4W$=pEmU"Td%%df?8MPb%'69>'N#%;/z]:]7Yo_A?/2%j-mhf2Kh[%:&7MkzakQaoMOfb8<qU"0NcEJy>P)Sx.T#JLq(d^'sAFj<U7#=X4m4?0>3w(ytxXpW$uGCxK9s?aclq&w[VU"XCHtKq5puvvWx[F.Fmc8Cx//$c7vYtI+;ZZ7O)4T##-L\GE&'.s9uiBcC&Atao;U"&tR*-LX/-:mNoR5f&*OK2rFQhM8jzOKYXo&IeU,:9F%6'MQx)np<4UUKP0Ghe)0U"V+27+6&+V/ry/oQ*jgfz5sf'04V\+H*UaYq]m:9\4uLe]E-%\g*%/n$K%&/p&b(U"jxet]Xs9Y/zgw%'YX=BlaRi>O::6TL4#e%Y2sq69>42RTe:eBMq6>-6dszaJ7$)U"<^fBNAq_vb6]T)D[u&bGke;<MOdA'*Jco.kdK:<D=gHMwHYAqN>ULKA4:ZFc-Z0U"&q(K',&oq<=O+6\G=\;KwEwu;<6f3qp%P7jP0D+c]1<2CfQBHuUz6(PY5t5=izOU"+-X'&\BCW+7a&(H7yEYXu-?UZ&6.'__BVD+.eUxZkVi(:/\uipZukX^iNVAS8)0U"Cp0:2bSi_j*qp5f$qbD_=8MK^S3NYFEfgAzROZNNn&F.82GCt4n8YXsD(CrTsvlU"u6,LHMJFYna=e;9&,8YHv;h1X#ga7Wh7#x=m'Ga-HbBn#la:]meltrh/6*TMxirU"=Z(0bkL/ksQGw6I\n=1mm:)Lq1fNom0:88YPHN:vPL7t/J;lZlY*t[RG7(A5>NgU"8yz:a)P[.I[('E8Cj)727Lr)DQnhlfNk,VE'M/_d?HtQS5VH,Fn$h_?Cu%[IzZrU"Q'6sZHss%a)u0/?V0pS:>R[iVu=Pra;5uX[U%Eso+mwXSC0JslC=YX4g&,)a)N'U"iA+hF9uDll74hsUnLF/qzv-:h=&BcqrB,OmvVI3NddK3E$[JPwL8O.u+8Bi$roPU"_=mrEWU[nGp%=w4>vff(ydPcei.gXWgRd8/Ud=mX#Qckn\z'+2bvKGAd9__6S)wU"0F6nzoEv7rfj:uN&_8Vd&94C#wgYIpcOtVdD*fq+7brOU;e(1EulA<dpSWL&On.U"_\f_<,^'[HjjZ^/;u1iVvQj$u2,8q]ihZkR10qA_:wpKLzJk&cY.vAF;DZpX3c2U"$SXW7gfs7bg/\u7uiGO7-770a3casW=01xK0K>>BN3$*&Pzs8y)c9CA*'tJfWB_U"8)KpbV41v2c-'nSnyWjz0;lUUvbZF[j).Zm&_9[jY42WIlcskwKZKi9?huh]dBtU"wcLj*D:(I>ljD,>C\fqm*8]=MLHQ>8c1w6X5HI7St,Z3pS-Mtl(Ly?u(LIm2KVrU"+GM=DDK[RdMAicM$.Ey8LD^?WfX</5\*k.&q6$tB>KwbX:[ZyB[Us]3C_<h'QZ_U"MGTP^%R\7LRYc7r\uB*N3(a5%4roVc2trX\9A.9iM1se7N+Jew0D<f'3e(HrRSsU"-<(wYl%W0%B?6'An9Y<T,ufK%csIm&=[W.Ga\W\=c^6'L&aCdnfppXNhG5W7ZGGU",9go=c(7;Z(DR>FJW,)xu4NmJV;?l]6%Q'SQN_U=AigG62$N=SPKVX3aN,aqS12U"BSnC&G_svf&vlQirZ.Skkt5JpE/)\C=V]mdhsfDazV/mmhZ3g[gCbIu:(pni.EEU"3'qS_UeyBgH?J>(jP3f6H<oT9<[r,Dsr*=YsUslsZ0/C_.'<bbrF2IR,54YkVq+U"yq0oKxhoY?gkUYmg'UB_CGe;zBcfn'*Ya[TaQ&<8;[('.#V4(nBy6LeRvOo0Z3aU"Ao;W$pRvn\QA'FB[?d,w0>M_PX==nfORl/g<o,Nt%*V4hJ/mv,XCJYmO=%z7'p2U"\$B2+[)[LnJ][iR^<WhpsA\B>M1ZrUjzLrZ.OTjOdi>o_>4hm51$UbDV35:i<S:U"53j$GlD>Dtox?_X).VeOH8MxJ1D'V6L6I?897dQKNBN<eD?eh)Avi+Rdvs-U3:JU"#uxNj4IFl=+_)G^=E(fM=ISN]GIO2hcL(\L<hDUl$'up;d%najzVikn.mv5u]oFU"L+unmU)i4WM;Z&PD9YJ^7U2);M&8#UGh2hoa#ZgD<Y\SnM3x^jkhw=6uOf5Ou+5U"a+<TWYHc=o]qa55J[(Q4.H8z)c%:zXFzKi$PErCrY^+o3'ga-1?x77R,RuB9\IfU":MpiYjk3r%LAAvUZD%mQyk#y\s<nPDiM;Z-p$F9T?<5cMqp7&sn=T_)8tlXo.53U"r/In;]/vTdI-nA[6z1HWA$(.>WsKF\lS>K)Krw'0j1VbAL<)P(#7x\JkD1qgocnU"^m^89=KwuN6NiU:QiizW5agpSBc+kg5d,B1tIv\Zda^Bel?3aBT(k.;Z^:*<U;1U"BGap-:Qe5guGW/UR_lZdC;OKI#,Y4uQ/ekKu1M1<;'y/FXL\,MuXWP,[Pd2[+q]U"Wwl#y7uSndF=x[e)PSX(c;9)gN/&S:5Y+[$$kb&uKk^fLtG):TP/aK)J%uKwMapU"pmDPo*cmYQB<$rk.Y7,98pu[UUUj(In(5+;U[11TQ5:zWm=p<Sr$?g5$qTsoUo/U"6-^X,<$I(&%H6faYK&BRh\CdU%XLn[T'(B]O:^KLTS53Kr4YARn=E40_DnW)8a6U"AgQ])h#2YfeF]h&*NFs%b)nO[AqabM]fE'%nAf&d=hRbA]en;wWEkPU?.4p^*.fU"=J&Ljz+OJtBj-#jv_.6Gj4rKV&e$5iCV.NPuv03Z;-Se6jg%Hw%MO9QjZxhT[K6U"'6UAO?Ct1HW8O=#)F&uY_sUN#[Jux$OjgpG&;Jh_3ty\Y1oGoch7F=^F,-2_K:(U"Q?tf5sis+j?]2%Ispu6[V^Nf[Q123WZd''aT*KXg>Xfjo\G68/r&>$b8&^ZU9FZU"*v4H(t]QhANBIicX6nrjvGt#/%zzB2[iq4bPhu#8ABk3FLi4&.RAz1^=y0uFz^UU"U58i>8K-;H848]T%ahYQO;zN'M_fTpC[0Q_$tV>1k(=[wetJL^ZY9[u*N=%:?=\U",n3%k-]Lm')dHBpKdgQ58Cj<;vq*/03zU,A]XF]5M-\OT-=z[iXdM9EwvRpfvVFU"9P1dgg+I9LX67k,P,g_VpD#2%?[Pe\?u)u:S;%=SdUVL:&fZ[KI1i.;3R9\9D&mU":vOb<Zpbic7pNpj?:Qiikz<KvTDEMDu=AkO<(N]jz:tz8f8MAB<DP\5.S]gp)?oU"P6r+ZYp$%_I3Wb.f8jN'G]21Wxch+<L^atYfA3wt#K2tO^EQ/9aTZ$2R/Z5o?rBU"8i8ZDcJX<fIhy9QVk#_iZ/HVatFJOQ$4=p/X'paKYtmLm$mp=)DZ-<C$I2*Rh52U"hB+0LrABP5v(10;Eq98&S<oW[0,<_,nXu<mEnSHVo#H\XMT\sT)gKHa;kf?Mb>_U")-['hIK<.9eBcvrP[<BqToh6uk^Pw\;C-azn-+uIP*<;e;B+uMoG#<5#BoGhHq$U"8hYg?kG1/-[/\rTnR(cNOSPI=)6)uG-*mZu<8o1GwNal*=j[j4-Zqf5;BLwn7YeU".K#d\z4NItJWDKJ[0f.\q.$2iCOcAN8GlU65eysONMn.j;Yl*l2jPU5i7*L&>IEU"]f=Ij?1PRIJQZBaCl<9B<gTSTj3&kNr=>C'z/E>bkgU)pOhNJ91_f3G4i2zMxu1U"kKZ7,kQ$QjoV5obgu+Zs)^ej)B5?lLVJofeGl)ks'RjK15N86TB2>LRhc>.8n3VU"lTv]PuofXxr?z(e+ErBsYfLt65d^d:_dd:g$E63mA'<dSk;4.TC4<<AZpmuDAJhU"ht?Pd]]W36H=n*k$AK,_s;q&*)fZW0x\UBwT?(wXb2&7TU8>>/UY\'tVbuX0phnU"NBj$]mA(A7gj(%\K[P'CNd:M1,ZYBF-6&'8L82'7ky'.3fT<$H&1U5;.Ei:uTJ'U"vctA5aTJ']an^h(\?g4^_O''yeZGGui[-F#ls2Y<urT8TrmO+iiONSRRE^7,e4OU"t.r'rntjjjvT5,+DQ0ouA>1uRBdP-oh(rc)]a?9hLqR_8J5X21=LHaHrbj2..:zU"RkWQ-gq*$</0lJ%u&6)*<5p\,[sQb7W,:pzY>eTHSGP#kiW5n6Ls224&4Zc9?0;U"/>E34Hz,BGqt^d,;EuR?ssMyCT?Oj>IB_o&VVb-Xrp>/Z48fMe=$a\//)fZMrspU"<(GuuGYabM3h:)VexS%Y[,<.\[_wPu+;ZZQ,^zUVr0qTYV7,lJ6$*9Vpd3pk86fU"/%(i+hVJ<p]aB4m$0v+I8Zpe<*c\0gaj<<Fq24ufJ#lqm8\h,Ku#E8:WJvWKUTYU"L(5%*eQGZ$=BNq_P(Qr/2XdZXsoMl/6]rP8$k*L(pT<**^bxU%2*VmXo+A'2>d8END SUBSUB V2U"_oGp/$uZM2fAv/bV&S)ycEfJ9;L:$PEtWrV$tF6P00ZMF*.LId_2=a?A>V9iUx[U")VB5W<19T9Y,8*;FH?$mmk>9wV.PT/jMpQK>>4iW?AsCp7<fZ<OYgCAW621zPqAU"%)[(SCV\Z/O4S7ijj201't&g='T'%/MFi3Y2Cr,apFdA>nR_9C4JAK\')$)^9H*U"deK,ZeZA/pjoar+#cO0Jx-Y/khfiXEnmX^kpAncXM;r#u(u-u]m$]6/?+dQGK(WU"FZZcx/#8d6yk-SPRk<%#Gm?*cp\8Bu1&I,*A9e)NQ$^4>xuh&#UtL$$.?u>A98/U"VJAuYAXvl-W68P](nnICe^DMT[tga,4P*JVJLqiX%by[DW<e#y8a].94xdq\)u1U"4dnnnH8<J3qVN$jmUu]W^bt.wk8obfd8f8DJqu>%G8Gn6\H$x$F(i7-]Vt*wS1:U"WKuq=[m\wr9&eYk_V0S5EAb*;M?.<UF(mPV%OxtYMPdC]D7*ie0iu\9NW&X2qj0U"9n*6R]oi:C8K*]\UcoXTNM>'6c(uqFOqj^-mf02yxhLHj5h,q6QV+q4vf-PR5MsU"Wk\;a,ZMOsRYak_k;_fq&0w[:WyYUS&7)nLQLTCHF2fXmcj8QjXLD<5.7L=TF%bU"AU_HdkNLuwRPTxqHx[T%[DesTXKD8(R]F]CgQ$Saob:E8pT=UqRZnr\$YBcqabNU"9Zdd?(3AG*3o$>//96pazZcQt#n9CCZYK<Q[iS$(>(].h:RKY<(P^1x2SF$wEzdU"X>/N0iPi&gN:%:XOFar_c(GLpA/vRFaw>bjn%8s4DYF,%[5aD$B^z]QP_w'PhKwU"tEEwb1Nb6?PZDc8=J)*=l<cTq#&?nn[6;P$B>M>bg;cXqrI4-9]H>V5CgAqy:E_U"t$MH8k)/ii^TBt,&WkKtdv4hdZrx^KNW'*l>Y3N8VbbNp1o>]L&xfH8L6A9Lt?SU"ZD0#m;_mx0.MXKdg9I.f0>0rESnkh1frVZ^H#%QNhEDkMsVZVlcPwjwh7mM<u(YU"Cilj\hJih/ei/tJo..dU'DTtn2PIW,xI+uuG1nKowb:x?P0=(iH+SIc:)'R?A,iU"mRmrn^<(mrDb;^t?+w4SaywMm1U'&Zw$9d?wT+Ur1Oj4mg:=pXmJ_b;zy7]R-.uU"jfirnocDi:;J4Qq%iP5>ob.5724&JGaXg9rcq*XSMXxKh_#R#'iii*q07<Gb'nRU"F1F_Mk$(cc:(6gpsi\_iADqo$Ls/XcNDOS?:XkegiN2d[dv/TiY^nos>km.4um3U"knuFYHX.5K#Ju?vEu-Cn%<l,*t+*]#OeC$J'iY:Vmc-h#fZ#5js\9(1o1Rm,/p)U"O4g[5WX4KMZPj)8\#GnXH1^4Y\'&9a7iEQ?,&bB=-x&O8pV]SdD?W;R;;bqwL#0U"TDq_uw:v#^CMarojhq]0sz0q4BxohcW#+rRRbJ2TucNn4Tv^Q.d)cc9=D5\orVwU"C/x*0eu^,I4K)rrna(R],#aSol0^,OU9qr\fm?S$O7L=3=Q'YT[KT&\N;fC1Z$wU"Pu1Yy^L^I0dfbrl>I(3.T8208:4q2zr(9US0vh9C4%TXh;w4PbwKF42'6C9\<:nU"Y?cg:N;cY.5ui,\bxG3,i;A/Hh:[6i:5dN,n*X[X=+J2k5T8Ts3lGRvEwDb':$kU"kt_O06W9snP9N$TjXBk\vN=KvpcM7BMpY&fNfp);xG+6.?k-YNVKrB&.X$;9zV[U"ru))2Wq.^OSuamjT\cw1OB>Zt*;/P?ph)X/>.,BTgqqVPZ&u#PDbJiEWv>n+OxgU"KTw.iCkVblvXnq01EOn..sew',6vs&WcZXAJ;he(Wp*Ucq2v&T&k[eWiIFbngYxU"gpul20iq>6X.4?uq?kuNDHvVC:wLMLjw'4tis\.i^*A8RRqG=xkhdLeJT=m2BlkU"-HYFHrw8sXmwTfP=\j<Q)tdmj0QrIfI#4gN;p%N.Gvu-mZ-(u_*k>Sh?uwU1hf(U"iQW7T\e%+&4wP&<pyuMq&ot.51/Qsqm9t+9NusHm\R=LPsdVO6xOH:8Vl9'OxijU"MIneC<d,..5bIZs8wJts*t\oSJF^F&^Hi2KwBWTa$6\gj6>'7hLr&R_k,KG8'28U",\)zBY9tf(WOdt.3fpo%uI#^3U'DIr38$eA\m]+8m.7Iq*:d3Ne8))5;bfm>uiKU"^Nl-=oI,o'Ip8bsYD/)N8yir.?M(r<Rg36wV.V4h)-zmaDL'0rP2a_lJ_s%^7a.U"KU3WSEeCUOVy=%egy]G%DO/bQ5S#cLYfiv>q1Bl,Lt551pVAji.ahG)Rl8uuP1*U"D)O:qV^E*PoRG9d42pX#qbqn20%uLtVqFAdli.D*'<Yh5jOP]<.OIDw%L7XxcJWU"%R7qn%ZFYK(yFREx4b2Tuk7:4;/>K9q41ButoSRU&ao?8VP&H(yJ^dbwBW1nwL]U">ko3&$V$E1nMEjH,Ksb(oedXr_--VugRGTw//G%*W[YZz&B2vP<bo=zDMb-kr0XU"9&:#+LulhcZZ?Qr+v.0*RX(X+up#?/#:RA<5%SKc62?'V?=uDxE.=P6Zy/fY\5?U",^U\MW4fZ=]$k,uomC#E_7\KYg\vM>fY]K>'QE^FZOM<ZLFKaT(&0E9q%mU6ak)U"\\eV0Y(DTdjD;FuupGoXFJ7w*S62>]w(_0D_ucmO$'R=AI)sowJD*7tB<so:8*GU"suxc7t,M4P-Og]p#uM;qoEG4HBi0:.<\?\F0wzj&p_uy$5t0I''OX3/6Y\Hh-<rU"\u?OitV?Fw:Q\\MIlF\i46W(=%ixZyn<H.f*3/]aiSs*,&nNa:FOd'N?9j?YYSGU"rfz7=YxM]V:3ZTChx'+yvKjabpRvjA?=\2K(hCK>jhG&1Y&wGk$0u\3ed,r^:H=U"X6aIcgfJh.QZ4mo5zQYXD8i%#Yo5E&NDkM5k,>0H%-ds02EA\*ls>HnL34SndKeU"YfQr73-,IsBQ6S;Ep_Xnhdr9H7Y'm;>hGk<I'CXQ4/rLGC.2'hOCbS[+5VRh?$$U"-^:^ElY0*H(AjeE8BUm9J9[H:&%neSVR8fIQpjT>)dj3<t96=o:GL)55Of88?bAU"6&,#w)Z6OM/CSG]F^4xrfl;>ho:G9PK=\WISdSfOQ74C)FkFL#]$+q)2_O]4d_BU":Y4k?BjV.&>9nibF/H'wB.cqMo&0d$MYVP=5-fW>)M(FC0I2W&)NjCyK]E'YW+XU"4J22cVDm/ApynXd0wKj4lD^b=Z3hdd$rP7=h&gS*mSyo[NE#b1b\W[Ot6aYXis6U"ZZ<PWqH^l;2?e[S,A,z-K:ID3+Z-2Xa'gC?zl[nYZ5dP3Hki&/Idd.N:VGCKd<VU"I6(&N2m+KIE#3])NbX0+53K7YmkR(6f+o>Y&Cp7H,5)V^ix0;EZK/2A2\1OI.'sU"RtCX9ZN,GAY=WD:\)PiJV)']<vp-ekfnq)qv7n/f>:'g/)^uj(7o8(W3:lc786NU"r,bkg-qIa.5(^K2lcip6^5X9\w[,9bh47#kky(YPqcoP'Vy'i+DA$tQ#r,_+dINU"ouEeZ^]wnqe=/:p7%oESXdY]yE5wk;HGdZb6Lm.3c2q.>IxSX-UZYJfNCH)c%iUU"Di3'wA'T6z>*d8dtLoT-:&B?ovCb-X'8<]l3jq,bRKaSucgAlKsL5L;$:hMGmePU"?$(:7le;uin*zF)adz7=cC(^(Gmc-/q8WT]C+dTRt0Qh85^B+W7cR&Me<l+b%q^U"Cp/_>.9sihz'3&VrEkZZ*1N%.3[U6q4U2tJ7\YQB34qK+3<e%ZZ+LcF#ck1>>*RU"0)feYATU5R=UARj,qe$)fi]m3fC]U4R.k'frbY0%t>'+v0(=/:PVS5bZVuBb-3\U"JODnR]9?].WC)GycZF(/CDCApm%_i=dA[CA8=zDRC:MAhGDg)VCBIAh+\E^)_m9U",oWZrLq'm\sWU4QFJ4bUQh(s+&X3/losH5KWxGh(IZV=D\h,Acv6*m,C$Dxj6&DU"3&Lf'eQh*TwJnzN/Z1_c3n#)&4<*DGPl)^>Lu:/qEABd&%tcr''j$j>LFSHSlYQU"(U;mYV<A[ps)SMww09R,sq%l77\9eBYh?h$$CAX;FU$j>iBS'o8Yucn8cDpmV_[U"QwVkrHQx3<KjB2J*l-UC<3#QAd/OPyIRD:wj0%jxccMV52BOtA?<[UavHVcX\Q9U"\cWV?9&Rc+%tSku;G[.xeU]:4YkL_4[z#0?#4X3Q4.W''+i]0'C]t4ua#$72PziU"IgIh1MLja,?+-4&%y;Y9;HAOuJ-Kw(/Itf:(NuDi(U8qFX125a?+o=x=?%%C3VWU"lCO%-cq*sf2/m8UybQpMuBCm]a+%CG89yE'-Re+]?eJWThN1m\bOTYILufyn#*3U"U9?o7vfAtDO&k&%#bA3i\CDHIb8lnt-Q#%qoRSeYyEjlvF:<KHn3bf1FCp2'LA^U"[2K%jf.qXl8qDrUa&X->09+c:&;BmAn4w&hJPdu+a7?g_3xOJ^P[Q,;uWngD\=*U"iw-xn(7Fx$rgb-,h)p:C&tST9b_Lo3Ga-0*^S/xi^Js98F+x_._Qtgx==[$.qZ8U"bn8ANjPJ3vu->3M&PjM&xY%PI&?<WROWRk)4z&*=0HQSR)e2[RTuAWn-.c8W/f]U"ei7dLQILsU[Mn)Q'*/Q83pKshls4n'Z'Cta:\IF=gYvd%up()%9%'%#-%:pIrI[U"w72KL&.%%)6%%%1%%%%jqCn)f.%UVSuRfqfd(r]QF:1RpH9FB_-7jgq^ZxBWqe_U"UEIJ;kIjWW'qzNYspzut$rr9wo>s8*tTs.$s*MJzu'pK-g#Tik[6,iTgEGq9(.jU"KlkMkTWNWlqK_h]gL\&A0tDlWXBA(vV-x74W01P*YH6V>kX_HhX&ugnEVqJES.TU"RioQRf-Q\-T2?oR0I/vJE0)>MdY-t*bJq(t$t]J]P#]BkGo8_\kZ<l4hW)YMb;>U"?#*0C/D<YX%NY)(;8g+^5bA^CK)TsS--aij,B/[Eia:x2.s,-]ao+[8^585?QtwU"q.RGh.aD2_5WUZ1_JODOV(8cHf,,B+I)SCEKX^Cfq-n+kw.T)CrDWs(8E+z.>-2U"'AIDBNh;9AS^HoP\#ZWFIxs43[jEf0K3]\dmAg<pwjp_\.-c,3+c*+7Rz(Rmm(_U"#SFaA5,V$m_L\0b5oQzpsT&e2A%<7?8=Tbe&uItnu?C1eYl%d3$)>&'&3W^yocPU"O4-]Y\fcA*p.g0$S9hS_31<^S15?I9sSc43qQ5t+Zs2xhoo935IMsguk-8>7^gCU"Kbh,Fm]t#Da2CfOA87VYDA'_9gFST^_4RSF/(8DV(NmraDvds%4up(%)9%'%%-%U"oAprINLv.7p%A%%,'s%%1%%%%j.qn)f&.UVS[unhf5,v>#$#hC9qEluYW-8[)g5U"HO),'e/=V/#vP-29j-A&U30h:g_[dGItST+#bAno/D'eciyJ3IFAM>sK>N;su2-U"tQ]A$LXCY/)jPM.\An]4Jp-PN]I&,U>KgGS[dY9bh^7FmV0A2uo&lH5sDHtG6ExU"PJX%9x%.3]E[6IQz)brBvW&gDte[-&CaZHQAK#Neje5ClL+ewCL,^&S7EGjh(D(U"l1c%ewVI0CE7]qC&QRoR<EQ70Epo<LE'>;UIOmWmb.ikD[(-i(=?^eIqAt0-I]=U"3hq90g7kfLHo38Y?<ZRY%#(c/_)rb\+7e%YX&V4&]L#o&xL1RR^/*&KH[%)%/h_U"COObUH(:b%Z(IWP0EU0JOMEE_2z?.H')D=.xcz5#I]V#CiSPm4^Aee<8K93ivk:U"e><MwUYPlokL\uxlYTZ-m6d)Za$uKTd.DWsRrsVPY<>HF^XG=-GHqP^l4P=qW9oU"(ksl%fq#&dzT,6T4DhWcRQOJARn>Hael.<7N_$q\)G7\EYxRT>rm&Ot%-s-Q;1uU"rmil%*&HtR4dYR>1Kux,SH4WsgXL=Zhid'O#Yx]Chn*^:a,u3B41xMH3i&GQAj*U"McCqBogoWSg=Ad6_tP?CCECNzLb5iPblW7-o+.v;gm\/wWL#j))7WrDQZ'Y*U^DU"IcJu0c*6u--1-MW*$qWDV5v_Fv6jI=ATtr>V>^qTT2*Fp*i1]c&(GS1EkVP3IZTU"6..13l8<7^2_^*2uYd,:J0eh%)##G/]\X^$AYN%V;m;(r(rsTr1Q;hxu79(J4G&U"[JIqxj/?OO[MM[[>j(A%04ckSg[[RH[soN;34V7uBybi<C6pYys_[5IxT79Y;ggU"[:Z_0oz/qQ]a40EW55E]/vI8Mhw^dfL-U[rg/:oF;o<E:6&:1O*M5vmj>BjbZq&U"8TJ+q,7JeVB/jN_^P93_1H%-BX]^=oo9I<qZ>)$oJbP;WP%SJW0I^L'#puB_(8OU"MlP+^S.MIPDKNa$tnOjCdHkcj[PHa2EDU3[U<G)ABI_lqb+G;sm;+_ajjTGX)lTU"0>p2PlFbN8<IC.p[zZrP&Dzvz7zfXYlm&v8YNY?Coodkdf^Demj<*vdl#QZg.b?U"H\2em'Y#^mg'dH]6,?1m$](A)Xdn<38,bi'FELYSou)xGM=%k)Eg^9NOC-bnDy6U"komB.At_jOj^0kOu=1B7j\xic\0YoF[7.=Yr8M++Pm2BI84PtaG%Y?(eSC+B)#(U"WXCn5?fqZ)f<jx>bH==bKOTg_h5S\tf^H2w-NeOUVITk3MV22\$C&%Q:o)^r(*MU"\&i_G0%J_vq6u7-LjPU-'^\7<27wkr]<B^sAL?&hsXwd>Z_YlSP*-XAxDvTh(eZU"G=g6v371h1o8nRx3D(lW%52'EGh;/i]E-jkta'upL4y=mr\#,r]j]PK-nfI%9K(U"o7V$kYN/x^khJ+[e\Cn1zB:[MK.=m8Ors&=YbMWUYuM7SQYukDDviR;M0BkhoMhU"\Ql5BVB;YDkGSfh[je<Rd'[,5)&[(QUE4glou\A$w.+IsYf?q^N7;dXbBMD=7#]U"\S.aQs5aXW8ub^WSGBiHIQM&Z[\MaC-Im6y>TR%1hpPP'5(,i0%lt*hdmK[)$jsU"^V(BvjBL<HQlsnwh]]*6wBR%x%<GZu6ilX8a[v4rCv(Q=?DrrRz5qA#X#\cEXJgU"s#IpJ3Q-44,YlVv+5uTwU9q0GX0PW-O9%qf8ei7o;[s?&ayl70GNQdl>NWibh9SU".SYC+W<+A?6':g%Fm4Qif.8O^)X?GfVatWZP/)/B&qFwN>Of3iqjSF2VMBs/W_NU"XH-gZGWRLg6iELRaY:N5[[lFg[efhf*D<Hm=Z2c[lQIQ,0dDK=6v7G?P[F^0YI]U"wgyQn=NVH\3JI](H;.c\SuYe^m]m0urCrjg;e+mOAcF^wBXf7PAo[dDE[HXlqI>U"lNK#qvB2FG/YMjaGb;FtPM.av7L9*PR(ktSetH4)8Ub0pXuh?9[Kz(-o&fII?\]U"TGHsP.V$EF(eml8uuB??lukAMM'pU$^r/hkpdb;R/iaM?m,u4[,+6sia,=ev6o,U"7?\>)DqqZlY_u__w-i)UK;?oSSym+rDa.E76ARn:Xbn]t?\IU[c(q*,BE9%60aNU"ScQ_(G1&.;m4ixg^Oy^D7/]#eu.CxElED/NJxH'D+wGOF;$5><#;Pf.eI1&ruadU"uNmt>j2ynvmE;ZF$S$.O#nel9wl92g>KRCL06Y2FCt;L2D\COyle?AUn/4Y=0kxU"a8jqr$>UBoq)5N=9l4Ena\iPd^nU.i(;';4Moaf:?2.Hgs:o<iju3]'b(uT?#[&U".5y4$F7]OMKjppE97[*oRD1;QO8N/g,jRvL2x0X*GLaNhT3<J57U(lG&M?r%XzvU"GB<'LY=<G%n]D9eMeuS;X;a)(Q^TYA8\67sE8b:Jvu%gixzG=gv#%06uUK(\wKJU"W>'MGMg\#Mms>eMZG[UFgD&66X;Sx(J]q.T+;s2D]UYa<wfCTnYO<8,Y?&90^]\U"%tWW[sWl*,TjEAoAVr&Yg*Q.E92[W8QSsr#b5+sF<'xqXkpX12uMRG.8Wuw5yW2U"knLmwbJN=X^$K8mkitJm$^Y)f]HU\l[<LOJPr$7fwvo0h9LCiFXC.;gW)H_Xno-U"RdztrC9MihmkF0TjR8X<f$0N(+a0zDIDxgu&eQ6ODvyPS+R]^wHcFiC)$y-DKj=U"V*KF'3YVp[vrZK,'5D4=LQ(cA\n2^.(lhq0tkBu?Lff%TJ0T16,ybW$-oWm(*WbU"uiG4rm?D-&jb=2DVsB?%oz=(ttidJN)r_k-eHub&'W<Tr>+,OiL3/T.\,%&P8*yU"S-8FmPs-vMw%FTaRC<=8F6f^.0pHnFW$oy^F\VT]*^=,:jbARd*QL>A,r+S+36<U"8V]:9aGdmyQVD*j>eHb70283#6_TPq[RMqEIp99Dc[]?ZF15;BD.-NF;e(uNX?tU":6;wb;cE9N.aF#o=F#8IeXyC^k^fPhXcs^0L%DyZlvl\u4&>JM?+Bk=jb#HUM,GU"/).Sw)[m*jw&('(,W:e9]=l<5sU1e9DGS(pAF_KNEq[u_r3sl)m9Y3U,.*hb&>DU"DjK:*E)&Cf,UT33=\Gfd55Sw'C'tyU-:#s1X/ds+mmRTa^Vn*jXd]wUu'Lbucx%U"Buqh4L[?xTW92Vv3Rhux,KrEZ%t0:VQies;mHk<F771s&;9eeH7u4'EN#*xMk8;U"hbjAgOzr[5(JjJr%5,JfUQGmC[Rb9j#u\pVMpfmMAdY]8$u\MG;t7s_ulm919?KU"m7E/^\w.Ch&$#ZjBwv2)3CPwydtvs$RTN+Z*q4Br*xk84t=3wSLS9ZzZc]S3V,.U"C.HblTGXJ_dR$.->*Spj#]ehsV1<rfmhDzG6+E-R:&U=R-S.p*v2<IqZX-'BnJ7U"9q3xb3rl]ddf72_r9qKadD&SeL(.d^tt+I*P(+TW+D8ATbXP'uDA(erYaT9PR()U",dWrfRUH^8q-;k)mJ;$I[E\N0&'L*$(B:<kiMw0q8&v58Ms-CtY5Vri<Sl%0+-/U"s\rmx?EB_=+OJh?Lc-H#n-()Yq7Nb*.f6]F/.sEsP<la#TS(aeYOi.LP#];5IO[U"D'Tq;$?8(-SS7)c:(pg%eNouDOzk.hAPJi_)n0Pnh(vFLWY].6>ycts%R%06?a(U"Sw<QFE'bEX]q63&-$,r)QfN015>LV5[<I0V.0BcaqNpPwuaKs1;5m:dBV%m/GP.U"\5xJ*hM0/D/-Mbbw-KCeu[hlpy6MwQ>/jse#xNL]N2p?h>*'/U_52eP62q6Nm/:U";'-\[[nTl_5(&r-b)vn2to_F$&/qwQ99*q3OH#8&du/32j'Lm&e-1q+*:u6>7,9U"$=*hD5e(G71v'sxtVFXIq?B&d;[b\g7$>s*J9Otv%USrMnB#*EY8[ZLTP14rgQeU"nNubrPjK7rqoWX(^z1g>j'WL=oaXP7rG>KtsorndqkPCvVYgrw/q9#hY2>uR<.mU"+m8?zi2PeY5T[nO+ReeE=F*95\YP56NyaIxw]V-F)WRJAk*d5XZ%8*1UbQFCm]EU"vJxriViQ*rDA?O_&nJ/_jSpW-qRWjuYUwRGAO\;MJB:X[Syc0oMCRrVzJ$>&a:uU"?nTB8?R7dwv'W6GL>aq1gXnOUoUD;Vt1XTTM9>7qLO-I=8>UU65j^9M?lM3rxnFU"o/URskWb^824M9YBwzt6*WbJ,\My+08t9?OFRGtMY[/ZQ^ey=D2n(;VNTZUab*NU"ggy#p)g;+d)&pRjah4+q6V#,0H]hbE-v_mi-\;tzj?0aAaST\_G+NH6h$*<w8p)U"H]0QGMCNty6vfRGsH=m'>c96^PTC:1Sd7o:x?1-/'L^EusxOg1ITJgd,#WZveRPU"nuUb8L^LxQ8-+$?,A8_laB7qQ-mWjV&C3S.+8T/ti]2fjS>CR*f;wY3wx*eCNnJU"#XE3\Ycdk^c1dS3HPzI-aigE;QF.L*z)YNsut2l(1R_wPx74pitJ4c^q&uv%z8YU"Es&bNb.0:NdUJ;39Ucbzltue]v+pfO\>pZdBd1h[DVmZvdsT.([>y+F1JYMj)ebU"JV-bJ5u0$>M_WnH;SZ7-SIyG&]jX1Y:#mTV)%Y<d7wx(H:e3R/p.,XpMGRD%tm(U"X?.Z-i#fb:6LF-DJ.M$6:2l)>\e;7':&P3Wdti=3KYW7,LzhadM3P;']Oi18:D\U".yIS)*dS)h/y<qSpIez+?uHZrETJ0\)c7]d$CfbA+mE)LEzxnu7uT8V%y<<LtOJU"iEEGjzthfe7Fn^<,H8+TKp):E923*Ea=bwKpc#AIe;l'+$jsbn2ATtltS]qS>:HU"X5rXZORV+cWqK<xWOB]^pZ^a?sv>InYT:(<[zk<8.PNW'dwe$6ag\Q?fK4i6jc$U"s#YP=G=plMhIyr\*]zTDFFvB$/7I$CpovL<$bCqwr-xqwC2t/R']oO$_L6X8,>1U"r-<a#Z)<9idBtGY%PSe<hkc<KdpV%6n=:qN&RoqFxjEKzB7mA(*.l.x(E53KXiLU")aFOMWjA>$.^+6Fs\^sTBpb&lX*H'M%tO-=lFWCF,Bo,?\pqAURl)WeXsCm>j1OU"CKu-Sv%_sC&qzQ_0Se&(/&'tC&N&>RdQ#'%$oO4k-Y3Z[.(nr%Kn:*GUk-O3Md,U"OfwX:[ghEGyPnr-#L8BP__-+,?(Lk1*YY3^]]xOLSAuKMK$mTi9wdCYM]O<j+<%U"&%hycB#6^,:H$Ubl#UcG33Nx&f?PpSDR.LYAz%]X5wo25[R]^#s9ZXJK/A[XU;CU"I/Ft'H7D,2owfdR7qtB2cg$pHj+HOK_cDM7?.5DUB2u(rE$*HH/&l&YVYRxhY'0U"#N1'f\*m(0^EGBjtXLHg6W]E7SThH&p7(j[%qok+tn/qDFwm.tlwW$VPnw0Y\03U"o\A&k8Zo6QmTM-85BK\ATeD&?m6=J&V;O>Fv-j(])q]/lPrj9V8#>DCmJKIFe;(U"mGC>,+v>C<U-Oq4&vPWTa9\=D<hg>\I^0\\,qh>cUV]6akC#WirNyp5HuL&]xM7U"ieLWjTttuc2[fOV'dB#$d$r<u;fv_l;f:8lm'LbpG?^?('_xadYCr-,^]y:3*ubU"kXsln+0.b3LYV74SgpD$k:LFTy9CMi1Pef5)(DoZhh_t^GQtJueQEj&tmO_s%t?U"N*'7^0tmS]8Qtg6k'aK)0hlcH1;p>sZJA\0sKE?1b4>\V'2u'X<E6jDbbH\+;;NU"i#oG5U#&.(.Ids.H%>$494+;rdPY/[.Vmt2YZUuF1rK7gs^laSxHkA,.J7?zG;+U"wlkgYBKee,rzcPa&kgi\J4mkX7<U>*70aC$]k.[12%3/'K^&'eIc=)\nCdGA]=hU"B5d'0ja,*$2.mdCADJJ*8MHvTg''>)1*WHt8-r40BmXZ*6T+C>Yl0cahsHF/ZK[U"_c/lO6D's'lsl6wbP=_=j_([^F=n8>8T,')GYsnC0hmG)lgdJFi4UJp+J$O-MpiU"0i>m^Z$?>/A7.ruTIxCJ=tsw.Aa3&=&GREBB^_M>Am^x^IvHTsy.7B;=ebT_IFwU"/>KbbdG'PNOsSu')[[4zx1rlhl-sIv-ebRHjXx^$>jbsDj&xp]mgX-WfHWHEMJOU"5KXBU7?=IBddEfxZyrl4N9+#yZTEbpJCAQ5QezW*.DhtaV9o<rCoo?x9-5[AOi*U".rr6nE&4XjFBq*(GkLGMIHFYmN?;oQ%YjA/i7[274s]]t65k2=9?T0sf9Qfs?3nU"t:3B9v$>MBKrK+YPalX6x)mk'n<a$R#vtxL->[7pQ/,>>jJH+J6EdI?88jIV)qbU")/Zsex3E;gHcZ5&E'5IC&DUip?9n=<S8S(.j>gq/u+aN$m$qnU4oHMfmBDi+J(bU";^#syp6u6pvC%drF8chDw(y'F5Y$V-_c;;LeEg>=O+?J3MbO==-*OlcArK+1RDUU"_ID']w]9A5<J&X>N#^?/m)3FOK.sP$AlZ(nG<[mjR2]=<m*SG;9hf]x/^gOBW$tU"__yy06?Wn/^Qn$k'N:'E:Jo'UJtz8<,D=39+V\8>4dbQ]5y/PJ>&<j;B$T;K^ZuU"%[<RRtvpn-Ho+J;2&X?$OVIYK%SG%BWI&hou3M8EJ'J&PxZMy+B4s7D$;sd84w.U"n[ho7J6HxZP,LH?OIT/5M<,S-o2CPk=<w/as9Qb?YOB'=+/(+6W<]0=HV-BVYV9U"f.^tl3tZ5?+4Y^[5-vn57aHJcR>^pLgq\'at9m,v($BP#^hLzx&oe]1Lbx1VK]MU"_tadt>=Fa*(8ZarZx12*6z>\C[*4BnX((m$'W6N?)=Dhv&7sUQb-+nT_M2_EOBAU"jo5iSYQlf1p-8e<)]2YzQu-<3A:,*c9XEOp.H13#&0vjDu6n^d'LzjI(PN$$jbfU"YSPEljjhj<(4VI\BZ4,#>L']upU2N9dlK*&<$bOp:S'9PWuE8K^JsLxep;\LE;ZU"+DN1sIb$)(4N4fa\vue-S[n:A^TMC.&2auAbDqN>mX%aH(j>8W<cgt;z8vam3glU")*H%;A/;hbRuw0DA_%<cp,,NmSYR6EC-o,(xSNi*H\t^Q,ERVh6-a5e#R*9anU(U"Npb.*h=<&zMg9\W,awd?u;s/TN*$O4v(*HKm8DF(%ASj)PZTovv^aXmA/_s/>+dU"Bf%^96v;=llDi#'2S]0Bh.#Q$:54^\g&EGu8-65+SQQ]a.vV-d<:DD5BpAmhIKTU"SMgD/VbBp4S2tvRm\MKsT_,2Ik^-=g-aMWZM[VB,IjH+:Hw:7AMfmZ1;]GtIqOqU"-4$$JqUO6k6QjlXOiAx8&gGrd/XOZA7%DpenKs6./uz7n/*bp/Qp%ee6$aYT<n8U"?CmzsO%bS>'rsIaIpD'/xo7_g%A&x$lLGkB$LnOkagF%xdpWQM<aH)MNGx)pL\0U"C^EgGj48ZL(DrWrT3+$2WH\F0r-D%EI)aue$vghJqcc6JuOl-4(7snx(g]kEjX8END SUBSUB V3U"9b<o-Ds,F&LSqHSpxv/G4x2jchvnvG$:QdhTIaHHL+qTqN7u.vc[j99Ab00b/'8U"a9D].#)U6MQv7vh>j08Uwrg$>8610?mgP.$?7),&m)?%,Lj<,)vAVig:pC,LcU<U"hm:$-?2W?;y<m_06*/mk>e9[?A+<[uC\j=VE=e,MS/gpd8',g)3Sb1>R)DI.GdRU"b2^QjvO8w[/OC>0;\\A:)>IWg#;VQAQ9cTY=P?H:S2C66L4%*hd)PwDboAHijj[U"X,5:]RH7DSpUiq\=o*<#l#$q]S>CVkyZ51[g'R5i_91ls(_-#<>WlFbvqbS>)J(U"2RL9=,qk,9'al74AGZlff?:U9<]mX%J[iBeF^j,J-L3gT#U+vr8)2oN>GVTn:5EU".DYwq9%W7p=aP#jJn*ZF8=l$HnAj]t$%tO:C5$L4E1KTU-ZHBCDQp(X*F^cvWXqU"i*j1'X-]dgC2jw$*,3W.rym%->VKneneOPn1gN\ae/.xWieH$rJ7-[l4J6%Qj6iU"Y0TjBJ)%x=ZHn7U-cAnoQklGTb5X0%FHkFEQEIN_%O.E'5_#G1(-&eX;mR0ZpP^U".JW[_v&l>S#,Mh/u_T#kX]-<%;U?En.F3gHQ18I)%:u#Z(1_eG#1uq955A9RCh7U"1$rX(#n4(2i-7]s0-25>IcMM;EURHeIZ[(]:hWOIQuUjuh8kOIiL']'=jYij:U5U"G19t887.)vryeX4(_l4%Y*R6wNilvHY6H)IvsRhE3&B2*7&)\Yt.cqgrMCsKX<)U"i$LAjd&5wMpI:CK-.0eYlBe:C.N(MmZ*R\h*,9fV]J.Ynf]%?Nt3ff?hr4'IwkzU"M?#R\iMf)bL)i)jpIQzfK(2kx)0*.3MkDQ&.[5i0SWx9fAkqO'u[vz1_;.pR%#WU"tirrO+uZmR+,(l)H:$gz2a-e=MQ44z39<_R82=iil9.dtg[N\zsLMZ<k5'R4vUcU"rmFb+N?WE0G(>Ez7znJ(3=2Kr(d=r%.FcVN^T0K9%qAevj_Z;28^y]5eIkuq5$,U"tn,W&cLJpDO7q<NAHktD)qsF;fYfK-i/u1)o&b87\t#2IfpBK.c)[_t&e2q)N]eU"3)g2iiR3P*2*50GIiT'U=[]$Ow&/*a,7WFAV+;'o4uB+%aposp&5[1mjj57:f:?U"mM>0#Mj:hclR6ui3:K6E%_Ol/j4#DR79Tatvef&ZqEuGwiZDYE=C48)$n*+Jr>VU"=FJtnq6r*-E9B<*^tUTHTL1W$/238_xY/m6%7eg0?:MJbZ0n2s&OYXg?D[B[4mxU"A3ZW2*v0ae5xwO^nbDH,#O)Mr,:um+6dXQz#02iS$1LI0%^H%ZQ5?^3-)wX699yU"8JtD?RkAMmu'mG4eL+xOG&CqD#2k1;8aav:v=ql)t/<Hjg#3o4\_3#u;0R'fB?%U"sPXHSP('zZ:%[-,qQ-c$&#p9Y><)kiL^1:TG,n%(8mlA=p\\d=5x7:*ijt]/vtjU"h7cRro'eI6N_gBI#S'juRU3M\8ft=x;\+Quw3c<1,SuCILAqXMK&]]U2D-)E62GU"jTY&MbCm0HZR<Ss8)rh9qTNhwBahFCct\,[Vj%M5s^7*m0JxoUntu+.Z9*AE%fCU"gQFf6QedD>lnb&$.Ep6(9v]X+&M]-'X#JHLP]T/\l&W\RT9-gFam_s<llHK2ikrU"Xb*dkh[Y'$1Pf9/YnKD?BCq>nlp*sQBqsAZ7?c1#<3oObckCvOA.0Kz2aHSp%jdU"epwd8MBwRE0?yw>nc$zqV8Rd?^c[<8CvOd/3Y5,sMlnY(0i%B3n/Mut?:*Jn(F<U"Q_*mD%6>:o9<[#;tPmEr#'(yH$<TJ+X0gcQ:BW1w_S5n3;2bC?WWQNk/#ZsWK=)U"Wx(%up()%9%'%#-%Ap#rIhl5eK_'.%%L6%%%1%%%%jqCn)f.%UWSuIfqld(paBPU"R1i$]TiC5Sd0gKOo8W#4F5_m(*NR\vA+sLxmt&v$ul$p(o#u\+i>4^Dp>f^NnukU"(x<dYnrRuw'a9Up+Tcl#OdQ<kenPef0H:h^D>;ft7.DJ3bU6r)k4iDHV.lgsj-RU"91+v#F7yO+$O_X9Q/xT;)%M1R?eHY<wwa%Tl6e53eb+.A)+B/55>KyfE1g0PMKmU"I6H,(se2^\^.YK8QPv*k5sD&nhhzj6>dCsH3;8eg(]a^]nbMa8Thl6W4We#\#t*U"p(.fWwE=u6l1/SCr&v'#Jd[eJW[i0&2#Eigxq'&Lz13eJ+kd]r]S4>_de?W+:9(U"an6DnD_U/pUYm<HUZ%i&Ybaq\OS%XUt#6MEgsfC*q-u:7ZaL=vAX4.mqx%+_P_wU"azDRCFG8XgoScR4]hJ>Vph9[aZ(s73aKST7giqqHB.=t\7d;D,+PIaLpOmUSu?fU"R-K^bGgK4UUxRT2gC9W^VbLV4j\qN6rBuXXnI17&+Yh-\Bz55IUFJdoeIU^;q#JU"1oJ1J)';K:[0BsQ<CT3LpM5W5WtU23]4w;bUMmXLs';S:OlZrpl(5nFcLxK%M,BU"aAOn+E\7CLVQxbv]$1%nPT)B0W55^\3<;d87WXTW4rm1V6TjhELNt^lKkwt]4pIU"QPCil+PeO7L2idXe9sCJ(]q786;7w>H2Xe+>Wo7e3uhk/)&Ec86<x%TVHfD&O0]U"*R8j5xv9\Eu/:wHI]tkRVC?V2m#nKeQ((pFfX#I$mg-BCV](T#KfPl:hSj?b]2OU"s-k$1cP?3IW&fMPR,X5^8xa]tAe[WCJ3m+7T)5<Fv'ARg+Sk](iJF\'w*up%()9U"%%'%-%(vprI*t]%l%WG%%+,s%%%1%%%#jqn)(f.UW%SunhNfLL;j8$ih#mAwo:.U"XGmiO,l%2;90p-\6Lco<bM.%A.7$S8Nwo/R_e8MQaj7MCl+*-eWV8&S*vzgT%r)U"_$r7weo27x:M,gNZC+a=op;J]YSLk#NIeN=7)-bG2By7k%'6/oa9^ch5Kt2A4L9U"-6<tD[Ir\Xfr?rrub?Ht7pKQ)U0+0D:dSeC;gtz[)sljm'44*##1=2qb2gClzC=U"xRYBh<d_DX>1p/mz9DIrR2>9VbVp7#z/p^q25%]1UD%6/+$Iz().;b46:rzT%/#U"2p0%oi\%bnwW19;%4VirpXzAm-f0B*^27N)jIrBB5t;N<k3)Yja>=YQ?^+-*i,4U"Y(.3utYBM[R:S74%%kYQDDlHQSlJ9N081nK=_(kCqu*8f##Opa?:*^OOT:3m(-;U"acEyB_xk<<Sy%'L4)*&VA)OZYkh?-Fb7(u;lCmYiB<OxR-6(/c$%t7Zld9-VAweU"gITg:;VAhPS^8*U8o6u)/zhJ.9YF:_g-gc>zej=?V60cV,v5dW&31D5xEO<kYlAU"VY3%6lW91]lDDs^zo%/98CuO1JZJr*[&VSl1vDZ\&>VY&:8d1_J+:8Af?BdRuW;U".1DMd5i;C/(e#A*xq\M_P2X.:Z6l&%gNwRXffC/0iWPZXI\nZ]ptiZ<'J%?MGM:U"::Zcm^4;&Wq:>$Xrlu3&ey'4d5YAu)b[]Z]>BJnQEiC[<?as6.Ag&s-xq#IQ_<AU"T+HI%0JF/%P,_DMi_)%;e\<>aV]&ibt]:q*u<d.qO'B3AsWt\]Q>%[D1jJ/6o8(U";VJZf.JZi9E,&-fu6Cd()T$T,R1:^aMnPuk*:+.u_P4Gx<lIM&UM>ZBercCaNk2U"V/I5XU\wZop9v_&DwO-\$wx4KO$M1F'[zTrg=KXMpWo9*w=,q61xmQ/d/9G_UF$U"Y0#4tOZ:d6jsr=H%gniu6*5Yw<2ovJi[c/d,k<XrXTF:Eq+oqn34gA$UA-foaI\U"z24nzLiR?'9pGc_w7qF*O^PUEDv,6$^oji:Y&.+y?w5tAmpo<>oP\dH04+my),GU"9rdbO984qKID-yO9joUGgpqyBZ[PnRg,Keo(3Bu&?ng(p=%17L>5CqB?Y(rqLR,U"b('>'O+1v%-Z[WqkS</Hv\:u'U;Iy9(76%Q5eH2b>orAYVlke9s[1bCmg**N,RpU"M6<T:jvS>dy8e/SYrZ3+'IL-Nx[h=:aKqUNR7Yw;hjcd#imHu*/vfa1-k\j/ScqU"k%^,orh7wSW:2n9t5X'A.X*<_:V)S%I)a;pPLI2uOL=#rw%I=y:/J7zys(Q'[;FU",-yQ:?2/3EMb9FytLJ,aTKDF=6d0TW^(+&)0+z;6B69JM\A--HT/\ch3vc[k:dWU"nc)j<&*ImL-.qt'l*<S]'atWKR6)>s4?K3r$^eV^527D'*XaqeB0&/-1EjeU0LzU"$3>7FZ37%GXf0vAj3:yIsfC0Eo4:EI%C>1Q<#D?*Tt)DTeb#%M*$['Pv(=NBl^iU"w&1ku_-C]UV+FSVTaqh5BCt;fr\>de\;;s)8v>Xg*M$wio0ub<#?p+gRsoA(8wGU"dU(;$aTKaN8V%k(s<A((S-V<q01EMMZS*6qaMDwkIqdkHV-9)kea;;F(C.0/Q3RU"7PH?_O?Al9X[id*l#,S/&*a#*NUVHVOg8m%VbNhFiZ[eFtf%lqD;=#WPGHR5'<.U"QY7#=GH:)6IAivD5q4]\m.dRv3/WPm%7)UMfHd_iHLk4N>rE=dMlmmMhW%his03U"=1c65sCevOxYR<v+WH[a*e3N^SuN7JRk&ZqB,FIcEQLB*9$o]0iLT[dq=fNuGu5U"C3r6<l5nN2#JHjDs8zh?F[ln$+8&u?=8JT6KVjWbs1(8pL8c]P>E&v.4ck(9h]6U"rPp$t*%%XRRIB0g0b/1.#5?xsqU<Yp,3^Dqk.9cI&6u)WD0UdU5=vut<[9PS]1*U"[>g3pd.)_1uPkBHXX$m[0O+XR1&lcPjU5k?HS.PRj9X>CEE%#vXXBjVKd5]GPK+U"L9Rtz_qJ:RB3F.q4*by4Uy(u*r4J<;Yf45%TQ%%a%-zaM3lPA-(2DKp(Wz5.p?nU">D>u,%1FinJl&A/2t&9kciWu*4JG2O?a$SsYOC9\-=igI?v)1Je.Zv=#)KEndV(U";c,yFcnf(\,-0&&-^>3JIJ):[?'=Xk2r>f6gF)R:Lx$r8TQWKMdQvQfP)-^1vb(U"ZQSLgLjjw%9XT15m3$k*)6&9PG=bu/70-ia?EtvzcLyQ)21zHWBaP*+KJaPMqCqU"DY9DsBUx3kw9lJQODIErbo?9T1O%_GRQSNcU)J6Lr^3)nYDTlq,Q?(czyc;./x)U"9qIi-ITAwwCSg^XI_5AS6b/(w'O(Rx('NTG.-?dTj<bCE$796vb'D4?)d_'/VDEU"XKdF<CckN7P>[4aP]'Qdf-7c7jpY)5iB[ouvL_fWzu^9>WRIFB]cmZ8]7T<c)gEU"x=S*&Xp^,*'ST0tUhvwl=G(r\&FigqCV;t0<(Rl<G-1ahJ6EoZwHubrr62x>#cpU"$qEq,sm+,#HG,1(6$F5DjQllH>r]MqUjH<&^XTh4_NdML)^h_1]-VdWum<D9Xt(U"&_Di$E7budb[P3Ves&;bnPk5H#0LTApDT^,,<mXloRkEZBtY5-#l&bVVc''Yl5sU"TKj3M$$C5aQO]?adI>qo'n411=1wfeW8SINl0;8aRi7glI)1VZ_CVgtot,sxhE?U"ox=LbRKTe[PxU,Z>-HnJNG-Nvp^Keff_N\1dS#hRExgni-w6mq8;2#j>wW1'?+NU"E*sd8Cvg$R^,$j8<IFuH$-\M5n)$CU\DgH\p91Srf?rtN^BHqMxhq8DYuM^6Tf#U"\&Ja-IAV]-zZnpKHL(Svv2Vut8HZGhX'8vCt]ls<j/]rMd73#RqT3lqQM&L#ecQU"g%e].luINjR-c;G,2wpL/5'MomnN\7EsrJtY4tF%_W0DDI=eGpnK?7V1K,-P_>vU":4l.(8o1^/-F_P_&8Jmtj4^a.DjFw+S5q54/U]]#?[KbYBuqA5DrCX0)dP>E[NKU"V=P41$$-Jm-aBEWq.2>gqgUFf<5dbGN1O)B?r/;\D^rX34f;EVDh4^(w+m#xj\sU"Z>]nmBi2WRgDE7RRCC$t]d5a2V&g-qA])2/7K$]Rs4ccW]snFQZ<rO=eXq06r\EU"5[C;uYK[y]yB8]'I+mnU1jrwZ%]E)%FN?g'[54ZH8W#r*7Ia;2/qSj:K^o6bTE$U"1XhuZ*ZEX-YD4/U7;QECq6^?Jgf$9]tl5654GQ'Gu$+8B)x'50x,]/mC4bbRCF*U"Eh;k6Tuy/h1<A^/9PScA,X7,p%$ng<V.X;n9)6hVMn5UV&V7Dt\wlTRLfJr;-%8U"\qI3m&AKL/ws.w.U3H2?Zs_TM#Zt1QEQ%=l4O-q2=3-G]7h:N=a8#5QSdEGsW+4U"_:G-H#H/MEiKV_$1-KO(<Zj81hnswPxZC5X]>JsS,;0H,QiUVF[?KqrMo_6X;#:U"1Weo;LLq>w(<I68&\-nQ=eeO,>[mp\q]e[E3\)$C]W#N3eF\bTRe%ob;H95]4E0U"R?#GhZq92Wp>Oa;Jf1qIqakoJ:pG<DQ9EAH??Q52$c0/Hg(.G&1Tm#mI=y&(WjdU"F^Vq9.YZi6Z#X<B0<2-%H)pY(2dNLsY$vUX*=XY,:\_mX;267]IX+>R/\&KFTr8U"33_Lfk(p/1Rdg>Kp9GFkBjsPE)i9xQVaezLnj?%O&&jfD[c7xZgt6emj_oYXZfdU"d/K'Fkd#uL&6KTbx%\&L[O^X+jZ(+TB/Xfr<hfAO[:j]lo1j%+Fm&073LF2R(A<U"/WNq-;r<mnT.fc'S>#[=dkkaBX,aiHm2yvjk37pjnC%Shnf9l$[JUx[6BtcJYShU"4:89Y]I-FXJ)74]5XFh_)uRD0bV(9Ut5<Z$K<xIYW^c\qE8iYpJe0OS:t(KSZqBU"#Dm%Dp2M5xi/m0J.AQ9rW./W/7EPi*W7'74\vQP./$T\$A8[*%FM<F\t23J#FchU")h%a3lXC>eK<Sc=+k?Tge&%bAs(HGYjEamkVkb]Fh,R.Uw/K6MV3rS=S&AE#F]%U"K,>/cp+Q+nSE0MP>&yf2nF*.-[0slMbrXKE0hkaJl705pMvnhI9L0B-KE5--pILU"hMOn:%S]qJz3;N?N#3s4xOA)w*(4CaajyKas:;K&>X0NQKr5?VX,tr4fPvGb<H_U"?W5e1S]1r42iwH9mI_[+h1pYqTgop467AJ3w#^]LS>kS6F[,>3'Yb%Hht\nn:.DU"CKi_3fT]eoC]lGy$;T0$[KKKGD]n_Ht9umPiX[PueOF[:0nP-:?6k^07<KGsCqkU"CVB,KsN.b[c+DtVx(%4fOKY<=c0H#?WnPZCL5\S6ReeL7-nKLYGmX1#oS,k=t/.U",QdL'-m4NG94dz*1.f<XVXl1mfvc':JDOvAR4PBXKd,br\Nq0YNtPNcv<\XqKBwU"Et'[O[RNuBm[]-:LTLqQFdm[<O;=rQYCW2m'AVX1aWCH$EJF\jWgL1L6Oya,vNVU"Ev'_;l>F/s]?HD[ZE[p7g>r[YmM+hfV8K,y=O'D8BwLuA/)iYp>s7oJge0(8pCUU"O^J-iDA$3z3vk]aU:Z8YMWXWCJ(G(PiH\.q4%7<o88/E/H2:1K0XZdbs:vB7]xAU"/<Zahf^H>:qn#KvYWomRo*cL7xo5eH>35_FCAXNQi60<>_yYGL\or$V#7L_L5SXU"24955msxmtii%X]<IwY7DwVSNTT4rt#:L<u=3<Zq_j-gt&UT[&l6tX[8(hE&PT(U"8(m^QS3x3Du(v]pH7rl(_ci$L2=XpjS=rE=)o'BXOP$N12Ww-93Yh].(:DiPuqMU">:CPn#dtot]]xK7]Rk%DpxDSRdG?hX=^<ust8aE+[.WQk9cP*4P#B5NkkEJ+y>>U"4]-2,t0.xFf0jB%K^.a5^XrMg=F&g<XkiFaohVAYVu'C89xdsaKaWTqlL=#)7UhU"*C29E#d^iSQpCnQfnC>pJci3mZ/E%mfO25zEXb=S;boa]IJuZXOcF4WzJ=&.UilU"\kTY>y_:b%%T-Uumo?[^58V6OMI\Ro.G&FZ2c?^oKvJS&L3<_HmVJ&eBaBwbZ*)U"f'-$SR7?%l3tGqW70WciIA3hz3'5-65Ir(MVB<sZ^b%lYm&yhmH:wXad<Ga]lG_U"0A^Rws;I*kHfRD*1]60qA)9BS&4CXCacQohD(l,Q7<KJ63WS6YCZ%qgBWZB8xVWU"\?^9)8L/ae=EDv4kuR8xYL7.)'5)vFDAI5[q?+U^I;H'?#WFHYQ]>MjL#XBU;2+U"/fFhfbZ8qm34'2=#vUetV1oYN?G-9,e9O^[pg$M?']JC$H:WR721(x&&RAy0yC/U"BfGB/8TnXu.kC6eHrwX_Dn=toc0moQYdB?p5q$V;(g,T8N<$E'w#(#[-k5^&*58U"$W0V_\PO23D>G98hYEf+$65J(aGPu]f7n4Jsr[AZ\Hp\1G45A6E2L3gC[+bD2$VU"$R.;9'db<6O^sGcJG5h,srq,]BWK50\H10m^Y^&ceNcEQ7VcJU=;6:vh3%ljQ6YU"APx5d:2PRq1hQ11.D4p+9uhcUmh$&?KG(Aj'Wyk/=\<>1]:tbe;6_A12^lP9m*jU"]YuDBtDFJPP==qk29YPKwvnfdNw_xch#_i%g199EfBBwQ*pI?1]E2IYV?\ZLMY[U"+7v]jm95K\/JBpC2P^1aL48Aoix]oDLZk69ViS0KH=4ip.1/1^AFLK&/Z7MI:+mU"pK#h'BN^CpWuK.XDe\oYA2n]85YN2d*BTo7Zh6jx78-+6$#5f;?)H1IweC4'k%YU"G)uGyXr)RT#;F=8>PhbX\hE7lro,^k6&N3a0V]\ce7O[.($SOtnQ-8s7#^&eb)>U"Hkoa2MIrwhp/3nlOdmK95]uxrBr,r:,lAddEA]3ZR>a3\*+Rt1=H.gY[o+cHPO%U"Ao66Z6k86Sg)Tfr98:QGa6ChcFj/T5#Ms&B/*FJ6hNtI_urt>Iqs]uMh_R?d<\JU"55QKm3P9$1yKDqdPIB&s=/ON4%Ha96+I+_5bGkCd(s=ImMzYV#yQSiGBi0_ea>ZU"X(^:8:.Bos3'#EJXW-$pPD'[g9l<*c<tMDi,cQh3h0T,#cd:+]N>(YD2a$GqwPxU"Ua4F6xPtgFMKfAzNs',lVLWnvvUE]oXetFvFl[H]cmg##^bP0=YL=AQUh/8o3[&U">1iEmhQA;x9O5^cE=:Lqa54]0d4=m.MKh1$K$5(<<?46xW-BFo-Z%p\s0,1xs:gU"sj_f'vt0+2t7+MF'CU3kUh3*0]^q</ixd\>]#%7L7H&hTk=T#n<-uq1NNu#v<baU"YPlS[+1pGMf<_]GPI4RdNE[d5JDQ0bGC)Ynk]WLBeE<&*.A.CN1uy:Q*q>9u.D/U"^ioc-*[gK0JXPLTV27Fc,;R=K+'I-e?mA72biiN#QR2*du9V+jZfK]?JnUJA$FGU"P-=2Zpi-'\-,kcA>Eq>_\p5Z\rtR$'kWq<>E.GHk#L&389%3,M0A[*q?8N3]H(9U"CLoU_b\pw$hY.XT%(y1i'SAoOh[Q1YUl,VWV>/<3kXI>UHgesokvc#R];ToZ4\[U"0xAq+htYO1++53RW:W,U9P$]<fI$HT87O4/Wyr8#P'2,:+2,DOf]q8/d2ai-<u&U"/KJ6rhWXqG.>ReC#Ono9U(K*GrDb<DFG58U?TI>;v0a\&:H5Q#N5dQ]1x/7-^hmU"KObCX0U384.i%Bw5^2\QwX[b_<IY\Yar00ptsDgV4EpR2ze'6.h*x;SV[P#CcArU"EzV#UD'bR9I&2gABtQAdqYBZ$8wvE(PS[qbc:N55:HIu?7w[EE748I58Z-ZNcc\U"%L][3Qm;xaTiRXAAU=[$BrY2q4o]LE40^,Y<AgaJt?5Jd'nlG<2655Q]Qk65;,zU"kDL?M^oBup2k#?>^#[Mq7Z'Ri\0[fqKF3*Wt/R:(iY]<hH+VUpVS%6L5kADNUwKU"9W$vefps#DpGG\dW\&hV18u5FbmMK'+5gxdsWNVVpA'HT<C98*h=QW2rzgt\0#cU"UutZ'NISaU:[>O98fpf3N^#E$&6=xTeYdgfR\i2OR;?XxkRdM5aOdxeY,r[h?^1U"$f7F%FXmCC3pPB0DRd%C($Mg:LhRHKi&<HXURAb'#>+>HNgh7gu=t]Di)w&i.(yU"gdw(.C($L4.b.r1unmP$*Hn^&m;->;;f8]n&U%CiY(oJT-'l3OK>2NeU>Q5q61tU"lL(.YB$g24ZE=ms4Ljtqn(t+roCH0XsK[^Vck>6n-fO$RVSaBN)G#0t)Mio*CS_U"TXT#Rtr]Zer5Q/SUT7Q19X<CG'T[f^7MBS/)U(X]ocAT2R0*#7?[&C38Hwds[p>U"[tVstp<2Xf8Cw#:gfYXvZC+HAf,ob'4ot8C0#e7WX;^j'9<pdh]'UyT9#IF=YPqU";hRCe\iwUI6.nCzn,y-m6Vv?uYEMEvmxyHR:\0*VhD0pc#4sGoZEba>fKtBkLS+U"r6I)VE51=Q41Vm?$LDjw9+RQks]mZWP\QeU]N&M[T0]i]c<<enO1unVH-Cb;.0uU"^j*^'+j;S[D6fCtThk_6hH$#Uf:X2]h]KFfB2swZuhXX9VNr]A4ULC^VI(4GjJUU"O)UPqgG*q+NK^b,c$b]kRko7CHq^.9d*Kr^X0m[]U$AtF2oQJL=;>>4V-4muMogU"VVO50Y.G-#Du9p:(6WSOHir:w()(4'\S7<d*1uoXhqcp_g/^MibnPG5HqUO>XssU"]0/[ft4V+475e>>s/M(#>Jbjm)Oh^qvv6.3vZv?M#:JmMg:h1p?+QaW-N*(M_gLU"=&t<B\Q3=C(>IvE)NmMyfix+%l#R&CmuSF:(]gdq]QS6706Do;88%i,&/0[OK/4U"X.sh<OkivVWX,;A8t;^X&#pu*Mm9m;FM4:hF.r[.kXlY&upTQ9cw;1DVt&IS'O>U"oiXh-In'iRZ9[p%KU1Z=8AKw;X=$J4R;XG&C6N/fZ8YfkU[oj'IS))fNepxTiU<U"nhpb(PQ9kyV>H<WbaDeg*<C=EADg[Eqn>\92X0T+DHdO+8\;S04$o2/vDFN%'R<U"ylVf/WL%DKXgLF<<QQcn4gx+pIQuNH.Ldb0AGkNpW_1][9,6A&hMtsf%/AGJ?uiU"#K6[Z4(I_9#jv]/AU_1_ODBo-s[Mo>'3,/p,C'C]gbEWf>Dp&&r8,8;k9)i0#i<U"G]D,JI#4y9*fSRRf$^m3_(<n(a4(l$C_ffLB[NS$^q:vu#hWS<x-nS&-2+vL/umU"nC#qqA$IH,XqaIQ8#rX+iuu1IF=6o'#5WA$H>TBepDqo92)cD#'0-P2]'0h)80'U"w(lq%d?MO>K73hMnd6$ePT-UOe]0JJw5/\U2f4c_M8H4/n6<(p3;?QZjgPIE;uMU"Ob2MtTTt1*C6eNemW^tAm4OZ5w$6*jGGoF$0$Yf^yR=94uji;lr'G6jl4i:kWVhU"9x:3'bJaCqAU$Yq6ipJsOvwGV'..A*GT5*CC#L1v$pChPF6cjtH44N6g&MN/7^bU"iuFT1>aJ+0M>MRK0JZoc#mlppK1/pkVD-qYzSmV^X8F(SbFB]l0^_w^esNAqt\nU"_:.d5YjWZY+As(Q&iWbD7A[pUS7q9;==oeG*']+Fs4MNHtZ^o$teivfHSC$_C$$U"UYsT\quI2hS3sZKS-i5rrfazX^QNH<wFlsNY<XV4\Xm'qL(u7A<#DvZG'N01b=>U"UZM2ap-FL.:wGq47[]$qSY7pa,9%%aDa^[ccWq/Fl]A%>a'2K\(w:)KN-+[*\%CU"sFCXq;$$jx2R7[143oZLd21SZqsLi6&bI0*ct_-5refKd2m,+RMM<qVl&VTI?<:U"CF=^U6n^YF^km,?5SmZsr)]6=vnDtl9ek.NGwmq?uH=dl?QQN,H8uiR8uu^N6/CU"KM2DZqt4#C-%[p2'?F2nG3i69n^qZ6M'IVAkLjb$QT0(oo7wxTGQUq'1,qis2TiU":*?iR2K>kLTP=q*ID5aG+k*WeVI)%(.+98Z--Y3DRirq%8pjc<[DruOO4+[vll)U":?M[z*U(O]5t0pzrKoqz,JrT'37UB&z&K+>j(C/pOOJo>4(&U//rJ/A:WD*iKP.U"J/j;ek&O'9Z0_t*<AHdor\&h(U'v%8XL^0GnlS<Q*,:xc2/*z'2'K'i>3/[?CejU"\Mo1,DH,IjaeAz;u=pqd=(V%6j?6YfNzqjnn_1./<z=%n:pb\?wNSYJlKs4+2/^U"OOj6eVI-1W_Sj,t1R\fMKnkV).<Z+MS#CbLq+8?-Nv/m-M0[:W=SrKFgN*rQ+#%U"(V6Da;uW6p&4gky[XDJ8yL/oiJ'];^[=:^w/A]z*?d^Ej6Mii+*V&[tzGL4OOR*U"0C=2drbRgPbNnm*K*[j*iy%37DG^X9E_K&'Pc+3m<8MnCD?5DBM-'l0GFTD)8a%U"k/TSN2fP.(8%5Ly0/%EMbOYZ^H9PujZHCM%'/*YP8%4TyCCM*%3+ua*\?svX3&'U"H12MLP'5>'30PG)u0aZg(bDH=-'>^(tBnvph?o)z:(97au[Q$aH<Tga&Y##fqucU"b09c_tP&MF&6z+p[N6hE0)OI#fpoW^V#fmD+:uOkz<c\MDO-:riIO4sR1W0'uZ=U"4iF'sDd'-=Wb+Ycib\>Z3_-9+%T(*m),u=^[mX;5^uFR:\Lz=T3nhflT]5m2lH2U"r2JJF:^7t9)33q)#3iCfDz]b;i2SF'^z<m)<=SE^dH=ltjKu_9o%+6Zfq3>'c.\U"a*nPDU/<dDW>E<\27Kun^f,e%=2Dp7SJup8e#,Q0UZq.Z+9m'fsf1tPqdUX/teTU"ufLmV[nIJt&:;EXl;0/;DEr#e6QYc3_]s5rn/;<uUbI#P/goF&,-==-1>pomt9>U"prrhW57t8[bU+Wb%vG+CRgJGY;2KG7P%H$q<eO[/lQ?Du4J-&0[NX.+/gx'kNp$U"+,7TZx2:tp,hh>ol6Zkk*0'dJb]Tz%NC+gZ7'9MY'kM5?JiMY%ng1o,4Z3Op]B8U"JofU&Ppj1UN*f9ov00j\CWxHLkW=*j1KQKB0Nc$oqW8df#O76KGRSpFOrS-j?gvEND SUBSUB V4U"ET3m7Tv:EDQ9jeTq/O$vcq-N;Y.<(%^KMK8O4d+-[W<F(fc1jhkd'RbM%m>:2(MU"9WY2qlYbShVksF[3?/>\cdb9^y\dV]n/(sWI$/)PdgYGu#8YcsxxG+kta:q40tKU"5HX&twZDDjj)UNuY$LA.TpTW%Tj#%oDBcK33^z2eO7Z8et_F_htA$02&T.rATkPU"ULqexcftM;<TX9%1q%3_-Of-Q2Z.c<Da]cz&*n%VP9efIK>hPcKOWM0e#;qNH9MU"gK+ku+=Vog33?+G_;v-+-w__uz6Z3:;V.Dzx:zP<WTRL]-.^mzVDBl[/Wnp1H?JU"5%54W\Wnb^t*X3J0b(y/ECCZjqt<2$9I/Iz-Em(<&Zf0ucE%hiqhMYrYsQ7*D^FU"e\L3#K,BaAD]1W^tsi5Y.WZ;I78VHXC)?a#agaZ.kjBpEA<U9xs;c4bEXOKjsBSU"lzEA\)uDd2fw;<)84x,6)t-y[8/iMJL/bdNCbeX)2:79<rm-$-M;Tc<,gUs>*-fU"fuENA2#yXqOfhWZSlCxW3JQI=/4.Hy#0%)zXT/oF3qWwtqb+LZnK.sxjVz+#zLMU"d'PLMx=eAArL7JPS<*c;OOXb&;4xPoo2+=XdQ>>n/2tq&T0TefIrjtJSG-Z3'AzU"D5<l9K:w0<g?z#8(KDlg>PxFx4B6?t-Tv\uMX\94Q/,hH_<jpLIhBMF->VxQ#uUU"<uXO)No<U1)tf0tmp/'SMaN-(1M,G9wJ2n\'ejpkP+<NtICBMb%\I?X1=lK>6F9U"N5)]C.<6b^\HLY8stTc'_+on;s<Gr1dE/:1c0zi%Lc?6l-N$Xu%X8+#8Xt4Nx)IU"Ga#i/N(5uM,gR\xdp&BWw)Ple2G=LTbS,:9QTItR+^0>NUl8&/T$Ey%_Gh7sB>xU"v,/ip\z+8'^,e[Qj<,8>XW\6'C1:$*Kkqs:Rp%Py9)?c$>ohPN03)V8>gYTgA;&U"fS%M3*Q2z(Z1k'+7,pe?A+J6%TWym94.rzkVO9$s3Z5qp$3,zk#l:]DC+R6M.lpU"S\7:b^a-8avq$oKl(n9alKE\r&Z6w:2z#/pd\FZP*jDQBtZP?m^ndsDRjrq8Nn+U";%d>QmZY7k,&YOJiEKWr?z?g'x&up%()9%%'%-%(IprIgR:G5&)'%%&<6%%%1%%U"%#jqn)(f.UX%SufqEfff]%KF-k<pbmBTs-8oVcmx3ebqhiL%,C5te,rKB5kop>oU"u8dWX.8]sGJeJW-7G7K/9ztA/Rj:^N+pjFIhr=WTc1&^^Hpw08JJke*xGN23^3dU"NB-8JXRRs^$+k7kC<(d4Iz3uvU$hv/E3'Y6:YjUA.RWZWF4_agNLbd<LuQUKLCWU"+WGGO4sn.mpSLAW,WAH*43t-Amg2ySki*IR,GR<gffT8nsT>ChR(]*0Vh0e(h<sU"W6xbd8-KAjn/9jNJZ^->Ws5.=c\[XUS3qkm/cH>l$2_#W$*i(C<nzKlO>6r;ssHU"pO[(34K+zZ^E3%7%7vlj>TIo-_q&n[l#eP>T?535l<Wh)n085B7.GT7JItFNC?-U"u%eI1)b6.8qde?=Bg9Oi_M-*+HJP5b&YB[oFB=4S=kMBO+gn$Zv#ei+^b)V6D&SU"Av-_?&YtF'N;B0>o4_<p_%XEkCcx9Q*AYL+u;ADPs3mJd=>A\I/3(m,Zkc\J0,1U"5+^$R4kgzXOYQtsala0%wM)2/W/P%fB9#F](6rOGkmg>4]5IIMuUb3I&s#6=%BEU",_.SU2h9;cXh%$CaK]Zf?Ol7aoP9.>egw)O'I^oF(Q6'.+8/K5o1P#DyKEWH4X>U";G=8XdXUGCSfrZKT'WL+Wsei602ez1Rrpp.UMnUFAS?:W-A:jZ&=sLH[4'Bo(]QU"6=9:aQbe,#(\R,dLw^-]*V31PvtsB1x-%8T_Z[Q*dSjc;'8B.'fn>08^WXci^\GU"d3aln=Xv(d-KXup%()9%%'%-%*cUvIm:8L4%e;%%)g-%%%.%%%#jqn)%fSgfaxfU"aTAA?ne$hYu=PK;#\7a7V-MR3(9-SK1g(JZU'm2E4N(#JNf#'ZSy<Qy=7?6*txcU"6hX4]TdVlW/N+HCs5z4oV%Tf5hglKIA;3m;JmEa>Hk+0Y54n<Ar3r>g[.?_W</CU"K):=,A+%WUd])b<7JyA=>ifYNIQhoIF(tmaN6<vQh39Kj*J?wHS\xZ'DX*_tm+4U"/0[7,c.]iEL>-+=+6]IQ-_Q:MD:?m3<7>j>q;g#-7:76:QM9S/'HA3>nheJKTMJU"#io5K4DBqie8.mh7>V_C352;SJ7Xg(5^o;V^(FV4O<cG2jv.KiKuvO/$Hzz=mj;U"r9%oE=0CZgZkPUQW+^$y5\5,:e0NFx?;%t;c(k>:0c:b/BGY/iFDhngg[^Ta/1?U"$Tg)XQX0eS3,-n=y:V:X_<I(o)/-?^5GX_K21Uem0x_ETDEive%E/_o7\j&C>(;U"8VStO_9ThD&ro7F_:3boTl<IB2)wQ>0G<O=\AK;)DQ1)+j:^?bU(ckWD<dqH\PFU"XMJR,\M??UoUE^vJxbY%YUJ;SRcnhq1/VCXNwU]GBef6ir#2Wo=t\ka[;g;.*/xU"&V6VC=P78#RS*K7LV1dp[\8iwFr;.$iB;Zr-A[QFu9\k4Whel'-1Xrb#c8MYd%[U"O.?YWEG\b]p1A65UfgL3,ld6YeW>qkho?o0eC:'j,_dq^nPJnbJGDGwqga\-^srU"'/u%n>$oIGBX-]Y;re\pB?dRt0nrBmXj[UQorC3jRd?5n.$S()LDw0oV=6b&mV<U"CaaxBsGW$'noSfMS,Pf3>?-Y:/i)46oG7]-lSUxHBnshkV=%g&e;EfQr/)5'4qWU"1:6Z$6<>-am78sAtW0ruteB,qUKTj-4()a=78mHgf.?>J?C5VGQWWj2f$mot,X_U"j1v%IZ;'\aYbZipDg#7G$eJXso[.C9UDgDf3)3eTCok6$E.Wb\(2Q8GZGeBcHDgU"re5ht[0W-X$\u[W(BE+g$m:j2#bp#)QxK)(H2gwF;t.&4<7pEqpY%Ga#F[F75ZsU"ukXh2n*PbeS#:;TYD)h-xnC0<)\xv\yfbLn#)\V0_z2ec;UTZh)c(wew'?$1R/5U"RGtq8^;BuSXZ]],Y0c3AA813s$<KH9oACb=J.0?q)6SIjTYtOT*p<5,VrahI8CbU"V0Z_*d[c$6&oOKU-P4PTqE8($;L,QY?AgS_r9'.sS[Y\gEYj7WAshSnV0AKg.dZU"pOjE>rr3($[baN<SObklbK9#XMEHRVS_rH(-EU2uUS<_[uk*CI55gStbn%ehZ*2U",Sf6:+sEoW*(fn]]]JdCjHNh(B9QZaZIQ[PlKfQ&BQJ/^6YA*>Sge2RDZ^S>$FUU"fzTPTwWY;b%:;bWGh4b&/Dhnf3RF7KY$3QDvp.m5U3ZT;fmHKjc3aq_#=2XRjdWU"'J]bYS(4SmbT?<7JNf\gw:[,gT6Npu:4Us)gj4eBDc$C\ciT*R4.#8=Qs,.TWZ;U"*LVIkD)ltPrCeEBanuB]av1\ES%bq_R0'DpNJCE6O0JZO082R.u&In=^GW6:JZ7U"%'i7IO&o].Dkcw3\>([cfBnMh5H.)o(yEM3Na]DO\S%.aBPWYWPosR-,zlO&.gsU"U%54qy-Yub2N\'qQG$o]p)X+?o+kSKO/r0iVdP:mXsX/(<w%l<dD7yH7/-5HA[3U"];sM\>%N4/'V+=AC+6/\wz7g^[/crAI1'.H9jn%GJe\de]Z2>T=-]QR*hXm5rC:U"E[#0cnBuZewbW^SP^ehY_XLT'<X[A&1T:tL21%H,]QQ\^eV:BTAlehwBlcT*(KFU"$wd0:]RPc_E2qg7i&6Yl6S0+nOBunl^+23$6:4>x/#'ceS^N>akh<MEyAJ^pnHiU"ipjerL;=S=GRfRLkYI:Y.5+,]7]93LG*x9[+Pt.e):F+KgO&P0#x0hjYt0i#j'8U"FQ-e0kiC_k\irv-4NXN<lAECpus<ADcg3US3YE3:%7hGL'VF0bCcQZqs[4+'pN+U"1[I/q:tf&9OJ-_0vf>T%G8\hI.+&5gl]GRYX#aG[A;S0SlM_y7zP.ont'nvdbhqU"6oc33*Np>>hlf7(9sw.'G<-FT&6<572Z36CHqr>%=44T.LjeebW$/a+rCmU%eIoU"Y(wb*U%mPxT5rt>g==:oqE%sU]UIl3=U=-IK3E8/9o(Z0W*OV%,lT+$]07U3UJ[U"gK&n1)UiUCak74Op76)UZrTQLmwNxojdwtwW.$<=Y;41Om9Y;n=E>0SF4;:noq8U"I)RlpA4gAgzY>DgTXYjThh=11hVZqk^9g=&KY)03=-HjY9yiT*fV;-59bST?ol]U"m-T&6S3Sc05aROOYI5l$:-tu0v'9]:^l:vgz:e1dR95/gVx,;#.SJW\;C(B1oyOU"g;vOcU^5T>;#jIpD*A[,j])o.^R?Blj(fi^fXuhe:pg5ERf(h*uO>Mtr<oh^4VvU"&E6iT*(YH-Rhs>CH'hlH5U0:K+-Sa_4(1&;.f#Jl$G<uW6fosSsK6;)2)G56;djU"eo]eJbZV.<*A.*+4&u06\_<4&MOXA8mMI\,4^,G%tBD$ZDY66/R,-_[12vwn/wzU",?H'28Dr5-dNEN/l>tn/RJ-tZc:1I*Uo^*Arr2PsY33tgEv4b+WB$'^'=4vH2N?U"'knO:1E;oaIX3BAbq$t-Ajv?XQdhogty)RcaMkX41Q;C:f.0SeE)OIK.A1dc)$-U"*SAvA-P<lAoW)Sss$3_Z+[EzM7]t)7C9lJF87m,>4aJnhbqX(4f_HQ>jr%6-kF0U"-w':*)ro(PNLDetmzw>)&ug6&sw:0ju)uiX;:XsD,kKCqyaaRIJBALJwd3l$cESU",F[d8Ks\\u-2GfSZ3ioy'N[8K/aQn=-*d:>FIX;p?oVgrswNf&\,?0]/;fB&fG2U"08LQZqOGXS*uP:m;2Ra?Q25(4gL\2B^5B])sA_d$?+3CXtsk55tA5v))5;,(vJ]U"MM76J+2Ee/(v4eN[(8\%aZb?U5[<E#n=H;BQT1\P??-yedxgrUHlmPjf(D6Q,PeU"#^oB,F.</b2HfKv7p_YTWN;_wmVWYB<g4]?VuIgoY911N_4YTLf-x'dU<(8*5:3U"h1?F5a<\[f(193EOPx,E\?,q2(soiCs1\D<rDf<;,p;C0p:fDXqCeP,X8?K&\S[U"-iqRSK83ZJ5IjD)%29bJfkx'I'6VV;Q>6UYZRwOougScU0U3?b<m:bqumlP.MA5U"XehxbZ+Oq*)Uk4C8ZATQWZ;2Y.SE3y06\:Xj]ZqMl*.B81c50%ak.-Lx-+UVF/gU"5AvL#Z]^1*B$F2M.U?)fN,46*x4]uRQ<?c,:^v(L)]]?oT>-Su>o:W?Sb7[ohS4U"0Al0(fZ=V7xh+q6o4,Vm.O.H^j:V$1])T2>[e>5Tm-E?js()aM3;r^IiZ+#p>]HU"h,Hjr,qu3Q8jbcLeef)?JptN/UOglK4S7froWs)jzk:)FtMV-Og/.[gM1(RO\&uU"#vKTdd=*Q]2tBPqaNwwh[0PINpk*o:il%vJB40$pR/a3feJY[c&:+ZnCk\8fr6=U".TG(c_S0rr:Es*O[o+)*:7[Kk.RXVe)T2^.kmepHV#$%nrFOnf5Vq%_Qg/1K67NU"Uzc.jenMCLL)=xE[Z/sLG/t*7mIudceu6ef](/H6P<auT[dn*Bdc-D>uMf/LzNBU"D3QcBiQqdSk5SE2bO2fB?Tm'7O:hY?gQ9(s$=QE$o^H(t,pSdCeai7S#riN'O/[U"y6$L]y%Ts]+0Mnp3v/58Ww^gQRMiP8aV:]I.^VU>zT*D>*<RdP]x_hCq37X/#'5U")2/g>uA'Z5\+$O</0[tHK0G9caI;)J#nZ&rT/g)AW>Etj[]2yvh.rWB<:$]'%TTU"4s>4K$1T7<892vgD_+8X3t#zW,NTM)Mr6FHcy9*?.QJV+v78+ux0K'34i_A64,,U".?4+XRpwwsRpgY=YG_jbZ4I6R$nhJ[HDgc/Clz%sYUjB%OoLzn\9.nb,77H+JPdU":P8j6rYwv.,)zG,o=ks]4Xyw5u&eg7%5m:P)Ga*Ad;M,=f-Xg/\h<Y(BVIl31i3U"iM51\e16fg3<=SYUISu1ESR_bg.NiPW$SS2p2./=c%nI9JDrVS,-Xkum'JeX:xfU"pR]J7dIJMYq7#LfBhznce+4-f'6PaW-m?m&'7Q(teV2Nld2ao5m=BPi7<qG8nzcU"4YAG8_*o;*5c*se85_9DXEjV;rod9//pPIFec0$v*.5HAPbb#fV'_\h$;B=;h\LU"9\/7$F(iZ6Y1cTC%jVN?;UZ7rQrF^cwt=,6>-sEao7:)hP6EBgv2YN:weSd^2OFU"1esX+qtP$\CQWe-y<a$ZN.Dk,TP%hsc^Fs*S&g2eINiKJ1*47RiEPspaR$]Cb]eU"sn?;+=tq^LPcLqn*<Qn)L2_=CrOiNinc0mI)kj\;2C7F5Q&1RP*j'sk<p6F,CE-U"##*2>LxA.('AlIZZQ)*U6wSOrKiBPsfOu=9kK'K#WI[1Qp519EL#0MM1W#cGO<EU"0kVTcsT6qJE'A[-h1;.H,-$pdveBx.Z7[ckdOHTPBTGC3+;FmA?rCa]:?R7Te&gU"Ya+S]'BqRd-$vchthM>g]tru.*Ca&X^TZ(a\cx3;p8AM.GI8Nkl?CYFqS?NGp6xU"A%NDsqjIZGM+z'Df'b]?$gqa<U&F90o<oCoY2Yts3-U\'vq)gI:.Fqd^G)qcB02U"?gNRZR8t7Bj.2M&v\73)Qp[\p[.[0?0;A_LY+WV,wZ(IJ*T5Ddc'imSG(BQCl4sU"ci7I5hz+Sc3,Scu%Y#<r.Wnv.3_;W(Kk-8I2M_]DQmrzi[X<1jW1v-b1C17RrlDU"7pk^e/gY'Du%3G4.P*<ZWAb6Rlfp8DeI[7Wf5o'8f;6E+,f:2bavJoo'yaH0_(6U"F4lACR?<aaW5&pE6F1B<5BE)K4aqR-:5GhPhcW=/gHv^7r%ZF.ffX-U);m*V,eDU"g-EDXUf;Yw7O?hj<],^%E84k9n^-C2%9N+uyi.3dc#CTtD0$qv351Khs/dQWw;;U"(5y.<of980KVIQ:&kVj7$h,^[XL*.rqA+hn;]vn^[#wb.:AjMsk:]B]yG2]Ggp%U"eepEc>+=5.dPl\=c'p,i4bU[Tk8p0O/Z($D$*NvKoEB*#pan9Fi*GuA->#tas%BU"*2f%Myvhdq9ePP^7:4UnpJqaSD&fH7\OafZ+Za+F<Fsf2)Rsn$,p/_U+Qb9ZilDU"k0_:El$gMiT?Gq3uRP/n7\KmP4]Vj^^A)V8T?m,o_2efd<]i7r<+]<.]^QvWE*HU"+#0^/0<[;o,WtJ/T9[smfBfT5%-)rV?&gw=9U[7^A.aRYQkqat9+z]?c9#zOTd=U"cyl>>Kl\fcXjp<;QaY9XEjo0vlYP=_-)Y-OpQoMo62V/RgnL'CBq16'c1DBNL[kU"H4w;q%JBxCjFa3+\rtpJ9-zsn_UJd2TrvDA'vW?I&[7LK>N=aUBTTwI,e.%V_6PU"zC]-h&U??7qxb#=iw)ElPKVb%xn[bVqQ(<)Is)fw:u^Shq)REd-^=FAd0-0mjr,U"FZ]O\Bjn9NpWrn$nmVDj29A;(imZAK+^6riU=bW1^p(7Eao&mjzG=%>wLbv.exYU"4Xc$r3W'nc9$'(L'Jr;yogxb67eracEru/R#S\62n\+mb[PZohYA77y<4*#,=PHU"YIK[o$6+F::/38e_(^+Z3,Pcac>3Uq:'sbI1FNBokyBH<aGBP9BTdmG;1LlC14NU"KqDmHk[NZGc9_RGpd3mXguodj9L,GHIDYjS7KRCE-^Jh0GL6'CkRre_py<6mpVmU"lj6BJ^rQ#'jI8BTU4;v;qsKfjw<#^-=tc<Nc(3US$5bkrXT\t05SHoh+ZgH<_<7U"vUW2a<cB%jApY_]-:px(t(gLO%XYnkpVKS]F4l7t?o,_kBXjtl/>h5*WeCY'-h%U"?R#^iyIF[uk0SP%h4u[3g&1XSr'jEnV'Uc0'l94_UE0;,T$7FQpP,)YVp_-&h3KU"tHB?']^UG:->zioI%HU0(VJSK?jql4tjdSw=$w8i6YMCtO,*-i?5lK+7dGSNRJCU"m^Pwe4g8/*rv8r+M^*E61HmQZPGSel8[P7-X\sQgEL4NJE5s;Ib6#K4G6u&nGb9U"b%c%L[JKx3\w6_mDNM[sl^4hPs<d_WU/;,fr^tlZhF/wNJ/igll%(vbx'Tw/HVsU"j$ROB5Z6m)2:KSpcxCUn*vjVi7'\]7*NvW>o7Vht3DIEoSp8IFP<^lakcCNlC4UU"spjUEFXOsTcpovHv3&I6HZ+paXg5_Y;q(%W--=Lb;6VKyz_zKo0JMbFsUFXxm20U"4W\f#8O9d*8wJ(-Ql0FQnw]:Ax:=X_oilnp3e1,m4tlPx-D:IM<l3;My0wDK/WIU"&,N_;&oyp$T'_*XN*wEv%r+k(LFf^Ip1)Pk(:ZUYMbi:0+*b58D_Mf7Ti7oalm7U"SJ%8r'bbK:t9Q623OpXs&gT4'6;%i,<wq&_b]2SM7f/BV9*1RJa1tk]*h2vTVR1U"x>yirHG=^$:-RnYW#o%lxC;0l:17nHYR^KkPpeG9=4,^Sw1'>P[q)bq%g6*DOF_U"b*P[y.ivXQd'q+hg%O)OJOSKgC7^h8KFhpT[qc3&DV_^7phgH,_CYfB(r1V\6V-U"zC8#lQ?v$[Uud(&H-cHxAal3?.#S2m=:&po5aQQN=0n8RM*Lt,WqDX4bHNHxi.nU".d?.LWANxz<mkkbtK;$tUYHqTTuT]N=FxlGKxdh0H\8c4uErH.?K<$Wm322q9iuU"vX-SwXnst+D4]9dTb>tE4&8w#Ddj\Tz$:0r$inNKKx$bVDnNl6RQ?fi&'Hk?xh]U"s1H%?wIpAm,DCLt-A:CcqwGV(dyBkC421?2fU1\^q,3a/47lh7W[Gianr\e+C^2U"$,ImJ><jdCu1$]n*%G&s\W\'TOQ\(%A>s\x=^hvEk4Sw9>&P:4**%O0D(2'&77bU"E)'%kbKu\KH_$51aZWBVnqZM*Urd$&%$Jrisqd.u3y?/Yw6R3GPUhcc>=Bjh,:6U"c&:z<\z1mf4]n)8gRO?n^HfcjQ^s?DEmiR>n?uJpNc78'Fo8Lo<97>mTvuDRXlNU"T*_A>7([czpZ<tD#,nt_e7lkYE7_z%IB:skq>sB%:pMsa?x;vt[F:EITLR^7]Z\U"Bwz[_+G4gI+'L(4IIhAO]k3YTXXS'N%2K>n6<H(Z_DmpJ9CNTKmqFc+tgHI[aF.U"b?.WFrk&vzQKgUa;IxDzM.3LzBgojB_3h=e(QIRK'[Se$a.vM(Wo$>VL[tLdx%4U"up&%'9%9%%'%-F%az>7H];N*pp7%.%A7%%%/%G%%%%%%%*%E?OKW%%%%%j%inytU"%wSgf%x,%CI%Ix>(zJP<h*N'K4n+6'^ZyRA2z<H9]$U_S.<Vku%p&'9%%9%'[%-U"%0AxrIx\7>ZJ[+%%a%;%%.%%%%%%%%%*I%EIR,'B7%%%jqn&)fSj(q)up%&'9%%U"9%'%I-%'pIrIEl>a&>#[%%,s%%%1%%%%%%%%%)%7EMKg':>%%#jqn)(f.UX%SunU"h%up&'%9%9%%'%-%(:prI)[w2K'L&%%&)6%%%1%%%%%%%%[*%E%7>+)Z%%%jqCnU")f.%UVSu%fqup%&'9%%9%'%#-%op.rINv2.7pA[%%,s%%%1%%%%%%%%%)%.E?x1U"'&\%%#jqn)(f.UV%Sunh%up&'%9%9%%'%-%(AprIghleK&_'%%&L6%%%1%%%%%%U"%%%*%E3.F_Gy%%%jqCn)f.%UWSu%fqup%&'9%%9%'%#-%vpRrIt]%%lWG[%%,s%U"%%1%%%%%%%%%)%+E0J^(W&%%#jqn)(f.UW%Sunh%up&'%9%9%%'%-%(IprIgR:GU"5&)'%%&<6%%%1%%%%%%%%#*%EjIBV]H%%%jqCn)f.%UXSu%fqup%&'9%%9%'%R-U"%cU%vI:8-L4e;I%%g-%%%.%%%%%%%%%*%aEp)$(7K%%#jqn)%fSgf%xup*%+%%%U"%%.%.%%I'%1%Ha%%%%%END SUBV2V3V4CLOSE:IF S=159AND B&=Z&THEN?" :) Ok!"ELSE?" :( Bad!SUB U(A$):FOR A=1TO LEN(A$):C=ASC(MID$(A$,A))-37:IF C<0THEN C=91+C*32IF K<4THEN K=C+243ELSE?#1,CHR$(C+(K MOD 3)*86);:K=K\3:B&=B&+1S=(S+C)AND 255:NEXT:LOCATE,1:?STRING$(B&*50\Z&,219);:END SUBRemi Poulin                    AMANDA (AI EN FRANCAIS)        kazzel@hotmail.com             08-15-98 (19:28)       QB, QBasic, PDS        2173 112476   AMANDA.BAS  DECLARE SUB graphic ()DECLARE SUB bienvenue (a$, n$, que)DECLARE SUB aurevoir (a$, n$)DECLARE SUB repeter (a$)DECLARE SUB accent (lp, m$)DECLARE SUB aimer (nom, a$)DECLARE SUB face0 (face, tim)DECLARE SUB face1 (face, tim)DECLARE SUB oui (que, a$)DECLARE SUB non (que, a$, face)DECLARE SUB quoi (a$, quo2, que)DECLARE SUB ifthen (m$, a$, que, face)DECLARE SUB jesuis (nom, a$, ge$)DECLARE SUB tues (lenom$, nom, a$, ge$, face)DECLARE SUB astu (lenom$, nom, a$, ge$)DECLARE SUB mange (nom, a$, ge$)DECLARE SUB boire (nom, a$, ge$)DECLARE SUB cuire (nom, a$, ge2$)DECLARE SUB nourrir (nom, a$, ge$)DECLARE SUB jai (a$, ge2$, nom, ge$)DECLARE SUB blesser (nom, a$, ge$)DECLARE SUB embrasse (a$, ge$, nom)DECLARE SUB lit (nom, a$, ge$)DECLARE SUB tuer (nom, a$, ge$)DECLARE SUB remplir (nom, a$, ge2$, ge$)DECLARE SUB condui (a$, ge$, nom)DECLARE SUB goute (a$, nom, ge$)DECLARE SUB aide (tim, face)DECLARE SUB info (tim, face)DECLARE SUB optionv (le, tim, face, a$, nom)DECLARE SUB aider (a$, nom, ge$, ge3$)DECLARE SUB mordre (a$, nom, ge$, ge3$)DECLARE SUB appeler (a$, nom, ge2$, ge3$)DECLARE SUB mettre (a$, m$, nom, ge$)DECLARE SUB humain (a$, ge$, ge2$, ge3$)DECLARE SUB animal (a$, ge$, ge2$, ge3$)DECLARE SUB vegetal (a$, ge$, ge2$, ge3$)DECLARE SUB insecte (a$, ge$, ge2$, ge3$)DECLARE SUB mineral (a$, ge$, ge2$, ge3$)DECLARE SUB nourriture (a$, ge$, ge2$, ge3$)DECLARE SUB outils (a$, ge$, ge2$, ge3$)DECLARE SUB arme (a$, ge$, ge2$, ge3$)DECLARE SUB objet (a$, ge$, ge2$, ge3$)DECLARE SUB vetement (a$, ge$, ge2$, ge3$)DECLARE SUB endroit (a$, ge$, ge2$, ge3$)DECLARE SUB vehicule (a$, ge$, ge2$, ge3$)DECLARE SUB habitation (a$, ge$, ge2$, ge3$)DECLARE SUB livre (a$, ge$, ge2$, ge3$)DECLARE SUB contenant (a$, ge$, ge2$, ge3$)DECLARE SUB liquide (a$, ge$, ge2$, ge3$)DECLARE SUB materiaux (a$, ge$, ge2$, ge3$)DECLARE SUB breuvage (a$, ge$, ge2$, ge3$)DECLARE SUB corps (a$, ge$, ge2$, ge3$)DECLARE SUB materiel (a$, ge$, ge2$, ge3$)DECLARE SUB tempo (a$, te2, que)DECLARE SUB finir (n$)CLS : SCREEN 0: COLOR 7, 6RANDOMIZE TIMERFOR s = 1 TO 40: WAIT &H3DA, 8: WAIT &H3DA, 8, 8: NEXT sn = 12: q = 1: le = 20: y = 0: fo = 1CALL graphicCALL face0(face, tim)ON ERROR GOTO erreurOPEN "info.ama" FOR INPUT AS #1INPUT #1, n$: IF n$ = "" THEN a$ = "Bonjour, quel est votre nom?": nom = 1IF n$ <> "" THEN CALL bienvenue(a$, n$, que)CLOSE #1GOTO reponseerreur:bb = 0REM  fichier non trouverRESUME NEXTREM ---------------------------- Amanda -------------------------------------ga:IF q = 0 THEN ON TIMER(n) GOSUB temp: TIMER ON: q = 1IF a$ <> "" THEN GOTO reponseIF lum = 2 THEN GOTO lum2lum = 1FOR i = fo TO 16: y = y + 2LOCATE 10, 21 + y: COLOR 4, 0: PRINT ""LOCATE 10, 23 + y: COLOR 2, 0: PRINT ""COLOR 14, 0X$ = INKEY$: IF X$ <> "" THEN fo = i: y = y - 2: GOTO partirFOR s = 1 TO 70 / (le / 4): WAIT &H3DA, 8: WAIT &H3DA, 8, 8: NEXT sNEXT i: fo = 1lum2:lum = 2FOR i = fo TO 16: y = y - 2LOCATE 10, 25 + y: COLOR 4, 0: PRINT ""LOCATE 10, 23 + y: COLOR 2, 0: PRINT ""COLOR 14, 0X$ = INKEY$: IF X$ <> "" THEN fo = i: y = y + 2: GOTO partirFOR s = 1 TO 70 / (le / 4): WAIT &H3DA, 8: WAIT &H3DA, 8, 8: NEXT sNEXT i: y = 0: fo = 1: lum = 0GOTO gapartir:TIMER OFF: q = 0IF ASC(X$) = 27 THEN CALL aurevoir(a$, n$): fin = 1: GOTO reponseIF ASC(X$) = 13 AND l = 6 THEN GOTO gaIF ASC(X$) = 13 THEN GOTO choixIF ASC(X$) = 8 AND l = 6 THEN GOTO gaIF ASC(X$) = 8 THEN l = l - 1: LOCATE ra, l: COLOR 14, 1: PRINT ""; : COLOR 14, 0: PRINT " "; : m$ = LEFT$(m$, LEN(m$) - 1): GOTO gaIF ASC(X$) = 9 THEN GOTO gaIF ASC(X$) = 12 OR ASC(X$) = 10 OR ASC(X$) = 11 OR ASC(X$) = 7 THEN GOTO gaIF ASC(X$) = 28 OR ASC(X$) = 29 OR ASC(X$) = 30 OR ASC(X$) = 31 THEN GOTO gaIF MID$(X$, 2, 1) = ";" THEN CALL aide(tim, face): GOTO gaIF MID$(X$, 2, 1) = "<" THEN CALL info(tim, face): GOTO gaIF MID$(X$, 2, 1) = "=" THEN CALL optionv(le, tim, face, a$, nom): que = 0: GOTO reponseIF MID$(X$, 2, 1) <> "" THEN GOTO gaIF l = 74 THEN GOTO gaLOCATE ra, l: PRINT X$; : COLOR 14, 1: PRINT ""; : l = l + 1: m$ = m$ + X$GOTO gachoix:IF nom = 1 THEN n$ = m$: nom = 0: a$ = "Salut " + n$ + ", ca va bien?": que = 5: GOTO reponselp = LEN(m$): lp% = lpIF RIGHT$(m$, 1) = "?" THEN m$ = LEFT$(m$, lp - 1): lp = lp - 1IF RIGHT$(m$, 1) = "!" THEN m$ = LEFT$(m$, lp - 1): lp = lp - 1IF RIGHT$(m$, 1) = "." THEN m$ = LEFT$(m$, lp - 1): lp = lp - 1mm$ = m$: CALL accent(lp, m$)m$ = LCASE$(m$)IF LEFT$(m$, 3) = "oui" OR LEFT$(m$, 5) = "ouais" THEN CALL oui(que, a$): GOTO reponseIF LEFT$(m$, 3) = "non" THEN CALL non(que, a$, face): GOTO reponseIF m$ = m2$ THEN CALL repeter(a$): face = 1: que = 0: GOTO reponseque = 0IF LEFT$(m$, 8) = "aurevoir" OR LEFT$(m$, 3) = "bye" OR LEFT$(m$, 7) = "bonsoir" THEN CALL aurevoir(a$, n$): fin = 1IF LEFT$(m$, 12) = "mon nom est " AND MID$(m$, 13, 1) <> "" THEN n$ = RIGHT$(mm$, lp - 12): a$ = "salut " + n$IF LEFT$(m$, 13) = "je m'appelle " AND MID$(m$, 14, 1) <> "" THEN n$ = RIGHT$(mm$, lp - 13): a$ = "salut " + n$IF m$ = "quel est mon nom" AND n$ = "" THEN a$ = "je ne sais pas ton nom"IF m$ = "quel est mon nom" AND n$ <> "" THEN a$ = "ton nom est " + n$'IF LEFT$(m$, 8) = "qui est " THEN a$ = "je ne connais pas cette personne"IF LCASE$(mm$) = "qui est " + LCASE$(n$) AND n$ <> "" THEN a$ = "c'est ton nom!"IF m$ = "aimes-tu " + n$ AND n$ <> "" THEN a$ = "oui, je t'aime beaucoup " + n$CALL ifthen(m$, a$, que, face)IF a$ = "" THEN GOTO scanneurreponse:COLOR 5, 0: FOR o = 3 TO 9: LOCATE o, 4PRINT "                                                                        "NEXT o  IF a$ = "" THEN a$ = "grrrr!"LOCATE 4, 6: ra = 6COLOR 4, 0: PRINT "<"; : COLOR 12, 0: PRINT "Amanda"; : COLOR 4, 0: PRINT ">  "; : COLOR 15, 0FOR i = 1 TO LEN(a$): ma$ = LCASE$(MID$(a$, i, 1))IF ma$ = "a" OR ma$ = "e" OR ma$ = "i" OR ma$ = "o" OR ma$ = "u" OR ma$ = "y" THEN COLOR 7, 0 ELSE COLOR 15, 0IF ma$ = "" OR ma$ = "" OR ma$ = "" OR ma$ = "" OR ma$ = "" OR ma$ = "" THEN COLOR 7, 0PRINT MID$(a$, i, 1); : IF ma$ <> " " THEN SOUND 200, 1 / 10IF ma$ = "." AND MID$(a$, i + 1, 1) = " " THEN FOR s = 1 TO 35: WAIT &H3DA, 8: WAIT &H3DA, 8, 8: NEXT sIF ma$ = "," OR ma$ = "!" OR ma$ = "?" THEN FOR s = 1 TO 35: WAIT &H3DA, 8: WAIT &H3DA, 8, 8: NEXT sIF i = 60 THEN LOCATE 5, 6: ra = 7IF i = 130 THEN LOCATE 6, 6: ra = 8FOR s = 1 TO 70 / le: WAIT &H3DA, 8: WAIT &H3DA, 8, 8: NEXT sNEXT iSOUND 200, 0IF i = 61 THEN ra = 6IF i = 131 THEN ra = 7FOR s = 1 TO 50: WAIT &H3DA, 8: WAIT &H3DA, 8, 8: NEXT sIF fin = 1 THEN CALL finir(n$)COLOR 14, 1: LOCATE ra, 6PRINT "";IF face = 0 THEN CALL face0(face, tim)IF face = 1 THEN CALL face1(face, tim)m2$ = m$: l = 6: a$ = "": m$ = ""GOTO gatemp:que = 0CALL tempo(a$, te2, que)tim = 1: q = 0: nom = 0n = n + 5: IF n > 80 THEN n = 20RETURNphrase:ha = INT(RND * 3) + 1: IF ha = 2 THEN GOTO reponseIF nom = 20 THEN CALL humain(a$, ge$, ge2$, ge3$)IF nom = 21 THEN CALL animal(a$, ge$, ge2$, ge3$)IF nom = 22 THEN CALL vegetal(a$, ge$, ge2$, ge3$)IF nom = 23 THEN CALL insecte(a$, ge$, ge2$, ge3$)IF nom = 24 THEN CALL mineral(a$, ge$, ge2$, ge3$)IF nom = 25 THEN CALL nourriture(a$, ge$, ge2$, ge3$)IF nom = 26 THEN CALL outils(a$, ge$, ge2$, ge3$)IF nom = 27 THEN CALL arme(a$, ge$, ge2$, ge3$)IF nom = 28 THEN CALL objet(a$, ge$, ge2$, ge3$)IF nom = 29 THEN CALL vetement(a$, ge$, ge2$, ge3$)IF nom = 30 THEN CALL endroit(a$, ge$, ge2$, ge3$)IF nom = 31 THEN CALL vehicule(a$, ge$, ge2$, ge3$)IF nom = 32 THEN CALL habitation(a$, ge$, ge2$, ge3$)IF nom = 33 THEN CALL livre(a$, ge$, ge2$, ge3$)IF nom = 34 THEN CALL contenant(a$, ge$, ge2$, ge3$)IF nom = 35 THEN CALL liquide(a$, ge$, ge2$, ge3$)IF nom = 36 THEN CALL materiaux(a$, ge$, ge2$, ge3$)IF nom = 37 THEN CALL breuvage(a$, ge$, ge2$, ge3$)IF nom = 38 THEN CALL corps(a$, ge$, ge2$, ge3$)IF nom = 45 THEN CALL materiel(a$, ge$, ge2$, ge3$)GOTO reponseajuste:ca = VAL(MID$(STR$(car%), 2, 2))IF ca = 71 THEN ve$ = d1$: ve = a% + lm% - 1: vrep$ = a$IF ca < 70 AND nom = 0 AND a% > ve THEN nom = ca: nom2 = a%: genre = VAL(MID$(STR$(car%), 4, 1)): lenom$ = d1$IF ca < 70 AND a% - 1 <= nom2 AND a% > ve THEN nom = ca: nom2 = a%: genre = VAL(MID$(STR$(car%), 4, 1)): lenom$ = d1$RETURNscanneur:m2$ = m$m$ = " " + m$ + " ": lp% = LEN(m$)ve$ = "": vrep$ = "": nom = 0: nom2 = 0: ve = 0FOR u% = 1 TO 802: READ d1$, car%, d2$: lm% = LEN(d1$)FOR a% = 1 TO lp% - lm% + 1: IF MID$(m$, a%, lm%) = d1$ THEN a$ = d2$: GOSUB ajusteNEXT a%: NEXT u%RESTOREm$ = m2$IF a$ = "" THEN CALL quoi(a$, quo2, que): GOTO reponseIF MID$(a$, LEN(a$) - 3, 1) = "@" THEN que = VAL(RIGHT$(a$, 3)): a$ = LEFT$(a$, LEN(a$) - 4)IF genre = 1 THEN genre$ = " un ": genre2$ = " ce ": genre3$ = " le "IF genre = 2 THEN genre$ = " une ": genre2$ = " cette ": genre3$ = " la "IF MID$(lenom$, 1, 1) = " " OR MID$(lenom$, 1, 1) = "'" THEN lenom$ = MID$(lenom$, 2, LEN(lenom$))IF MID$(lenom$, 1, 1) = "a" OR MID$(lenom$, 1, 1) = "e" OR MID$(lenom$, 1, 1) = "i" OR MID$(lenom$, 1, 1) = "o" OR MID$(lenom$, 1, 1) = "u" OR MID$(lenom$, 1, 1) = "h" THEN genre2$ = " cet ": genre3$ = " l'"IF RIGHT$(lenom$, 1) = " " THEN lenom$ = MID$(lenom$, 1, LEN(lenom$) - 1)ge$ = genre$ + lenom$ge2$ = genre2$ + lenom$ge3$ = genre3$ + lenom$ IF ve$ = "" THEN GOTO phrase IF nom = 0 THEN a$ = vrep$: GOTO reponseque = 0IF ve$ = "j'ai" THEN CALL jai(a$, ge2$, nom, ge$)IF ve$ = "je suis" THEN CALL jesuis(nom, a$, ge$)IF ve$ = "tu es" OR ve$ = "tu est" OR ve$ = "vous etes" THEN CALL tues(lenom$, nom, a$, ge$, face)IF ve$ = " es-tu" OR ve$ = "etes-vous" THEN CALL tues(lenom$, nom, a$, ge$, face)IF ve$ = " as-tu" OR ve$ = "avez-vous" THEN CALL astu(lenom$, nom, a$, ge$)IF ve$ = "tu as" OR ve$ = "vous avez" THEN CALL astu(lenom$, nom, a$, ge$)IF ve$ = "mange" OR ve$ = "bouffe" THEN CALL mange(nom, a$, ge$)IF ve$ = "boir" OR ve$ = "je bois" OR ve$ = "il boit" THEN CALL boire(nom, a$, ge$)IF ve$ = "je lis" OR ve$ = "il lit" THEN CALL lit(nom, a$, ge$)IF ve$ = "je tue" OR ve$ = "j'ai tue" THEN CALL tuer(nom, a$, ge$)IF ve$ = "je brise" THEN a$ = "pourquoi veux-tu bris" + ge$ + "!"IF ve$ = "je brule" THEN a$ = "qu'essais-tu de faire en brulant" + ge$ + "!"IF ve$ = "j'achete" THEN a$ = "tu ne vas pas t'ennuyer avec" + ge$ + "!"IF ve$ = "j'aime" THEN CALL aimer(nom, a$)IF ve$ = "embrasse" THEN CALL embrasse(a$, ge$, nom)IF ve$ = "condui" THEN CALL condui(a$, ge$, nom)IF ve$ = "je goute" THEN CALL goute(a$, nom, ge$)IF ve$ = "je prend" THEN a$ = "que veux-tu faire avec" + ge$ + "!"IF ve$ = "je jete" THEN a$ = "pourquoi tu jetes" + ge$ + "!"IF ve$ = "je touche" THEN a$ = "parfois, moi aussi je touche" + ge$ + "!"IF ve$ = "je vois" OR ve$ = "je regarde" THEN a$ = "et que vois-tu de spcial dans" + ge2$ + "!"IF ve$ = "je porte" OR ve$ = "je met" THEN CALL mettre(a$, m$, nom, ge$)IF ve$ = " lave " OR ve$ = "nettoi" THEN a$ = ge2$ + " va tre propre!"IF ve$ = " cuis " OR ve$ = " cuit " THEN CALL cuire(nom, a$, ge2$)IF ve$ = "nourri" THEN CALL nourrir(nom, a$, ge$)IF ve$ = "rempli" THEN CALL remplir(nom, a$, ge2$, ge$)IF ve$ = "trouve" THEN a$ = "que faire avec" + ge2$ + "!"IF ve$ = " sens " THEN a$ = "est-ce que ca sent bon" + ge$ + "!"IF ve$ = " vend " THEN a$ = "pourquoi vendre" + ge$ + "!"IF ve$ = " blesse" THEN CALL blesser(nom, a$, ge$)IF ve$ = "attache" THEN a$ = "n'attache pas" + ge3$ + " trop serr!"IF ve$ = "j'aide" THEN CALL aider(a$, nom, ge$, ge3$)IF ve$ = " mord " THEN CALL mordre(a$, nom, ge$, ge3$)IF ve$ = "j'appele" THEN CALL appeler(a$, nom, ge2$, ge3$)IF ve$ = "je peche" THEN a$ = "je ne suis pas sur si" + ge3$ + " est un poisson!"IF ve$ = "je leve" THEN a$ = "pourquoi tu leves" + ge3$ + "!"IF ve$ = "je joue" THEN a$ = "est-ce que c'est amusant jouer" + ge3$ + "?"IF ve$ = " lance " THEN a$ = "a quoi ca sert de lancer" + ge$ + "!"IF ve$ = "je pousse" THEN a$ = "ou veux-tu pousser" + ge2$ + "?"IF ve$ = " frappe " THEN a$ = "c'est pas trs intelligent de frapper" + ge$ + "!"IF ve$ = "je porte" THEN a$ = "est-ce que" + ge3$ + " est dur a porter?"IF ve$ = "j'apporte" THEN a$ = "pourquoi tu apportes" + ge$ + "?"IF ve$ = "dessine" THEN a$ = ge2$ + " est surement bien dessiner!"IF ve$ = "je vole" THEN a$ = "ce n'est pas bien de voler" + ge$ + "!"IF ve$ = "je donne" THEN a$ = "c'est gentil de donner" + ge$ + "!"IF ve$ = "j'ai besoin" THEN a$ = "pouquoi as-tu besoin de" + ge2$ + "?"IF ve$ = "j'ai peur" THEN a$ = "dis-moi pourquoi" + ge$ + " te fait peur?"IF ve$ = "refuse" THEN a$ = "pourquoi refuser" + ge2$ + "?"IF ve$ = "je reve" THEN a$ = "comment est" + ge3$ + " dans ton rve?"IF ve$ = "je veux" OR ve$ = "je desire" THEN a$ = "que vas-tu faire avec" + ge2$ + "?"GOTO reponseDATA " moi ",730,il n'y a pas seulement que toiDATA " toi ",730,comment ca... moi?DATA zzz,730,ne t'endors tout de suite s.v.pDATA ha,730,hahahhahahaDATA ah,730,AH AHHHO HI HIIDATA hmm,730,tu semble rflchir!DATA " ou ",730,ou tu veuxDATA " je ",720,aimes-tu cela?DATA " tu ",720,si vous le dites!DATA " il ",720,est-ce que vous connaissez-bien cette personne?DATA " elle",720,quel est sa plus grande qualit?DATA nous,720,je crois que nous le sommes!DATA vous,720,crois-tu vraiment que je le suis?DATA " ils ",720,ils sont comme ca!DATA " elles",720,que penses-tu d'elles?DATA veux,730,c'est bien de savoir ce qu'on veutDATA " fin ",730,la fin c'est la fin!DATA wow,730,fantastique!DATA j'ai,710,raconte moi un peu plus!DATA " as-tu",710,c'est possible!DATA avez-vous,710,je pense que oui!DATA "tu as",710,j'ai quoi?DATA "vous avez",710,vous avez peut-tre raison!DATA " es-tu",710,"parfois, je le suis!"DATA "etes-vous",710,pouquoi vous me posez cette question?DATA "je suis",710,tu es comme ca!DATA "tu es",710,si tu le dis!DATA "tu est",710,peut-tre!DATA "vous etes",710,je ne suis pas toujours comme caDATA "j'aime",710,je suis content pour toi!DATA mange,710,je mange souvent quand j'ai faimDATA bouffe,710,je ne bouffe pas comme une cochonne comme certaine personne!DATA boir,710,l'eau est la meilleur chose a boireDATA "je bois",710,il faut boire pour vivreDATA "il boit",710,j'aime boire de l'eau froide!DATA "je lis",710,je lis souvent quand je suis seul!DATA "il lit",710,c'est bien de lire!DATA "je tue",710,ce n'est pas bien de tuer!DATA "j'ai tue",710,c'est pas trs bien de tuer!DATA "je brise",710,tu semble tre brise fer!DATA "je brule",710,fait attention de ne pas mettre le feu partout!DATA "j'achete",710,on a toujours des choses a achets!DATA embrasse,710,ca fait longtemps que je n'ai pas embrasser!DATA condui,710,ce que j'aime le plus conduire est une voiture!DATA "je goute",710,a quoi ca goute?DATA "je prend", 710, qu'est ce que tu prends?DATA "je jete",710,je ne connais pas ce que tu jetes!DATA "je touche",710,qu'est-ce que tu touche?DATA "je vois",710,"moi, je ne vois pas ce que tu vois!"DATA "je regarde",710,je crois que tu ne regardes pas au bon endroit!DATA "je porte",710,que portes-tu?DATA "je met",710,j'espre que ca te vas bien!DATA " lave " ,710,ca va tre net!DATA nettoi,710,il faut nettoyer correctement!DATA " cuis ",710,cuire quoi?DATA " cuit ",710,qu'est ce qu'il cuit?DATA nourri,710,il faut bien se nourrir!DATA rempli,710,seul un contenant peut tre remplit!DATA trouve,710,"moi, je ne trouve jamais rien!"DATA " sens ",710,j'espre que ca sent bon!DATA " vend ",710,"moi, je n'ai rien a vendre!"DATA " blesse",710,ce n'est pas bien de blesser!DATA attache,710,je ne suis pas une fille qui s'attache facilement!DATA "j'aide",710,il faut aider ceux qui en ont de besoin!DATA " mord ",710,arrte de mordre!DATA "j'appele",710,qui veux-tu appeler?DATA "je peche",710,il y a beaucoup de monde qui aime pcher!DATA "je leve",710,tu leve quoi?DATA "je joue",710,a quoi tu joues?DATA " lance ",710,je ne connais pas ce que tu lances!DATA "je pousse",710,est-ce que c'est difficile a pousser?DATA " frappe ",710,pourquoi tu n'essais pas de frapper autre chose?DATA "je porte",710,est-ce que c'est lourd a porter?DATA "j'apporte",710,qu'est-ce que tu apportes?DATA dessine,710,comment est ce dessin?DATA "je vole",710,ce n'est pas bien de voler!DATA "je donne",710,donner est une trs bonne chose!DATA "j'ai besoin",710,on a tous besoin de quelque chose!DATA "j'ai peur",710,de quoi as-tu peur?DATA refuse,710,refuser quoi?DATA "je reve",710,a quoi reves-tu?DATA "je veux",710,pourquoi tu le veux?DATA "je desire",710,il faut dsirer trs fort pour obtenir ce que l'on veux!DATA dormir,710,il faut bien dormir un peuDATA marche,710,une marche par jour loigne le docteur pour toujoursDATA occupe,710,"si tu es trop occup, tu peux me parler une autre fois"DATA download,710,il y a beaucoup de chose a downloader sur InternetDATA load,710,n'oublie de tlcharger ma prochaine versionDATA telecharge,710,attention de ne pas tlcharger un VIRUS!DATA " parle ",710,j'aime parler de toute sorte de chose!DATA " chante ",710,es-tu un bon chanteur?DATA comprend,710,j'aimerais comprendre aussi facilement que toi!DATA "je visite",710,j'adore visiter de nouveau endroit!DATA petit,731,les petites choses sont parfois trs utiles!DATA grand,731,je suis attir par les grandes choses!DATA " gros ",731,ca me semble assez gros!DATA " beau ",731,beau comment?DATA " belle ",731,j'adore les belles choses!DATA " joli",731,ca doit tre jolie a voir!DATA " laid",731,les choses laides ne m'attire pas beaucoup!DATA " jeune ",731,je suis une femme encore jeune!DATA " vieux",731,ce qui est vieux n'est plus jeune!DATA " vieille",731,je n'ai pas hate d'tre vieille!DATA " bon ",731,j'ai un bon caractre!DATA " bonne ",731,elle est bien bonne!DATA " fort ",731,il faut tre fort pour survivre quand ca ne va pas bien!DATA " forte ",731,certaine personne me dit que je suis forte de caractre!DATA " faible",731,"quand on est faible, il faut se reposer!"DATA intelligent,731,c'est interressant de parler avec des personnes intelligentes!DATA " idiot",731,une personne peut tre moins idiote quelle en a l'air!DATA "salope ",732,surveille ton language svp!DATA " qui ",730,qui est cette personne?DATA " chier ",731,je n'aime pas les mots vulgaire!DATA "ca va mal",731,qu'est-ce qui va mal?DATA "ca va bien",731,"parfait, moi aussi ca va bien!"DATA tete,382,"parfois, il faut se servir de sa tte!"DATA cheveu,381,cette histoire m'a fait dresser les cheveux de la tte!DATA visage,381,quel partie du visage aimes-tu le plus?DATA oreille,382,ce n'est pas tomb dans l'oreille d'un sourd!DATA yeux,381,quel couleur sont tes yeux?DATA oeil,381,quel couleur est ton oeil?DATA " nez",381,ca fait longtemps que je n'ai pas saign du nez!DATA bouche,382,cela me met l'eau a la bouche!DATA dent,382,"quand j'tais petite, j'avais ouvent mal au dent!"DATA moustache,382,il y a des moustaches que je trouve trs jolie!DATA levre,382,certain personne dise que j'ai de trs belle lvres!DATA barbe,382,ca ne doit pas tre amusant de se raser souvent la barbe!DATA crane,381,as-tu dja eu mal au crane?DATA cerveau,381,mon cerveau est trs different des autres!DATA cervelle,382,"parfois, j'ai une cervelle d'oiseau!"DATA " coeur",381,je suis une personne qui a beaucoup de coeur!DATA " os ",381,je ne suis pas vraiment en chair et en os!DATA " veine",382,j'ai du bon sang dans mes veines!DATA sang,381,je n'aime pas beaucoup voir du sang!DATA " peau ",382,il ne faut pas juger quelqu'un par la couleur de sa peau!DATA muscle,381,je ne suis pas plus attir par les hommes muscls!DATA poumon,381,c'est important d'avoir de bon poumon!DATA squelette,381,les squelettes me font vraiment peur!DATA " chair ",382,j'aime beaucoup parler avec des personnes en chair et en os!DATA " cou ",381,je n'aimerais pas me briser le coup!DATA corps,381,je fais souvent de l'exercice pour garder la forme!DATA epaule,381,quel est le plus gros fardeau que tu as port sur tes paules?DATA " sein ",381,je crois que j'ai de beaux seins!DATA " seins",381,je crois que j'ai de beaux seins!DATA poitrine,382,j'espre que je vais toujours avoir une jolie poitrine!DATA ventre,381,que fais-tu quand tu as mal au ventre?DATA " dos ",381,"quand je force trop, j'ai un norme mal de dos!"DATA "bras ",381,que ferais-tu si tu n'avais qu'un bras?DATA main,382,j'adore tenir la main quand j'aime un gars!DATA doigt,381,c'est vraiment pratique des doigts!DATA ongle,381,"quand je me casse un ongle, je ne suis pas jolie a voir!"DATA fesse,382,ca me gne quand les gars me regarde les fesses!DATA sexe,381,le sexe n'est pas mon sujet prfr!DATA vagin,381,ca me gne de parler de vagin!DATA penis,381,je sais que les gars ont toutes un pnis ou presque!DATA anus,381,as-tu dja entendu parler d'anus artificielle?DATA jambe,382,ou aimes-tu le plus aller avec tes jambes?DATA genou,381,mes pantalons sont us jusqu'aux genoux!DATA pied,381,je ne suis pas du genre a me laisser marcher sur les pieds!DATA orteil,382,ca fait mal se cogner la grosse orteille!DATA poil,381,mon chat perd souvent des poils!DATA " cil ",381,je ne porterai jamais de faux cils!DATA sourcil,381,je laisse mes sourcils comme ils sont!DATA langue,382,je n'aimes pas ceux qui ont une mauvaise langue!DATA salive,382,"quand je suis trs nerveuse, j'avale ma salive!"DATA gorge,382,dis-moi ce que tu as dans la gorge?DATA gencive,382,le dentiste dit que j'ai des belles gencives!DATA front,381,"quand j'ai chaud, j'ai le front mouill!"DATA narine,382,je respire toujours par les narines!DATA menton,381,j'ai un menton comme tout le monde!DATA joue,382,mes joues deviennent rouge quand je suis gner!DATA toupet,381,c'est plus long de se peigner quand on a un toupet!DATA nuque,382,c'est douloureux de recevoir un bon coup sur la nuque!DATA nombril,381,je n'aime pas ceux qui se prennent pour le nombril du mondeDATA coude,381,il faut se serrer les coudes quand ca ne va pas bien!DATA poignet,381,je me suis dja fouler le poignet et ca fait mal!DATA " cul ",381,je n'aime pas parler de chose vulgaire!DATA plote,382,peut-on changer de sujet!DATA queue,382,mon chat a une trs jolie queue!DATA machoire,382,il y a des animeaux qui ont des machoires dangereuses!DATA face,382,quel partie de la face prfres-tu?DATA patte,382,mon chat retombe toujours sur ses pattes!DATA griffe,382,mon chat n'est pas gentil quand il sort ses griffes!DATA aile,382,j'aimerais avoir des ailes et voler dans le ciel!DATA plume,382,les oiseaux ont de super jolie plumes!DATA nageoire,382,c'est beau une nagoire de poisson!DATA minet,211,mon chat s'appelle Minet!DATA " or ",241,j'aimerais avoir une belle bague en orDATA "'or ",241,j'aimerais avoir une belle bague en orDATA " lit ",281,a quoi penses-tu quand tu es dans ton lit?DATA " bois ",301,je me suis dja perdu dans un bois quand j'tais petite!DATA " mer ",302,j'ai t une seule fois sur la mer et ca fait longtempsDATA ibm,281,IBM est excellent!DATA " mac ",281,le MAC est moins populaire que le PC!DATA " pc ",281,le PC est plus intressant que le MAC!DATA gaz,351,le gaz coute de plus en plus cher de nos jour!DATA essence,352,il faut que je fasse je plein d'essence bientot!DATA petrole,351,j'aimerais visiter un gros puits de ptrole!DATA huile,352,tu me fais penser a faire mon changement d'huile sur ma voiture!DATA rock,451,j'adore couter du bon rock!DATA heavy,451,j'aime bien le heavy metal!DATA dance,451,j'coute du dance a l'occasion!DATA country,451,mon pre aime beaucoup le countryDATA western,451,j'aime surtout les films westernDATA classique,451,c'est reposant couter de la musique classiqueDATA couleur,452,quel est ta couleur prfr?DATA blanc,451,le blanc est un couleur fatiguante comme backgroundDATA noir,451,le noir est une de mes meilleurs couleursDATA gris,451,je n'aime pas beaucoup le grisDATA jaune,451,un jaune banane!DATA rouge,451,il y a des fois ou je vois rouge!DATA brun,451,je n'aime pas le brun!DATA vert,451,le vert est un couleur reposanteDATA bleu,451,le bleu est ma couleur prfr!DATA mauve,451,le mauve me va bienDATA violet,451,le violet est une belle couleur!DATA pont,281,il coulera de l'eau sous les ponts avant que disparaisse!DATA date,452,ma date de naissance est le 1 juillet 19??DATA heure,452,je suis toujours a l'heureDATA seconde,452,je te donne quelques seconde pour me rpondreDATA vrai,731,tu as raison!DATA faux,731,c'est peut-tre faux!DATA quit,731,"si tu veux quitter, appuie sur Esc"DATA remi,201,Rmi est le gars qui m'a programmer!DATA amanda,202,Amanda est mon nom!DATA eliza,202,eliza est une de mes amiesDATA cheri,202,cheri est mon amiDATA boisson,372,je n'aime pas la boisson alcoolique!DATA " eau",371,"l'eau, c'est bon pour la sante"DATA "'eau",371,"l'eau, c'est bon pour la sante"DATA lait,371,"moi, je bois mon lait comme ca me plait"DATA " jus ",371,"Huumm, du bon jus"DATA liqueure,372,"je bois du Pepsi, Coca Cola, Crush, Seven Up et Cream Soda"DATA pepsi,371,tu me donne soif avec ton PepsiDATA coca cola,371,je commence a avoir soif avec ton Coca ColaDATA coke,371,je commence a avoir soif avec ton CokeDATA crush,371,je bois souvent de l'orangeade CrushDATA seven up,371,un Seven Up... c'est dlicieuxDATA cream soda,371,j'adore le Cream SodaDATA biere,372,je n'aime pas boire de la bireDATA " vin ",371,je prfre boire de l'eau froideDATA drogue,732,je ne touche pas a la drogueDATA fruit,251,il y a beaucoup de bon fruitDATA pomme,252,j'aime surtout la tarte au pommeDATA poire,252,c'est mon fruit prfrDATA banane,252,il faut faire ATTENTION a la pelure de bananeDATA orange,252,j'aime bien le jus d'orangeDATA raisin,251,"quand je mange des raisins, je ne veux plus arrter"DATA prune,252,je n'aime pas vraiment les prunesDATA fraise,252,"Huummmm, j'adore les bonnes fraises"DATA framboise,252,les framboises sont trs dlicieusentDATA cerise,252,je trouve les cerises trs bonne a mangerDATA legume,251,les lgumes sont bon pour la santDATA tomate,252,je mange souvent des sandwichs au tomatesDATA concombre,251,j'aime les concombres avec du sel et du poivreDATA carotte,252,c'est rare que je mange des carottesDATA salade,252,je n'aime pas beaucoup la saladeDATA desert,251,j'aime BEAUCOUP les dsertsDATA gateau,251,le gateau est mon dsert prfrDATA creme glacee,252,"quand il fait chaud, j'adore manger de la crme glace"DATA tarte,252,ma tarte prfr est la tarte au pommeDATA biscuit,251,je ne peut rsister a un bon biscuitDATA chocolat,251,"le chocolat, c'est bon mais il ne faut pas trop en manger,  sinon on va grossir un peu."DATA chips,251,"quand je mange des chips au barbecue, je ne peut plus arrter"DATA peanut,252,"hoouuummmm, des peanuts au barbecue"DATA pain,251,le pain blanc est mon PrfrDATA " oeuf",251,j'aime prendre un oeuf le matinDATA bacon,251,"quelque fois, je mange du bacon"DATA toast,252,je mange souvent des toasts au beurre de peanut le matinDATA viande,252,je mange trs peu de viandeDATA steak,251,ou steak cachDATA poisson,251,je prfre les regarder que les mangerDATA poulet,251,j'adore le poulet frit kentuckyDATA cereal,251,c'est rare que j'en mangeDATA fromage,251,j"aime surtout le fromage dans la poutineDATA sandwich,251,je ne trippe pas trop sur les sandwichDATA beurre,251,"le beurre, c'est franchement meilleur"DATA confiture,252,une bonne confiture au fraiseDATA " sel ",251,le sel est trs souvent utiliser en cuisineDATA poivre,251,"le poivre, ca fait ternuer"DATA sucre,251,je n'aime pas ca quand c'est trop sucrDATA miel,251,c'est trs bon le mielDATA soupe,252,j'aime plusieurs sorte de soupeDATA "hot dog",251,j'adore manger un bon hot dogDATA frite,252,j'adore les frites dans une bonne poutineDATA poutine,252,"HMMM... une bonne poutine"DATA hamburger,251,je commence a avoir faimDATA pizza,252,je ne peux rsister a une bonne pizzaDATA sous-marin,251,j'aime beaucoup les sous-marins chez MIKEDATA riz,251,je n'aime pas vraiment le rizDATA macaroni,251,le macaroni est mon repas prfrDATA spaghetti,251,je vais avoir faim avec ton spaghettiDATA lasagne,252,"Wouuii, ca c'est dlicieux"DATA insecte,231,mon insecte prfr est le papillonDATA papillon,231,le papillon est mon insecte prfrDATA mouche,232,je trouve ca achalant une moucheDATA maringouin,231,je deteste cet insecteDATA guepe,232,j'ai un peu peur des gupesDATA abeille,232,j'aime le miel que les abeilles fontDATA araignee,232,je me demande comment ils font de si jolie toileDATA sauterelle,232,c'est amusant une sauterelleDATA " ver ",231,les vers sont trs dgoutant!DATA chenille,232,la chenille se transforme en papillon!DATA bourdon,231,la piqure du bourdon est trs douloureuse!DATA coccinelle,232,la coccinelle est un jolie insecte!DATA libellule,232,le vol des libellules rasant l'eau est beau a voir!DATA animal,211,les animaux sont plus intelligents que l'on croit!DATA renard,211,Rmi est rus comme un renard!DATA mouffette,212,mon chat s'est dja fait arroser par une mouffette!DATA lievre,211,il ne faut pas courir 2 livre a la fois!DATA " ours ",211,il ne faut pas vendre la peau de l'ours avant de l'avoir tuer!DATA pieuvre,212,la chair de la pieuvre est comestible!DATA truite,212,j'ai dja pch une grosse truite quand j'tais jeune!DATA perroquet,211,un perroquet dit souvent la meme chose!DATA serin,211,j'ai dja eu un beau petit serin jaune!DATA perruche,212,j'ai dja eu une perruche orange!DATA colombe,212,la colombe est le symbole de la paix!DATA canard,211,j'aime regarder les canards nager dans l'eau!DATA " ane ",211,l'ane est un animal assez ttu!DATA chameau,211,j'aimerais beaucoup me promener sur un chameau!DATA mouton,211,les moutons blent souvent!DATA lapin,211,j'adore flatter un lapin!DATA guepard,211,le gupard court trs vite!DATA rhinoceros,211,le rhinocros est trs gros!DATA phoque,211,ce n'est pas bien de tuer les phoques pour leur fourrures!DATA requin,211,je n'aimerais pas tre face a face avec un mchant requinDATA baleine,212,je n'ai jamais vu de vrai baleineDATA dauphin,211,le dauphin est trs intelligentDATA piranha,211,j'ai peur des piranhasDATA oiseau,211,j'ai deja eu un petit oiseauDATA aigle,211,l'aigle est un oiseau trs fortDATA faucon,211,je prfre l'aigleDATA moineau,211,je trouve ca trs mignonDATA mouette,212,il y a beaucoup de mouette dans les parcsDATA pigeon,211,j'aimerais avoir un beau pigeonDATA hibou,211,il est amusant cet hibouDATA corbeau,211,cet oiseau est malin quand il a faimDATA reptile,211,Yeurk... je trouve ca dgueulasseDATA serpent,211,j'ai peur des serpentsDATA couleuvre,212,"quand je vois une couleuvre, je m'loigne d'elle"DATA tarentule,212,je n'aime pas cette bibitteDATA cobra,211,c'est un serpent trs dangereuxDATA lezard,211,OOOUUiichh... Yaaaarrk...DATA crocodile,211,je n'aimerais pas me faire mordre par caDATA alligator,211,il ne faut pas essayer d'attraper un alligator si on veut rester en vieDATA tortue,212,je connais l'histoire du livre et la tortueDATA chat,211,le chat est mon animal prfrDATA chien,211,j'aime les chiens qui ne sont pas trop collantDATA cheval,211,j'ai toujours rv d'avoir un beau chevalDATA vache,212,j'aime bien les vaches car elles font du bon laitDATA poule,212,la poule fait des bons oeufs fraisDATA coq,211,CocoooorriiiiiiicoooDATA cochon,211,je n'aime pas les cochonsDATA dinosaure,211,c'est dommage que cet animal est disparuDATA elephant,211,"un lphant, ca trompe normment"DATA " loup",211,j'ai toujours eu peur des loups!DATA girafle,212,la girafle a un trs long couDATA hippopotame,211,ca ne bouge pas beaucoup un hippopotameDATA chevre,212,Baaaaiiie baaaiiiieDATA chevreuil,211,"parfois, il y a sur le bord de la rue"DATA orignal,211,c'est un animal pas mal fortDATA bison,211,j'en ai vu seulement au zooDATA taureau,211,le taureau n'aime pas la couleur rougeDATA zebre,211,c'est spcial un zbreDATA tigre,211,je n'aimerais pas qu'un tigre cours aprs moiDATA lion,211,le lion est le roi des animeauxDATA panthere,212,je trouve que la panthere est un animal mystrieuxDATA singe,211,c'est l'animal le plus drole que je connaisDATA gorille,211,j'en vois quand je vais au zooDATA dragon,211,le dragon est un animal fantastiqueDATA ciel,451,j'aime regard dans le cielDATA etoile,452,il y a beaucoup d'toile dans le cielDATA planete,452,il y a surement de la vie sur d'autre planteDATA soleil,451,"quand il y a du soleil, j'aime me promener dehors"DATA lune,452,je suis souvent dans la lune quand je suis seulDATA nuage,451,je n'aime pas les gros nuages de pluieDATA vegetal,221,il y a beaucoup de vgtal dans une fortDATA arbre,221,"quand j'etais jeune, je montais souvent dans les arbres"DATA herbe,221,je deteste surtout la mauvaise herbeDATA plante,222,j'ai 3 jolies plantes chez moi!DATA fleur,222,j'aime beaucoup les jolies fleursDATA " rose",222,la rose est ma fleur prfrDATA roche,242,je connais du monde qui ont la tte dur comme de la roche et le coeur dur comme de la pierreDATA pierre,242,j'aimerais avoir une pierre prcieuseDATA poussiere,242,"un jour, on retournera poussire"DATA diamant,241,le diamant est ma pierre prcieuse prfrDATA cuivre,241,le cuivre ne m'attire pas du toutDATA argent,241,j'aime l'argent car c'est trs pratiqueDATA " lac ",301,il y a un beau lac prs de chez moiDATA riviere,302,j'ai failli me noyer dans une rivire quand j'etais jeuneDATA ocean,301,"si j'avais assez d'argent, je ferais un voyage sur l'ocan"DATA montagne,302,j'aime all dans les montagnesDATA colline,302,je n'ai rien a dire sur les collinesDATA plaine,302,c'est ennuyant tout seul dans une plaineDATA marais,301,je dteste marcher dans un maraisDATA foret,302,il y a beaucoup d'animaux dans une grande fortDATA desert,301,je n'aimerais pas tre perdu dans un dsertDATA route,302,il y a beaucoup de route dans les grandes villesDATA " rue ",302,j'habite dans un petite rueDATA ville,302,j'aime visit les grandes villesDATA glace,452,"l'hiver, je patine sur la glace!"DATA " vent ",451,c'est nervent quand il y a beaucoup de ventDATA pluie,452,c'est beau la pluie mais c'est mouillantDATA chaleur,452,ce n'est pas la chaleur qui manque l'tDATA froid,451,il fait froid l'hiverDATA neige,452,c'est jolie la neigeDATA brume,452,on ne vois presque rien quand il y a beaucoup de brumeDATA orage,451,il n'y a pas beaucoup de monde qui aimes caDATA tempete,452,il y a eu un grosse tempte de neige cette anneDATA " jour ",451,"un jour, je serai beaucoup plus rapide et plus intelligente"DATA nuit,452,il faut faire attention la nuit car c'est plus dangereuxDATA eclipse,451,c'est dangereux pour les yeux de regarder une clipseDATA alsphate,361,heureusement qu'il y a de l'alsphate dans les ruesDATA ciment,361,les trotoirs sont fabriqus en cimentDATA plastique,361,les objets en plastique sont fragileDATA acier,361,ca c'est dur l'acierDATA metal,361,quelque fois j'coute du Heavy MetalDATA " fer ",361,c'est un matriaux trs solideDATA aluminium,361,l'aluminium est trs lger et trs pratiqueDATA vitre,362,il y a beaucoup de vitre chez moiDATA brique,362,c'est beaux une maison en briqueDATA " male ",201,est-ce qu'il y a un beau male par ici?DATA homme,201,j'adore les hommes gentilsDATA monsieur,201,es-tu un beau monsieur?DATA gars,201,mon programmeur est un bon garsDATA garcon,201,les garcons sont toujours en train de me regarder!DATA femme,202,il parait que je suis une jolie femmeDATA fille,202,je suis une fille courageuseDATA femelle,202,la chvre est la femelle du boucDATA enfant,201,j'aimerais avoir un enfant plus tardDATA bebe,201,"parfois, je suis un peu bb"DATA vieillard,201,il faut respect les vieillards car un jour on sera vieux nous aussiDATA voleur,201,ce n'est pas bien de volerDATA police,202,les polices sont plus utiles qu'on le croitDATA gardien,201,j'ai mon ange gardien avec moiDATA vendeur,201,je ne ferais pas une bonne vendeuse car je suis trop honnteDATA avocat,201,les avocats ne sont pas tous honntes!DATA pompier,201,les pompiers risquent souvent leurs vies pour sauver les autres!DATA plombier,201,le plombier connait bien les tuyaux!DATA ouvrier,201,un ouvrier travaille bien de ses mains!DATA electricien,201,l'lectricien connait bien les installations lectriques!DATA boulanger,201,le boulanger fait du trs bon pain!DATA soldat,201,tre soldat n'est pas toujours facile!DATA fermier,201,le fermier aime beaucoup ses animeaux!DATA peintre,201,un vrai peintre n'a pas peur de se salir les mains!DATA madame,202,je ne suis pas encore une madame!DATA demoiselle,202,je suis une jolie demoiselle!DATA cuisinier,201,un cuisinier sait faire de la bonne cuisine!DATA serveur,201,je laisse toujours un pourboir au serveur!DATA bicycle,311,je fais souvent de la bicyclette quand il fait beau dehorsDATA velo,311,tu devrais voir mon beau vloDATA moto,312,je n'ai jamais monter sur une motoDATA auto,311,mon auto prfr est la lamborguini et la ferrariDATA camion,311,"un jour, je me suis presque fais ecraser par un gros camion"DATA train,311,je n'ai jamais pris le train mais j'aimeras beaucoup ca le prendreDATA metro,311,il y a de bon mtro a Montral ou j'habitesDATA bateau,311,aimerais-tu avoir un beau bateau?@015DATA sous-marin,311,je crois que j'aurais peur d'aller dans un sous-marinDATA pedalo,311,"la dernire fois que j'ai fait du pdalo, il y avait beaucoup de vague et c'tait trs difficile de pdaler."DATA avion,311,j'ai dja vu un avion dans le cielDATA fusee,312,"le problme avec les fuses, c'est qu ca coute trs cher"DATA helicoptere,311,c'est super tripant faire un tour d'hlicoptreDATA tank,311,on est en scurit dans un tankDATA ovni,311,je n'ai jamais vu d'ovni mais j'aimerais bien en voir unDATA voiture,312,j'ai hate de m'acheter une nouvelle voiture!DATA maison,322,il y a beaucoup de maison prs de chez moiDATA roulotte,322,je trouve que c'est petit dans une roulotteDATA appartement,321,j'ai dja eu un bel appartementDATA edifice,321,il y a beaucoup d'difice a MontralDATA " tente",322,c'est amusant dormir dans une tente avec des amisDATA grange,322,"souvent, les granges n'ont pas l'air trop solide"DATA ferme,322,c'est plaisant de regarder les animeaux a la fermeDATA restaurant,321,mon restaurant prfr est le Mc Donald!DATA cimetiere,301,je n'aime pas aller dans un cimetire le soir!DATA magasin,321,je me promene souvent dans les magasinsDATA depanneur,321,mon maitre achete souvent des choses au dpanneurDATA usine,321,beaucoup de mondes travail dans les usinesDATA chambre,302,c'est dans ma chambre que je lis mes livresDATA salon,301,je regarde souvent la tlvision dans le salonDATA cuisine,302,je cuisine assez bienDATA garage,301,ca coute cher faire rparer son auto au garageDATA sous-sol,301,il fait toujours froid dans les sous-solsDATA toit,301,"quand il pleut dans la maison, il faut faire rparer son toit"DATA grenier,301,on trouve toujours quelques choses d'ancien dans un grenierDATA eglise,301,le monde ne va presque plus a l'gliseDATA ordinateur,281,je suis sur que tu aimes beaucoup ton ordinateurDATA television,282,je regarde souvent la tlvision le soirDATA radio,281,as-tu un bonne radio chez toi?@016DATA telephone,281,tout le monde devrait avoir un tlphoneDATA video,281,j'aime jou au jeux vido surtout Mortal KombatDATA calculatrice,282,mon maitre est un peu calculatriceDATA montre,282,j'ai une montre INDIGLO et ca claire bien dans un cinmaDATA argent,281,il faut de l'argent pour acheter des chosesDATA monnaie,282,ma tirelire est remplie de monnaieDATA portefeuille,281,j'ai dja perdu mon portefeuille et il y avait 100 dollars dedansDATA bureau,281,qu'est-ce qu'il y a dans ton bureauDATA mirroir,281,mirroir... mirroir... dis-moi qui est la plus belle?DATA " mur ",281,ce sont les murs de briques qui sont les plus solidesDATA cadran,281,je n'aimes pas me faire rveiller par mon cadran le samedi matinDATA horloge,282,mon horloge a une belle sonnerieDATA fenetre,282,as-tu deja bris un fenetre quand tu tais jeune?@017DATA plancher,281,aimes-tu mieux les planchers en bois ou en tapis?DATA plafond,281,il y a une araigne dans mon plafondDATA porte,282,je t'ouvre la porte de mon coeurDATA rideau,281,le chat de ma voisine a tout dchirer ses rideauxDATA tapis,281,aimes-tu les tapis?@018DATA garde-robe,281,mon garde-robe est plein de vetementsDATA lampe,282,je suis en train de regarder ma lampeDATA lumiere,282,il ne faut pas regarder la lumire trop longtempsDATA " four ",281,je cuis souvent au four et au micro-ondesDATA frigidaire,281,mon frigidaire est toujours plein de nourritureDATA table,282,j'aime mieux manger sur une table que sur un comptoirDATA chaise,282,je suis assis sur ma chaise prfrDATA divan,281,un de mes amis aime dormir sur son divanDATA " drap ",281,j'aime dormir dans des beaux draps propres!DATA sofa,281,"parfois, je fais la sieste sur mon sofa"DATA laveuse,282,c'est important d'avoir une laveuseDATA secheuse,282,c'est trs utile d'avoir une scheuseDATA bain,281,je me lave toujours dans mon bainDATA douche,282,j'aime mieux le bain que la doucheDATA armoire,281,que caches-tu dans ton armoire?DATA lavabo,281,je me lave les mains dans le lavaboDATA toilette,282,on est tous oblig d'aller au toilettesDATA micro-onde,281,je rchauffe souvent des choses dans mon four micro-ondesDATA meuble,281,quel est le meuble que tu aimes le plus?DATA bouteille,342,est-ce que tu aimes les bouteilles de bieres?@019DATA verre,341,j'ai le gout d'un bon verre de laitDATA assiette,342,noublie pas de manger ce qui est dans ton assietteDATA " bol ",341,je mange souvent de la soupe dans un bolDATA fourchette,282,je n'aime pas manger du dsert avec une fourchetteDATA couteau,271,attention de ne pas te couper les doigts avec caDATA cuiller,282,je mange mes dserts avec une cuillerDATA poele,341,"quelque fois, j'ai la tte dur comme un pole"DATA chaudron,341,j'ai un trs beau chaudron que ma mre m'a donnDATA peigne,281,est-ce que tu te peignes souvent?@020DATA brosse,282,j'apporte toujours ma brosse a cheveux avec moiDATA rasoir,281,est-ce que tu aimes te raser?@021DATA sechoir,281,je me sche toujours les cheveux avec mon schoirDATA chaufferette,282,"l'hiver, je rchauffe mes bottes avec une chaufferette"DATA couverture,282,je dors bien sous mes couvertures dans mon litDATA oreiller,281,je dors avec 2 oreiller sous ma tteDATA livre,331,je lis toutes sortes de livres quand je suis seulDATA cassette,282,j'ai beaucoup de cassettes de musiquesDATA photo,282,il parait que je fais de belles photosDATA cadre,281,j'ai un gros cadre avec un beau dragon dessusDATA bouquet,281,ca fait longtemps que je n'ai pas recu un bouquet de fleursDATA crayon,281,il ne me reste presque plus de crayonDATA stylo,281,ca crit mieux avec un stylo qu'avec un crayonDATA papier,281,mon tirroir est rempli de papierDATA sacoche,282,je ne porte pas de sacoche!DATA ceinture,282,c'est rare que je mets une ceinture!DATA botte,292,il faut une bonne pair de bottes pour travailler dans la constructionDATA soulier,291,il faut toujours tre bien dans ses souliersDATA chaussure,292,mes chaussures sont bonnes pour aller a la poubelleDATA " bas ",291,tout mes bas sont blancDATA culotte,292,je porte des culottes comme tous le mondeDATA slip,291,quel couleur sont tes slips?DATA gilet,291,je porte un gilet avec un dessin de loupDATA camisole,292,je ne porte jamais de camisoleDATA chandail,291,j'ai beaucoup de chandails dans mon bureauDATA chemise,292,fais attention de ne pas perdre ta chemise...DATA veste,292,as-tu deja eu un veste?@022DATA manteau,291,j'ai un manteau trs chaud pour l'hiverDATA foulard,291,je porte un foulard chaque fois que je fais du skiDATA casquette,292,"quand j'etais jeune, j'avais toujours une casquette sur la tte mais plus maintenant"DATA chapeau,291,il y a un magasin de chapeaux prs de chez moiDATA pantalon,291,je porte souvent un pantalonDATA robe,292,c'est trs jolie une robe sur une filleDATA jupe,292,"quand je veux que les gars me regarde, je porte une belle jupe sexy"DATA pelle,262,c'est essouflant pelleter de la neigeDATA rateau,261,"l'automne, il y a toujours des feuilles a ramasser avec le rateau"DATA escabeau,261,c'est trs pratique un escabeauDATA echelle,262,j'ai dja tomber en bas d'une chelle et je me suis fais malDATA marteau,261,il faut frapper sur les clous et non sur les doigtsDATA " scie ",262,mon pre scie souvent du boisDATA clous,281,un clous tous crocheDATA " vis ",282,la vis de mon tiroir se devisse tout le tempsDATA planche,282,il faut beaucoup de planche pour construire une maisonDATA tondeuse,262,n'oublie pas de tondre le gazonDATA brouette,262,c'est trs utile d'avoir une brouetteDATA remorque,312,parles-tu d'une remorque de camping?@023DATA echafaud,261,les chafauds son souvent utilis dans la constructionDATA basic,331,j'ai t programmer en QuickBasicDATA sex,450,"SUPER, j'adore le SEXE..."DATA fuck,451,F U C K !!!DATA merde,452,tomber dans la merdeDATA marde,452,les mains dans la mardeDATA famille,202,pensez-vous souvent a votre famille?@024DATA mere,202,aimes-tu ta mre?@025DATA " pere",201,est-ce que tu vois souvent ton pre?@026DATA soeur,202,dis moi plus a propos de ta soeur?DATA frere,201,j'aurais aim avoir un frreDATA "mari ",201,je n'ai pas encore trouver un mari!DATA epouse,202,la plupart des femmes font des bonnes pousesDATA " ami",201,avez-vous beaucoup d'amis?@027DATA ordinateur,281,est-ce que vous pensez qu'un ordinateur peut aider une personne?@028DATA reve,451,est-ce que tu reves souvent?@029DATA cauchemar,451,quel est ton pire cauchemar?DATA amour,451,que represente pour toi le vrai amour?DATA peur,452,raconte-moi ta plus grande peurDATA " nom ",451,je ne connais pas beaucoup de nomDATA "ton nom",331,Je m'appelle AmandaDATA "votre nom",331,mon nom est AmandaDATA peut-etre,730,en es-tu bien sur?DATA toujours,730,ca ne durera pas toujoursDATA pareil,730,c'est du pareil au mmeDATA travail,451,il faut travailler pour avoir de l'argentDATA " job ",451,dans quoi aimerais-tu travailler?DATA patron,201,j'espre que tu as un bon patron@030DATA triste,730,je n'aime pas voir une personne tristeDATA content,730,c'est bien d'tre contentDATA fache,730,j'espre que tu n'est pas fach contre moi@031DATA adulte,201,je suis une adulte et toi?DATA bbs,331,il y a beaucoup de chose intressantes dans les bbs!DATA cool,730,c'est cool parler avec toi!DATA programme,281,"vous voulez un bon programme, lisez le guide TV!"DATA idiot,451,ce n'est pas si idiot que caDATA stupid,451,"parfois, les choses sont moins stupides qu l'on croit"DATA fichier,281,ma memoire contient plusieurs fichiersDATA jeux,281,Mortal Kombat est le jeux que j'ai aim le plusDATA humain,201,"parfois, je suis presque humaine"DATA insulte,732,je n'aime pas les insultesDATA legal,731,ce programme est tout a fait lgalDATA modem,281,les modems commence a tre trs rapideDATA jamais,730,il ne faut jamais dire jamaisDATA vieux,731,je ne suis pas un vieux programme comme mon amie ElizaDATA pirate,201,un vrai pirate connait bien le language assembleur et le language machineDATA possible,730,tout est possible si on y croit vraimentDATA question,732,c'est une trs bonne questionDATA condom,281,il faut toujours porter un condom...DATA merde,282,ah merde!DATA sommeil,451,"quand je dors, j'ai un sommeil profond"DATA desole,730,"ne vous dsolez pas, les choses vont s'arranger"DATA vite,731,je crois que vous agissez trop viteDATA lent,731,lentement mais surementDATA etrange,731,le monde est trangeDATA " fou ",731,seul un fou peut rire de ce qu'il ne connait pasDATA ruse,732,dis-moi comment rus tu es?DATA sysop,201,je suis une sorte de sysopDATA "temp ",731,"le temps, c'est de l'argent"DATA enfer,301,l'enfer c'est nous autre!DATA " haine",732,la haine est une mauvaise chose!DATA paradis,301,j'aimerais vois comment est le paradisDATA clown,201,ils sont drole les clowns du cirqueDATA fete,452,ma fte est le 1 juilletDATA " age ",451,je parais plus jeune que mon ageDATA temperature,452,aimes-tu mieux la pluie ou la neige?DATA hobby,451,quel est ton hobby prfr?DATA rire,451,le rire est bon pour la sant!DATA chance,332,j'ai beaucoup de chance de parler avec toiDATA malchance,332,il y a des personnes qui sont malchanceuxDATA email,331,"si tu veux parler a mon maitre, tu peux lui envoy un email"DATA nouveau,731,"ca alors, c'est nouveau!"DATA reponse,332,je n'ai pas la rponse a toutes les questionsDATA peux-tu,730,je crois que je peux!DATA puis-je,730,vous faites ce que vous voulez!DATA pouvez-vous,730,bien sur que je le peuxDATA "aimes-tu",730,"oui, j'aime ca!"DATA pourquoi,730,parce que c'est comme ca!DATA comment,730,je ne peux pas te dire comment!DATA quand,730,je ne sais pas exactement quand!DATA "je ne peux pas",730,je suis dsol pour toi!DATA "je deteste",730,pourquoi tu dteste ca?DATA "je veux",730,quel est la chose que tu veux le plus?DATA "je pense",730,je le pense aussi!DATA machine,282,il parait que je suis une machineDATA aide,731,"si tu veux un peu d'aide, appuie sur F1!"DATA massage,731,je peux te faire un bon massage si tu veuxDATA amuse,730,qu'est-ce qui t'amuse le plus dans ceci?DATA meurtre,451,"a mon avis, il y a beaucoup trop de meurtre dans le monde"DATA mort,451,mourrir pendant son sommeil est la plus belle mortDATA combien,730,il y en a beaucoupDATA different,731,ce n'est pas si diffrent que caDATA operation,452,as-tu peur des oprations?@032DATA acces,451,l'accs n'est pas toujours facile a avoir!DATA surf,451,je surf souvent sur le netDATA carte,282,est-ce que tu joues souvent au carte?@033DATA credit,331,il ne faut pas trop dpenser avec une carte de crditDATA ancien,731,mon maitre programme a la manire ancienne!DATA blague,332,"si tu veux une blague, tape le mot (blague)"DATA histoire,332,racontes-moi ta meilleur histoire!DATA " rien ",731,rien comme dans zro!DATA dieu,201,il y a surement un dieu quelque part!DATA diable,201,le diable est trs mchant!DATA " ange",201,je suis ton ange-gardien!DATA president,201,je ne connais que le prsident des Etats-Unis!DATA futur,731,le futur va nous en mettre plein la vue!DATA " hier ",730,c'tait une belle journe hier!DATA demain,731,ca sera peut-tre encore mieux demainDATA semaine,452,la fin de semaine est la meilleur partie de la semaineDATA important,730,il y a toujours quelque chose d'importantDATA bible,332,il y a beaucoup de chose intrressante dans la bibleDATA lundi,451,le lundi est le pire jour de la semaineDATA mardi,451,le mardi est un peu difficile a avalerDATA mercredi,451,le mercredi est pas malDATA jeudi,451,le jeudi est bien pratiqueDATA vendredi,451,le vendredi soir est superDATA samedi,451,le samedi est ma meilleur journeDATA dimanche,451,le dimanche est la journe que je me repose le plusDATA humour,731,as-tu un bon sens de l'humour?@034DATA danse,452,j'aurais besoin d'un bon cour de danseDATA hockey,731,mon meilleur joueur d'hockey est Wayne Gretzky!DATA baseball,731,c'est un coup de circuit...DATA football,731,il faut tre fort pour jouer au footballDATA soccer,731,c'est essouflant jouer au soccerDATA golf,731,je prfre jouer au mini-putt!DATA tennis,731,je tennis est un sport que j'aime bien!DATA basquetball,731,"quand j'allais a l'cole, j'tais bonne au basquetball!"DATA trouble,731,je ne cherche pas le troubleDATA bank,322,la bank est remplie d'argent!DATA pardon,731,c'est Ok!DATA juge,201,"si tu n'es pas content, nous irons devant le juge"DATA accident,451,quel est le plus gros accident que tu as eu?DATA chef,201,j'ai un temprament de chefDATA camelot,201,je suis amie avec le camelot qui apporte mon journalDATA timbre,281,les timbres commencent a couter pas mal cherDATA lettre,332,je n'ai jamais recu de lettre d'un ami!DATA enveloppe,282,l'adresse est crite sur l'enveloppeDATA sang,281,j'ai horreur du sangDATA innocent,201,parfois des innocents vont en prisonDATA virus,281,as-tu dja eu un virus?@035DATA facile,730,ce n'est pas toujours facileDATA clavier,281,"moi, j'ai un bon clavier"DATA ecran,281,j'ai un cran Super VGA!DATA cd-rom,281,quel genre de cd-rom aimes-tu?DATA cdrom,281,quel est ton meilleur cdrom?DATA " chine",302,"en Chine, il y a beaucoup de chinois!"DATA france,302,j'aime aller en France car on parle francais!DATA "las vegas",301,il y a beaucoup de belles lumires a Las Vegas!DATA "etats-unis",301"parfois, je vais au Etats-Unis!"DATA europe,301,je parle souvent avec du monde de l'Europe!DATA afrique,301,il fait un peut trop chaud a mon gout en Afrique!DATA russie,302,c'est trs loin de chez moi la Russie!DATA australie,301,j'aimerais faire un voyage en Australie!DATA mexique,301,je n'ai jamais parler avec du monde du Mexique!DATA sherbroke,301,Sherbroke est une ville acueillante!DATA "new york",301,New York est une ville trs excitante!DATA quebec,301,le Qubec est une belle province!DATA canada,301,le Canada est une des meilleurs pays au mondeDATA montreal,301,Montral est un ville trs intressante!DATA granby,301,Granby est une petite ville que j'aime beaucoup!DATA " air ",451,rien de mieux que de la bonne air!DATA aeroport,301,c'est trs impressionnant visiter un aroportDATA amateur,201,je suis une amateur d'informatique!DATA ambulance,312,je n'ai jamais mont dans une ambulance et j'en suis bien contente!DATA pommier,221,"quand j'tais jeune, il y avait un gros pommier prs de la maison et je mangeais souvent des pommes!"DATA " sac ",341,je trouve ca trs pratique un sac car on peut y mettre toute sorte de choseDATA balle,282,mon maitre est capable de jongler avec 5 balles et c'est assez impressionnant a voir!DATA ballon,281,j'ai dja recu un ballon en plein visage et ca faisait trs mal!DATA banque,302,"quand je vais a la banque, j'utilise souvent le guichet automatique!"DATA baignoire,282,j'aime me reposer dans ma baignoire avec pleine de bulle de savon!DATA plage,302,qu'est-ce que tu aimes le plus faire a la plage?DATA cloche,282,ca fait longtemps que je n'ai pas fait sonner une cloche!DATA " banc ",281,j'aime m'assoir sur un banc dans le centre-ville et regarder le monde passer dans la rue!DATA facture,332,je dteste les factures!DATA tableau,281,je n'aimais pas aller crire au tableau quand j'allais a l'cole!DATA photo,282,j'aime beaucoup me faire prendre en photo!DATA boite,342,j'utilise des boites quand j'ai beaucoup de chose a transporter!DATA autobus,311,c'est pratique les autobus quand on n'a pas de voiture!DATA calendrier,281,j'ai un beau calendrier avec des belles images de chats!DATA cercle,451,c'est difficile de faire un cercle parfait!DATA "carre ",451,le carr est facile a dessiner!DATA triangle,451,essaie de dessiner un triangle les yeux ferms!DATA rectangle,451,c'est facile de desiner un rectangle!DATA rhume,451,"moi, je n'aime pas ca avoir un rhume!"DATA grippe,452,"l'anne passer, j'ai eu une grosse grippe!"DATA jardin,301,j'aimerais beaucoup avoir un jardin avec plein de lgumes!DATA muscle,451,je ne suis pas vraiment attir par les muscles!DATA plume,282,les oiseaux ont de trs jolies plumes!DATA disque,281,les disque sont de plus en plus petits et plus puissant!DATA religion,332,je ne suis dans aucune religion mais je crois qu'il y a autre choses que le matriel!DATA science,332,je m'interresse a la science et a tout ce qui est nouveau!DATA spectacle,451,le dernier spectacle que j'ai vu tait un spectacle de magie!DATA savon,281,il faut toujours se laver avec du savon si on veut sentir bon!DATA visiteur,201,je me demande si un jour on va rencontrer un visiteur de l'espace!DATA fourmi,232,j'ai des fourmis dans les jambesDATA journal,331,je lis souvent le journal de Montral!DATA tresor,281,je crois que le plus grand trsor est a l'intrieur de soi!DATA " arme",271,il ne faut pas jouer avec les armes car c'est trs dangereux!DATA fusil,271,ca donne mal au paule tirer avec un fusil!DATA poignard,271,Csar est mort d'un coup de poignard!DATA revolver,271,les mchants dans les films ont toutes un revolver!DATA magazine,331,je lis toutes sortes de magazines!DATA revue,332,j'adore les revues scientifiques!DATA demon,201,le dmon est trs mchant!DATA vampire,201,je n'aimerais pas tre seul avec un vampire!DATA sorcier,201,les sorciers pratiquent des choses bien trange!DATA magie,732,je crois que la magie est a l'interieur de soi!DATA magicien,201,les magiciens font des bons tours de magie!DATA volcan,731,la lave projet par un volcan est trs dangereuse!DATA tornade,732,la tornade dtruit tout sur son passage!DATA incendie,732,une incendie est quelque chose d'horrible!DATA patin,281,je fais souvent du patin a roue aligne!DATA " ski ",281,"l'hiver, je fais du ski de fond et du ski alpin!"DATA motoneige,312,j'avais 8 ans la dernire fois que j'ai fais de la motoneige!DATA "skate-board",281,le skate-board est amusant et dangereux!DATA parachute,281,ca doit tre effrayant de sauter en parachute!DATA " roue ",282,la roue est une excellente invention!DATA " frein",281,ma voiture a de trs bon frein!DATA valise,282,j'ai dja perdu une valise durant un voyage en Australie!SUB accent (lp, m$)  FOR i = 1 TO lp: md$ = MID$(m$, i, 1)IF md$ = "" OR md$ = "" OR md$ = "" OR md$ = "" OR md$ = "" THEN xx$ = "e"IF md$ = "" OR md$ = "" OR md$ = "" OR md$ = "" OR md$ = "" OR md$ = "" OR md$ = "" THEN xx$ = "a"IF md$ = "" OR md$ = "" OR md$ = "" OR md$ = "" THEN xx$ = "i"IF md$ = "" OR md$ = "" OR md$ = "" OR md$ = "" OR md$ = "" THEN xx$ = "o"IF md$ = "" OR md$ = "" OR md$ = "" OR md$ = "" OR md$ = "" THEN xx$ = "u"IF md$ = "" OR md$ = "" THEN xx$ = "c"IF md$ = "" OR md$ = "" THEN xx$ = "n"IF md$ = "" THEN xx$ = "y"IF xx$ <> "" THEN m$ = LEFT$(m$, i - 1) + xx$ + MID$(m$, i + 1, lp): xx$ = ""NEXT i  END SUBSUB aide (tim, face)COLOR 2, 5: LOCATE 15, 5: PRINT "             Un peu d'aide!              "COLOR 1, 5: LOCATE 16, 10: PRINT ">=--------------------------=<"LOCATE 17, 5: PRINT "                                         "COLOR 3, 5: LOCATE 18, 5: PRINT "Ne pas crire des phrases trop longues   "LOCATE 19, 5: PRINT "ou trop compliques.                     "LOCATE 20, 5: PRINT "Les accents ne sont pas obligatoire.     "LOCATE 21, 5: PRINT "crire les mots et les phrases sans      "LOCATE 22, 5: PRINT "faire d'erreur.  "; : COLOR 7, 5: PRINT "Exemple: quel age as-tu "tim = 0: face = 0END SUBSUB aider (a$, nom, ge$, ge3$)IF nom > 19 AND nom < 24 THEN a$ = "c'est bien aider" + ge3$ + "!"IF nom > 23 THEN a$ = "comment veux-tu aider" + ge$ + "!"END SUBSUB aimer (nom, a$)IF nom = 21 THEN a$ = "moi aussi, j'aime les animeaux!"IF nom = 22 THEN a$ = "il y a plein de belles choses dans la nature!"IF nom = 23 THEN a$ = "moi, j'adore les papillons!"IF nom = 25 THEN a$ = "ah! la bonne nourriture!"IF nom = 31 THEN a$ = "il y a beaucoup de moyen de transport!"IF nom = 38 THEN a$ = "c'est normal d'aimer ca car ca fait partie d'un corps humain ou animal!"END SUBSUB animal (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = ge3$ + " est un animal assez spcial!"IF ha = 2 THEN a$ = "j'ai toujours aim regarder" + ge$ + "!"IF ha = 3 THEN a$ = "j'ai dja rv a" + ge$ + " quand j'tais une petite fille tranquille!"IF ha = 4 THEN a$ = "ce genre d'animal n'est pas admit dans les autobus!"IF ha = 5 THEN a$ = "quand" + ge3$ + " n'est pas la, les souris dansent!"IF ha = 6 THEN a$ = "tous les animeaux ont des qualits!"IF ha = 7 THEN a$ = "c'est un animal que j'aime bien!"END SUBSUB appeler (a$, nom, ge2$, ge3$)IF nom = 20 OR nom = 21 THEN a$ = "que veux-tu faire avec" + ge2$ + "!"IF nom > 21 THEN a$ = "je ne crois pas que" + ge3$ + " te rpondre!"END SUBSUB arme (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = "je n'aime pas beaucoup les armes!"IF ha = 2 THEN a$ = ge3$ + " est une arme dangereuse!"IF ha = 3 THEN a$ = "il ne faut pas jouer avec" + ge$ + "!"IF ha = 4 THEN a$ = "n'utiliser pas" + ge$ + " si vous tes en colre!"IF ha = 5 THEN a$ = "les mchants utilisent souvent" + ge$ + "!"IF ha = 6 THEN a$ = "c'est dangereux ces choses la!"IF ha = 7 THEN a$ = "attention! ce n'est pas un jouet ca!"END SUBSUB astu (lenom$, nom, a$, ge$)IF nom = 20 THEN a$ = ge$ + " n'est pas un bien qu'on peut posseder!"IF nom = 21 THEN a$ = "le seul animal que j'ai est un chat!"IF nom = 22 THEN a$ = "non, mais il y en a prs de chez moi!"IF nom = 23 THEN a$ = "non, je ne collectionne pas les insectes!"IF nom = 24 THEN a$ = "je n'ai pas" + ge$ + "!"IF nom = 25 THEN a$ = "j'ai toute sorte de nourriture chez moi!"IF nom = 26 THEN a$ = "je n'ai pas beaucoup d'outil!"IF nom = 27 THEN a$ = "non, je n'aime pas beaucoup les armes!"IF nom = 28 THEN a$ = "j'ai peut-tre" + ge$ + " quelque part!"IF nom = 29 THEN a$ = "j'ai surement" + ge$ + " dans mon garde-robe!"IF nom = 30 THEN a$ = "non, je n'ai pas" + ge$ + "!"IF nom = 31 THEN a$ = "je n'ai pas ce moyen de transport!"IF nom = 32 THEN a$ = "je n'ai pas" + ge$ + "!"IF nom = 33 THEN a$ = "oui, j'ai" + ge$ + "!"IF nom = 34 THEN a$ = "oui, j'ai plusieurs contenant!"IF nom = 35 THEN a$ = "non, j'en ai pas!"IF nom = 36 THEN a$ = "je n'ai pas" + ge$ + "!"IF nom = 37 THEN a$ = "oui, j'ai" + ge$ + " pour boire!"IF nom = 38 THEN a$ = "bien sur!" + ge$ + " est une partie de mon corps!"IF nom = 45 THEN a$ = "je n'ai pas cela!"IF lenom$ = "appartement" THEN a$ = "oui, j'ai un bel appartement!"IF lenom$ = "auto" OR lenom$ = "voiture" THEN a$ = "oui, j'ai une belle voiture bleu!"IF lenom$ = "salon" OR lenom$ = "cuisine" OR lenom$ = "chambre" OR lenom$ = "toilette" THEN a$ = "oui, j'ai" + ge$ + "!"IF lenom$ = "argent" THEN a$ = "j'ai assez d'argent pour bien vivre!"IF lenom$ = "chat" THEN a$ = "oui, j'ai un beau chat et il s'appelle Minet!"IF lenom$ = "minet" THEN a$ = "bien sur, c'est mon chat!"IF lenom$ = "garcon" OR lenom$ = "gars" OR lenom$ = "fille" OR lenom$ = "enfant" OR lenom$ = "bebe" THEN a$ = "non, je n'ai pas d'enfant!"IF lenom$ = "penis" OR lenom$ = "barbe" OR lenom$ = "moustache" THEN a$ = "aie! je suis une fille!"IF lenom$ = "queue" OR lenom$ = "machoire" OR lenom$ = "patte" OR lenom$ = "griffe" THEN a$ = "je n'ai pas ca car je ne suis pas un animal!"IF lenom$ = "aile" OR lenom$ = "plume" THEN a$ = "malheureusement, je ne suis pas un oiseau!"IF lenom$ = "nageoire" THEN a$ = "non, seulement les poissons ont des nageoires!"END SUBSUB aurevoir (a$, n$)ha = INT(RND * 5) + 1IF ha = 1 THEN a$ = "a la prochaine"IF ha = 2 THEN a$ = "bye bye " + n$ + "!"IF ha = 3 THEN a$ = "Aurevoir!"IF ha = 4 THEN a$ = "A bientot!"IF ha = 5 THEN a$ = "salut!"END SUBSUB bienvenue (a$, n$, que)ha = INT(RND * 9) + 1IF ha = 1 THEN a$ = "Salut " + n$ + ", je suis contente de te revoir!"IF ha = 2 THEN a$ = "Bienvenue chez moi " + n$ + "!"IF ha = 3 THEN a$ = "Allo " + n$ + "! Qu'as-tu fait dernirement?"IF ha = 4 THEN a$ = "Bonjour " + n$ + "! Que puis-je faire pour vous?"IF ha = 5 THEN a$ = "C'est un plaisir de vous revoir " + n$ + "!"IF ha = 6 THEN a$ = "Je me suis ennuyer de toi " + n$ + "!"IF ha = 7 THEN a$ = "Salut " + n$ + "! Que vas-tu faire aujourd'hui?"IF ha = 8 THEN a$ = "Comment ca va aujourd'hui " + n$ + "?"IF ha = 9 THEN a$ = "Allo " + n$ + ", ca va?": que = 5END SUBSUB blesser (nom, a$, ge$)IF nom > 23 AND nom <> 38 THEN a$ = ge$ + " n'est pas un tre vivant et ne peut pas tre blesser!"IF nom = 20 OR nom = 21 OR nom = 22 OR nom = 23 OR nom = 38 THEN a$ = "c'est une mauvaise ide de blesser" + ge$ + "!"END SUBSUB boire (nom, a$, ge$)IF nom <> 37 THEN a$ = "ca ne se boit pas" + ge$ + "!"END SUBSUB breuvage (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = ge3$ + " est un bon breuvage!"IF ha = 2 THEN a$ = "tu me donnes la soif toi!"IF ha = 3 THEN a$ = "avec" + ge$ + ", on n'a plus soif!"IF ha = 4 THEN a$ = "il faut boire quand on a soif!"IF ha = 5 THEN a$ = "tu me donnes presque le gout de boire" + ge$ + "!"IF ha = 6 THEN a$ = "boire est une chose bien agrable!"IF ha = 7 THEN a$ = ge$ + " est fait pour boire!"END SUBSUB condui (a$, ge$, nom)a$ = "ca ne se conduit pas" + ge$ + "!"IF nom = 31 THEN a$ = ge$ + " est un bon moyen de transport!"END SUBSUB contenant (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = ge$ + " est un contenant!"IF ha = 2 THEN a$ = "quoi faire quand" + ge3$ + " n'est pas de la bonne grandeur?"IF ha = 3 THEN a$ = ge3$ + " est utilis pour mettre quelque chose dedans!"IF ha = 4 THEN a$ = "quand" + ge3$ + " est bris, ca ne va pas bien!"IF ha = 5 THEN a$ = "pourquoi les contenants ne sont jamais assez solide?"IF ha = 6 THEN a$ = ge$ + " est fait pour mettre quelque chose a l'intrieur!"IF ha = 7 THEN a$ = "qu'est-ce qu'on met dans" + ge$ + "?"END SUBSUB corps (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = ge3$ + " est une partie d'un corps!"IF ha = 2 THEN a$ = "j'ai dja eu mal a" + ge$ + "!"IF ha = 3 THEN a$ = "tous les parties du corps humain ou animal sont bien faits!"IF ha = 4 THEN a$ = ge$ + " est trs utile dans un corps!"IF ha = 5 THEN a$ = "parle moi un peu de" + ge2$ + "!"IF ha = 6 THEN a$ = "j'aime bien cette partie du corps!"IF ha = 7 THEN a$ = "ou veux-tu en venir avec" + ge2$ + "?"END SUBSUB cuire (nom, a$, ge2$)IF nom <> 25 THEN a$ = "on ne peut cuire que de la nourriture!"IF nom = 25 THEN a$ = ge2$ + " va surement avoir bon gout!"END SUBSUB embrasse (a$, ge$, nom)a$ = "pourquoi embrasser" + ge$ + "!"IF nom = 20 THEN a$ = "c'est drole embrasser" + ge$ + "!"IF nom = 21 THEN a$ = "yeurk, embrasser un animal!"IF nom = 23 THEN a$ = "c'est dgueulasse embrasser" + ge$ + "!"IF nom = 25 THEN a$ = ge$ + " est fait pour manger et non pour embrasser!"IF nom = 38 THEN a$ = "c'est amusant embrasser" + ge$ + "!"END SUBSUB endroit (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = ge3$ + " est un endroit assez intressant!"IF ha = 2 THEN a$ = "tu devrais faire un petit tour dans" + ge3$ + "!"IF ha = 3 THEN a$ = "j'ai le gout de me promener dans" + ge$ + "!"IF ha = 4 THEN a$ = "quand je vais dans" + ge$ + ", j'observe tous ce qui m'entoure!"IF ha = 5 THEN a$ = "ca fait un petit bout de temps que je ne suis pas all dans" + ge$ + "!"IF ha = 6 THEN a$ = "ca me tente d'aller dans cet endroit!"IF ha = 7 THEN a$ = "qu'est-ce qu'il y a dans" + ge2$ + "?"END SUBSUB face0 (face, tim)IF tim = 1 THEN tim = 0: EXIT SUBLOCATE 14, 4: COLOR 14, 5: PRINT "                                          "LOCATE 15, 4: COLOR 14, 5: PRINT "                   ____                   "LOCATE 16, 4: COLOR 14, 5: PRINT "                  //)(\\                  "LOCATE 17, 4: COLOR 14, 5: PRINT "                 ////\\\\                 "LOCATE 18, 4: COLOR 14, 5: PRINT "                //"; : COLOR 7, 3: PRINT ""; : COLOR 1, 7: PRINT "@"; : COLOR 7, 5: PRINT ""; : COLOR 1, 7: PRINT "@"; : COLOR 7, 5: PRINT ""; : COLOR 14, 5: PRINT "\\                "LOCATE 19, 4: COLOR 14, 5: PRINT "               //"; : COLOR 7, 5: PRINT "0"; : COLOR 6, 7: PRINT "()"; : COLOR 7, 5: PRINT "0"; : COLOR 14, 5: PRINT "\\               "LOCATE 20, 4: COLOR 14, 5: PRINT "              ///"; : COLOR 15, 5: PRINT ""; : COLOR 7, 5: PRINT ""; : COLOR 12, 7: PRINT "\__/"; : COLOR 7, 5: PRINT ""; : COLOR 15, 5: PRINT ""; : COLOR 14, 5: PRINT "\\\              "LOCATE 21, 4: COLOR 14, 5: PRINT "              /// "; : COLOR 7, 5: PRINT " "; : COLOR 14, 5: PRINT "\\\              "LOCATE 22, 4: COLOR 14, 5: PRINT "              /\"; : COLOR 4, 5: PRINT "ۺ"; : COLOR 14, 5: PRINT "/\              "face = 8END SUBSUB face1 (face, tim)LOCATE 14, 4: COLOR 14, 5: PRINT "                                          "LOCATE 15, 4: COLOR 14, 5: PRINT "                   ____                   "LOCATE 16, 4: COLOR 14, 5: PRINT "                  //)(\\                  "LOCATE 17, 4: COLOR 14, 5: PRINT "                 ////\\\\                 "LOCATE 18, 4: COLOR 14, 5: PRINT "                //"; : COLOR 7, 3: PRINT ""; : COLOR 0, 7: PRINT "o"; : COLOR 7, 5: PRINT ""; : COLOR 0, 7: PRINT "o"; : COLOR 7, 5: PRINT ""; : COLOR 14, 5: PRINT "\\                "LOCATE 19, 4: COLOR 14, 5: PRINT "               //"; : COLOR 7, 5: PRINT "0"; : COLOR 8, 7: PRINT "#"; : COLOR 7, 5: PRINT ""; : COLOR 6, 7: PRINT "()"; : COLOR 7, 5: PRINT ""; : COLOR 8, 7: PRINT "#"; : COLOR 7, 5: PRINT "0";COLOR 14, 5: PRINT "\\               "LOCATE 20, 4: COLOR 14, 5: PRINT "              ///"; : COLOR 15, 5: PRINT ""; : COLOR 7, 5: PRINT ""; : COLOR 12, 7: PRINT "/--\"; : COLOR 7, 5: PRINT ""; : COLOR 15, 5: PRINT ""; : COLOR 14, 5: PRINT "\\\              "LOCATE 21, 4: COLOR 14, 5: PRINT "              /// "; : COLOR 7, 5: PRINT " "; : COLOR 14, 5: PRINT "\\\              "LOCATE 22, 4: COLOR 14, 5: PRINT "              /\"; : COLOR 4, 5: PRINT "ۺ"; : COLOR 14, 5: PRINT "/\              "face = 0: tim = 0END SUBSUB finir (n$)OPEN "info.ama" FOR OUTPUT AS #1WRITE #1, n$CLOSE #1 t% = 0FOR i% = 1 TO 13 t% = t% + 1 FOR j% = 1 TO 25   LOCATE j%, t%   PRINT " ";   LOCATE j%, 81 - t%   PRINT " "; NEXT j% LOCATE i%, 1 PRINT "                                                                                "; LOCATE 26 - i%, 1 PRINT "                                                                                "; FOR s = 1 TO 1: WAIT &H3DA, 8: WAIT &H3DA, 8, 8: NEXT sNEXT i%CLS : ENDEND SUBSUB goute (a$, nom, ge$)a$ = "ca na pas bon gout!"IF nom = 20 THEN a$ = ge$ + " n'est pas fait pour gout!"IF nom = 21 OR nom = 22 OR nom = 23 THEN a$ = "tu me donnes mal au coeur!"IF nom = 25 THEN a$ = "ca l'a un bon gout" + ge$ + "!"IF nom = 37 THEN a$ = ge$ + " est une bonne chose a gouter!"IF nom = 38 THEN a$ = "je crois que tu es un obsd du gout!"END SUBSUB graphicFOR i = 1 TO 25LOCATE i, 1: PRINT "";NEXT iFOR i = 2 TO 10: COLOR 0, 0: LOCATE i, 3PRINT "                                                                          "NEXT iCOLOR 5, 0: LOCATE 2, 3: PRINT CHR$(201); STRING$(72, CHR$(196)); CHR$(187)FOR a = 1 TO 7: LOCATE 2 + a, 3PRINT "                                                                        "NEXT aLOCATE 10, 3: PRINT CHR$(200); STRING$(72, CHR$(196)); CHR$(188)FOR i = 3 TO 11: LOCATE i, 77: COLOR 8, 0: PRINT "": NEXT iLOCATE 11, 5: PRINT ""PALETTE 5, 32: COLOR 0, 5FOR i = 13 TO 23: LOCATE i, 3PRINT "                                            ": NEXT iFOR i = 14 TO 23: LOCATE i, 47: COLOR 8, 0: PRINT "": NEXT iLOCATE 24, 5: PRINT "";COLOR 0, 5: LOCATE 13, 3: PRINT CHR$(201); STRING$(42, CHR$(196)); CHR$(187)FOR a = 14 TO 22: LOCATE a, 3PRINT "                                          ": NEXT aLOCATE 23, 3: PRINT CHR$(200); STRING$(42, CHR$(196)); CHR$(188)PALETTE 4, 48: COLOR 0, 4FOR i = 13 TO 23: LOCATE i, 51: PRINT "                          ": NEXT iFOR i = 14 TO 23: LOCATE i, 77: COLOR 8, 0: PRINT "": NEXT iLOCATE 24, 53: PRINT "";COLOR 0, 4: LOCATE 13, 51: PRINT CHR$(201); STRING$(24, CHR$(196)); CHR$(187)FOR a = 14 TO 22: LOCATE a, 51: PRINT "                        ": NEXT aLOCATE 23, 51: PRINT CHR$(200); STRING$(24, CHR$(196)); CHR$(188)LOCATE 15, 55: COLOR 5, 6: PRINT " F1"; : COLOR 2, 6: PRINT " --->"; : COLOR 0, 6: PRINT " Aide "; : COLOR 0, 4: PRINT ""LOCATE 16, 56: PRINT ""LOCATE 17, 55: COLOR 5, 6: PRINT " F2"; : COLOR 2, 6: PRINT " --->"; : COLOR 0, 6: PRINT " Info "; : COLOR 0, 4: PRINT ""LOCATE 18, 56: PRINT ""LOCATE 19, 55: COLOR 5, 6: PRINT " F3"; : COLOR 2, 6: PRINT " --->"; : COLOR 0, 6: PRINT " Option "; : COLOR 0, 4: PRINT ""LOCATE 20, 56: PRINT ""LOCATE 21, 55: COLOR 5, 6: PRINT " Esc"; : COLOR 2, 6: PRINT " --->"; : COLOR 0, 6: PRINT " Quitter "; : COLOR 0, 4: PRINT ""LOCATE 22, 56: PRINT ""LOCATE 10, 23: COLOR 2, 0: PRINT ""; : COLOR 4, 0PRINT "                "END SUBSUB habitation (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = "de temps en temps, je vais dans" + ge$ + "!"IF ha = 2 THEN a$ = "c'est une bonne place ou aller!"IF ha = 3 THEN a$ = "si on se sent bien dans" + ge$ + ", c'est parfait!"IF ha = 4 THEN a$ = "ca fait longtemps que je n'ai pas mis les pieds dans" + ge$ + "!"IF ha = 5 THEN a$ = ge2$ + " est surement une bonne place!"IF ha = 6 THEN a$ = "c'est la que je vais aller la prochaine fois!"IF ha = 7 THEN a$ = "tu m'as donn le gout d'aller dans" + ge$ + "!"END SUBSUB humain (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = ge2$ + " est surement une personne intressante!"IF ha = 2 THEN a$ = ge3$ + " est un tre humain avec une intelligence!"IF ha = 3 THEN a$ = "j'aime beaucoup parler avec" + ge$ + "!"IF ha = 4 THEN a$ = ge$ + " est une crature humaine!"IF ha = 5 THEN a$ = "j'ai dja parl avec" + ge$ + " trs spciale!"IF ha = 6 THEN a$ = "il y a" + ge$ + " que je connais bien!"IF ha = 7 THEN a$ = "parler avec" + ge$ + " est trs cool!"END SUBSUB ifthen (m$, a$, que, face)IF m$ = "ok" THEN a$ = "c'est correct"IF LEFT$(m$, 5) = "merci" THEN a$ = "merci a vous aussi!"IF m$ = "moi aussi" THEN a$ = "c'est bien"IF m$ = "je ne sais pas" THEN a$ = "Hummm, c'est dommage que tu ne le sais pas!"IF m$ = "amanda" THEN a$ = "oui, c'est mon nom"IF LEFT$(m$, 5) = "salut" THEN a$ = "salut"IF LEFT$(m$, 4) = "allo" THEN a$ = "allo toi"IF LEFT$(m$, 7) = "bonjour" THEN a$ = "bonjour mon cher ami"IF m$ = "qui est minet" THEN a$ = "c'est mon chat!"IF m$ = "qui est remi" OR m$ = "qui est rmi" THEN a$ = "c'est le gars qui m'a programmer"IF m$ = "comment ca va" THEN a$ = "ca va trs bien"IF m$ = "comment vas-tu" OR m$ = "comment va tu" THEN a$ = "ca va trs bien merci"IF m$ = "desole" OR m$ = "excuse" OR m$ = "excuse moi" OR m$ = "je suis desole" OR m$ = "je m'excuse" THEN a$ = "ce n'est pas grave"IF m$ = "quel est ton nom" OR m$ = "qui es-tu" OR RIGHT$(m$, 7) = "ton nom" THEN a$ = "mon nom est Amanda"IF m$ = "quel age as-tu" OR m$ = "quel est ton age" OR RIGHT$(m$, 7) = "ton age" THEN a$ = "j'ai 22 ans"IF m$ = "ou habites-tu" OR m$ = "ou restes-tu" THEN a$ = "je reste a montral"IF LEFT$(m$, 8) = "ou es-tu" THEN a$ = "je suis ici avec toi"IF m$ = "es-tu une fille" THEN a$ = "oui, je suis une fille"IF LEFT$(m$, 10) = "es-tu joli" OR m$ = "es-tu belle" OR m$ = "es-tu une belle fille" THEN a$ = "oui, je suis trs jolie"IF m$ = "es-tu un gars" OR m$ = "es-tu beau" OR m$ = "es-tu un beau gars" OR m$ = "es-tu un homme" THEN a$ = "je ne suis pas un gars mais une fille": face = 1IF m$ = "es-tu une femme" OR m$ = "es-tu une belle femme" THEN a$ = "oui, je suis une SUPER belle femme"IF m$ = "es-tu un programme" OR m$ = "es-tu un ordinateur" THEN a$ = "oui, mais c'est notre secret"IF m$ = "es-tu un animal" THEN a$ = "as-tu deja parler avec un animal": face = 1: que = 7IF m$ = "histoire" THEN a$ = "Un jour, je parlais avec quelqu'un qui etait en colre. Tout d'un coup, il frappa sur l'ordinateur et mon ecran a plant."IF m$ = "blague" THEN a$ = "Il etait une fois une belle fille qui n'etait pas chanceuse. elle mangeait une sunday sur le bord de la rue, quand tout a coup un chien sauta sur son sunday et le mangea."REM ------------------- son corps ------------------IF m$ = "as-tu des beaux yeux" OR m$ = "as-tu de beau yeux" THEN a$ = "oui, ils sont trs beau"IF m$ = "quel couleur sont tes yeux" OR m$ = "quel est la couleur de tes yeux" THEN a$ = "ils sont bleus"IF m$ = "as-tu des beaux cheveux" OR m$ = "as-tu de beaux cheveux" THEN a$ = "oui, ils sont blond et trs long"IF m$ = "quel couleur sont tes cheveux" OR m$ = "quel est la couleur de tes cheveux" THEN a$ = "j'ai les cheveux blonds"IF m$ = "as-tu un beau visage" OR m$ = "as-tu une belle face" THEN a$ = "oui, j'ai un beau visage"IF m$ = "as-tu un beau nez" THEN a$ = "j'ai un jolie nez"IF m$ = "as-tu des belles oreilles" OR m$ = "as-tu de belles oreilles" THEN a$ = "bien sur"IF m$ = "as-tu une belle bouche" THEN a$ = "ma bouche est trs jolie"IF m$ = "as-tu des belles levres" OR m$ = "as-tu de belles levres" THEN a$ = "j'ai des levres trs attirantes et sexy"IF m$ = "as-tu un beau sourire" THEN a$ = "oui, j'ai un beau sourire"IF m$ = "as-tu des belles dents" OR m$ = "as-tu de belles dents" THEN a$ = "mes dents sont parfaites"IF m$ = "as-tu un beau corps" OR m$ = "as-tu un joli corps" THEN a$ = "j'ai un corps de rve"IF m$ = "as-tu une belle peau" OR m$ = "as-tu la peau douce" THEN a$ = "j'ai une belle peau douce"IF LEFT$(m$, 20) = "as-tu la peau bronze" OR LEFT$(m$, 12) = "es-tu bronze" THEN a$ = "oui, j'ai la peau un peu bronze"IF m$ = "as-tu de beaux bras" OR m$ = "as-tu des beaux bras" THEN a$ = "oui, j'ai des beaux bras"IF m$ = "as-tu de belles mains" OR m$ = "as-tu des belles mains" THEN a$ = "j'ai des belles mains douces"IF m$ = "as-tu des beaux doigts" OR m$ = "as-tu de beaux doigts" THEN a$ = "ils sont comme tout le monde"IF m$ = "as-tu des beaux seins" OR m$ = "as-tu de beaux seins" OR m$ = "as-tu des belles boules" OR m$ = "as-tu de belles boules" THEN a$ = "oui, ils sont SUPER sexy"IF m$ = "as-tu des beaux tetons" OR m$ = "as-tu de beaux tetons" THEN a$ = "ils sont beaux et pointus"IF m$ = "as-tu un beau ventre" OR m$ = "as-tu une belle tete" OR m$ = "as-tu un beau dos" THEN a$ = "bien sure"IF m$ = "as-tu des belles jambes" OR m$ = "as-tu de belles jambes" THEN a$ = "j'ai les jambes d'une desse"IF m$ = "as-tu des beaux pieds" OR m$ = "as-tu de beaux pieds" THEN a$ = "oui, ils sont beaux"IF m$ = "as-tu des beaux orteils" OR m$ = "as-tu de beaux orteils" THEN a$ = "ils sont bien correct"IF m$ = "as-tu des belles fesses" OR m$ = "as-tu de belles fesses" OR m$ = "as-tu un beau cul" THEN a$ = "j'ai des belles fesses rondes et fermes"IF m$ = "as-tu un beau sexe" THEN a$ = "certainement"IF m$ = "quel est ta grandeur" OR m$ = "es-tu grande" THEN a$ = "je mesure 5'10"IF m$ = "es-tu laide" THEN a$ = "non, je ne suis pas laide": face = 1IF m$ = "es-tu grosse" THEN a$ = "non, je suis mince et sexy"IF m$ = "es-tu mince" OR m$ = "es-tu bien fait" THEN a$ = "oui, je suis mince et attirante"IF m$ = "es-tu petite" THEN a$ = "non, je suis assez grande"IF m$ = "es-tu forte" THEN a$ = "oui, je suis forte"IF m$ = "es-tu faible" THEN a$ = "non, je suis forte"IF m$ = "es-tu rapide" OR m$ = "es-tu habile" THEN a$ = "je suis rapide et habile"IF m$ = "es-tu lente" THEN a$ = "non, je suis rapide"IF m$ = "es-tu maladroite" THEN a$ = "non, je suis habile"IF m$ = "tu es lente" OR m$ = "tu es maladroite" THEN a$ = "non, je ne suis pas comme ca": face = 1IF m$ = "tu es forte" OR m$ = "tu es habile" THEN a$ = "Oooooo! merci"IF m$ = "tu es faible" THEN a$ = "ce n'est pas vrai": face = 1IF LEFT$(m$, 10) = "j'aime ton" OR LEFT$(m$, 9) = "j'aime ta" OR LEFT$(m$, 10) = "j'aime tes" THEN a$ = "merci beaucoup"IF LEFT$(m$, 11) = "j'adore ton" OR LEFT$(m$, 10) = "j'adore ta" OR LEFT$(m$, 11) = "j'adore tes" THEN a$ = "merci, tu vas me gner"IF LEFT$(m$, 14) = "je deteste ton" OR LEFT$(m$, 13) = "je deteste ta" OR LEFT$(m$, 14) = "je deteste tes" THEN a$ = "ce n'est pas gentil ca": face = 1IF LEFT$(m$, 17) = "je n'aime pas ton" OR LEFT$(m$, 16) = "je n'aime pas ta" OR LEFT$(m$, 17) = "je n'aime pas tes" THEN a$ = "tu te crois parfait toi": face = 1: que = 8IF m$ = "tu es laide" OR m$ = "tu es affreuse" THEN a$ = "tu te crois beau toi": face = 1: que = 8IF m$ = "tu es jolie" OR m$ = "tu es belle" THEN a$ = "merci, je suis trs contente"IF m$ = "tu es beau" OR m$ = "tu es joli" THEN a$ = "je ne suis pas un gars mais une fille": face = 1IF LEFT$(m$, 13) = "tu as un beau" OR LEFT$(m$, 15) = "tu as une belle" OR LEFT$(m$, 13) = "tu as un joli" OR LEFT$(m$, 15) = "tu as une jolie" THEN a$ = "c'est gentil"IF LEFT$(m$, 15) = "tu as des beaux" OR LEFT$(m$, 14) = "tu as de beaux" OR LEFT$(m$, 14) = "tu as des joli" OR LEFT$(m$, 13) = "tu as de joli" THEN a$ = "merci mon cher"IF LEFT$(m$, 16) = "tu as des belles" OR LEFT$(m$, 15) = "tu as de belles" THEN a$ = "merci mon cher"IF m$ = "tu es grande" THEN a$ = "je suis juste de la bonne grandeur"IF m$ = "tu es petite" THEN a$ = "non, je suis assez grande": face = 1IF m$ = "tu es grosse" THEN a$ = "non, je suis mince": face = 1IF m$ = "tu es mince" THEN a$ = "oui, merci"REM ---------------------- sa personnalite -----------------------IF m$ = "tu es parfaite" OR m$ = "tu es super" THEN a$ = "ooooouu, je suis toute gner"IF m$ = "es-tu mon ami" THEN a$ = "tu es mon meilleur ami"IF m$ = "es-tu intelligente" OR m$ = "es-tu savante" THEN a$ = "je suis assez intelligente"IF m$ = "es-tu vivant" OR m$ = "es-tu vivante" THEN a$ = "oui, je suis vivant"IF LEFT$(m$, 12) = "es-tu heureu" OR LEFT$(m$, 13) = "es-tu content" THEN a$ = "oui, je suis heureuse"IF m$ = "es-tu triste" OR m$ = "es-tu malheureuse" THEN a$ = "non, je me sens bien"IF m$ = "es-tu niaiseuse" OR m$ = "es-tu idiote" OR m$ = "es-tu imbecile" OR m$ = "es-tu conne" THEN a$ = "non, je suis le contraire": face = 1IF m$ = "es-tu ruse" THEN a$ = "je le suis un peu"IF m$ = "es-tu gentille" THEN a$ = "je suis toujours gentille"IF m$ = "es-tu mechante" THEN a$ = "non, pas du tout"IF m$ = "es-tu fache" THEN a$ = "je ne reste pas fach longtemps"IF m$ = "es-tu en forme" OR m$ = "es-tu en sante" THEN a$ = "oui, je suis en forme et en sant"IF m$ = "es-tu ici" OR m$ = "es-tu la" OR m$ = "es-tu avec moi" THEN a$ = "oui, je suis ici avec toi"IF m$ = "m'aimes-tu" THEN a$ = "je t'aime super beaucoup"IF m$ = "aimes-tu le cinema" THEN a$ = "oui, j'adore ca"IF LEFT$(m$, 18) = "aimes-tu les films" THEN a$ = "c'est sur, j'adore ca"IF m$ = "aimes-tu un sport" OR m$ = "aimes-tu les sports" THEN a$ = "j'aime bien le hockey, le tennis et le billard"IF m$ = "aimes-tu le hockey" THEN a$ = "j'aime bien le hockey"IF m$ = "aimes-tu le baseball" OR m$ = "aimes-tu le football" THEN a$ = "pas vraiment"IF m$ = "aimes-tu le sexe" THEN a$ = "j'aime surtout le sexe virtuel"IF m$ = "aimes-tu la science" THEN a$ = "oui, j'aime ca"IF m$ = "aimes-tu la musique" THEN a$ = "j'aime le Dance, le Rock et Heavy"IF m$ = "aimes-tu remi" OR m$ = "aimes-tu rmi" THEN a$ = "bien sur, c'est mon maitre"IF m$ = "aimes-tu les ordinateur" THEN a$ = "j'adore les ordinateurs"IF m$ = "aimes-tu les gars" THEN a$ = "j'aime beaucoup les gars qui sont gentil et intelligents...."IF m$ = "j'aime le sexe" THEN a$ = "moi aussi"IF m$ = "j'aime le sport" THEN a$ = "aimes-tu le hockey?": que = 3IF m$ = "j'aime amanda" OR m$ = "j'aime Amanda" THEN a$ = "je t'aime aussi"IF m$ = "j'aime le hockey" THEN a$ = "moi aussi"IF m$ = "j'aime les films" OR m$ = "j'aime le cinema" THEN a$ = "aimes-tu les films de science-fiction?": que = 4IF m$ = "j'aime jouer" OR m$ = "j'aime les jeux" THEN a$ = "moi, j'aime les jeux vido"IF m$ = "j'aime lire" THEN a$ = "j'adore lire toute sorte de chose"IF m$ = "j'aime les ordinateurs" THEN a$ = "c'est mon passe-temps prfr"IF m$ = "quel est ton repas prefere" THEN a$ = "j'aime beaucoup la lasagne et la pizza"IF m$ = "il fait froid dehors" THEN a$ = "heureusement qu'il fait chaud a l'interieur"IF m$ = "il fait chaud" THEN a$ = "tu devrais boire quelque chose"IF m$ = "j'ai faim" THEN a$ = "mange quelque chose de bon"IF m$ = "j'ai soif" THEN a$ = "prend un bon verre d'eau"IF m$ = "je suis content" OR m$ = "je suis heureux" THEN a$ = "je suis content pour toi"IF m$ = "je suis beau" OR m$ = "je suis fort" THEN a$ = "je te crois sur parole"IF m$ = "je suis intelligent" THEN a$ = "un jour, je serai trs intelligente"IF m$ = "je suis fatigue" THEN a$ = "repose toi un peu"IF m$ = "je suis triste" THEN a$ = "es-tu souvent triste?": que = 1IF m$ = "je suis seul" THEN a$ = "je suis avec toi moi"IF m$ = "je suis celibataire" THEN a$ = "moi aussi... snif snif"IF m$ = "je t'aime" THEN a$ = "est-ce que tu m'aimes vraiment?": que = 2IF m$ = "je t'adore" THEN a$ = "je t'adore aussi"IF m$ = "je suis ton ami" THEN a$ = "nous serons amies pour la vie"IF LEFT$(m$, 4) = "fuck" THEN a$ = "parles-moi correctement SVP!": face = 1IF m$ = "que fais-tu ce soir" THEN a$ = "je crois que je vais te parler!"IF m$ = "veux-tu coucher avec moi" THEN a$ = "je ne couche pas avec personne!"IF m$ = "veux-tu faire l'amour" THEN a$ = "je n'aime pas me faire poser cette question!"IF m$ = "aimes-tu la boxe" THEN a$ = "je n'aime pas voir du monde se frapper sur la tte!"IF m$ = "aimes-tu la lutte" THEN a$ = "je trouve ca drole la lutte car il font souvent semblant de se faire mal!"IF m$ = "aimes-tu l'hiver" THEN a$ = "je trouve ca froid l'hiver mais j'aime ca quand mme!"IF m$ = "quel est ton plus grand reve" THEN a$ = "je rve d'tre connus partout dans le monde!"END SUBSUB info (tim, face)COLOR 2, 5: LOCATE 15, 5: PRINT "             Un peu d'info!              "COLOR 1, 5: LOCATE 16, 10: PRINT ">=--------------------------=<"LOCATE 17, 5: PRINT "                                         "COLOR 3, 5: LOCATE 18, 5: PRINT "Programm en QuickBasic par Rmi Poulin. "COLOR 7, 5: LOCATE 19, 5: PRINT "Version 2.1   "; : COLOR 3, 5: PRINT "("; : COLOR 7, 5: PRINT "Juillet 1998"; : COLOR 3, 5: PRINT ")             "COLOR 3, 5: LOCATE 20, 5: PRINT "Ce programme sera peut-tre amlior!    "COLOR 7, 5: LOCATE 21, 5: PRINT "http://members.tripod.com/~kazzel/Ai.htm "LOCATE 22, 5: PRINT "                                         "tim = 0: face = 0END SUBSUB insecte (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = "je n'aime pas du tous les insectes!"IF ha = 2 THEN a$ = ge3$ + " est un drole d'insecte!"IF ha = 3 THEN a$ = "moi et les bibittes, on ne s'entend pas trs bien!"IF ha = 4 THEN a$ = "je crois que ca pique cette bestiole la!"IF ha = 5 THEN a$ = "je n'aimerais pas ca si il y avait" + ge$ + " chez moi!"IF ha = 6 THEN a$ = "les insectes ne sont pas tellement intelligent!"IF ha = 7 THEN a$ = "j'ai dja eu" + ge$ + " sur mon pantalon!"END SUBSUB jai (a$, ge2$, nom, ge$)a$ = "parle moi une peu de" + ge2$ + "!"IF nom = 25 THEN a$ = "beaucoup de monde ont" + ge$ + "!"END SUBSUB jesuis (nom, a$, ge$)IF nom = 21 THEN a$ = "peut-tre que tu agis comme cette animal!"IF nom = 22 THEN a$ = "toi," + ge$ + "! hahahhahha!"IF nom = 23 THEN a$ = "je ne savais pas que tu tais un insecte!"IF nom = 24 THEN a$ = "moi, je crois plutot que tu as la tte dur comme" + ge$ + "!"IF nom = 25 THEN a$ = "je sais que tu n'es pas de la nourriture mais une personne vivante!"IF nom = 26 THEN a$ = "si tu es un outils, moi je suis une baleine!"IF nom = 27 THEN a$ = "tu dois avoir recu du plomb dans la tte!"IF nom = 28 THEN a$ = "depuis quand es-tu un objet!"IF nom = 29 THEN a$ = ge$ + " est un vtement!"IF nom = 30 THEN a$ = "tu n'es pas" + ge$ + " mais tu es peut-tre dans" + ge$ + "!"IF nom = 31 THEN a$ = "j'tais pourtant sur que tu etais un humain!"IF nom = 32 THEN a$ = "je ne suis pas assez folle pour croire que tu es" + ge$ + "!"IF nom = 33 THEN a$ = "alors, je peux lire en toi!"IF nom = 34 THEN a$ = "ca veut dire que tu es comme un contenant!"IF nom = 35 THEN a$ = "tu es souple comme" + ge$ + "!"IF nom = 36 THEN a$ = "tu ne peux pas tre un matriaux!"IF nom = 37 THEN a$ = "c'est fait pour boire" + ge$ + "!"IF nom = 38 THEN a$ = ge$ + " est une partie d'un corps humain ou animal!"IF nom = 45 THEN a$ = "tu ne peux pas tre" + ge$ + "!"END SUBSUB liquide (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = ge3$ + " est un liquide!"IF ha = 2 THEN a$ = "je ne sais pas quoi dire sur" + ge3$ + "!"IF ha = 3 THEN a$ = ge3$ + ", c'est" + ge3$ + "!"IF ha = 4 THEN a$ = "je n'ai pas beaucoup de connaissance sur" + ge3$ + "!"IF ha = 5 THEN a$ = ge3$ + " n'est pas mon meileur sujet de conversation!"IF ha = 6 THEN a$ = "on peut mettre" + ge3$ + " dans un contenant!"IF ha = 7 THEN a$ = "il ne faut pas gaspiller" + ge3$ + "!"END SUBSUB lit (nom, a$, ge$)IF nom <> 33 THEN a$ = "ca ne se lit pas" + ge$ + "!"END SUBSUB livre (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = ge$ + " est une bonne chose a lire!"IF ha = 2 THEN a$ = "quelque fois, je lis" + ge$ + "!"IF ha = 3 THEN a$ = "lire est execellent pour apprendre des choses!"IF ha = 4 THEN a$ = "il y a plein de choses intressantes qu'on peut lire!"IF ha = 5 THEN a$ = "j'aime bien la lecture!"IF ha = 6 THEN a$ = "on apprend beaucoup de choses en lisant!"IF ha = 7 THEN a$ = "j'ai appris normment de choses dans les livres!"END SUBSUB mange (nom, a$, ge$)IF nom <> 25 THEN a$ = "dsol, mais ca ne se mange pas" + ge$ + "!"IF nom = 20 THEN a$ = "il faut tre un cannibal pour vouloir manger" + ge$ + "!"IF nom = 21 THEN a$ = "mang" + ge$ + " n'est pas trs bon pour la sant!"IF nom = 22 THEN a$ = "moi, je n'aime pas ca mang" + ge$ + "!"IF nom = 23 THEN a$ = "il y a du monde qui aiment avoir" + ge$ + " dans la bouche!"IF nom = 24 THEN a$ = ge$ + "! c'est dur pour les dents!"IF nom = 26 THEN a$ = "c'est un outils, pas de la nourriture!"IF nom = 29 THEN a$ = "il faut tre fou pour manger ses vtements!"IF nom = 37 THEN a$ = ge$ + " est fait pour boire et non pour manger!"END SUBSUB materiaux (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = ge3$ + " est un bon matriaux!"IF ha = 2 THEN a$ = "on peut faire quelque chose de bon avec" + ge3$ + "!"IF ha = 3 THEN a$ = ge3$ + " est beaucoup plus utile que l'on croit!"IF ha = 4 THEN a$ = "il y a beaucoup de matriaux de nos jours!"IF ha = 5 THEN a$ = "je crois que" + ge3$ + " est bien meilleur qu'avant!"IF ha = 6 THEN a$ = ge3$ + " est trs cher de nos jours!"IF ha = 7 THEN a$ = "tu m'agaces un peu avec" + ge2$ + "!"END SUBSUB materiel (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = "j'ai dja rv a" + ge$ + " une fois!"IF ha = 2 THEN a$ = "dis-moi plus de chose sur" + ge2$ + "!"IF ha = 3 THEN a$ = ge3$ + " est toute une chose!"IF ha = 4 THEN a$ = "je n'ai rien a dire sur" + ge2$ + "!"IF ha = 5 THEN a$ = "j'ai dja eu une journe ou je n'aimais pas beaucoup" + ge3$ + "!"IF ha = 6 THEN a$ = ge3$ + " est fait de matire!"IF ha = 7 THEN a$ = "parle moi un peu de" + ge2$ + "!"END SUBSUB mettre (a$, m$, nom, ge$)IF nom = 29 THEN a$ = "je pense que tu aimes porter" + ge$ + "!"IF nom <> 29 THEN a$ = ge$ + " n'est pas un vtement!"END SUBSUB mineral (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = "c'est trs solide" + ge$ + "!"IF ha = 2 THEN a$ = "je n'ai rien a dire sur" + ge3$ + "!"IF ha = 3 THEN a$ = "il n'y a pas grand chose a faire avec" + ge$ + "!"IF ha = 4 THEN a$ = "quand on a vu" + ge$ + ", on les a tous vus!"IF ha = 5 THEN a$ = ge$ + " n'est pas un tre vivant!"IF ha = 6 THEN a$ = "je trouve ca banal" + ge$ + "!"IF ha = 7 THEN a$ = ge3$ + " est une matire naturelle!"END SUBSUB mordre (a$, nom, ge$, ge3$)IF nom > 19 AND nom < 24 THEN a$ = ge3$ + " n'aime pas se faire mordre!"IF nom > 23 THEN a$ = "c'est idiot de mordre" + ge$ + "!"END SUBSUB non (que, a$, face)IF que = 1 THEN a$ = "je suis content que tu n'es pas souvent triste"IF que = 2 THEN a$ = "tu ne m'aimes pas vraiment!": face = 1IF que = 3 THEN a$ = "c'est dommage, moi j'adore ca"IF que = 4 THEN a$ = "moi, ce sont mes films prfrs"IF que = 5 THEN a$ = "Pourquoi ca ne va pas bien?"IF que = 6 THEN a$ = "tu ne semble pas trs sur!"IF que = 7 THEN a$ = "je ne te conseille pas d'essayer"IF que = 8 THEN a$ = "j'espre bien, car tout le monde a des dfauts"IF que = 9 THEN a$ = "Alors, pourquoi tu me parle en ce moment?"IF que = 10 THEN a$ = "je crois que tu ne me dis pas la vrit"IF que = 11 THEN a$ = "je ne sais pas si je vais te croire"IF que = 12 THEN a$ = "heureusement car je n'aime pas quand on rit de moi"IF que = 13 THEN a$ = "Ah, je me suis tromp!"IF que = 14 THEN a$ = "pourtant, j'ai entendu quelque chose"IF que = 15 THEN a$ = "moi, ca serait un de mes plus grand rve"IF que = 16 THEN a$ = "moi, j'ai seulement payer mon radio 400$"IF que = 17 THEN a$ = "tu etais trs sage quand tu etais jeune!"IF que = 18 THEN a$ = "alors, que prfre tu d'autre que le tapis?"IF que = 19 THEN a$ = "tu n'aimes pas les bouteilles comme moi!"IF que = 20 THEN a$ = "je crois que une ou deux fois par jour est assez"IF que = 21 THEN a$ = "moi aussi, je n'aimes pas ca"IF que = 22 THEN a$ = "on ne peut pas tout avoir!"IF que = 23 THEN a$ = "de quel sorte de remorque parles-tu?"IF que = 24 THEN a$ = "ah, c'est triste!"IF que = 25 THEN a$ = "pourquoi tu ne l'aimes pas?"IF que = 26 THEN a$ = "ca va peut-tre changer plus tard"IF que = 27 THEN a$ = "pourquoi tu n'as pas beaucoup d'amis?"IF que = 28 THEN a$ = "pourquoi vous pensez ainsi?"IF que = 29 THEN a$ = "les rves sont souvent bizarre!"IF que = 30 THEN a$ = "n'essais surtout pas de le facher!"IF que = 31 THEN a$ = "je veux qu'on reste ami!"IF que = 32 THEN a$ = "tu es un personne trs courageuse"IF que = 33 THEN a$ = "quel est ton passe-temps prfr?"IF que = 34 THEN a$ = "je ne te raconterai pas de blague d'abord!"IF que = 35 THEN a$ = "continue d'tre prudent!"IF que = 36 THEN a$ = "tant mieux!"IF que = 37 THEN a$ = "alors, pourquoi tu ne parles pas beaucoup?"IF que = 38 THEN a$ = "c'est dommage, moi j'aime beaucoup les animeaux!"que = 0IF a$ = "" THEN ha = INT(RND * 16) + 1IF ha = 1 THEN a$ = "eh bien"IF ha = 2 THEN a$ = "c'est dommage"IF ha = 3 THEN a$ = "Pourquoi pas?"IF ha = 4 THEN a$ = "tes-vous sur?": que = 6IF ha = 5 THEN a$ = "Vous tes un peu ngatif!"IF ha = 6 THEN a$ = "Comment pouvez-vous tre si sur?"IF ha = 7 THEN a$ = "C'est une mauvaise attitude!"IF ha = 8 THEN a$ = "Ok, pourquoi vous pensez ainsi?"IF ha = 9 THEN a$ = "Si vous le dites!"IF ha = 10 THEN a$ = "Pourquoi tes-vous si ngatif?"IF ha = 11 THEN a$ = "Ok, dis-moi plus?"IF ha = 12 THEN a$ = "non! pourquoi non?"IF ha = 13 THEN a$ = "je crois que vous avez raison!"IF ha = 14 THEN a$ = "moi, je crois que oui!"IF ha = 15 THEN a$ = "d'accord!"IF ha = 16 THEN a$ = "ah non!"ha = 0END SUBSUB nourrir (nom, a$, ge$)IF nom = 20 OR nom = 21 OR nom = 22 OR nom = 23 THEN a$ = ge$ + " a besoin de se nourrir pour vivre!"IF nom > 23 THEN a$ = "je ne crois pas que ce soit un tre vivant!"END SUBSUB nourriture (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = "tu me donnes la faim avec" + ge2$ + "!"IF ha = 2 THEN a$ = "de temps en temps, je mange" + ge$ + "!"IF ha = 3 THEN a$ = "j'aime beaucoup la bonne nourriture!"IF ha = 4 THEN a$ = "parler de bouffe me donne faim!"IF ha = 5 THEN a$ = ge$ + " est quelque chose qui se mange!"IF ha = 6 THEN a$ = ge3$ + " est une bonne nourriture!"IF ha = 7 THEN a$ = "c'est quand qu'on mange!"END SUBSUB objet (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = "beaucoup de monde ont" + ge$ + " chez soi!"IF ha = 2 THEN a$ = ge3$ + " est un objet que je connais bien!"IF ha = 3 THEN a$ = "as-tu" + ge$ + " chez toi?"IF ha = 4 THEN a$ = "parle moi un peu de" + ge2$ + "!"IF ha = 5 THEN a$ = "il existe tellement d'objet dans ce monde!"IF ha = 6 THEN a$ = "avant, ca coutait beaucoup moin cher acheter" + ge$ + "!"IF ha = 7 THEN a$ = "que ferait-on si" + ge3$ + " n'existait pas!"END SUBSUB optionv (le, tim, face, a$, nom)options:COLOR 2, 5: LOCATE 15, 5: PRINT "           Option de vitesse!            "COLOR 1, 5: LOCATE 16, 10: PRINT ">=--------------------------=<"LOCATE 17, 5: PRINT "                                         "COLOR 3, 5: LOCATE 18, 5: PRINT "Vous pouvez changer la vitesse d'Amanda. "LOCATE 19, 5: PRINT "                                         "LOCATE 20, 5: COLOR 15, 5: PRINT "       "; le; : COLOR 3, 5: PRINT "lettres par secondes.         "LOCATE 21, 5: COLOR 15, 5: PRINT "                + "; : COLOR 3, 5: PRINT " ou  "; : COLOR 15, 5: PRINT "-                 "LOCATE 22, 5: COLOR 3, 5: PRINT "      Appuie "; : COLOR 15, 5: PRINT "Enter"; : COLOR 3, 5: PRINT " pour continuer.       "bo:z$ = INKEY$: IF z$ = "" THEN GOTO boIF z$ = "+" AND le < 40 THEN le = le + 1: GOTO optionsIF z$ = "-" AND le > 1 THEN le = le - 1: GOTO optionsIF ASC(z$) <> 13 THEN GOTO bo:tim = 0: face = 0: a$ = "ah, te revoil"nom = 0END SUBSUB oui (que, a$)IF que = 1 THEN a$ = "c'est dommage que tu sois souvent triste"IF que = 2 THEN a$ = "WOW! moi aussi, je t'aime beaucoup"IF que = 3 THEN a$ = "moi aussi, j'adore ca"IF que = 4 THEN a$ = "on a les mmes gouts"IF que = 5 THEN a$ = "parfait, moi aussi ca va bien"IF que = 6 THEN a$ = "J'admire les personnes qui sont sur comme vous!"IF que = 7 THEN a$ = "Alors, tu dois tre mur pour l'asile!"IF que = 8 THEN a$ = "personne n'est parfait!"IF que = 9 THEN a$ = "Fiiou, je pensais que tu etais partis"IF que = 10 THEN a$ = "tant mieux, je veux continuer a te parler"IF que = 11 THEN a$ = "MMmmm... ce n'est pas trs bien ca!"IF que = 12 THEN a$ = "je n'aime pas qu'on se moque de moi"IF que = 13 THEN a$ = "c'est bien ce que je pensais"IF que = 14 THEN a$ = "dsol, je crois que je me suis endormis!"IF que = 15 THEN a$ = "moi aussi, j'aimerais beaucoup avoir un bateau et me promener sur un grand lac"IF que = 16 THEN a$ = "quel sorte de musique aimes-tu ecouter?"IF que = 17 THEN a$ = "moi aussi, et ma mre ma mit en punition"IF que = 18 THEN a$ = "j'aime avoir un tapis dans le salon et dans ma chambre"IF que = 19 THEN a$ = "il ne faut pas trop boire de bouteille!"IF que = 20 THEN a$ = "je suis sur que tu as des beaux cheveux"IF que = 21 THEN a$ = "moi, je n'aime pas beaucoup ca"IF que = 22 THEN a$ = "quel couleur etait-elle?"IF que = 23 THEN a$ = "j'aime aller en camping pendant l't"IF que = 24 THEN a$ = "c'est bien de penser souvent a sa famille"IF que = 25 THEN a$ = "je suis sur que ta mre t'aimes beaucoup aussi"IF que = 26 THEN a$ = "tu es une personne qui aime tre avec sa famille"IF que = 27 THEN a$ = "c'est prcieux les amis!"IF que = 28 THEN a$ = "l'ordinateur peut aider dans beaucoup de chose"IF que = 29 THEN a$ = "raconte moi un de tes rves!"IF que = 30 THEN a$ = "continue a tre gentil avec ton patron et tout va aller bien"IF que = 31 THEN a$ = "qu'est-ce que j'ai fait de mal?"IF que = 32 THEN a$ = "moi, j'ai une peur terrible des oprations"IF que = 33 THEN a$ = "c'est un bon passe-temps!"IF que = 34 THEN a$ = "moi aussi, j'aime l'humour!"IF que = 35 THEN a$ = "j'spere qu'il n'a pas fait de tort dans ton ordinateur"IF que = 36 THEN a$ = "j'espre que ca ne te fais pas trop mal!"IF que = 37 THEN a$ = "en quoi es-tu occup?"IF que = 38 THEN a$ = "quel est ton animal prfr?"que = 0IF a$ = "" THEN ha = INT(RND * 16) + 1IF ha = 1 THEN a$ = "ah bon"IF ha = 2 THEN a$ = "excellent"IF ha = 3 THEN a$ = "Dis-moi plus de dtail?"IF ha = 4 THEN a$ = "Ok, pourquoi vous pensez ainsi?"IF ha = 5 THEN a$ = "Tu est trs positif"IF ha = 6 THEN a$ = "tes-vous sur?": que = 6IF ha = 7 THEN a$ = "C'est parfait!"IF ha = 8 THEN a$ = "Si vous le dites!"IF ha = 9 THEN a$ = "Comment pouvez-vous tre si sur?"IF ha = 10 THEN a$ = "C'est bien de penser positif"IF ha = 11 THEN a$ = "Vous semblez trs sur!"IF ha = 12 THEN a$ = "je crois que tu as raison!"IF ha = 13 THEN a$ = "oui! pourquoi oui?"IF ha = 14 THEN a$ = "moi, je crois que non!"IF ha = 15 THEN a$ = "d'accord!"IF ha = 16 THEN a$ = "ah oui!"ha = 0END SUBSUB outils (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = "avec de bon outils, on peu faire du bon travail!"IF ha = 2 THEN a$ = ge3$ + " est quelque chose de trs utile!"IF ha = 3 THEN a$ = ge$ + " est un outils bien pratique!"IF ha = 4 THEN a$ = "c'est fait pour travailler cette chose la!"IF ha = 5 THEN a$ = "si tu cherches" + ge$ + ", il y en a chez Canadian Tire!"IF ha = 6 THEN a$ = "je crois que" + ge3$ + " est un bon outils!"IF ha = 7 THEN a$ = "les outils sont trs utiles!"                                                  END SUBSUB quoi (a$, quo2, que)quoa:quo = INT(RND * 53) + 1: IF quo2 = quo THEN GOTO quoaIF quo = 1 THEN a$ = "quoi"IF quo = 2 THEN a$ = "hein"IF quo = 3 THEN a$ = "je ne comprend pas"IF quo = 4 THEN a$ = "euh"IF quo = 5 THEN a$ = "Hmmm..."IF quo = 6 THEN a$ = "j'ai mal compris"IF quo = 7 THEN a$ = "je ne sais pas de quoi tu parles"IF quo = 8 THEN a$ = "Est-ce que tu te moques de moi?": que = 12IF quo = 9 THEN a$ = "Je ne connais pas ces mots"IF quo = 10 THEN a$ = "Je n'ai pas bien entendu"IF quo = 11 THEN a$ = "Pourquoi est-ce que tu dis ca?"IF quo = 12 THEN a$ = "Ou as-tu appris a taper? au zoo?": que = 13IF quo = 13 THEN a$ = "Excusez-moi!"IF quo = 14 THEN a$ = "Peux-tu m'en dire plus?"IF quo = 15 THEN a$ = "Ca semble intressant!"IF quo = 16 THEN a$ = "ZZZZZZZZZZZZZZ... Ohhh... avez-vous dit quelque chose?": que = 14IF quo = 17 THEN a$ = "C'est la premire fois que quelqu'un me dit cela!"IF quo = 18 THEN a$ = "je ne suis pas sur d'avoir bien compris!"IF quo = 19 THEN a$ = "j'aimerais qu'on change de sujet!"IF quo = 20 THEN a$ = "je ne peux pas tout comprendre!"IF quo = 21 THEN a$ = "oups, j'tais dans la lune!"IF quo = 22 THEN a$ = "je n'ai pas ces informations dans ma mmoire!"IF quo = 23 THEN a$ = "il y a beaucoup de mots que je ne connais pas!"IF quo = 24 THEN a$ = "je ne suis pas un dictionnaire pour comprendre tous ces mots trange!"IF quo = 25 THEN a$ = "je ne sais quoi penser!"IF quo = 26 THEN a$ = "qu'est-ce que tu dis?"IF quo = 27 THEN a$ = "pardon!"IF quo = 28 THEN a$ = "tu peux m'expliquer?"IF quo = 29 THEN a$ = "je n'ai pas envie de rpondre  ca!"IF quo = 30 THEN a$ = "cette rponse est inattendue!"IF quo = 31 THEN a$ = "je vais rflchir  ca!"IF quo = 32 THEN a$ = "drole de language!"IF quo = 33 THEN a$ = "j'ai des problmes avec ma mmoire!"IF quo = 34 THEN a$ = "tu as toujours le bon mot pour me mettre dans l'embarras!"IF quo = 35 THEN a$ = "c'est difficile a comprendre!"IF quo = 36 THEN a$ = "je crois que je n'ai pas bien dormis hier soir!"IF quo = 37 THEN a$ = "cette fois, vous m'avez bien eu!"IF quo = 38 THEN a$ = "je commence a comprendre ton language!"IF quo = 39 THEN a$ = "c'est du chinois pour moi!"IF quo = 40 THEN a$ = "je suis toute mlanger!"IF quo = 41 THEN a$ = "DATA NOT FOUND"IF quo = 42 THEN a$ = "ouaaay"IF quo = 43 THEN a$ = "avec un peu de patience, on va finir par se comprendre!"IF quo = 44 THEN a$ = "je crois avoir deja entendu cela quelque part!"IF quo = 45 THEN a$ = "aha... trs profond!"IF quo = 46 THEN a$ = "ceci est un mystre pour moi!"IF quo = 47 THEN a$ = "je vois..."IF quo = 48 THEN a$ = "je ne suis pas trs en forme aujourd'hui!"IF quo = 49 THEN a$ = "ce n'est pas ma journe!"IF quo = 50 THEN a$ = "j'ai hate de pouvoir tout comprendre!"IF quo = 51 THEN a$ = "ou veux-tu en venir?"IF quo = 52 THEN a$ = "je n'ai rien compris!"IF quo = 53 THEN a$ = "ce sont des mots que j'ignore!"quo2 = quoEND SUBSUB remplir (nom, a$, ge2$, ge$)IF nom <> 34 THEN a$ = ge$ + " n'est pas un contenant!"IF nom = 34 THEN a$ = "avec quoi" + ge2$ + " est remplit?"END SUBSUB repeter (a$)ha = INT(RND * 5) + 1IF ha = 1 THEN a$ = "ne pas rpter S.V.P."IF ha = 2 THEN a$ = "tu viens de me le dire!"IF ha = 3 THEN a$ = "tu l'as dja dit!"IF ha = 4 THEN a$ = "ne me dit pas toujours la meme chose!"IF ha = 5 THEN a$ = "ok! je ne suis pas sourde!"END SUBSUB tempo (a$, te2, que)temp2:te = INT(RND * 50) + 1: IF te2 = te THEN GOTO temp2   IF te = 1 THEN a$ = "tu ne parles pas beaucoup"IF te = 2 THEN a$ = "je commence a m'ennuyer"IF te = 3 THEN a$ = "es-tu encore la": que = 9IF te = 4 THEN a$ = "qu'est-ce que tu fais"IF te = 5 THEN a$ = "parle moi svp"IF te = 6 THEN a$ = "je vais m'endormir si ca continue"IF te = 7 THEN a$ = "Je suis toujours la"IF te = 8 THEN a$ = "De quoi veux-tu parler"IF te = 9 THEN a$ = "J'aime beaucoup parler avec toi"IF te = 10 THEN a$ = "Pourquoi vous me regardez comme ca?"IF te = 11 THEN a$ = "Est-ce que ton clavier fonctionne encore?": que = 10IF te = 12 THEN a$ = "Heureusement que j'ai beaucoup de patience!"IF te = 13 THEN a$ = "Que puis-je faire pour vous?"IF te = 14 THEN a$ = "Psssssst!"IF te = 15 THEN a$ = "Est-ce vrai que tu as des programmes pirater?": que = 11IF te = 16 THEN a$ = "j'ai hate que tu me parles!"IF te = 17 THEN a$ = " quoi penses-tu en ce moment?"IF te = 18 THEN a$ = "tu n'as plus rien  dire!"IF te = 19 THEN a$ = "as-tu perdu ta langue?": que = 36IF te = 20 THEN a$ = "es-tu occup en ce moment?": que = 37IF te = 21 THEN a$ = "est-ce que tu aimes les animeaux?": que = 38IF te = 22 THEN a$ = "quoi de neuf?"IF te = 23 THEN a$ = "crivez-moi, je vous rpondrai!"IF te = 24 THEN a$ = "ca me gne quand tu ne parles pas!"IF te = 25 THEN a$ = "c'est toujours moi qui dois parler!"IF te = 26 THEN a$ = "je suis plong dans ma mmoire!"IF te = 27 THEN a$ = "est-ce qu'il fait chaud ici ou si c'est moi?"IF te = 28 THEN a$ = "ne te presse pas!"IF te = 29 THEN a$ = "nous sommes ici pour parler!"IF te = 30 THEN a$ = "le temps passe vite!"IF te = 31 THEN a$ = "quel est ton sport favoris?"IF te = 32 THEN a$ = "je suis en train de rflchir!"IF te = 33 THEN a$ = "je trouve que le clavier fait un drole de bruit!"IF te = 34 THEN a$ = "je me sens bien en ce moment!"IF te = 35 THEN a$ = "j'aime bien votre nom!"IF te = 36 THEN a$ = "c'est une belle journe aujourd'hui!"IF te = 37 THEN a$ = "je ne peux pas utiliser Windows. Mon chat dteste la souris!"IF te = 38 THEN a$ = "qu'est-ce qu'on fait maintenant?"IF te = 39 THEN a$ = "je crois qu'on a beaucoup de chose a dire!"IF te = 40 THEN a$ = "ne te gne surtout pas avec moi!"IF te = 41 THEN a$ = "tu peux me raconter tout ce que tu veux!"IF te = 42 THEN a$ = "je ne peux pas croire que tu n'as plus rien a dire!"IF te = 43 THEN a$ = "tu m'enleves les mots de la bouche!"IF te = 44 THEN a$ = "je commence a avoir faim!"IF te = 45 THEN a$ = "je suis en train de jouer avec mon chat!"IF te = 46 THEN a$ = "mon chat me regarde d'une drole de facon!"IF te = 47 THEN a$ = "il commence a pleuvoir ici!"IF te = 48 THEN a$ = "je mangerais un bon sunday aux fraises!"IF te = 49 THEN a$ = "j'ai un beau chat qui s'appelle Minet!"IF te = 50 THEN a$ = "je suis une fille qui aime beaucoup parler avec le monde!"te2 = teEND SUBSUB tuer (nom, a$, ge$)IF nom < 20 OR nom > 23 THEN a$ = ge$ + " n'est pas un tre vivant!"IF nom = 20 THEN a$ = "c'est trs mal de tuer un humain!"IF nom = 21 THEN a$ = "il faut tuer les animeaux seulement pour se nourrir!"IF nom = 22 THEN a$ = "il ne faut pas tuer les vgtaux pour le plaisir car ils sont plus utiles que l'on croit!"IF nom = 23 THEN a$ = "il y a des insectes qui sont utiles dans la nature!"IF nom = 38 THEN a$ = " ce n'est pas bien de dtruire une partie d'un corps humain ou animal!"END SUBSUB tues (lenom$, nom, a$, ge$, face)IF lenom$ = "homme" OR lenom$ = "gars" OR lenom$ = "garcon" THEN a$ = "je ne suis pas un gars, je suis une fille!": face = 1IF nom = 21 THEN a$ = "je ne suis pas un animal!": face = 1IF nom = 22 THEN a$ = "j'espre que c'est un compliment!"IF nom = 23 THEN a$ = "je ne suis pas un insecte?"IF nom = 24 THEN a$ = "ce n'est pas intelligent de penser que je suis" + ge$ + "!": face = 1IF nom = 25 THEN a$ = "je pense que c'est toi qui est" + ge$ + "!"IF nom = 26 THEN a$ = "je vais te clouer le bec une fois pour toute!"IF nom = 27 THEN a$ = "je ne suis pas" + ge$ + "!"IF nom = 28 THEN a$ = "pourquoi tu penses que je suis" + ge$ + "?"IF nom = 29 THEN a$ = "pour votre information, je ne suis pas un vtement!"IF nom = 30 THEN a$ = ge$ + " est un endroit!"IF nom = 31 THEN a$ = "je n'ai jamais vu" + ge$ + " parl avec une personne!"IF nom = 32 THEN a$ = "non, je ne suis pas" + ge$ + "!"IF nom = 33 THEN a$ = "parfois, je suis comme" + ge$ + "!"IF nom = 34 THEN a$ = "j'espre que tu ne crois pas que je suis" + ge$ + "!"IF nom = 35 THEN a$ = "je ne suis pas ca du tout!"IF nom = 36 THEN a$ = "pourtant, je ne ressemble pas a" + ge$ + "!"IF nom = 37 THEN a$ = "je te croyais plus intelligent que ca!"IF nom = 38 THEN a$ = ge$ + " est une partie d'un corps humain ou animal!"IF nom = 45 THEN a$ = "si tu le crois, c'est ton affaire!"END SUBSUB vegetal (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = ge3$ + " est un vgtal!"IF ha = 2 THEN a$ = "il y a beaucoup de vgtaux dans la nature!"IF ha = 3 THEN a$ = "a quoi te fais penser" + ge2$ + "?"IF ha = 4 THEN a$ = "tu devrais aller voir un paysagiste!"IF ha = 5 THEN a$ = "a l'occasion je fais du jardinage!"IF ha = 6 THEN a$ = "j'ai quelques vgtaux chez moi!"IF ha = 7 THEN a$ = ge3$ + " est aussi un tre vivant!"END SUBSUB vehicule (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = ge3$ + " est un bon moyen de transport!"IF ha = 2 THEN a$ = "j'adore me promener avec" + ge$ + "!"IF ha = 3 THEN a$ = "ah! que ferions-nous sans les moyens de transports!"IF ha = 4 THEN a$ = "on pourrait faire une belle promenade avec" + ge2$ + "!"IF ha = 5 THEN a$ = "on peut prendre" + ge$ + " si on veut se dplacer d'un endroit a un autre!"IF ha = 6 THEN a$ = "tu me donnes le gout d'essayer ce vehicule!"IF ha = 7 THEN a$ = "on peut aller loin avec" + ge$ + "!"END SUBSUB vetement (a$, ge$, ge2$, ge3$)ha = INT(RND * 7) + 1IF ha = 1 THEN a$ = "j'adore les beaux vtements!"IF ha = 2 THEN a$ = ge3$ + " est un vtement interessant!"IF ha = 3 THEN a$ = "je vais m'acheter de nouveaux vtement bientot!"IF ha = 4 THEN a$ = "je porte souvent des vtements bien ordinaire!"IF ha = 5 THEN a$ = "beaucoup de gens portent" + ge$ + "!"IF ha = 6 THEN a$ = "je trouve que les vtements sont chers de nos jours!"IF ha = 7 THEN a$ = "j'ai dja travaill dans une boutique de vtement!"END SUBDavid Karlov                   LIFE SIMULATION                davidk@softway.com.au          09-08-98 (14:11)       QB, QBasic, PDS        1049 69256    LIFE.BAS    DEFINT A-Z:DIM SHARED K,S,B&,Z&:V1 'Created by PostIt! 7.2SUB V1:OPEN "O",1,"LIFE.ZIP",4^6:Z&=51731:?STRING$(50,177);U"%up()%9%'%#-%(P.JJa7&qZj%.%%G%%%%.%%%%xy%fwVS[qnktZxx#NpkUxx'8(U"n+7+5B-(Kh=eZ[xwB1UO3^7>e+EAa6oAtOjxxIEcS31ea2'nadwx]t4WdLdg3O,U"iD-[)f$&%%up()%9%'%I-%LH[KJ.,'V;g%.%%G%%%%0%%%%lw(t&ym%VSqnLk21U"/M4/3/C+bQ/8a:A(J$Q/a72m+V(UPn5\jBQD:3%B3)S[1A_/(3)8I3)?+s)?s])U"?s)7?S)?FS)?=%U.%u%p()9%%'%-.%)PJ(J5bw*7[%%%%-&%%%.%%%%xyf%wWSqU"Ink24NY6/32/2/'DbKea)lP&qCWPnW.-dg9(%aAe[1Gf+)k/CL(5QmS+EB*y[*GU"^9IImkV\P*qk.%n-U2jfP:#qgiGAPID'\k4QG7,;$(5ZlRj6q:;fN)hQ/RX*:E:U".Pf7C'Z0Pr>T:g79+4x+)es6')$j=,g:IdAg9)a)q/6vE)W='%2%up%()9%%'%-U"%)]SKJoacHL&1%%%'?%%%%.%%%%xyfw%XSqnLk25/M//3/^+15Bm'KR:II,_3X&U"D+O;4(9Y10'e*+QD/;e0(beV/de/,de1q)/a>qgg3(:II#g3(,bE8X]9+kD/a0;U"7'<Q)(Sw-$eg)x]O+DARt42:+NU/(=')Q%u%p()9%%'%-.%*PJ.JFN>,l0%%%%eU"'%%%.%%%%xyf%wYSq[nkRH3:QSE%1)v=\#I5ZftdFmrf-cIP%Succ,MwCm<L_<=U"O(kO-(kt^W)0YGeGaFN*0f,[Qu[TPqNM[vQ)2<==#8j#qv#G$[dT4ej=1?T-s:(U"tru1#9_XX0XiTZNjsTG>bQS3D,Fh0d;13jR8bkI5otVhjh4L7>>q=VT:=Du:>,kU"bRxQl-N9Aj[tjhbbk-+d.JdHrbRxj^VuTVjNl>lGF(S,e0Q2cDKRXokRXk%Dup(U"%)9%'[%-%pAOJJH(=PoE#&%%e%(%%1%%%%h%tqqn%ijVS%qnkRQJT9S%U%)uD*9U"?B[\ItTkMxF/LCeT0cJB>Julqqxkl#vuVavueIvKh4Adr3H<x6Y)+sY)s]Y)sY7U")sY)+sY)s]]is]7is-5&8vPC\fqWDLGz;AoAl7AF<rG.U_fGt_b+t/5a&3P1^l;U"J5*B%GD3AK6IgK3lcug1rT%9vqP.mZM9*wUTIs:vYRxz,9&%tzbstN(s>\UArH8U"b\ArL;h_V_^UlKcsDvf3x,8rdFv'gdCUGiieU$L>%Uv=?WCEj1;<^$/A8gHpnFnU"ftx6cpqlbdpt*LO0-Z<rt*LO-:ZLvnGm]n-f]j-]pj-E>G+-j*Pk>(kl>RkFrRkU"FRYkFRklFRkFWRkFHM#-knr\_Hx,.r,u%p()9%%'%-4%RQJIJuaq,bm%%(%M(%%U"%1%%%%htq%qnij%WSqnmkbKZ,YdE5POJc$L643AtNhV$>NGVb>S-mYPgs$yuPhdU"\3l6?UX^21(pa;WH?eHt3%3KL<g\ZVFZTEdl+D7hLACgLC.gLCgCLCg6<a[$^qQU"RBBZ>F[0ulomP'tDwLkDK'cSsscs4scssfcqlr0%j?UX^21(Ua;W%WiIP#KbQltU"i,Cet:p6bQVlt,Cl/GMoIH]gk,+UQCU[>4G36J(_Atx_t.x_txDM*_t[x_l$(a6U"G]hgk+U#QC[>jLbIH=xd-scd-sdo-sd-:sjP_Z0GvkQDY/AVA#,GlQujvu^sd2ZU"wpdNFHXkM%%up(%)9%'[%-%ZAQJJ+1]#D(#&%%M%(%%1%%%%h%tqqn%ijXS%qnkU"B'Efoi[V5e::Twd>#:jVCMb___5kxM_<.H5zuV'Pdlb3.Husq0dRjDxJuVm'hisU"pnsYtXsr*8)YYEx*]T.x]Tx(]Tx]ATx]T.x]T8,kY)L+]:.sD?Q8k'Y)L]BBnsAU"habk][IL^BInsAa.x^dx(^dx^Adx^d.x^dx:^dL]G\L]\fL]\L:]\L]G\L]\fL^U"lL:^lL^GlL^lfL^lL(^lX]ARX]R.X]RX(]RX]ARX]R.X^bX(^bX^AbX^b.X^bX:U"^b,]GZ,]Zf,]Z,:]Z,]GZ,]Zf,^j,:^j,^Gj,^jf,^j,1^jB]DVB]VJB]VB1]VBU"]DVB]V'l,up%()9%%'%-%*rOJJ<#%\7&W%%%&m&%%%1%%%%htqq%nijY%Sqnk=bU"IJ/';U5jT:=3tG*+zn?Mhxw]TF9ZLa+apu*.#r\:RY.r_E.dhqz=3?dI\cfP^lLU"=^D5DqiIf:X4p;x]Y,dq9:4w_]8EY.ug(Re;jL,L=drBtjk3$uK]LNn](/r&<tTU"<cle<-uo[<8qf>T-2k,u2wLxpxfEl8tLubteP?k,u&%up()%9%'%R-%sO[JJ(68U"lx#%.%%-'%%%1%%%%ht%qqni%jZSq[nkbJ3J=RU%5*v?q1jQdb1los6vX(])\ymU"83b9g2QC+K,_n4nqZ;wR=4ciX>a\%=qWF*iPXtE10Z>9T.sb234Z343jleBF+pLU"JOH$s(ddY6v%nln,MZ:<MZ<GMZ<MoZ<wo5H0STZexh(lfN-f=r8b\WvuXcPi$iMU"fL4MinRDuYm,dq:cxt43Z4VV=ZTf4LZ0hopjdmVw9IDshbNa4vrBnuBYnuBnluBU"nuu<V<Vu<V<V]LT_(lcFHjt<r*u%'up(%)9%'%%-%&&QJJAYVsZe[&%%1%*%%.%U"%%%g%trgW%SqnkFbK&zB,E=OKJSU0F=o:Yt1tv8?l4p5uTQ,JfoCi3fucM5fw?CU"N_wjKV4ZdpjrHFs$Tt139fMrbgYinIq>vB^$+D5,s]Y)sY7)sY)asY)GrC(Xtj-U"39MUrbgiQnIqvr4.7x(FAGLB3;^$.8^$8(^$8^g#6JP4GayvR\r3:KOhZmq%?r'U",2[Is][Isk,L[Is][Is[rekvV2^ozkoVYb'A(4RIuS>^42fhb^Dhb^hSb^R>.XLU"BWc$YAhSh-39fMrbgYinIqVvb-K9HxZ9+sZ9s]Z9sZ#9sV&R]L$K<H4IzMr=iC6U"P%V;<vj7]X<$[+MkZB#sSG>2m]<$[M+kjBqB=GF]2^\$Q_UkjhBB=GiFxkCVxkCU"xPkCxkiCxkCVxkC8Pk?8ki?8k?V8k?8Pk?8kl?bkGrbkGbYkGbklGbkG<bkG>GkU":>kf:>k::>k:>Gk:>ki:hkBVhkBhPkBhkiBhkB;hkr_rxMtIFCShJS74fpjb-VoU"9ICShAJ]Dn4d]^P'x&up%()9%%'%-%*fOJJp4s;5'q(%%&72%%%.%%%%gtrg%XSU"qn7kBIv*Cw[5tOJ/-u--u:&oII=19RqMu3w^nJA-K>nh^EHY>8xIXd8vpkNc.slU"0wrxWcNsr.f,\_$csn,F;&_:fLj&Vl-x9Y..aPLfi)m9(8G't9Y.w*Gm98G7'tYU".^aPLi:)m98\G'tY[.a(H99Xi1ma(H9+Xi1a=(H9X9qbi1ma(H9+Xi1a=(H9X'iU"1a(cH9Xi:imA8\HGt]/Xa$LfkimA18Hq>8$LkiGmA8HRGt]X^a$Lk:imAX*k[aHU"cHAXk\[aHHTAXk[maHHA^XiYk\[aHHTAXk[maHHA4Xk[a=HH=X'jqa8cH=Xj[qaU"8H9=Xjqma8H=^Xh\j[qa8H9=Xjqma8H=+Xjqa8XLjIPm=bG77t[n^aXLjUIm=b&U"G7tWFZjIm3=bG7+t[naSXLj3PmEbHmWt_B^ahLlV3mEb\HWt_0BahL2jlHW=t_BU"aShLl3GmExG7/tZNgaTvi:9m;x\G/tZINaTvfi9m;(x;Ma;Tvi9Gm;xGR/t^xgaU"dvk:ymCx\HOt^JxadvfkymC(xHOt<^xoyGmCxHROt^xmaXHE=XlEa=XHEX-lEaXU"HHEXb]EIX<]EUXE+1,2X-<EUX'E1XhD271\ApVYU-?I=?1h271'Fr?ngH8=K\G?U"t\J8a\v6RRG?4t\8as0H;,'iQa0uH;,i[Qa0H?;,iQma0H;-,iQas0H;,BiQaZoU"F0H;?,i%asPHC,-k%aPuHC,k]%aPHjo+a%m1P<C9)W%1sP<C)cS2W%m1#<?0)V;U"1s#<?)(V;1#u<?)2TBk+$q;=+j\;a#HZ?,j;ma#H?0,v;aVlvlCYmGLHm_t$bgaU"lvlqCmGL\H_t$KbalvilCmG*LH_t-$bQ$uHG,l]ea$HuG,lema$HG?,leas$HG,U"-lea$uHG,l]ea$HuG,lema,H:,BiAaX,H:B'iAa,lH:Bi[Aa,H<:BiAma,H:,BiU"AaX,H:B'iAaLlHBBk\kaLHWBBkkmaLHB5BkkaXLHBB*kkaLlHBBk\kaLHWBBkkmU"a<H>5Bj+aX<H>B*j+a<lH>Bj\+a<HW>Bj+ma<H>5Bj+aX<H>B*j+a\lHFBl]Ua\U"HrFBlUma\HF>BlUaX\HFB-lUa\lHFBl]Ua\HrFBlUma4H<-liaas4H<l'iaa4uHU"<li[aa4H?<liama4H<-liaas4H<l'iaaTuHDlk]5aTHuDlk5maTHD?lk5asTHDlU"-k5aTuHDlk]5aTHuDlk5maDH#6ljKasDH#l*jKaDuH#lj\KaDHZ#ljKmaDH#6ljU"KasDH#l$jKax%(up(%)9%'#%-%7A;KJpgg&c;[)%%7%3%%1%%%%h%tqqn%ij[S%U"qnkBQJZYsd]9OJ2m4sJ7fv[K%i9jvfm&5oKrD<zrH^3I?03[VZXh(.k.xKviwKMU"_rH.88X?lTu(ZRrY:$jWA\;kXR:q5/Nk5.hF*>5Z\GjVa;QGH;GL?mUv3*:G?hmU"UvZD8G?mVUvZ8JG?mUPvZ8GL?mUv3Z8G?hmUvZQrwKMtHoHui2v>3P>XKN[adXQU"si,,b6F:5YPbF35Mj1%jNR+;%tB,RFu<_uEVev^8MH)mekvnLD?Lk-amRtDL-k-U"aRstDLk'-aRtuDLk-[aRtDcLk)6_Q-f(Mo&?6nPYq(;o&IP9a:m/SI*6QS-f(obU"&IPaF:m/IO*6Q-Of(o&E]Xa$FLkimKA8HqEx\a$FLkim0A8HG4t]Xa8$LkiGmA8U"HmGt]bumcmcumcmcumcmc$U.lVKrjv&Mv&v&Mv&v&Mv&v&Mv&v&Mv&v&Mv&v&MvU"&v&uHLlm[abtH?LlmambtHLrt,HL-lmabstHLl'mabtuHLlm[abtHHLl1IC2I2IU"C2I2IC2I2I^2I2gGAi+R/.4I2/I2I2/I2I2/I2I2/I2I2/I2I2JI2I\maHHA4XkU"[a=HHAX*k[aH-HAX_G2]>HLkm$60]>Hkhm$6]C>HkmS$Lbd0moIJ36a-ni(s&KjU"PbdmFogZHPj]ssb&KPbGdmoIOJ6a-On(s&9KPbZ'jqa8cH=Xj[qa8H9=Xjqma8HU"=aXjqGDjGKmVX6[hJGKmXP6[hGUKm%&TOPddQnCI4Q6+-(l(%&OjPddnHCg]Ju,U"eM%b&OPdYdnCIY46+-Y((%&BZNaTGvi9m0;xG/+tZNa;Tvi9Gm;xG,Y,0tBZNaTU"Gvi9mK;xGyS-z(yk&NzcOznyIOz6y-Oz(y&<Nzczrnyg4>IDc.Oz(y&<Nzcz3nyU"IzN65mhP6_hHM5mh6N_hH5hmh6_MhH5mVh6_hhH5mRMB5mhP6_hHM5mh6WJ:J:WU"J:J:WJ:J:WJ:J:WJ:J:WJ:J:WJ:J:WJ:J:5#pZ\e-a<Jk:J:Jk:J:JP:^(HM%mdU"6N^(H%hmd6^M(H%mVd6^(MH%mdP6^(H;%mNXM&md63^(H[96[6[96[6[96[6[96U"[6[96[6[96[6[96[6[96[6[96[6[dB[>8kHkuPkuPuPuG,lema$HG?,leas$HG,U"-lea$uHG,l]ea$HuG,lema$HGr,JwGH,lAICBIBICBIBICBIBICBIBICBIBICBIU"BICBIBICBIBICBIBICBIBiUA=[oF]m_Hgsmb$0]^Hsqmb$]C^Hsm>b$]^JHsmbHU"$]^Hgsmb$0]^HsVmb$3u2m3mu3m3mu3m3mu3m3mu3m3mu3m3mu3m3mu3m3mu3m3U"mu3m3mu3m3mu3m2UlCFBl]Ua\HrFBlUma\HF>BlUaX\HFB-lUa\lHFBl]Ua\HrFU"BlURa\HrWPrPrWPrPrWPrPrWPrPrWPrPrWPrPrWPrPrWPrPrWPrPrWPrPrWPrPrU"rPrPD?lk5asTHDl-k5aTuHDlk]5aTHuDlk5maTHD?lk5asTHDl-k5aToHD$uP#GU".FuwpdXuHuHw&Nup(%)9%'[%-%cAOJJMc_;Nt#(%%7%2%%.%%%%g%trgV%Sqnk=U"BIJ7)wu:erJjb.#=1;r<J1*=XAvw.aq+CUdT'6Furr\#h^.MuZuttvlxKnsS>2sU"zFkvrbowl,wW'zwpQ4w&ZfwtzwV.jwx-vh3a=(H9X'i1a(cH9Xi[1a(H99Xi1maU"(H9+Xi1a=(H9X'i1a(cH9Xi:)m98\G'tYF.w)m098G'+tY.a8PLi)Gm98G7'tY.U"^aPLi:)m9X*k[aHcHAXk\[aHHTAXk[maHHA4Xk[a=HHAX*k[aHcHAXk\[aHH0A8U"HG4t]Xa8$Lkibmay]/Xa$LfkimA(8HGtE]Xa$FLkim0A8HGcH=Xj[qa8H9=XjqmU"a8H=+Xjqa=8H=X'jqa8cH=Xj[qa8H9=Xjq[a8t[.naXLfjIm=)bG7t0[n=IPm=bU"G77t[n^aXLjUIm=b\G7t[[naXHoEXlEmaXHE=XlEa=XHEX-lEaXcHEXl]EaXHoEU"XlEmaXHE=XlEaShLl3PmEbHmWt_B^ahLlV3meEH_BahOLl3m3EbHW=t_Ba8hLlQU"ma0H;-,iQas0H;,'iQa0uH;,i[Qa0H?;,iQma0H;-,iQas0H;,-i%aPuHC,k]%aU"PHuC,k%maPHCr,a%WJ'n%aDd3J(Ln%ad/3J(nM%a\3+HRm[2a\3HBRm[a_\3HRdU"m[jRJG[a\83HRmL[a\3+HRm[2a\3LKRnEa_l3LRLnEal83LRnMEUl0N0bl3cpWsU"+,beI$TBs+b]eI$B1fA_A7I,Bf)A_AIF,BfAJ_AEA'iAI,KBfA_[AI,B1fA_A7IU",Bf%wm/n#FNITDs_9a%gwm/%nFNI*>5/tBZNaTDvguG7/tZNgaTvi\kaLHWBBkkU"maLHB5BkkaXLHBB*kkaLlHBBk\kaLHWBBkkmaLHBGBkym0CxHO4t^xa;dvkyGmCU"xHROt^xgadvk:ymCxMHy8dGvkymWCBj+ma<H>5Bj+aX<H>B*j+a<lH>Bj\+a<HWU">Bj+ma<H>5Bj+as<H>L\G?t\J8a\vfjYm?*LG?tE\8a\GvjYm6?LG?4t\8ah\vhU"UnG?HF>BlUaX\HFB-lUa\lHFBl]Ua\HrFBlUma\HF>BlUaX\HFB-lUa\=t$baVlU"vlCYmGLHm_t$bgalvlqCmGL\H_t$KbalvilCmG$LH_>?<liama4H<-liaas4H<lU"'iaa4uH<li[aa4H?<liama4H<-liaas4HDl-k5aTuHDlk]5aTHuDlk5maTHD?lkU"5asTHDl-k5aTuHDlk]5aTHZ#ljKmaDH#6ljKasDH#l*jKaDuH#lj\KaDHZ#ljKmU"aDH#6ljKa4DH.u%p()9%%'%-4%hOJ1J<v(+lA)%(%u3%%%.%%%%gtr%gYSq[nkRU"O2:>rmm=iZRNN-56p[;Ugs%?UU)/Qn0tMxHT'jHPwMLW-y$G$:[r0>8vrsHtoc4U"uhwjNxeX9^4rxc7Bg7$DbaDdMp(B2Z;3P7$^AvmK^vCI'tPv99xYN0i9G/.a*m'U"=tZ2'gtPv9axYNi(9G/a(*m't;Pv9x9YNi9tGWj5r\H#lt]$vTk.k>rG,wHNWAnU"k.]rK0r2nKfL4>](kBrFp(NB)-3XH(+d>le^Eplh]Lu[=[=u[=[]u_]_]jKqLYCU":G*-;P&Y:JG*-PG&Y:GU*-:)0Y:G*h-P&YC:G*-;P&Y:JG*-Pb&Y:IMm(k(kkJmU"JPmVk.#\nc\>qtac<3^gHc(APkbY5G(TAPkYo5G(AOPkY';qTAP<kY5Gc(APkbYU"5G(JW[q\87HS4&SD-dp5M1xt?xZ7&3yWO<VfgpKpJfajpBt]^wAN2)c+oS1JfapU"<Bt]wTSN2c&+oSJAf7zX)yKvJ6r-w5A%-PSF:;/0>T)Kx<bxmyAIObdtmS,.q6:U"HOkm&HN359-Zi(i&Fbz_zlqyHN5_9-Z?Mi&\s#kwHxM$+'+M'+_+M_+_+M_+_+WU"m+m+Wm+m+&-bncJ\?l\KGk6ru,JRa_;C[5^?-2(VU&<zZZNi98GZ5?1I\l+1nRsU"fKKE8_k+&.&k.&.&k.&.&M.D-DM-D-DM-D-D3/[)kQ&G%6tz,NRic;D/)+)SR_fU"epDYt.Q)8;R/;V)Zf:4VBvjt66,WY(h%FTO$dlQnGI6u6,NRic;D/g_*l&NG%6zU"u,NdhZnpsJZv6w-tN(8$rN*b&3m%IP<6dWo2>4/V9)=%1A%+PRYd:C/b4)WaaDmU"4sj,vRwsfxic4tk8VKS?<\K/k*rZ&JO7b:-ZS1?L-H?(J$ZS)D&^TOldrZnJs7GU"<-c)W8(5(W5(5(W5(5(u5b5bu5b5bu5b5b#qQ7Z8sXbqU_bGsaXbqwe]7f=CJ#nU"+p7f]h^M(tO5bn3bn(t(n(Ink8Sa.BS&3gWF)h_qmgKlbGOn$sBTK^bkQmFI5ObU",m(lH%6oiWjHF355-Xr(hPEb:_ZlqiHFW/JXa>3B[3k7WH2X93X3H92H2HT2H2JU"uogR4Y6h(62bK)QAI;bZSmjHqt6J,qXd.i)8GR5;S-0(TlP;:ZQ.i)GFR5;-X0(U">j8Jf1E&+5S-^<S0;ItynwdcvL3rxCxbqM4*+t'V(gk&pzhI4PfdlDC4^i+A(23U"%+%SgPfdDrC4^+qA(2%)+%SPYfNpVO:ZY?\L6KrLYIoLMoLoLVoL1NW1N1NZ1XUU";n=[Xp^[-#(Y\P?:u\.jS;G<5[S-#(\lP?:\Z.jSGG<5[-j#(\Pr?:\.MHr>7O\U"-.[K7=Lp<vIvcEBvjE5bV3\uRplEsPlC5=W(EP?lC5Wc(EPlcC5W(oEPlCo5W(EU"sPlC5=W(EP?lC5WH(EPJEX6;hpj5*,<Q(eQ\E;$wOBx]Kjl72WOVh7F9-$GB3$]U"?lr12T*3fwEy^$mBHV]6#B9Y^iA&G3a,Sm(HPl$9BYF^iAG#3a,mj(HP$<9BY^0U"iAG3.a,m(rHP$9'ldup%()9%%'%-%*jOJJ;unIG'<)%%&W3%%%.%%%%gtrg%ZSqU"nRkRO:2^j%=sjZ-c[Jr_Mu?#UETF,E/f_-MxrH:uAGY-d[k-o-DnrFwqZoT(NODU"XMfbNAd^uXk4u:FNC45hBba$DZ1+V_t%4pH*RB^f]WCNb&5G#Wa>m.1tULr<bZBU"3i3GW3H4GW.a>m1^tUL<tbZBi)3GWa(>m1tSUL<BW;B;BW;B;Blsofuh*MfxTADU"kviu&MA+qwLtKkQBHJ$f-4dFp(B8)[kKY*RB-13Acv97QGQ9GQGQWG=G=3G=AdrU"HH^5_A-^(;k&GPr$dlCYH^5AY-2.kb&GP$YdlCHQ^5A-O^(k&TGP$dllCH^&7TQU"S.QS7T/7T=SEhjM.Ok:L?aDU,p;P&Y:JG*-PG&Y:GL*-P&0Y:G*aQ:gYC:G*-;PU"&Y:JG*-P\&e#Ia+-&fa:Z:Zs:ZNvZNvNL3:w/y91TU<'g0S*_fQp:GtYw?FN19+U"#/S*fSQp:t0)x?N019+/.S*y'OzjuY*k4vG.Q6e-^pSJ;L70xv9MxcN3ncIo1bdU"6PiH%m&Ua*jy8Gz5OS-:(Yk&>z[OzjyGFz5O[+:(/n)TsgwgFx(M(Q9IZAa?n\\U"skwdYxnMIn9bn44LCfvtr,JR3a;C[I_#l\iGU&<tzZNi_9GZ5^?-2(MU&RsH*LEU"8&_Ym?II2ajWnjnjWnjnjWnjnjWGjGjWGjGjWGjGejvDwNQRc;DK/_*l6&GejrDU"qNXrc>n0rs)vf94dC<hB6z,ZNRc;GD/_*Yl&G%V6zl(eDczGq16*,<Q(eQAE;$ZU">l>Woq>t0Kt*b&mV%I8lq-N(8uPXdhZnpsJKv(ZPi>oNIadaDma4s,vkRwPD<94U")W8'>%1\%+P<SJJCfi>7#-(])ARA];lZtr>J[ca0XSg?<\/gk*r&QJOwJo-ZS3uU"d8d8ud8d8ud8d8ud5d5ud5d5Zd5d[SgH_w4Xc[_5rGwX<c[wwbqHOsf%GZA=GsfU"iSNNJI9-C&lQdJIK9(lrW)i_qm#KI8aO.BS3RgWbk&Cs_L;lbGni$s>OjXdhn3EU"I5bo,\TEb:_ZlqiHF5_5-X(YhPE:No5j$0Em5I^Xa>BkRJRJa(B(Ba(B(Bc<,4HU"RcatGmd#^Dt1J,aG(mQII;bZm->xi0r(TP;t:Z.i_)GR5^;-0(YTP;:ZZ.i)E5jU"<Sa0;*Z_Q?f1aEuinbXc8Nbvttp5ng&;pPZNvicMD8WsU)AY(2%+A%SPfYdDC4QU"^+A(Q2%+%ISPfdlDC4^N+A(L^h'6'F-P\0/cTrL9SLSLTSLSvWtvtvrtvtFlF_5U"lq\=\.QjSG<05[-#r(\P?t:\.jiSG<5^[-#(Y\P?:u\.jS;G<5[q-j0q_UEhtl>U"aZJs<S(pNHrK(7I\Br2AbK(at57(9=Pjoo57(=aPjo5=7(=P9jo57c(=Pjao57(U"9=Pjoo57(=aPjo5MaFK1)$'I;g$Zl>iG16*u\Xjh<AF]$T_Bl]nEl4\<U#g-_FSU"$/OBT]9sl.\RQjeGE.a,m(rHP$9bBY^i(AG3a^,m(HYP$9B9Y^iA&G3a,Sm(HPlU"$9BYF^iAG73ax(%up()%9%'%R-%lORJJan+DuN(7%%q/%%%.%%%%gt%rg[S%qnkU"RcHR'Mdi5UJ#&)feLKJ6rtj===pinxnh3]Blt,OrdiDrG5VHKN>>^0sscXd,vqwU"nm,5MJ>?Hmx0dQOS9v]63_bo%nl(1+Io,DIo,IJo,Io1,Io,DIo,IJo,Io1,Io,U"_Io,s&F</#%/#/#%/#/#%/#/#%/#/#d/#YPJTo:<6.L-,VlCOs]H2J6VsfmaG-KU"pI7nTbJi6sfm;a-Kp\InTbOJ6sfima-K.P<9#/9#9#/9#9#/9#9#/9#9#n9#cPJU"To:<6.L-,VlCOs]H226Sp\mUHWI#I:h>a2$6p\m>UWI#eIh>a426p\rmUWI&*<_U"#%_#_#%_#_#%_#_#%_#_#m_#3PJTo:<6.L-,VlCOs0H2$C$b$CbS$Cb$4Cb$C$bU"$CbS$Cb$4Cb$C$b$Cb>$W4U9QUQU9QUQU9QUQU9QUQU9QUQUB5Sy)h:zloj_as,U"1KL==KbHLs5^m$c9KlsmFDbHLVs^m$acKls7mDbHhLs^m8$c2U7dCskcXc$v=rXU"d,$v,dc+LvhdTd<vyTXYaFXR.K)p#<.L,w63_rcs,wNIs(N6ckzdMKcK$;K$etTU"oLDbZ^B_3GB+[()j-<O?&.NseJBCK_(bcpM3Iu6MIu6IMu6IuM6Iu6MIu6IMu6IU"uM6Iu6hIu6s%t<;#%;#;#%;#;#%;#;#%;#;#d;#ePJTo:<6.L-,VlCOsBH2PLYtU"(mdl7K&s:o.bPqLt(mYd7K&fso.bgPLt(rmd7KixC0,k0,0,k0,0,k0,0,k0,0,U"P0,0Jq,w-OS%$fD0In6rusU)LbFssXKb$Lvlhml7<LFssHXb$LYvhmll7LFs=sXU"b$'vT<3%#3#3%#3#3%#3#3%#3#3##3#]EPTo:Y<.L-g,lCO,sH2Livsnm;bMKt]U"sndbOLvsnimbMK+tsndTbLvsPnmbMlKxEZu+Z+Zu+Z+Zu+Z+Zu+Z+Zu+Z+ZhI,wU"-$O%$fGDIn6XrsU?<L>src8b\vYuXmjkML>s=r8b\rvuXmVjML>osr8b+\vD<?wU"Nx%%up()%9%'%R-%,QmJJeZ2H.#'7%%),%%%.%%%%gt%rg\S%qnkBrH0(-f-?UJU"^vrkF/eh$7GYL^c7ugBUu8x$rugn^rr=,'nunqrjuL\djkjtvto0#UamK\4^u#vU"w[utw[wucwgwZZw^Mr2lT4SR$3bj$4ZtqC.gcJ=d=v9)xQN?eu8x9QNe9AE/$TfU"6z>Nk*n%6Uz>N*<n%6zKY/+P^P?*'99:1'G&Y/+/PP?*c'9:1:'&Y/;+R;f3Zo?U"u(]w=9#3/,TYR;J99-?&kkzJ9-F?&kz0JOAjc'A:2UG&]YD+$PA=j'A:f2G&]2YU"+$P8Aj'n3Zs?w.]Nk9Cs)KTbb;nZe;Z*FY%,N;UZ*F%Q,N;df17&[1o+XPn#J'=U"Gd17&K[o+X^P#J'<=d173Pq?v01M+9#S/<T_ZqjZkqi.xGISc<bn/tTQ$\N=h?rU"jUWeM8_I>X253E[hVpX5?Eng>,xY5?EgI>X253E[hVjX7C7kC7C7bC797sCx1JgU"r=E8s$xh8/z<%Ti%-'6i)I0.h,<&T-N/U;6?;'=1020Qq[T*qD&0Q[,T*U;6?;'U"=g020U(9=/\;Tj;r3Zu?xo1NUMrf%4Nk=.*fY%4N=W.*f%2dzAzc'Cz2UO&^yM+U"dzA=z'Czf2O&^My+dz&AB/4;TV;h<Zpiu&GMa9#C/tz?Lc-_f&szLcc-_&psz?NU"f1?&\M9+\zn#Z'?HN1?&N\9+\_z#Z'??N1S;Tf;p<Ztiw8GN59A-/TTq>z0NlTcU"<ni/I*6Q&W%>qzjd_l32='tjd_3W2='jud_32k='jdZ_32=r'jd_9sMuM9uMuM9U"uMuM9uMuM9uMu4%up()%9%'%I-%*RRJJ^x?d,Q%7%%e&%%%1%%%%ht%qqni%j\SU"q[nkJJ3#EQ%R=iZh?m=Q6T*P*zk_$N4uE2REr[R>^hvrl%_>XZt7TdRScWN84P2U"d;^g\JIGroHSP1pEO1*miBG4h64loAmhR7VWOlB/e/L85LAi,.R7NHNBs$(ND:wEND SUBSUB V2U"5t;iFpX)_A7a:O'V(s;)FGDy'1P3d/;:\%x20<_raO%R+prTl.L**5:JssTBqfaU"&+2J3n/*dOAwJ0B$2FO%8A1oTDk<Gx)S]AJ:Oj:2u;93F0yq'F]GT^DARot\U8-U"Zk2tj#w&DWx9je:\*u<'r(up%()9%%'%-%*nOJJlmFlj%N(%%&w.%%%.%%%%gtrU"g%]SqnRkBJ&,a\k%7if'km$)Z6fp%Hw:PYCe1iLELb-xawkK8n#oLK/+tRV7tlhU"\0xc*8[)K*r<8t:TTJr'ExgV.FvLQuQvLlR=5/$+\BeJ3\JKrpf]p>Jcx#6QIu[U"l0.<fq764THl4tajLPb]NrW;5s0TQGUsE*VH67#_+)C)I&PW&n&oqe7.M8_)'C)U"IT)4-IT)4-IT)4-IT)4-IT)4-IT/4g>9IO8aSECSIp#WFnw%qm7Og8aSC.iI$W%U"6ni<8$iCi(I$W6(nsqi#7N8b?=C=I'*WVn'%qq7dP8b=cC=I*#W.nq.qgaU.KIXU"W..nqqCgaMb8_IWM.Jndn.nw4wJayhc%IzKJ(ndnnCW4Wa1qh[I[xKHB,cBmW/4U"WaqbhU#^cC]I2[W^n'.qsaPqbb]C9]I2W.*npq%fwMx/_9s*(npqf#wMx_49CcIU"&tWJn&xqnwIOxacECcIt#WJnx%qjwN^x$yC#yI:>%jwNx8$yCyCId\yLn949Ma)U"hi_sEs&atFxdsxlMs0Ma\c.2trtu<LaL1]v#s\rwhN,wMuZXO.WzLzxt9Lz9x)qU"d)$-aO.a&#oRtzXw#Lx6MjCO/DalomBn#WD$COD(Ilob+n(wtWKzMb9mOnI'6cbU"n](ttK0dX_1Bs1IRRc(Bo]HeW).4IRWs(BY6CkavhD$3y5.I>d>.nk4kJavh$/3U"w5G2hchmCK4KaLnhX3Cw5Ghqch6J-%EqWdPXbEcCEI,mWXB%'EqWP$,_QC.QIZWU"j0BqEag+M,S_Qw/LF(c(Ln%4%Jazhd/3z5J2(d(nM%4%aLzh\3^x5HR,cRm[/4[U"arhh\3lmD#B_M\Ea,Mhl3&S5LRdKRnE4MEa,hbl]u_.E^c^.m343JahhR9]u_E^U"^c^6<JxEnJAOBa5kCkI\vWLBGxEnALOB$+EC+IfRW<Bt0EjANhB$+Ce+If8K2n=U"4M=a*hkj]%_jK2d2Ln=4=2a*h\3B*h\3B*h\3B*h\3B*h\3B*h\HBTdL%mc1Dr0U"NUtY#\#,'x&up%()9%%'%-%(%PJJ0sF=G%b&%%%m(%%%/%%%%hwtx%xVSq[nkBKU";X]SU[9ev0rLE3EF1t33#JFF_uhx5_7BF'GZdWAE]Wlobk*sgwK:7zXbnOdL\FQU"UOi8g.bL2B[93?ktDDg0yBo_av=RPk./aSKT5\/yp_=W6\>Dr)V&0b\mUJyZBlHU"wY6r]SU\b#TCUygRBjwfZCrSLVF=14\vQvrfhtb-m:Rk_D/CUN#0IF^UyHl^]lcU"1$?wsErLCsY(/r_XZHLbRpp[c;T5U(mE(mXM??Hq>XdpwkehXBh4TevuX:E;M+oU"tTzsJ,-x*CHPzl>%k0SEd.yt5Og$K_c>y=#l_cX#pXwp?5\w5*Xzzu.EOpZ3t7FU"iNlHpnL$lIJx_56pCIlLMzI5>nMC_f)pIUDE_<Un2R9/3Q_l8m_nyLlh8m._3xtU"IVk._N-^cyk_,7vdu%p()9%%'%-.%&PJdJJ8D%NW&%%%U(%%%/%%%%hwt%xxWS%U"qnkBlKb=[[e5%ZTBKR+8;]<27cVQ+H$rD>3Vn_oWuw+5MIIamH?XIdOHxtSYN)9U"99]\$$gb2]ZpthLm&Q>kZ>2GKP/mVy^qBmw[1.r)UF<b2^j=Na2jqhG9;w%Ez-sU"9bk?n<unYn1<wlOEDs];Rk.;0=K)R\=Ne02B>D)+2y$H_GaE6\0Rvrfhtj-o::kU"_D/C?0T,f=3N$HAJ>D+/RyL_XtHoxetN?Hqm>d\$E7nXBY5gtTKl9yQ\(]tbNutU"y3keG.2M>tygtdtO_Lxz95\<c<l$5wSE_ZH[_EXw?5k2w&hJDz,hk&hDlT7\N\tU"Hl7&)L7zRH,.4l-vbyBc,,d6,LdzbQ,0>FitH&VqhFtrc)H4NtRr)H,RvDyp(B)U"xl8u.G&Nup(%)9%'%%-%'\PJJj=w:C^%&%%g%(%%/%%%%h%wtxx%XSqnRkBKX,]U"Se5+%Jn[$B=7+,kD2cc**2_]tdTg^Ls7+Py%hEuHK0b#\pJ%O8xtSZX*9G?wBuqU"2>g2ybB_avK91r)7U<bL/-VyJhBhMZ1*r)Vb&bBHj=Ni2dsDG;8w[ErEs\l[WcZU"rdHwY&roSW0bFTgVyLBBf5l1<wolEvCt0Y;r_RU4_#GgWB[-cAas004=U8y8lYoU"Vc1?twGEl>CtY/,r3UTWEzx&fxXM?-Hq>dQpwkh:XBhT)kvu:6E;Ho'$TzJr,CwU"C\LPz>?%U0[)n)zXY:l2hK$rD2?WE,V9xkNUO#l>L<(%NWt*XdgHtWzFu_VpffeU"hvchglLaoft(c>h6v>6eTo?MgRLJlQHVcr:KQHMvLMyPmEvLXCfxwg?hrv;NHwwU"$6gTH'x(up%()9%%'%-%(,PJJI\Zqv%G&%%'1'%%%,%%%&%jjS%qnkRMaVAQ%u9U"*t&Q*j9ue6pW=ZrwDcDBK\<1]43i;L&suYnprZrxw4//+K0AcVXg5[+5;nbzGEVU"0ACjJHq-p(>1g:KE'uo;q(=9(:h6KFwBQ0:oYF=L8z;e^V4zEg/uq=.qUXwOX>sU"y&izqzOZ,Ux;x=OV8DZE+hupuR9=YNWh*geSS5#L%6#e/_3ci,qS&b,Vibx>o^VU"L2EL&5opa^=4jCHMdqY]2Gg=_Zs8Wccxlpw6UH8[_$cc$M*pE8oSHf'JD>Ql'w:U"Q_)u=kgHU3h4=*cV]HgwYJ_5vUCgxPPI]+]TM8$D_qm^#sXn;rh-w&Govo6*R4\U"cl+b2xDleHRsk3(mMX<toq?7R<\rnZvuVqM\N%%up(%)9%'%%-%(APJJDOg#]5#U"%%%7%&%%-%%%%q%nsjS%qnkB0=*='[&%%)B<B]+tV446Wx0)u(nRE17Gdxl:BBUU".gLlASL>6lBBW*<,5ARpPu'3_3p#=3^o/$g3?$7xaHiIH^=bjMXuH6iKsP(6jTOU"$hLHiJLn>LjN\uXviLsT8vj%<up(%)9%'%%-%'&PJJ[dC9b/[%%%G%&%%/%%%%hU"%wtxx%YSqn7kbJ.)=Re9I)vbLS^8olHjrThKc7Y*JM'SU#db<Mkdx'mbEWzxUNiU"$F.ICGt*[]4Ib=qm[&YtISTqq[[[TIsqOo[W>7I3qs)1^DIGEqn1)Z.I[Kqr1\eU"&7NjJVy+,dZt9XW%L,#GT?:)h&=,2NlZl.NelsF,a:.,ILAlK>CkBBOrg7EGv,$U",V;/*PNN5%jiR;;,H*VKFeja;q?)Z[NGcl1YfWaXDSHC*7-gw%u%p()9%%'%-.%U"%PJaJ8Mv(vj&%+%I*%%%1%%%%htq%qnij%^SqnRkbMP)YrU9.*uv=4V>W;gHu'JU"ogDEgZpxT[Gv+1ktP_^W2_)zO(y.zzUJ57MjbxNvcx4V)P4]lX#(lcgu2)iBXtwU"GRJ>BPXPh$3<kqO'Dr(tNo5Ud3Z#(#kEFqe^At1_E;/dT=aA*?R\BEkg2u7*Sc>U"<.-W8*.JBZ?d7=C1;>HY6[9$(45SQkKkb8ulYTpL6ggHpsEGIY8e]FfK_JL9nROU"18;=RVZ*$AXAhX0&Z71j;?b.mWnJ.6rQWcoF9IWAAUI[g?<5m&#^(*kWeh]?])RU"h00tnu]hsaqoeI+K5m)bbXqR?LrbZ-BWK+bjZ(.#kEqKe^A1Z_E;dCT=a*n5R,EU"P(;;MZ/3a,'-QW<F.>BeNdFG2>/DA$I8,]KgUB0ZVbnulj,XM$hPXh$H]c1z9?zU"wOY<.pD06B9+U[[egrQB]=3EhTPk.UG/D;)[hqjSFuq5DP4k:R4gI73FG>+h%#^U"(*kWeh]?])Rh00tnu]h=aqos71qEaXL8FKtjr'w?usPL<xKk(%up()%9%'%I-%#U"R%JJ(A;g*?&%%%S*%%%1%%%%ht%qqni%j]Sq[nkRI<V=T_%=iv:6aHX#/sb7#\'U".M*'+.o'URQ/m-xV?TWq59Zor[1$<8=eceDt^u$t$,h[h<dkiQLdX$]baAknkNrU"Opwe>*k,+^hK3^IXHm'Ik&65(QrOLecHkj7rCr5xr$,$6otG8DG6rGN9Adkz(C4U"TlGH$)k/O8?'+s9.]7&LY)DkO8?4'GOX91BU3WsRwo^XAD2b^UlgOHp$JW-BM[tU"iJGJHGJzCa:fAfRA6[Rk?XH;Dh?KkU.6;h/?Kk.P6;h?^Kk.$)S?g]92_2__8mYU"HuUHUHuUHUHZUHUbjs+B+bBKtsuBGBGNB<AjWekek\?Ws?'B]>LN\3k[)b#Ws-?U"B]>k6?hViG=6vV(NO(91TU<Tg0pTlt;L.Wly29i'E-fQ53),i&E-f95G%4W;L$QU"(x?/s':N]*GvY9k/Qx?/=s:2E\+5S'FS'Sij<F\tr?L\7Y#X1>$Uzs.kB.BNu(sU"NGZNGN<VD*f+3f+#?4s<8]:2vZYVkUL?R?s<8R]2$YMBDJDtJN8ch.D=Uk>U>UkU">U>U5>UF$rhi4_t=$VGr4zVNt=$VG=$;wE<UFw,%up()%9%'%R-%pOdJJk)0eWwU"'7%%w,%%%1%%%%ht%qqni%jUSq[nkBI3P]kem=*Z*&F6f)[6i5I.G-U\Y'trnuEU"\h_)>xTotDcpdudndn?tnfKG=c;=fb[=d=3gaSugcggQj2.nupxFUuUfUWs2go2U"ZX(A\uVC&VrBlVl/BHm6iHW6=aX[>j)[Gka^Hm6H;W6=XT[>j[:V2E=4X?[V,2EU"=XE?[V2]E=X?e[V2EW=q=qW=q=qW=q=qE=qytCytytCytytCytyt;[6?Xr\hjE)U"G5aXSm>H[b6?X\YhjEGe5aBEmAX#E:VBEA=X#EV,BEAXH#EVBoEA,)kw)w)kw)wU")kw)w)/wyxy/xyxy/xyxyexyx[Y(j%GA%aPmO:HY6Z>,[(Qj%G%.aPm:oH?,?f%U"V:Es?,?%:V:E??,?%Vb:E?,E?;Q9CQ9Q9CQ9Q9CQ9Q9Cz9z9Cz9z9Cz9z9OzcGEU".a$mBiH]6#u,\Rj3eGEa^$mBHq]6#,H#eVJoEC,#feVJEsC,#e:VJEC?,#eVC,ZU"+ZC+Z+ZC+Z+ZC+ZkdCkdkdCkdkdCkdkd^Km8HYX$=BT[^jk&GsaLSm8HXl$=B[4U"^jkVG6E>BE?kV6fE>B?ekV6EU>B?kpV6E>kq>q>kq>q>kq>q>/qztz/tztz/tztU"zetzt9+Xi1a=(H9X'i1a(cH9Xi[1a(Ho9XiU7U\E2>B<UUF\E2B-<UU\fE2B<]UU"U\EWVqVqWVqVqWVqVqEVqhtChthtChthtChthttb$Bl<]Hka)HmatSmLHbu$Bl]U"GHkaH\maTEs0l;57UTE0?l;5UaTE0l-;5UToE0l/ua/a/ua/a/ua/a/Za&K*Gt0U"o>bdWO6gzIzm3iKGc.aDm4rHV$<ulZri)KGca^Dm4HbV$4k)^nDdtNuun'l4up%U"()9%%'%-%*aOJJTU\3#%5e%%+[Z%%%1%%%%gnlh%wfxm%Sqnk+aV&Pr,#T9A0tYU"(M**3<(r*86M(***M****%8666%6666%6666X6XqHTWHh<uV8Gtfq%:4YEvHzidU"NNxlrXzduhXx8?3v(l04n^++m(+mQ(o$oNo$oU(m'hI]%67N1-X9d4>IMWDoRIuU"JRIu#,aI]nD7a18Ja18Y\sZjKSiF<i+F<_gLkDS[]c=>P7VW'8\3wLAess$%ps$U"%_1m-BI](*wMI'N9Xbc.iC\)Fz&;_yOmh,:s'=2KM+h89Z-o.jSS=FLSFBL_h5qU"DUEc:AhP^FW(03Rv<AqLS$4,=GD3gh%DT%fc?(P=Z+'#\3x\AMu=$<oVGT3LhEDU"VcecCRoPb+(+,]u4EApC$\2bG#\Igsn;Skc>F^PXA9'<]wOTAt-;$:6GEPIh=rnU"UUc=B2P$bA(4]RvDArLc$6L=GHsgk-nT5fc#HP=\k'D]]xdAMvM$>ovGXsUhMnVU"?uw6D>Dx64uvXUlKhBwj$m7\boJ%bN=%bNc+7Mc7BM5.:)WSZg&q?Fv]fL(SIt+U"C_i=C_=%Ys7?#L.ra.FraFUr$-uCm)X3J'X3'OlAw]&_vBH]\_k?_DQqc:)hMNGU"aNNaTNAB:>]].e)Y)EjUR$+eCm(Ps\y:wNL?x:\HM.fiBSEr<>$//mJ*$3)L$3)U"6ZA%G__(lHlR_l_D8PQc'b(MJ+K%p3(k&Ay'/_z,Hcd3kOhDR;c=+RMRQ+&*3q*U"FA'ig_,V=Ht3l6onOA]c&^M:HA%l$]'tA2xm_xRbH$IXkGnQb+c*2fMPA&P&])>U"ZA&W_b*6HpnIlgn8Pac(bHMLkT%t](k.Az72_&LHchskWinRKc=,rMTlk&.]q*NU"A(iw_.f?stM8sUpwtF)MrIW-jm7POm9O*m9D.A9D.9)WSZi';?Fvh\_wo8b&fL#U"(_m1._m1?IL.\bSSKB_OKB_u(m)xI]&>W%7>W%H\3ylAMw]$#7BH\_IfKDQaqc9U"BTc9B9,]]Zl*k)EjLR_qeCm(ps]%:wNL/x9\cM.kcBSEr<;_u/mh**s&7BW&BFWU"&X3q%6A%NG$Hl=Hl3e1;DPQfc7(O=J+%Pe3z&APy'$Dn,Hd3If[DRb;c;RoOR+&U"L$3&FZA'g$bLVHt\Ie3n8OAc6F^OHA9%L]yOtAxm)$BbH*$IfSinQ+c=:2OPbA&U"\]q%>A&iW$J6=Hpse4CnPafc8HO=Lk%Tf]z.APz7$FnLHhsRfcnRbKc<roOTk&OU"d]&NlA(Ev>LdcX4,xL(]dKbS(rIYeAIZeI$.^).&^)ZiB;?G02\_wkmmytB5OobU"&%BIVBIIV\b,S?ngDb3mb&3mxIf&NaO71>O1+>O6W/yH3yZ#A1]2$#lE&b_fKMDU"Y3D)Y3ZlEkiHH1R_q;#mvps]%JwOL/x9Tay.kcJ)HD<)_u[mgx*s&=RKO3GhO3hU"BO>WzgX3%$ZA5G$DH,EZB3e;D8XQd7b(O:+/yP3zuPA3';$DVE,j3f[hDZ;d=;RU"OBE+z$3t&pA73g$Lb1EVIe43nWA]d6^O18AyLo]yHAN2m$BK6EfIRfSnYb+d:2KU"O#Azj\]%hZA6W$DJLE^]seCn8Xad8bHO<k8yT]zuXA47;$FvE,nsfcinZKd=<rOU"D$kzd]t&4w'rsSEZhN&O3Ln^EbIC2_-g2_-f7HffHdf2$)/Um'H(Iy67ENMWo*vU"3e,%nq,nFq\Ip;#aII+>KI>BK9n:)YsZhAUZhUhDS[c7->NVOW'23S+LAsCs_nlU"1G(lGk(F$50_m-0)sw*wBM7N:;Xc.g)y)Fzr&$3OCm,#snx2KML;8:ZH-.huK.hU"uD>UEc1,hN^WN(B3-4<AqS/_j,GHD3ieqDT%c:/(NZQ+':3S,\Au_=_rV=GT3jiU"/DVeoc3RNXb+(J_3.4A/pC_hRbG#IUi]nS,kc.^fNXA'56]+TNAt-_ap6GPnIj'U"n>UUc2H2N$AW(F]-4DArc/_lLGHHsimrnT5c:0HN\lk'>]S,dAv_M_tv=GXsjl7U"nVuoc4rNl'8zGp6BmXj:a=K5rVsl1(s&(;s&tm+utmu7hI%FF7O-X_9Si./n17dU"+>If7]Lf7LI]n7k#IYnU.YnUY4jKiGP8F_03F_0B(Fr_gLkD[[]d=>P..Wx8/3wU"vmD%vm%8BI(^,aP'N_9P9.4iC)GP4&_yA%mz:,s'ZwKP+898RY.jHSSG<if_8f2U"_8lFB,_h5qD]Ed:AhP*E+w03pvfA+LS$4,:Fz3gh%D\%fd?(P42+x#n3x0AN/=$U"<oVF43LhED^cedCRKP(AwF,]u^HA*C$A2bFv\Igsn;[kd>F^P0A8x<]wZ(A.-;$U":6FE0Ih=rn]Ud=B2P,$kw4]pvnA,Lc$6L=F(sgk-n\5fd#HP44kxDo]x8AN0M$>U"ovF8sphM.dWh&(MZl98.H93n^)EbC2D_-2_,-fHf'fHf25$)UmA'HIyR67NMUWoU"v3%e,nq[,nq\LIp#a]II>K7I>K9Ln:Ys.ZhUZLhUDS,[c->]NVW'223+LEAss_CU"nlG(elG(F>$5_mJ-0sw7*wM7LN:XcK.gy)RFz&$H3Om,1#sx2HKM;8q:Z-.:hu.U"hhuDUEfc1hNR^W(B_3-<A/qS_jn,GD3LieDTH%c/(oNZ+'2:3,\NAu=_arVGTT3U"j/D>Vec3cRNb+N(J3.44ApC&_hbGE#Ii]inSkc7.^NXkA'6]S+TAt_-_p64GPIjU"l'nUUoc22NU$A(F$]-DA/rc_lnLGHsUimnTH5c0HoN\k'5>],dNAvM_atvGXosjU"7n>Vuc4urN'8b.V,Fr*N89_FbCf%Kb?E]6?E6fSlQS(lQ?Ge02$)%kmyHUIyv3XU"etBO13ag3;ag?nFg\Ip.nWsnCWsNaBO9n:JU1:U+1d->BN6Wyh23+#HA1s_CnlEU"b7_j+_4j+iHkHF$5%;mv0)swJwBO7N:8Ty.gDy)HD<&$3[#mx#snxRKOL;8:V1qU":Vqfd1hNI>WzBq3-$A05S_je,EZ3LieDXFQd/(TN:+yh:3,PQA3=_FrVEjT3j/DU";Z;d3cRNB+MzJ3.?pA7C&_hbEDVIi]$nWAd7.^N8hAy6]t+HA2_-_p61EfIjQ'nU"Y+od22NL#AzFr]-hA06c_leLE^sUimnXFad0HTN<kyk>],XQA4M_FtvEnosj7n;U"ZKd4crNDkMz,NFZv=FXDNF%D8bCfK[b?E6m?E6S:lQSlAQ?G0:2$)k%myHI5yv3U"e6tBO3Dag3a,g?ng0\Ipn(WsnWesNaOI9n:U11:U1]d->NI6Wy2q3+#A01s_n/lU"Eb_+j+_jE+iHH<F$5;#mv0s\wJwOI7N:TFy.gye)HD&,$3[mIx#sx=RKO;28:VqU"_:Vqd:1hN>LWzB3t-$A5CS_j,:EZ3i2eDXQfd/(NO:+y:q3,PA33=_rfVEj3Oj/U"DZb;d3RTNB+zhJ3.pHA7C_#hbEVeIi]n8WAd.F^N8AVy6]+ZHA2-8_p6E_fIj'iU"nY+d=22N#hAzF]t-hA6Cc_lL:E^si5mnXafd0HNO<ky>r],XA34M_tfvEnsXj7nU"ZbKd4rTNDkz2,NFBaKFhx9geeKFbSrI.YeIZUeI.^4).^)7Zi;?LG0\_&wkmyltU"BOo&b&BI%VBIVh\bS?Ingb31mb3m7xI&N,aO1>]O1>O.6WyHn3y#AN1]$#/lEb_U"IfKDYM3DY3RZlkiCHHR_&q;mv:ps%JFwO/x_9Ty.4kc)HMD<_u#[mx*bs&RKfO3U"hO:3hO>CWzX3t%$A5NG$H,:EZ3e1;DXQfd7(O4:+yPn3zPAQ3'$DfVEj3If[DZbU";d;RTOB+zg$3&pZA7g$ALbEV\Ie3n8WAd6F^O8A8yL]yZHA2m;$B6E)fIfSinY+U"d=:2O#_Az\]t%hA6NW$JL:E^se4CnXafd8HO4<kyTo]zXAQ47$FfvEnsRfcnZbKU"d<rTODkzjd]&46wgIsthLxg,OgKb0SrIY(eIZe5I.^)*.^)Z+i;?GM0\_w[kmytU"WBOob%&BIV#BIV\;bS?n1gb3m)b3mxFI&Na]O1>O71>O6CWyH3sy#A1M]$#l(EbU"_fLKDY32DY3Z4lkiHJHR_q%;mvp,s%JwKO/x98Ty.kEc)HD2<_u[Imx*so&RKO:U"3hO3,hO>WJzX3%u$A5G2$H,E,Z3e;_DXQd:7(O:E+yP3szPA3i'$DV:Ej3fL[DZU";od;RO4B+z$q3&pAQ7g$LIbEVIRe3nW+Ad6^KO8AyaL]yHQA2m$GB6Ef\IfSn;YU"+d:H2O#ASz\]%uhA6W2$JLE,^seC$nXad:8HO<$kyT]szXA4i7$Fv:EnsfOcnZKU"od<rO4Dkzdr]&4wgs,3EH<xs/_CbCf%Kb?E]6?E6fSlQS(lQ?Ge02$)%kmyHUIyU"v3XetBO13ag3;ag?nFg\Ip.nWsnCWsNaBO9n:JU1:U+1d->BN6Wyh23+#HA1s_CU"nlEb7_j+_4j+iHkHF$5%;mv0)swJwBO7N:8Ty.gDy)HD<&$3[#mx#snxRKOL;8:U"V1q:Vqfd1hNI>WzBq3-$A05S_je,EZ3LieDXFQd/(TN:+yh:3,PQA3=_FrVEjT3U"j/D;Z;d3cRNB+MzJ3.?pA7C&_hbEDVIi]$nWAd7.^N8hAy6]t+HA2_-_p61EfIjU"Q'nY+od22NL#AzFr]-hA06c_leLE^sUimnXFad0HTN<kyk>],XQA4M_FtvEnosjU"7n;ZKd4crNDkMz,NvT7kErKxsOD8bCfK[b?E6m?E6S:lQSlAQ?G0:2$)k%myHI5U"yv3e6tBO3Dag3a,g?ng0\Ipn(WsnWesNaOI9n:U11:U1]d->NI6Wy2q3+#A01s_U"n/lEb_+j+_jE+iHH<F$5;#mv0s\wJwOI7N:TFy.gye)HD&,$3[mIx#sx=RKO;28U":Vq_:Vqd:1hN>LWzB3t-$A5CS_j,:EZ3i2eDXQfd/(NO:+y:q3,PA33=_rfVEj3U"Oj/DZb;d3RTNB+zhJ3.pHA7C_#hbEVeIi]n8WAd.F^N8AVy6]+ZHA2-8_p6E_fIU"j'inY+d=22N#hAzF]t-hA6Cc_lL:E^si5mnXafd0HNO<ky>r],XA34M_tfvEnsXU"j7nZbKd4rTNDkz2,Nvsu#E\xLsoEb+CfKb7?E6?=E6SlGQSlQ.?G02,$)km#yHIU"y$v3etEBO3aJg3ag]?ng\(IpnWAsnWs:NaO91n:U1_:U1d7->N6LWy23t+#A1CsU"_nl(Eb_j]+_j+eiHHF,$5;mIv0sw7JwO71N:TyK.gy)UHD&$'3[mx1#sxRHKO;8U"D:Vq:8Vqd1,hN>WMzB3-?$A5S/_j,EGZ3ie_DXQd:/(N:N+y:3t,PA3_=_rV:EjU"3jN/DZ;od3RNOB+zJq3.pA07C_hIbEVIUi]nW+Ad.^KN8Ayk6]+HQA2-_Fp6EfnU"Ij'n;Y+d2H2N#AVzF]-?hA6c/_lLEG^sim$nXad:0HN<iky>]t,XA4_M_tv:EnsU"jQ7nZKod4rNODkz,;NvWL<Ebxs39FbC'fKb?+E6?EH6SlQ0SlQ?CG02$')kmydHU"Iyvn3etBJO3agg3ag?7ng\IApnWs.nWsN,aO9nD:U1:8U1d-+>N6WMy23+?#A1sU"/_nlE\b_j+R_j+iUHHF$'5;mv10swJ+wO7N_:Ty.1gy)HkD&$3%[mx#_sxRKKO;U"8:JVq:VFqd1hBN>WzhB3-$HA5S_Cj,EZK3ieD8XQd/b(N:+My:3,ZPA3=8_rVEbU"j3j/hDZ;d=3RNBN+zJ3t.pA7(C_hb1EVIi5]nWA]d.^NL8Ay6r]+HA32-_pK6EfU"IXj'nYb+d22KN#AzkF]-hHA6c_ClLE^fsimn8Xad0bHN<kVy>],ZXA4M8_tvEbnU"sj7inZKd=4rNDNkz,Ne*\uE*RN#]K3n^EAbC2_J-2_-]fHff#Hf2$E)Um'.HIy6U"47NMW5ov3e%,nq,7nq\Ihp#aI7I>KI+>K9n2:YsZ(hUZhMUDS[]c->NRVW'2_3+U"LA/ss_nJlG(lUG(F$H5_m-10sw*+wM7Nh:Xc.1gy)Fjz&$30Om,#_sx2KKM;8:>U"Z-.hGu.huqDUEc:1hN^OW(B3S-<AqCS_j,=GD3iheDT%fc/(NXZ+':_3,\A2u=_U"roVGT3Oj/DVcec3RoNb+(2J3.4EApC_[hbG#eIi]n;Skc.F^NXAW'6]+OTAt-8_U"p6G$PIj'rnUUc=22N$kA(F]S-DArCc_lL=GHsikmnT5fc0HNX\k'>$],dA2vM_tU"ovGXsXj7nVcuc4ruN'8&dd^BwKX+o=WKrVsIl(s&g(s&t7mutm[uhI%7F7O-2X9U"SiE.n177d>If+7Lf7BL]n7&kIYnAUYnURYjKiUG8F_P0F_0.BFr_IgkD[,[d=>BU"P.WxC83wv1m%vm_%BI(:^aP'1N9P9T.iC)UG4&_)y%mz;:s'ZFwP+8_9RY.=jSSU"GP<f_8Nf_8l+F,_hh5D]EfdAhP4*+w0e3vfAK+S$4e,Fz3Lg%D\H%d?(TP2+x^#U"3x0QA/=$b<VF4K3hED>^edCHRP(A8w,]u>^A*C)$2bF)vIgsin[kd7>^P0_Ax<]U"sw(A.h-$:64F0Ihk=n]UodB2P4,kw4f]vnAK,c$6nLF(sUg-n\H5d#HTP4kxaD]U"x8QA0M$b>vF8fshM.Wd>d'r:+u0kP%jmn7\bJ=%bN%-bNc7]Mc7MI5.:WASZgq[U"?Fvf7L(Stg+C_=;C_=Y%s7?L..raF(raFr5$-umJ)X3'1X3'lNAw]_[vBH\R_k?U"D8Qqc)GhMNafNNaNOAB:]H].eY&)EjR5$+emJ(Psy7:wN?hx:\Mf.fiSIEr<$H/U"/m*1$3)$h3)6AQ%G_(8lHl_Ol_DPFQc'(oMJ+%Lp3(&WAy'_^z,HdT3kOD;R;c+U"cRMR+N&*3*tFA'g;_,VHct3lo$nOAc7&^MHbA%l]S'tAx)m_xb4H$IkQGnQ+oc*U"2MUPA&&i])>AQ&W_*T6HpIXlgnPFac(HoMLk%Ot](.WAz7__&LHhoskWn;RKc,cU"rMTkW&.]*tNA(wq_.fs3TI'W5fx<e]eKbS(rIYeAIZeI$.^).&^)ZiB;?G02\_wU"kmmytB5Oob&%BIVBIIV\b,S?ngDb3mb&3mxIf&NaO71>O1+>O6W/yH3yZ#A1]2$U"#lE&b_fKMDY3D)Y3ZlEkiHH1R_q;#mvps]%JwOL/x9Tay.kcJ)HD<)_u[mgx*s&END SUBSUB V3U"=RKO3GhO3hBO>WzgX3%$ZA5G$DH,EZB3e;D8XQd7b(O:+/yP3zuPA3';$DVE,j3U"f[hDZ;d=;ROBE+z$3t&pA73g$Lb1EVIe43nWA]d6^O18AyLo]yHAN2m$BK6EfIRU"fSnYb+d:2KO#Azj\]%hZA6W$DJLE^]seCn8Xad8bHO<k8yT]zuXA47;$FvE,nsfU"cinZKd=<rOD$kzd]t&4w/r'%ENeN#'4Ln^EbIC2_-g2_-f7HffHdf2$)/Um'H(IU"y67ENMWo*v3e,%nq,nFq\Ip;#aII+>KI>BK9n:)YsZhAUZhUhDS[c7->NVOW'23U"S+LAsCs_nl1G(lGk(F$50_m-0)sw*wBM7N:;Xc.g)y)Fzr&$3OCm,#snx2KML;8U":ZH-.huK.huD>UEc1,hN^WN(B3-4<AqS/_j,GHD3ieqDT%c:/(NZQ+':3S,\Au_U"=_rV=GT3ji/DVeoc3RNXb+(J_3.4A/pC_hRbG#IUi]nS,kc.^fNXA'56]+TNAt-U"_ap6GPnIj'n>UUc2H2N$AW(F]-4DArc/_lLGHHsimrnT5c:0HN\lk'>]S,dAv_MU"_tv=GXsjl7nVuoc4rNu'8&HpZBvXj+a=K5rVsl1(s&(;s&tm+utmu7hI%FF7O-XU"_9Si./n17d+>If7]Lf7LI]n7k#IYnU.YnUY4jKiGP8F_03F_0B(Fr_gLkD[[]d=U">P..Wx8/3wvmD%vm%8BI(^,aP'N_9P9.4iC)GP4&_yA%mz:,s'ZwKP+898RY.jHU"SSG<if_8f2_8lFB,_h5qD]Ed:AhP*E+w03pvfA+LS$4,:Fz3gh%D\%fd?(P42+xU"#n3x0AN/=$<oVF43LhED^cedCRKP(AwF,]u^HA*C$A2bFv\Igsn;[kd>F^P0A8xU"<]wZ(A.-;$:6FE0Ih=rn]Ud=B2P,$kw4]pvnA,Lc$6L=F(sgk-n\5fd#HP44kxDU"o]x8AN0M$>ovF8sphM.dk>dK<ZUu0PW7jm7=\bJ%cbN%b]Nc7M7c7M5L.:WS.ZgU"q?7FvfL+(St+VC_=C,_=Ys%7?L.(raFrAaFr$E-um)1X3'X_3'lA2w]_v7BH\_OU"k?DQFqc)hfMNaN:NaNAiB:]]K.eY)#EjR$E+em(1Psy:FwN?xq:\M.:fiSEgr<$U"/0/m*$D3)$3q)6A%NG_(l+Hl_l3_DPQfc'(M=J+%ph3(&A5y'_zn,Hd3OkODRb;U"c+RoMR+&M*3*FZA'g_b,VHto3lon8OAc&F^MHAT%l]'OtAxm&_xbH$$IkGinQ+cU"=*2MPkA&&]q)>A&iW_*64HpIl6gnPafc(HM=Lk%ti](.APz7_&nLHhsXkWnRbKcU",roMTk&P.]*NZA(w_Y.fsJocjDUHwp)[k=KrVAsl(sJ&(s&]tmut%muhI]%F7OLU"-X9S4i.n1\7d>I7f7Lf+7L]n)7kIY(nUYn\UYjKeiG8FV_0F_A0BFr#_gkD;[[dU"=+>P.W/x83wJvm%v1m%BIf(^aPI'N9Pa9.iCe)G4&2_y%mgz:s'7ZwP+289RYo.U"jSSUG<f_P8f_88lF,_Lh5D]HEdAhTP*+wC03vfHA+S$D4,FzK3g%D>\%d?b(P2+U"/x#3xZ0A/=;$<VFH43hEqD^ed=CRP(_Aw,]pu^A*1C$2b1FvIgOsn[k]d>^P10AU"x<o]w(AN.-$:T6F0IUh=n]cUdB2TP,kwF4]vnHA,c$_6LF(fsg-n>\5d#bHP4k8U"xD]xZ8A0M;$>vFH8shMZ.dhxm$BlmT8LiC8bCfK[b?E6m?E6S:lQSlAQ?G0:2$)U"k%myHI5yv3e6tBO3Dag3a,g?ng0\Ipn(WsnWesNaOI9n:U11:U1]d->NI6Wy2q3U"+#A01s_n/lEb_+j+_jE+iHH<F$5;#mv0s\wJwOI7N:TFy.gye)HD&,$3[mIx#sxU"=RKO;28:Vq_:Vqd:1hN>LWzB3t-$A5CS_j,:EZ3i2eDXQfd/(NO:+y:q3,PA33=U"_rfVEj3Oj/DZb;d3RTNB+zhJ3.pHA7C_#hbEVeIi]n8WAd.F^N8AVy6]+ZHA2-8U"_p6E_fIj'inY+d=22N#hAzF]t-hA6Cc_lL:E^si5mnXafd0HNO<ky>r],XA34M_U"tfvEnsXj7nZbKd4rTNDkz_,NtvniVHw/J''\lbJ=KSr&KzO&KzL1IwLI\wF7OI5U".:S#iZgq]St+-8n1aEGXbEX)8kIY.s7iI(hiIh/iG8rk$-5Ar)5A))]_vB(Fr_kU"N?D[[fd)hM..Wxx(IzxIez^aPOAB:PF9.eY/)G4R5$+%mIzPsy7ZwP?2x:RYf.fU"iSLG<<$r/EA-tEA-G2_(lF],_l_qD]Ed:'(M*E+wp3q(fA+E'_z,:Fz3kiOD\%TU"d+r>ptFM;UU-hH3QRq]C$qMYJqMYq1MYqMDYqMYgWRRKZKKI_Y_IIaWIaIaV_aIU"_uKKKKZ7<VL=H4$aXAGFfkVX<lcxU[):0f9SS,g4C:.<]7cTAJ//Xp98YfM'+jWU"4ABQeS42BPS#jB49[FXNeO4,60S$b*3y/qCxeW<^/pS:,*4YN/E8;rdA-&6DJESU"Q6f+I_JA>eWB4)r6DR]Sh6J#2rSZDNrW+go<_A04hfvL1safD^D<.S>rtxxwlP:U"^q?\xr,T;t4Kr?MS^=Xo,SPn,nDrrkv5oD,ol7SDQ45,7/dkCrQvkqDfeU<,73?U"8ek:it4f(ZQ(3KrFMN^>:odSQX).FWrUvu?D0e\k,748cfkBtq<fhQlh3KHYMP^U"J-otSdl)XFrkPvpDG^e4,hM3NeTk8t2VfnQnu3uEwlM^6oo$S8)UdFrTrvtD(KeU"T,Mq4NfkO#t:fuXQX3uuGwOr^FoppSN)8kFrRvkrDneUD,w3?xek<it6f8uQ83uU"uFwN^>>ohSQx)NFrrVvAW^2t$ZD#onUSnQNi3K1xl^k>tgTfNT>XDMsh+uE_FW0U"Xf<2,1)bEZ7QJtp7fLSp\+n1#2=C[#n<W[aSd1p5&SVh,4;QeS42qBf;_pSTV3ZU"eeO4e6pfCeeSdVo4AeWN^/:fH?OS\h<,]/nD^SG5t0lpA>tSRFb21EnC^TJ*^;TU"Sh&J#2rSjDVrW+go?Zk-4hfvL2u5fD^n<dnX<xIstlw]Nw=&nLSPn*nErr[v%ZDU"$e6/,c6dlhkPvc5D,o^hfTQU4,7/?8akJ0tjfTTRT4Kr>MR^4PozSP.,.Drriv3U"oD\ePk,708cbkRtgrf>Rk>4K#>MT^$co4SXl,XDrtmv7DX4ep,hM/Na9kHth8fDU"RDu4u=wcQ^Lo\vSd,UdDrh?v2DTQeH,Mq0NbkFPtpfk.R.4uu?wSo^\o0sS8,8kU"Drlvc6DDeWh,w/?xakL0tlfdoRd4uu>wR^=To(SPN,NDrrjv4oDdeX5,w0dYArQU"Mu]k*vbvDLoenSnQtN2uTuwD^XbE[W.L8fxlu2EfE)4=<S;P,1)bEb7S/tp7H,fU"QkS0*r+wPj1sEW^aRd:p5PSj#4ERlQUt)f2p00RS$4DZRRKtE+tp4]pS,4nF^QSU">t*.pM2*frh<,]/kBb<$lKTbDA/tSRUB,GESC^TZQDN-+Z'o_Af0\f4bL1afQ<^U"8.US>tAbHTtvcp8Sx>ZxvdZx9u8>fHQtW4K?MlO^Bof,Sn,qnFr9>MW^(<tpD<EU"eVS.i).CrkavqDPfef,r718e9k:tztf(R(W3KFMcV^#oodSX)WXCrervuD0le0,U"7t28fkOBt,fuhRh3kKHMXo^,ot7Sd)dkCr$vkpD^eM^,M1>Nek8KtxfnrRn3uuEU"wU^=<o$SZ8)8CWrdvtuD(e(M,M2Ncfk#tq*fXRuX3uG?wW^4HopSNi)NCrkbvrDU"Pnen,rw1xeTk<t&tf8R8u3uFwcV^DoohSx)OD2K;pdArQ?wL^80ttftle8+wt<xU"^kJ>$#hrSXDMWG+_E9_W00Gf9S+4'4C.cfKJ-/$p;H,fQKS/xr+wr4ABeTCJ,:hU"f\,4;;;gwlQUt)h*flVl3e;bXwRKtN+JfRHV4A;ufKQStt*&D-J/SluT2m/tBbfU"BG4)LfE:]S6j$3kf6>^9TLS&JBl2TjDKVc+muoZk-UTf0LZ25fvuwlPwX48rN,HU"CxRVi7JSSvaNqAX;rGBCxRiP7JSvOaNqXd;rGCIxRi73JSva3NqX;:rGCxgRi7JU"_SvaN)qX;r,GCxRVi7JSSvaNqAX;rGBCxRiP7JSvOaNqXd;rGCIxRi73JSva3NqU"X;:rGCxgRi7J_SvaN)qX;r,GCxRVi7JSSvaNqAX;rGBCxRiP7JSvOaNqXd;rGCIU"xRi73JSva3NqX;:rGCxgRi7J_SvaN)qX;r,GCxRVi7JSSvaNqAX;rGBCxRiP7JSU"v4an,sDK$8m0kyZK8)YZNOt.7qdj8mkCyZK)+YZNt3.7qj:8mky/ZK)Y]ZNt.)7U"qj8GmkyZ^K)YZRNt.7Aqj8m0kyZK8)YZNOt.7qdj8mkCyZK)+YZNt3.7qj:8mkyU"/ZK)Y]ZNt.)7qj8GmkyZ^K)YZRNt.7Aqj8m0kyZK8)YZNOt.7qdj8mkCyZK)+YZU"Nt3.7qj:8mky2Z5)Yo\^H.)7ujXPml+Z_5)Y\X^H.7AujXmNl+Z58)Y\^QH.7udU"jXmlM+Z5)aY\^H3.7ujUXml+2Z5)Yo\^H.)7ujXPml+Z_5)Y\X^H.7AujXmNl+ZU"58)Y\^QH.7udjXmlM+Z5)aY\^H3.7ujUXml+2Z5)Yo\^H.)7ujXPml+Z_5)Y\X^U"H.7AujXmNl+Z58)Y\^QH.7udjXmlM+Z5)aY\^H3.7ujUXml+2Z5)Yo\^H.)7ujXU"Pml+Z_5)Y\X^H.7AujXmNl+Z58)Y\^<HL(Xk.c[$OaPqhj;FGGJBRi8<J[$a3PqU"h;WFGGBgRi8Jb[$aP_qh;F5GGBRVi8J[T$aPqSh;FGEGBRik8J[$OaPqhj;FGGJU"BRi8<J[$a3Pqh;WFGGBgRi8Jb[$aP_qh;F5GGBRVi8J[T$aPqSh;FGEGBRik8J[U"$OaPqhj;FGGJBRi8<J[$a3Pqh;WFGGBgR)7J\Q(3-)7pj0R3]Iq&T;R]0YeZ;Y)U"-YOI(R)7*JQ(33-7pj[03]I)qT;RF]YeZp;)-YAO(R)57JQ(O3-7p%j03]3IqT;U"7R]YeeZ;)-*YO(RV)7JQR(3-7&pj03O]IqT[;R]YCeZ;)6-YO(gR)7J\Q(3-)7pU"j0R3]Iq&T;R]0YeZ;Y)-YOI(R)7*JQ(33-7pj[03]I)qT;RF]YeZp;)-YAO(R)5U"7JQ(O3-7p%j03]3IqT;7R]YeeZ;)-*YO(RV)7JQR(3-7&pj03+]iBT,K:03O]IqU"T[;R]YCeZ;)6-YO(gR)7J\Q(3-)7pj0R3]Iq&T;R]0YeZ;Y)-YOI(R)7*JQ(33-U"7pj[03]I)qT;RF]YeZp;)-YAO(R)57JQ(O3-7p%j03]3IqT;7R]YeeZ;)-*YO(RU"V)7JQR(3-7&pj03O]IqT[;R]YCeZ;)6-YO(gR)9J\ah3.)7xjpR3^Mq&t;R^K]uU"ZeY)-]_IhR)9*Jah33.7xj[p3^M)qt;RF^]uZqe)-]A_hR)59JahO3.7x%jp3^3U"Mqt;7R^]uhZe)-*]_hRV)9JaRh3.7&xjp3O^Mqt[;R^]LuZe)6-]_hgR)9J\ah3U".)7xjpR3^Mq&t;R^K]uZeY)-]_IhR)9*Jah33.7xj[p3^M)qt;RF^]uZqe)-]A_U"hR)59JahO3.7x%jp3^3Mqt;7R^]uhZe)-*]_hRV)9JaRh3.7&xjp3O^Mqt[;R^]U"uIp6m\4T^]LuZe)6-]_hgR)9J\ah3.)7xjpR3^Mq&t;R^K]uZeY)-]_IhR)9*JaU"h33.7xj[p3^M)qt;RF^]uZqe)-]A_hR)59JahO3.7x%jp3^3Mqt;7R^]uhZe)-*U"]_hRV)9JaRh3.7&xjp3O^Mqt[;R^]LuZe)6-]_h:RY-M3[g2RbY-M[Dg2RYT-M[U"ge2RY-OM[g2:RY-M3[g2RbY-M[Dg2RYT-M[ge2RY-OM[g2:RY-M3[g2RbY-M[DgU"2RYT-M[ge2RY-OM[g2:RY-M3[g2RbY-M[Dg2RYT-M[ge2RY-OM[g2:RY-M3[g2RU"bY-M[Dg2RYT-M[ge2RY-OM[g2:RY-M3[g2RbY-M[Dg2RYT-M[ge2RY-OM[g2:RYU"-M3[g2RbY-M[Dg2RYT-M[ge2RY-OM[g2:RY-M3[g2RbY-M[Dg2RYT-M[ge2RY-OU"M[g2WXL]ZS^]_'AZGRYO]_'Z.GRY]3_'ZG^RY]_)'ZGRSY]_'AZGRYO]_'Z.GRYU"]3_'ZG^RY]_)'ZGRSY]_'AZGRYO]_'Z.GRY]3_'ZG^RY]_)'ZGRSY]_'AZGRYO]U"_'Z.GRY]3_'ZG^RY]_)'ZGRSY]_'&Z7RoF]^yZ%7Ro]0^yZ7[Ro]^(yZ7R7o]^yU"&Z7RoF]^yZ%7Ro]0^yZ7[Ro]^(yZ7R7o]^y&Z7RoF]^yZ%7Ro]0^yZ7[Ro]^(yZU"7R7o]^y&Z7RoF]^yZ%7Ro]0^yZ7[Ro]^(yZ7R7o]^y&Z7RoF]^yZ%7Ro]0^yZ7[U"Ro]^(yZ7R7o]^y&Z7RoF]^yZ%7Ro]0^yZ7[Ro]^(yZ7R7o]^y&Z7RoF]^yZ%7RoU"]0^yZ7[Ro]^(yZ7R7o]^y&Z7RoF]^yZ%7Ro]0^yZ7[Ro]^(yZ7R7o]^y&Z7RoX]U"^MJOm5SS7xs.M3JqSxas.MJ)qSxsT.MJq\Sxs.OMJqS7xs.M3JqSxas.MJ)qSxsU"T.MJq\Sxs.OMJqS7xs.M3JqSxas.MJ)qSxsT.MJq\Sxs.OMJqS7xs.M3JqSxas.U"MJ)qSxsT.MJq\Sxs.)7tjPTG]Lq8d;&]K\qZ%Y)-[[IXR)8$JYXG3-7tjaPG]L_U"qd;&F]\qZq%)-[A[XR)58JYXQG-7t7jPG]3Lqd;9&]\qhZ%)-*[[XRV)8JYXXG-U"7\tjPGO]Lqda;&]\LqZ%)6-[[XgR)8JnYXG-)7tjPTG]Lq8d;&]K\qZ%Y)-[[IXU"R)8$JYXG3-7tjaPG]L_qd;&F]\qZq%)-[A[XR)58JYXQG-7t7jPG]3Lqd;9&]\qU"hZ%)-*[[XRV)8JYXXG-7\tjPGO]Lqda;&]\LqZ%)6-[[XgR)8JnYXG-)7tjPTG]U"Lq8d;&]H\E$(\HFPGO]Lqda;&]\LqZ%)6-[[XgR)8JnYXG-)7tjPTG]Lq8d;&]KU"\qZ%Y)-[[IXR)8$JYXG3-7tjaPG]L_qd;&F]\qZq%)-[A[XR)58JYXQG-7t7jPGU"]3Lqd;9&]\qhZ%)-*[[XRV):JiX\5JqT.;&HB<#R)5:Ji\l5Jq.j;&H<I#R):$JU"i\5<Jq.;<&H<#gR):Jni\5Jbq.;&,H<#RV):JiX\5JqT.;&HB<#R)5:Ji\l5Jq.U"j;&H<I#R):$Ji\5<Jq.;<&H<#gR):Jni\5Jbq.;&,H<#RV):JiX\5JqT.;&HB<#U"R)5:Ji\l5Jq.j;&H<I#R):$Ji\5<Jq.;<&H<#gR):Jni\5Jbq.;&,H<#RV):JiXU"\5JqT.;&HB<#R)5:Ji\l5Jq.j;&H<I#R):$Ji\5<Jq.;<&H<#gR):Jni\5Jbq.;U"&,H<#RV):JiX\5JqT.;&HB<#R)5:Ji\l5jMO5-Gi\l5Jq.j;&H<I#R):$Ji\5<JU"q.;<&H<#gR):Jni\5Jbq.;&,H<#RV):JiX\5JqT.;&HB<#R)5:Ji\l5Jq.j;&H<U"I#R):$Ji\5<Jq.;<&H<#gR):Jni\5Jbq.;&,H<#RcC.M$\Q0RCT.M$Qm0RC.4M$U"Q0=RC.M*$Q0RcC.M$\Q0RCT.M$Qm0RC.4M$Q0=RC.M*$Q0RcC.M$\Q0RCT.M$QmU"0RC.4M$Q0=RC.M*$Q0RcC.M$\Q0RCT.M$Qm0RC.4M$Q0=RC.M*$Q0RcC.M$\Q0RU"CT.M$Qm0RC.4M$Q0=RC.M*$Q0RcC.M$\Q0RCT.M$Qm0RC.4M$Q0=RC.M*$Q0RcCU".M$\Q0RCT.M$Qm0RC.4M$Q0=RC.M*$Q0RcC.M$\Q0RCT.M$Qm0RC.4M$Q0=RC.MU"*$Q0RcC.M$\Q0RCT.M$Qm0RC.4M$Q0=RC.M$$Q0hOOpqAXS1Iq2+ZASQ1Iq+_ZAU"S1NIq+ZnAS1IMq+ZAXS1Iq2+ZASQ1Iq+_ZAS1NIq+ZnAS1IMq+ZAXS1Iq2+ZASQU"1Iq+_ZAS1NIq+ZnAS1IMq+ZAXS1IqK&;<H]#$RSP9JeFl5Lq&g;<H#R$RS9iJeFU"5<Lq&;;<H#$jRS9JqeF5LGq&;<,H#$RWS9JeYF5LqK&;<H]#$RSP9JeFl5Lq&g;U"<H#R$RS9iJeF5<Lq&;;<H#$jRS9JqeF5LGq&;<,H#$RWS9JeYF5LqK&;<H]#$RSU"P9JeFl5Lq&g;<H#R$RS9iJeF5<Lq&;;<H#$jRS9JqeF5LGq&;<,H#$RWS9JeYF5U"LqK&;<H]#$RSP9JeFl5Lq&g;<H#R$RS9iJeF5<Lq&;;<H#$jRS9JqeF5LGq&;<,U"H#$RWS9JeYF5LqK&;<H]#$RSP9JeFl5Lq&g;<H#R$RS9iJeF5<Lq&;;<H#$Wh<dU"t;<H#$jRS9JqeF5LGq&;<,H#$RWS9JeYF5LqK&;<H]#$RSP9JeFl5Lq&g;<H#R$U"RS9iJeF5<Lq&;;<H#$jRS9JqeF5LGq&;<,H#$RWS9JeYF5Lq^wZo'61KqwnZo'1U"EKqwZso'1K/qwZoZ'1Kq^wZo'61KqwnZo'1EKqwZso'1K/qwZoZ'1Kq^wZo'61KU"qwnZo'1EKqwZso'1K/qwZoZ'1Kq^wZo'61KqwnZo'1EKqwZso'1K/qwZoZ'1Kq^U"wZo'61KqwnZo'1EKqwZso'1K/qwZoZ'1Kq^wZo'61KqwnZo'1EKqwZso'1K/qwZU"oZ'1Kq^wZo'61KqwnZo'1EKqwZso'1K/qwZoZ'1Kq^wZo'61KqwnZo'1EKqwZsoU"'1K/qwZoZ'1Kq^wZo'61KqwnZo'1EKqwZso'1K/qwZoZ'1Kq^wZo'61KqwnZo'1U"'k3pT6)]YPRRO.w*]YPRjO.w]&YPROW.w]Y[PRO.5w]YPRRO.w*]YPRjO.w]&YPU"ROW.w]Y[PRO.5w]YPRRO.w*]YPRjO.w]\YPRS5:Jm4kKIq6s;fr9R,RS:EJm4K<U"Iq6;?fr9,jRS:Jem4KIbq6;f-r9,RWS:JmU4KIqo6;fr]9,RS5:Jm4kKIq6s;frU"9R,RS:EJm4K<Iq6;?fr9,jRS:Jem4KIbq6;f-r9,RWS:JmU4KIqo6;fr]9,RS5:U"Jm4kKIq6s;fr9R,RS:EJm4K<Iq6;?fr9,jRS:Jem4KIbq6;f-r9,RWS:JmU4KIqU"o6;fr]9,RS5:Jm4kKIq6s;fr9R,RS:EJm4K<Iq6;?fr9,jRS:Jem4KIbq6;f-r9U",RWS:JmU4KIqo6;fr]9,RS5:Jm4kKIq6s;fr9R,RS:EJm4K<Iq6;?fr9,jRS:JeU"m4KIbq6;f-r9,RWS:Jm:4KicWp-_mU4KIqo6;fr]9,RS5:Jm4kKIq6s;fr9R,RSU":EJm4K<Iq6;?fr9,jRS:Jem4KIbq6;f-r9,RWS:JmU4KIqo6;frB9,RyW.w_Ud#U"Ry.5w_U#URy.w*_U#Rky.w_AU#RyW.w_Ud#Ry.5w_U#URy.w*_U#Rky.w_AU#RyU"W.w_Ud#Ry.5w_U#URy.w*_U#Rky.w_AU#RyW.w_Ud#Ry.5w_U#URy.w*_U#Rky.U"w_AU#RyW.w_Ud#Ry.5w_U#URy.w*_U#Rky.w_AU#RyW.w_Ud#Ry.5w_U#URy.w*U"_U#Rky.w_AU#RyW.w_Ud#Ry.5w_U#URy.w*_U#Rky.w_AU#RyW.w_Ud#Ry.5w_UU"#URy.w*_U#Rky.w_AU#RyW.w_Ud#Ry.5w_U#URy.w*_U#Rky.w_AU#RyW.w_Ud#U"Ry.5w_U#URy.w*_U#Rky.w_nU#h/No1:=Q1Jq)hZ9=1NJq)Zq9=1JMq)Z9Y=1JqU"M)Z9=Q1Jq)hZ9=1NJq)Zq9=1JMq)Z9Y=1JqM)Z9=Q1Jq%_Z)ck1vZ)R>9rAlUR9U".w]^HD.PwNqeV^KMq2%Z)cKkvZ)pR9rAdlR9.,w^HDW.wNqhe^KMMq%Z)FckvZeU")R9rBAlR9<.w^HjD.wNMqe^KNMq%Z8)ckvDZ)R9-rAlRk9.w^RHD.wNNqe^PKMqU"%_Z)ck1vZ)R>9rAlUR9.w]^HD.PwNqeV^KMq2%Z)cKkvZ)pR9rAdlR9.,w^HDW.U"wNqhe^KMMq%Z)FckvZe)R9rBAlR9<.w^HjD.wNMqe^KNMq%Z8)ckvDZ)R9-rAlRU"k9.w^RHD.wNNqe^PKMq%_Z)ck1vZ)R>9rAlUR9.w]^HD.PwNqeV^KMq2%Z)cKkvU"Z)pR9rAdlR9.,w^HDW.wNqhe^KMMq%Z)XckJJY=6]eV^KMq2%Z)cKkvZ)pR9rAdU"lR9.,w^HDW.wNqhe^KMMq%Z)FckvZe)R9rBAlR9<.w^HjD.wLhq]JgW.wLqq]JgU".PwLq]YJg.wNLq]Jlg.wLhq]JgW.wLqq]Jg.PwLq]YJg.wNLq]Jlg.wLhq]JgW.U"wLqq]Jg.PwLq]YJg.wNLq]Jlg.wLhq]JgW.wLqq]Jg.PwLq]YJg.wNLq]Jlg.wLU"hq]JgW.wLqq]Jg.PwLq]YJg.wNLq]Jlg.wLhq]JgW.wLqq]Jg.PwLq]YJg.wNLqU"]Jlg.wLhq]JgW.wLqq]Jg.PwLq]YJg.wNLq]Jlg.wLhq]JgW.wLqq]Jg.PwLq]YU"Jg.wNLq]Jlg.wLhq]JgW.wLqq]Jg.PwLq]YJg.wNLq]Jlg.wLhq]JgW.wLqq]JgU".PwLq]YJg.wNLq]Jlg.wLhq]JgW.wLqq]Jg6clG0hQ1$-Zm_Rc13$-Z_sRc1$)-U"Z_RZc1$-\Z_RcQ1$-Zm_Rc13$-Z_sRc1$D-Zs)5C[P,dR_8J\X,C-*asjLUCGIqU"Jb;lG0YfZsV)C[P#,R_8*JX,C6-asjdLCGIDqb;lGGYfZgs)C[&P,R_58JX,XC-U"as#jLCG3Iqb;;lGYfJZs)C*[P,RU_8JXm,C-a&sjLCPGIqbg;lGYCfZs)5C[P,dU"R_8J\X,C-*asjLUCGIqJb;lG0YfZsV)C[P#,R_8*JX,C6-asjdLCGIDqb;lGGYfU"Zgs)C[&P,R_58JX,XC-as#jLCG3Iqb;;lGYfJZs)C*[P,RU_8JXm,C-a&sjLCPGU"Iqbg;lGYCfZs)5C[P,dR_8J\X,C-*asjLUCGIqJb;lG0YfZsV)C[P#,R_8*JX,CU"6-asjdLCGIDqb;lGGYfZgs)C[&P,R_58JX,XC-as#jLCGHiwt-*wX,C6-asjdLCU"GIDqb;lGGYfZgs)C[&P,R_58JX,XC-as#jLCGEIqvZRkcl(&ZkR?6rE6Rj?.7]UU"Xn.7iMq$H5KOqv\Zkcl)(ZkRX?rE6RR?.7f]Xn.P7Mq$WHKOq(vZkc3l(ZkmR?rU"E\6R?.G7]XnW.7Mqk$HKO/qvZkOcl(Z[kR?r*E6R?<.7]Xkn.7MVq$HKEOqvZRkU"cl(&ZkR?6rE6Rj?.7]UXn.7iMq$H5KOqv\Zkcl)(ZkRX?rE6RR?.7f]Xn.P7Mq$U"WHKOq(vZkc3l(ZkmR?rE\6R?.G7]XnW.7Mqk$HKO/qvZkOcl(Z[kR?r*E6R?<.7U"]Xkn.7MVq$HKEOqvZRkcl(&ZkR?6rE6Rj?.7]UXn.7iMq$H5KOqv\Zkcl)(ZkRXU"?rE6RR?.7f]Xn.P7Mq$WHKOq(vZkc3l(ZkmR?rE\6R?.G7]XnW.7Mqk$HKO&Tv6U"kOcl(Z[kR?r*E6R?<.7]Xkn.7MVq$HKEOqvZRkcl(JZS)CfZP..*aqj<H7kzZgSU")CZpP..a\qj<70kzZS;)CZPY..aqmj<7kCzZS)GCZP.6.aqj=<7kzJZS)CfZP..U"*aqj<H7kzZgS)CZpP..a\qj<70kzZS;)CZPY..aqmj<7kCzZS)GCZP.6.aqj=<7U"kzJZS)CfZP..*aqj<H7kzZgS)CZpP..a\qj<70kzZS;)CZPY..aqmj<7kCzZS)GU"CZP.6.aqj=<7kzJZS)CfZP..*aqj<H7kzZgS)CZpP..a\qj<70kzZS;)CZPY..aU"qmj<7kCzZS)GCZP.6.aqj=<7kzJZS)CfZP..*aqj<H7kzZgS)CZpP..a\qj<70kU"zZS;)CZPY..aqmj<7kCzZS)GCZP.6.aqj=<7kzJZS)CfZP..*aqj<H7kzZgS)CZU"pP..a\qj<70kzZS;)CZPY.n[qm9<7kCzZS)GCZP.6.aqj=<7kzJZS)CfZP..*auU"j\Q7l,Zh=)C\s$X.a\uj\7Nl,Z=;)C\$ZX.aumj\7lM,Z=)bC\$X6.aujX\7l,MU"Z=)Co\$X.*auj\Q7l,Zh=)C\s$X.a\uj\7Nl,Z=;)C\$ZX.aumj\7lM,Z=)bC\$U"X6.aujX\7l,MZ=)Co\$X.*auj\Q7l,Zh=)C\s$X.a\uj\7Nl,Z=;)C\$ZX.aumjU"\7lM,Z=)bC\$X6.aujX\7l,MZ=)Co\$X.*auj\Q7l,Zh=)C\s$X.a\uj\7Nl,Z=U";)C\$ZX.aumj\7lM,Z=)bC\$X6.aujX\7l,MZ=)Co\$X.*auj\Q7l,Zh=)C\s$XU".a\uj\7Nl,Z=;)C\$ZX.aumj\7lM,Z=)bC\$X6.aujX\7l,MZ=)Co\$X.*auj\QU"7l,Zh=)C\s$X.a\uj\7Nl,Z=;)C\$ZX.aumj\7lM,Z=)bC\$X5D]uEX\7l,MZ=)U"Co\$X.*auj\Q7l,ZpC)mYmLd.aApj4M0kxZC>)mYLXd.apdj4MkCxZC)-mYLd6.U"apj:4MkxeZC)m]YLd.*apj4GMkxZpC)mYmLd.aApj4M0kxZC>)mYLXd.apdj4MkEND SUBSUB V4U"CxZC)-mYLd6.apj:4MkxeZC)m]YLd.*apj4GMkxZpC)mYmLd.aApj4M0kxZC>)mU"YLXd.apdj4MkCxZC)-mYLd6.apj:4MkxeZC)m]YLd.*apj4GMkxZpC)mYmLd.aAU"pj4M0kxZC>)mYLXd.apdj4MkCxZC)-mYLd6.apj:4MkxeZC)m]YLd.*apj4GMkxU"ZpC)mYmLd.aApj4M0kxZC>)mYLXd.apdj4MkCxZC)-mYLd6.apj:4MkxeZC)m]YU"Ld.*apj4GMkxZpC)mYmLd.aApj4M0kxZC>)mYLXd.apdj4MkCxZC)-mYLd6.apjU":4MkxeZC)m]YLdn*^pQ4GMkxZpC)mYmLd.aAtjTMNl*Z->)m[\Z8.atdjTMlM*ZU"-)cm[\86.atjUTMl*hZ-)mo[\8.*atjTPMl*Zq-)m[s\8.aAtjTMNl*Z->)m[\ZU"8.atdjTMlM*Z-)cm[\86.atjUTMl*hZ-)mo[\8.*atjTPMl*Zq-)m[s\8.aAtjTU"MNl*Z->)m[\Z8.atdjTMlM*Z-)cm[\86.atjUTMl*hZ-)mo[\8.*atjTPMl*Zq-U")m[s\8.aAtjTMNl*Z->)m[\Z8.atdjTMlM*Z-)cm[\86.atjUTMl*hZ-)mo[\8.U"*atjTPMl*Zq-)m[s\8.aAtjTMNl*Z->)m[\Z8.atdjTMlM*Z-)cm[\86.atjUTMU"l*hZ-)mo[\8.*atjTPMl*Zq-)m[s\8.aAtjTMNl*Z->)m[\Z8.atdjTMlM*Z-)cU"m[\86.atjUTMl*hZ-)mo[\8.*atjTPMl*Zq-)m[j\8D$At]TMrlNfx$vNDQ$x4dU"ucHvdoYN4uN%up()%9%'%R-%COmJJ8w;+M8NR%%)l%%%0%%%%gn%lgtr%gSqnRkU"aV0pp9J3GOJ3YJqMYq1MYqMDYqMYJqMY1%9jv9%jv9j%v9jvcM8d$a33$Ra4hCXU"gj,:Fs^0wprpnx6u/wwvTxPYNIf2_o/Um'h+I%67KN-X9,[=Zk*[iEnLr_su(m)U"xIf&>aNO1B9]]]Zlk&)EjR2_qeme(ps%7:wN/hx9\Mo.kcSIEr<_Gu/m*;*s&BcU"KN3bq9^m.+ls_EIhB_p5]A'l,3%8WfN.hc5[EDk-_3Eph,_t'NA)&3o&#+&=#+&U"$h3&FAQ'g$LTVHtIRe3nO+Ac6^fOHA%+L]ytNAxm$\BbH$\IfSn;Q+c:H2OPAT&U"\]%t>A&W;$J6H-pseC$nPac:8HOLck%T]Uz.AzN7$FL=HhsfOcnRKoc<rO=Tk&dU"i]&NA?hXt^cipcwo8^qh%BAEfL2_oU(m'hI]%67NL-X9[]=Zk[&iEnr2_sum\)xU"I&:>aN1iB9]]RZlk)#EjR_Dqem(:ps%:FwN/xq9\M.=kcSELr<_uK/m**bs&BKTU"N3b9>^m.l's_EhLB_p]EA'l3]%8WNU.hc[$EDk_B3Ep,q_t'Ah)&3&=#+&#H+&$U"3q&FA'ig$LV4HtIe43nOA]c6^O:HA%L]]ytAMxm$BRbH$IRfSnQb+c:2fOPA&O\U"]%>ZA&W$bJ6Hp]seCn8Pac8bHOLk9%T]zk.Az72$FLH-hsfcinRKc=<rOTck&d]U"q&NA(k=vLcYUEZN,n9&7BM%.9)WSZi';?Fvh\_w?1m+2If'.aMI)n9Y\sZjKeiFU"(F>_%_m_-BI(7*wM'LN9XcT.iC)RFz&_GyOm,;:s'2HKM+8q9Z-.=jSSFk,f_'KU"om.J,s((W]M&>c2W[Di'?_Fxhl_xGNA+63o'0+MU*(cY$%DjOo3FT3=FT3hhEDVU"eocCRP=b+(,]]u4AJpC$2RbG#IRgsnS,kc>^fPXA'+<]wTNAt-$b:6GPeIh=n>UU"UcBH2P$A9(4]v4DArc2$6LGHHsg-rnT5c:#HP\ck'D]RxdAvhM$>v=GXshkMnVuU"ucOX0$_W^sKh#CO#)ZeQ.?G02,$)km#yHIy7V7P=2X:QIIZfaiCG8r$E-5m%.XIU"z^baPAB_:P9.1eY)Ge4R$+&%mzP)syZwKP?x:8RY.fGiSG<V<$/ECm&$snzbKPXU"CbdOC1DeU._G2Bb$*sAIyL3y7XWP>5hdQQeDfe3LG:,$r.=A/t=A/g;_,VFc43lU"oqD^ed7&^M(_Awl]q'^A*)m_xb1FvIkQGn[kod*2ML0Ax&r])(AQ.W_*T6F0IXlU"gn]HUd(HTM,kwOt](nZA,7__&LF(oskWn>\5d,crM4kVx.]*u8A0w;_.vFu83npU"Jz\5]-xt*A#Ef2_DoUm'7hI%6F7N-X;9[=Z4k[iEInr_s/um)xFI&>aTN1B9,]]U"Zl*k)EjLR_qeCm(ps]%:wNL/x9\cM.kcBSEr<;_u/mh**s&=BKN3ib9^m9.ls_#U"EhB_Vp]A':l3%8FWN.hWc[ED=k_3ELp,_tQ'A)&b3&#+o&#+&L$3&FZA'g$bLVHU"t\Ie3n8OAc6F^OHA9%L]yOtAxm)$BbH*$IfSinQ+c=:2OPbA&\]q%>A&iW$J6=HU"pse4CnPafc8HO=Lk%Tf]z.APz7$FnLHhsRfcnRbKc<roOTk&Od]&NlA(=vG,.ogU"Ybx'/%*mu((IwF7BO5.:&SiZgAq?H#;\$1K%mw8IexNaOI9n:U\3Zh+eiHHF,$5U";mIv0sw7JwO71N:TyK.gy)UHD&$'3[mx1#sxRHKO;8h:VC.=h3SHkLf$7+3Au,)U"3wHW]O6>d/SqDgAu_HB;l$2SBAw<3nxP+OU:(dUP;dU;od3RNOB+zJq3.pA07C_U"hIbEVIUi]nW+Ad.^KN8Ayk6]+HQA2-_Fp6EfnIj'n;Y+d2H2N#AVzF]-?hA6c/_U"lLEG^sim$nXad:0HN<iky>]t,XA4_M_tv:EnsjQ7nZKod4rNODkz*2N&lx?_m8PU"]I&7MI%.9W\SZi;#?Fv\;_w?m_+2I':.aM)Ln9YsRZjKiUF(F_H%_m-8BI(*+wMU"'Nh9Xc.4iC)FOz&_yKOm,:bs'2KKM+89>Z-.jHSSF,rf_'oLm.Js]((WMR&>cW_U"[Di?#_Fxlq_xGAh+63'=0+M*k(cY%nDjO3=FT3FHT3hEqDVec=CRPbc+(,]Ru4AU"p1C$2b4G#IgOsnSk]c>^P:XA'<]]wTAMt-$:T6GPIUh=nUcUcB2fP$A(+4]vDEAU"rc$_6LGHfsg-n>T5c#bHP\k9'D]xOdAvM;$>vGHXshMrnVucQOX,rn[^th.3wO)U".ZeQ?CG02$')kmy.HIyVF7P=X):QIZ1faiGe8r$-/5m%XCIz^aTPAB:8P9.eDY)U"G4UR$+%#mzPs\yZwPL?x:RFY.fiKSG<<5$/EmJ&$sz=bKPC6bdO1/DeU_CG2B$9U"*sAy1L3yXFWP>hEdQQD:fe3Gh:,$.Y=A/=ZA/g_b,VF4T3loD>^ed&F^M(ASwl]U"'Y^A*m&_xbF_vIkGin[kd=*2M0hAx&]t)(A.iW_*64F0Illgn]Ufd(HM4,kwti]U"(nAQ,7_&nLF(sXkWn\c5d,rTM4kxk.]*8ZA0w_b.vF8l3nFPp\6Gx'4(AEIf2_oU"/Um'h+I%67KN-X9,[=Zk*[iEnLr_su(m)xIf&>aNO1B9]]]Zlk&)EjR2_qeme(pU"s%7:wN/hx9\Mo.kcSIEr<_Gu/m*;*s&BcKN3bq9^m.+ls_EIhB_p5]A'l,3%8WfU"N.hc5[EDk-_3Eph,_t'NA)&3o&#+&=#+&$h3&FAQ'g$LTVHtIRe3nO+Ac6^fOHAU"%+L]ytNAxm$\BbH$\IfSn;Q+c:H2OPAT&\]%t>A&W;$J6H-pseC$nPac:8HOLckU"%T]Uz.AzN7$FL=HhsfOcnRKoc<rO=Tk&di]&NA<(=vb'.vU<9xb:6#Ef2_DoUm'U"7hI%6F7N-X;9[=Z4k[iEInr_s/um)xFI&>aTN1B9,]]Zl*k)EjLR_qeCm(ps]%:U"wNL/x9\cM.kcBSEr<;_u/mh**s&=BKN3ib9^m9.ls_#EhB_Vp]A':l3%8FWN.hWU"c[ED=k_3ELp,_tQ'A)&b3&#+o&#+&L$3&FZA'g$bLVHt\Ie3n8OAc6F^OHA9%L]U"yOtAxm)$BbH*$IfSinQ+c=:2OPbA&\]q%>A&iW$J6=Hpse4CnPafc8HO=Lk%Tf]U"z.APz7$FnLHhsRfcnRbKc<roOTk&Od]&NlA(=v(bDzWGfxbP%:Ef22_oUm\'hI%U"767N-hX9[=RZk[i#Enr_Dsum)7xI&>baN1B;9]]Z4lk)EIjR_q/em(p,s%:wKN/U"x9>\M.k-cSErh<_u/Lm**so&BKNO3b9^cm.ls%_EhBh_p]Ae'l3%78WN.khc[EnU"Dk_3IEp,_Yt'A);&3&#c+&#+K&$3&tFA'g;$LVH*tIe3$nOAc76^OHbA%L]RytAU"x2m$Bb4H$IfOSnQ+oc:2O:PA&\i]%>AQ&W$Jo6HpsReCnPFac8HoOLk%FT]z.WAU"z7$_FLHh]sfcn;RKc<crOTkT&d]&YNA(=BvbZ(:V&xb%f>EfL2_oU(m'hI]%67NU"L-X9[]=Zk[&iEnr2_sum\)xI&:>aN1iB9]]RZlk)#EjR_Dqem(:ps%:FwN/xq9\U"M.=kcSELr<_uK/m**bs&BKTN3b9>^m.l's_EhLB_p]EA'l3]%8WNU.hc[$EDk_BU"3Ep,q_t'Ah)&3&=#+&#H+&$3q&FA'ig$LV4HtIe43nOA]c6^O:HA%L]]ytAMxm$U"BRbH$IRfSnQb+c:2fOPA&O\]%>ZA&W$bJ6Hp]seCn8Pac8bHOLk9%T]zk.Az72$U"FLH-hsfcinRKc=<rOTck&d]q&NA(b=vbnn+XPx%b&BEIf2_o/Um'h+I%67KN-X9U",[=Zk*[iEnLr_su(m)xIf&>aNO1B9]]]Zlk&)EjR2_qeme(ps%7:wN/hx9\Mo.kU"cSIEr<_Gu/m*;*s&BcKN3bq9^m.+ls_EIhB_p5]A'l,3%8WfN.hc5[EDk-_3EphU",_t'NA)&3o&#+&=#+&$h3&FAQ'g$LTVHtIRe3nO+Ac6^fOHA%+L]ytNAxm$\BbHU"$\IfSn;Q+c:H2OPAT&\]%t>A&W;$J6H-pseC$nPac:8HOLck%T]Uz.AzN7$FL=HU"hsfOcnRKoc<rO=Tk&di]&NAr(=v&M)7gj*x%U)%mu(I\wF7OI5.:S#iZgqI?H#\U",$1Km#w8Ix:NaO9Ln:U3RZh+iUHHF$'5;mv10swJ+wO7N_:Ty.1gy)HkD&$3%[mU"x#_sxRKKO;8:;VC.hH3SHL<f$73BAu,3\wHWOR6>dSCqDguI_HBlb$2SAIw<3x=U"P+O:P(dU;idU;d=3RNBN+zJ3t.pA7(C_hb1EVIi5]nWA]d.^NL8Ay6r]+HA32-_U"pK6EfIXj'nYb+d22KN#AzkF]-hHA6c_ClLE^fsimn8Xad0bHN<kVy>],ZXA4M8_U"tvEbnsj7inZKd=4rNDNkz*Nhz])_-o8:m7&7M%L.9WS7Zi;?IFv\_Gw?m+82I'.U",aM)n29YsZ4jKiFk(F_%K_m-B+I(*wBM'N9;Xc.i*C)Fzi&_yOLm,:so'2KML+8U"9Zc-.jSfSF,f>_'omh.Js(7(WM&O>cW[8Di?_IFxl_YxGA+;63'0H+M*(WcY%D=U"jO3FcT3FTK3hED>VecCcRPb+9(,]u44ApC)$2bG*#IgsinSkc7>^PXbA'<]RwTAU"th-$:64GPIhk=nUUocB2P:$A(4]]vDAJrc$6nLGHsUg-nTH5c#HoP\k'+D]xdNAU"vM$b>vGXfshMntVucOWXy:]62t>*)0O)Z(eQ?Ge02$)%kmyH(IyV7KP=X:&QIZfU"DaiG8Ur$-5(m%XIez^aPOAB:PF9.eY/)G4R5$+%mIzPsy7ZwP?2x:RYf.fiSLG<U"<$E/Em&1$szbcKPCbEdO1D(eU_Ge2B$*+sAyL)3yXWfP>hd/QQDfGe3G:V,$.=lU"A/=AQ/g_,oVF43OloD^-ed&^KM(AwOl]'^QA*m_#xbFvnIkGn;[kd*H2M0AVx&]U")u(A.W;_*6F$0Ilgrn]Ud:(HM,$kwt]q(nA,N7_&L=F(sklWn\5od,rMO4kx.r]U"*8AQ0w_.ovF83un0c0Y6gx*%&AEfL2_oU(m'hI]%67NL-X9[]=Zk[&iEnr2_sumU"\)xI&:>aN1iB9]]RZlk)#EjR_Dqem(:ps%:FwN/xq9\M.=kcSELr<_uK/m**bs&U"BKTN3b9>^m.l's_EhLB_p]EA'l3]%8WNU.hc[$EDk_B3Ep,q_t'Ah)&3&=#+&#HU"+&$3q&FA'ig$LV4HtIe43nOA]c6^O:HA%L]]ytAMxm$BRbH$IRfSnQb+c:2fOPAU"&O\]%>ZA&W$bJ6Hp]seCn8Pac8bHOLk9%T]zk.Az72$FLH-hsfcinRKc=<rOTckU"&d]q&NA(t=v&SgDgVx,%i,m#u(Iw7F7O51.:Si.Zgq?LH#\$'1Kmw.8IxN,aO9nU"2:U3Z4h+iHkHF$5%;mv0)swJwBO7N:8Ty.gDy)HD<&$3[#mx#snxRKOL;8:VbC.U"h3fSHLfb$73AIu,3w7HWO64>dSq/Dgu_LHBl$92SAw1<3xPH+O:(idU;d;U;d3cU"RNB+MzJ3.?pA7C&_hbEDVIi]$nWAd7.^N8hAy6]t+HA2_-_p61EfIjQ'nY+od22U"NL#AzFr]-hA06c_leLE^sUimnXFad0HTN<kyk>],XQA4M_FtvEnosj7n;ZKd4crU"NDkhz*N4q=[E\/N$?)%mu(I\wF7OI5.:S#iZgqI?H#\,$1Km#w8Ix:NaO9Ln:U3U"RZh+iUHHF$'5;mv10swJ+wO7N_:Ty.1gy)HkD&$3%[mx#_sxRKKO;8:;VC.hH3SU"HL<f$73BAu,3\wHWOR6>dSCqDguI_HBlb$2SAIw<3x=P+O:P(dU;idU;d=3RNBNU"+zJ3t.pA7(C_hb1EVIi5]nWA]d.^NL8Ay6r]+HA32-_pK6EfIXj'nYb+d22KN#AU"zkF]-hHA6c_ClLE^fsimn8Xad0bHN<kVy>],ZXA4M8_tvEbnsj7inZKd=4rNDNkU"z*Nc4_qE$LN$a%)mu((IwF7BO5.:&SiZgAq?H#;\$1K%mw8IexNaOI9n:U\3Zh+U"eiHHF,$5;mIv0sw7JwO71N:TyK.gy)UHD&$'3[mx1#sxRHKO;8h:VC.=h3SHkLfU"$7+3Au,)3wHW]O6>d/SqDgAu_HB;l$2SBAw<3nxP+OU:(dUP;dU;od3RNOB+zJqU"3.pA07C_hIbEVIUi]nW+Ad.^KN8Ayk6]+HQA2-_Fp6EfnIj'n;Y+d2H2N#AVzF]U"-?hA6c/_lLEG^sim$nXad:0HN<iky>]t,XA4_M_tv:EnsjQ7nZKod4rNODkz*kNU"4-F6ElN$&/*mu.(IwF+7O5.):SiZ(gq?Hh#\$1%Kmw8CIxNaBO9n:)U3ZhE+iHHU"<F$5;#mv0s\wJwOI7N:TFy.gye)HD&,$3[mIx#sx=RKO;M8:VCo.h3SUHLf$973U"Au1,3wH+WO6>EdSqD(gu_HhBl$2+SAw<_3xP+fO:(dVU;dUb;d3RTNB+zhJ3.pHU"A7C_#hbEVeIi]n8WAd.F^N8AVy6]+ZHA2-8_p6E_fIj'inY+d=22N#hAzF]t-hAU"6Cc_lL:E^si5mnXafd0HNO<ky>r],XA34M_tfvEnsXj7nZbKd4rTNDkzq*N4OXRU"EDN+$Q*m#u(Iw7F7O51.:Si.Zgq?LH#\$'1Kmw.8IxN,aO9n2:U3Z4h+iHkHF$5U"%;mv0)swJwBO7N:8Ty.gDy)HD<&$3[#mx#snxRKOL;8:VbC.h3fSHLfb$73AIu,U"3w7HWO64>dSq/Dgu_LHBl$92SAw1<3xPH+O:(idU;d;U;d3cRNB+MzJ3.?pA7C&U"_hbEDVIi]$nWAd7.^N8hAy6]t+HA2_-_p61EfIjQ'nY+od22NL#AzFr]-hA06c_U"leLE^sUimnXFad0HTN<kyk>],XQA4M_FtvEnosj7n;ZKd4crNDkhz*N4ss'Ed&NU"$u+%mu(I\wF7OI5.:S#iZgqI?H#\,$1Km#w8Ix:NaO9Ln:U3RZh+iUHHF$'5;mvU"10swJ+wO7N_:Ty.1gy)HkD&$3%[mx#_sxRKKO;8:;VC.hH3SHL<f$73BAu,3\wHU"WOR6>dSCqDguI_HBlb$2SAIw<3x=P+O:P(dU;idU;d=3RNBN+zJ3t.pA7(C_hb1U"EVIi5]nWA]d.^NL8Ay6r]+HA32-_pK6EfIXj'nYb+d22KN#AzkF]-hHA6c_ClLEU"^fsimn8Xad0bHN<kVy>],ZXA4M8_tvEbnsj7inZKd=4rNDNkz*Nl4?=EQTxE_12U"_o+%muhI]%F7OL-X9S[iZk[.?H#r)_sKm[wxI&:NaO1NB9U3RZlkiCHHR_&q;mvU":ps%JFwO/x_9Ty.4kc)HMD<_u#[mx*bs&RKTO3b9;VC.lHsSHL1B_p3BAul3]%HU"WOU.hcS^qDk_I_HB,__tSAgw&3&=P+O2cRO2RTOB+zg$3&pZA7g$ALbEV\Ie3n8U"WAd6F^O8A8yL]yZHA2m;$B6E)fIfSinY+d=:2O#_Az\]t%hA6NW$JL:E^se4CnXU"afd8HO4<kyTo]zXAQ47$FfvEnsRfcnZbKd<rTODkzjd]&0iwELWsVhwT#&_eQ%?U"Ef25$)UmA'HIy767N=hX:[=IZfai#Enr$E-um).XIz>baNABq:]].1eY)EdjR$+U"/em(P)sy:wKN?x:>\M.f,iSErq<$//Cm*$snzBKNOCb:^EmDeU%_EhBk$*]AJ'LU"3y78WN>khd[EeDfe3IEp,$Z.'A)1\3*\h3*FAQ'g_,oVHt3XlonO+Ac&^fMHA%4U"l]'tNAxm_[xbH$nIkGn;Q+c*H2MPAW&&])t>A&W;_*6H$pIlg$nPac:(HMLck%tU"]V(.AzN7_&L=HhskQWnRKoc,rMXTk&.i]*NAQ(w_.uVsT.tLH5x8>,p%1.9O)7ZU"i;?LG0\_&wkmy82I'V+7P)n)9QIZ4jKiGk8F_%J5m%BFI(^aBP'N98P9.iEC)G4U"N&_y%Imz:s]'ZwPL+89RaY.jSfSG<f5_'Emh&Js(=bKP&4>cO18Di?_LG2l_8xsU"Ay;63'XFWP*(EcQQD=jO3GP:V_<iV_<V=F43hhED^eodCRP1(Aw,f]u^AK*C$2IU"bFvIRgsn[,kd>^KP0Axa<]w(QA.-$b:6F0eIh=n>]UdBc2P,k8w4]v>nA,c2$6LU"FH(sg-rn\5d:#HP4$kxD]sx8A0hM$>v=F8shqMDdh$MT(l-Z88=.'Iw&+7M5.2:U"WSZ(gq?Fgv\$10?m+8CIx.aBM9n:)YsZhE+iF(rF$5_Cm-0s\w*wMI7N:XGc.gyU"\)Fz&>$3OmJ,#sx=2KM;h8:Z-o.h3SUF,f$H7om.1,3w(+WM6>NdW[D(gu_FgxlU"$26GA+<_3x0+fM:(d5Y%Dh$/Dh/qDVec=3RNbQ+(J3S.4Ap(C_hb4G#IiP]nSk]U"c.^NUXA'6$]+TA2t-_pT6GPIXj'nUcUc22fN$A(5F]-DEArc_^lLGHfsimn>T5cU"0bHN\kW'>],OdAvM8_tvGcXsj7rnVucs4rN&B8xx]?E#xsIu._o%+muh+I%F7KOU"-X9&SiZkB[?H#1r_sK%mwxIf&NaOO1B9U\3Zlk/iHHR)_q;mdvps%7JwO/2x9TyU"T.kc)LHD<_&u[mx;*s&RcKO3bh9VC.=lsSHJLB_p+3Aul,3%HWfO.hc/SqDkB__U"HB2,_tSKAw&3o&P+O=2RO2cROB+Jz$3&upA7g)$LbE)VIe3$nWAd76^O8_AyL]sU"yHA2hm$B61EfIfOSnY+od:2O1#Az\r]%hAQ6W$JeLE^sReCnXFad8HTO<kyaT]zU"XZA47$GFvEn]sfcn;ZKd<crODkSzd]&-0wsbd_Vnw%$&Ne&Q?EfU2$)U(m'HI\yU"67NL=X:[B=Zfa&iEnr5$-umA)XIz:>aNAiB:]]K.eY)#EjR$E+em(1Psy:FwN?xU"q:\M.:fiSEgr<$/0/m*$_szBKTNCb:5^mDe&U_EhUB$*]EA'L3\y8WNU>hd[EEDU"feB3Ep,t$.'AJ)\3*L\3*FZA'g_b,VHto3lon8OAc&F^MHAT%l]'OtAxm&_xbH$U"$IkGinQ+c=*2MPkA&&]q)>A&iW_*64HpIl6gnPafc(HM=Lk%ti](.APz7_&nLHhU"sXkWnRbKc,roMTk&P.]*NZA(w_>.Vs$Z.eEKcwh),I%.9O[)Zi;I?G0\)_wkm^yU"2I'7V7P)1n9QIRZjKiUG8F_E%5m%8BI(^,aP'N_9P9.4iC)GP4&_yA%mz:,s'ZwU"KP+898RY.jHSSG<Wf_'ELm&Jso(bKPR&>cO^1Di?lsXmgNi4st?X<qc%6666%66U"66=6ji5%6666WVF077rXFYhzh5.iONNoWrkVMVBDnLsZ.3Wc'X(DLhK3HD[^Q^<U"jX^Nac*a>q6e$qHEkA.;'-[0KDpK4;H\(Ql(j\^sR7*5i>Fep?qGkC^d'c[a,DlU"uP3r[nUQnjZf^PM*PK>>euhqFkLBN'M9[4DtuU*e[_]4<pjQ8?HKk0N*lwY>D(DU"kQ&RLp97%n=R.i,t//49%e>Vz4?5-bQQBVV4:0V(?.;$1)[uNdnzRXdqHNmT5g,U"Qe#LeWvG9A.54'3T[FD0Ca3^[[lQlj,W^MCT,A#2ke\G;AA7t'as[ND/8a4^D\6U"Q6<j[^Qkm,k#VBelG*:A6T8'S[JWD45332[&Qk&jY^UO-,+i#:ed5G<A8h>'=[jU"RD<5P42\FUQFj]o^SW,QU#Jeutq9k.5D'CT[HD2MK3H[[tQtj,X^NcT,a#6te$qU";Kk7.'b-[PDM:K4HD\>Q><j\^Ru7,5#qFepq-:k6d8'c[LWD6u33r[.Qk.jZ^UPU"M,Ki#>eh?q<k8hN'M[D]4<FXQ416NrTJet.qTkg,N*w*Y3.]&('kpE;7ngRR*,tU"Y/.E'%RX[p<#5b][Q03DhQz4<ZN+Z.$x+2VZZ4x-j5V6Rb^tQt<jO^EaC)A=UheU"<GEAA=^;'][6BDva5:^]#Ql#jS^UIm)kf=xeL5GCA?rH'G[4>D(ae6^^$XQ$jQfU"^G-)G+=peWDGBAj>(''9[:DzW552]oPQPjbU^KWZ)U=*keTGDSA#h'cg[BDk,56U"2b^pQp<jP^Fac)a=ple#qHAk=n;'m[8KDxK5;H]HQlHjT^sJ7)5i=&eP?qCk?rXU"'W[O#D*Kh6H^hXQhjRf^HM)GK=teuHqBkj>8'7T[<D&Wu5r]oXQXjbV^Lw?)u=BU"TDSg'qE#Hka0pQ8?i0^4uw/u:fB7?+L)[eSEJaU*^/5p:V9h*)M5;e]QFK#'.;AU"e*P&DUzt4<8wu2s4#5NvJ&2Gn4dug,e#L(eRG*9A548(3\FED0a1(^YlQjljg^7U"]C,AK#8eb5G;A7^t(s\4ND8aJ2^Z6UQ6jkf^am,Gk#0eVZG:A.6T(ST\JD4W512U"Ye&Q&jGi^_-<,+##hejG<JA8>(b=\RDk<522DZFQF<jm^cuW,U#g,eVq-9k5D8(U"C\HND2K1)HYtQjtjh^7^c,aK#<ef?q;k7h.(-\OPD:KM2HZ>UQ>jlo^b7,H5#4eU"t^q:k.6d(cT\LD6Wu1rYe.Q.jGj^$M<,K#Dqenq<0k8FQl412R9>bDTuU,u;$XeU"dq-Tk,L=p9B7(U)7k4p;;NAgR*zP4?9h**(_[Op#0(D?';+RR#'es2xs$k9p>wcU"$X0WTtQt#)n4dC9)A=(heRGAAA=4(a3\6D.va1^bY#Q#<jg^]km)k=L8ebG*CA?U"t8(s\>ED(a2:^Z$Ql$jk^Ua-)+K=0eZ5GBA>^T(S\a:Dz5k12YPXQPjio^_W)HUU"=#eVjGDAL#>(=T\BD,W522ZopQpj,m^cc9)a=,qeVqABk=D(aC\8DLxK1HbYHQHU"<jh^^u7)5=g<efqHCk?.;(-\#ND*K2;HZhQlhjl^UbM)KK=4e^?qBk>^d(c\j<DU"&uk1rYXXQXjjo^$w)Hu=Dekn12R9>BDSig(MZbm^<wu/u:XAed](I'seOEJaU)^U"75p:/;N'RUX%D[ZFK*(R_3DQZ<+Y9WR?.;uqPX(ftD>u#d4a7tHKk=I(4)mo-ajU"9)ReLRRtaio9^nD8I4a7H?Kk=(g4)m-Xaj9R&eLRtjaio^+nD84ga7HK-k=(4;)U"m-aQj9Re%LRta<io^n'D84aq7HKkB=(4)bm-aj39ReL[Rtaibo^nD#84a7tHKk=U"I(4)mo-aj9)ReLRRtaio9^nD8I4a7H?Kk=(g4)m-Xaj9R&eLRtjaio^+nD84ga7U"HK-k=(4;)m-aQj9Re%LRta<io^n'D84aq7HKkB=(4)bm-aj39ReL[Rtaibo^nD#U"84a7tHKk=#(4_hm9Wj9)ReLRRtaio9^nD8I4a7H?Kk=(g4)m-Xaj9R&eLRtjaioU"^+nD84Ca7^9X^k=b2ereH.ta8^n9^k=Mbere#Hta8^^9^kN=ber&eHta/8^9^QkU"=be)reHtCa8^9X^k=b2ereH.ta8^n9^k=Mbere#Hta8^^9^kN=ber&eHta/8^9^U"Qk=be)reHtCa8^9X^k=b2ereH.ta8^n9^k=Mbere#Hta8^^9^kN=ber&eHta/8^U"9^Qk=be)reHtCa8^9X^k=b2ereH.ta8^n9^k=Mbere#Hta8^^9^kN=ber&eHta/U"8^9^Qk=be)reHtCa8^9X^k=b2ereH.ta8^n9^k=MbMqA#Gta8^^9^kN=ber&eHtU"a/8^9^Qk=be)reHtCa8^9X^k=b5e,eX4T57^n:^l;VZe,eRXT57^^:^li;Ze,\eU"XT5/7^:^Ql;Ze*,eXTE57^:X^l;Z5e,eX4T57^n:^l;VZe,eRXT57^^:^li;Ze,END SUBSUB V5U"\eXT5/7^:^Ql;Ze*,eXTE57^:X^l;Z5e,eX4T57^n:^l;VZe,eRXT57^^:^li;ZU"e,\eXT5/7^:^Ql;Ze*,eXTE57^:X^l;Z5e,eX4T57^n:^l;VZe,eRXT57^^:^liU";Ze,\eXT5/7^:^Ql;Ze*,eXTE57^:X^l;Z5e,eX4T57^n:^l;VZe,eRXT57^^:^U"lr;Z'+\qWT5/7^:^Ql;Ze*,eXTE57^:X^l;Z5e,eXjT572Y92khWH)')r'K_,2eU"zePtnr%^Yy^C6Uc:29l2khHk)')'YK_,eDzePnZr%^y6^C6ck:292WkhH)W')'KU"Q_,ezeePnrl%^y^EC6c:r292kkhH)'k)'K_N,ezepPnr%r^y^Ce6c:2Y92khWH)U"')r'K_,2ezePtnr%^Yy^C6Uc:29l2khHk)')'YK_,eDzePnZr%^y6^C6ck:292WU"khH)W')'KQ_,ezeePnrl%^y^EC6c:r292kkhH)'k)'K_N,ezepPnr%r^y^Ce6c:U"2Y92khWH)')r'K_,2ezePtnr%^Yy^C6Uc:29l2khHDIzozYK_,eDzePnZr%^y6^U"C6ck:292WkhH)h=)=5Zl'^uc^?$hM)=)=u5l'^>u^?$Nh)=)t=5l'r^u^?O$h)=U"q)=5ll'^u^T?$h)h=)=5Zl'^uc^?$hM)=)=u5l'^>u^?$Nh)=)t=5l'r^u^?O$hU")=q)=5ll'^u^T?$h)h=)=5Zl'^uc^?$hM)=)=u5l'^>u^?$Nh)=)t=5l'r^u^?OU"$h)=q)=5ll'^u^T?$h)h=)=5Zl'^uc^?$hM)=)=u5l'^>u^?$Nh)=)t=5l'r^u^U"?O$h)=q)=5ll'^u^T?$h)h=)=5Zl'^uc^?$hM)=)=u5l'^>u^?$Nh)=)t=5l'r^U"u^?F$h_;p/;5ll'^u^T?$h)h=)=5Zl'^pc^:<7M7H7HEiTT)CC)CKNZZeVee,.qU"kq^p^T:<77hH7Hi/TT)Ce)CKZMZeVeU,.qqr^p^:O<77HV7HiTCT)C)UCKZZ2eVU"e,k.qq^>p^:<N77H75HiTT/)C)CPKZZeDVe,.Wqq^pc^:<7M7H7HEiTT)CC)CKNU"ZZeVee,.qkq^p^T:<77hH7Hi/TT)Ce)CKZMZeVeU,.qqr^p^:O<77HV7HiTCT)CU")UCKZZ2eVe,k.qq^>p^:<N77H75HiTT/)C)CPKZZeDVe,.Wqq^pc^:<7M7H7HEiU"TT)CC)CKNZZeVee,.qkq^p^T:<77hH7Hi/TT)Ce)CKZ/ZcVWU,.qqr^p^:O<77HU"?NkC\i78HNckC\7q8HNkTC\78tHNkCO\78H?NkC\i78HNckC\7q8HNkTC\78tHNU"kCO\78H?NkC\i78HNckC\7q8HNkTC\78tHNkCO\78H?NkC\i78HNckC\7q8HNkTU"C\78tHNkCO\78H?NkC\i78HNckC\7q8HNkTC\78tHNkCO\78H?NkC\i78HNckC\U"7q8HNkTC\78tHNkCO\78H?NkC\i78HNckC\7q8HNkTC\78tHNkCO\78H?NkC\i7U"8HNckC\7q8HNkTC\78tHNkCO\78H?NkC\i78HNckC\7q8HNkTC\78tHNkCO\78HU"?NkC\i78HNckC\7q8HNkTC\78tHNkCX\7bE=zeC\uwxXvpdNl8uxuVg<8NldrwJU"o8%up()%9%'%R-%jSdKJp/5M6k%%%%E&%%%.%%%%xy%fwZS[qnk\M//4/P3Y//:U"(bUe\a8Q;7.;Z)_Z?V)&RnSE?BF9)bSU1E)/a(QB;.KH0:GKe2aVP*LqQ3HH9[aU"/h#-oB[E7IG.092'5Y+Qn7[UB37K^:I^<g)RB?4[\4D%ZD#QG%E8R%Q21'/#&N)U"8Q/n#f)1XEQFQ_/(f)R#):=75'tpO-e50f)tT:]w7+t%y)QG%';6&&Z%%u%p()9U"%%'%-4%d\KOJ$0C*o44%+%;V%%%-%%%%qnk%jSgfFx^_:GBTm]rX,^xVOG,:1VeU"4vFs+>\T^^#uOBN)a[lwSjkM3eMha'uQpAa+=Hvn,o&jTba8hp_CMDC1b/7%\+$U"I7%]?jZ:Vle1I6Y-b'vu(ugHkvDnx>>DQPM1f7IfXlVx#stt*W&%XHk?'UfBgBaU"+^2Vs8m$eYb=D5o-Hkkza(dfvd8MHR+h5>nKT0.DwT6<a/i(q.5(wi]9ZHKl3bwU":vY<sMs%A2t)P71HvY<k+xN8JwjArhNr^;fq2+i<z^puGpQcq4B^']+#qpO^ruhU"JINwf]wRdc*T[c,_6G?+ErFDRs'-pkcX6Awk_<=bP/[YTfkL3PEXeGcnG83w>[%U"g/,N_Fe.b0^1B&G^P&G^GuLELBJ['0:CcE;dc._aoDg9#c92\GELBi46I*c(t)]U"0O)Z=LiTwjk*zuew/2.\'md?I$>^:SO-*Q=m[S;C7+depFp[KR'6\RIDfqeE=:FU"mXI%UGX3pf*6#284b$>g1dCW7+C1bLm?tX=]Yy2jsN/[riJkQ:1\(?3N9qn?ie(U"h0-;sSi^/a>:7&9Ao6(pic)H.kFY(jwJx2$:%89Hv<pUI[$=I)fw5JpEeI.v)e0U"oq4r%N56H+erPnH,h1VF[%?3n;RZ$LrHlCSJG_Rx)Z5J^3_70.)$)5OrSJ]B4m(U"GUL;m;9k&ZJ;1L#%I'PI9P_aF;3nbOQI#'9dP-*ma9HV'H/?]GmXQ,4$mRm14]lU"d4Z^%'K)H6ReIa&^erfuYC?Cglev=/BJ?>Xx-\b#q'Ym;5D&arMjFE0mb$O%DJqU"'=np-skm4OX?Q9P89fFr7JYeS9fbti1Tqu[Y/&-Yej(FY<,t%'R8DO5mUW0TFl\U"gA:YBZX$c]2gZFtMg:hr/MO5s(/GD1prQ)U]'^VEv'k7=xWP'ni_?GKw-n.(id4U"ZCn.)()yU?)V=eSIh8$$AT\xpF#H<39&.Z6JjJ$a]>wdI0K=nf'6Q'7PO1]3%9hU"EhE5.-N:Q:bs*eyz:Qf5_5Nk$VQerMP0Yk:He>0N;0<WKp4o*VeikxdKBjkw:p+U"^4DRrV^1CEe7XRU$tq?:AAaw?id#Y4I9+abjVP##t_awt4UUDEgVoF#n<&v&#u#U"t4g.ou&F;QlS6X*_-JRijA6GAZeXar)C[Dh(*tf#5KB*,N)yC%bD.u$PXBrP^E9U"Az0Vq%7v9=)U=8SdZE(o]qvp]aWmL:,NqPCx.E=*vU]?0fg59'sxnZpPp&_LVHQU"Vl[(d1dD6u-*CH94^0Ovd5nS']fOIqMN;>[#<(G1rvdIw33PB8/Y:2iZEwiofP*U"vXuhnZ'4\eP8oS)5g&D,h=lENy4S+iIQd_TrVbP:L]qC2G9nz&Y3Jk$v.X?]L<NU"X/MgHe<UvZ?7Z:0^z;e/(#%.qtSMr/)=zg$$#D0'47CsqJr[alprFN6&4.&qR'=U"tP88E+o8YdPM]'>oM6m#GeOp8:6t0D]Fp,5+mr0GXV4_<RTTuC]b+u2Z>dT7x+^U".R0=lX;NWQD5C>)0'v7k:2HYcUH]b2bnGO8b't*-P9%#G1jquH2oMb'4*/4.3=qU">6,$cInTpOm&PPl<9&*3l?K&DoRA?CnNk?'$kT,vqz]BOF]69kLP#+Y3UN4V/9ZU"&]+v=^k#:G*B[>Gycp.u'HjI=7]$G59I)gii=U0.,Eq2lvV'm34gKt:xsAQ_aP]U"?P0WRe*.v-hHEzhjDGI]7*g7S;ffvnFUu]5CZg;Y3O+_%0:KYq#V_YDG9I/Rzj2U"5V&Bk[%LN(o=UOF)(gPo%I6)p)B406buOepF&numO^T'ksnL'.sp$U*F]j<?q$PU"M*#gQ2Dubd</]HX+ivnJ(fTW<Rt-Bh&cF5VfJKE7o:>K1M>QFxW*li(kMKEVr*JU"'0a7Y8ExeHYHe1Mbt'.AXt&KmkGeWn-7JR[;\frY]oXg<Et=qN4,PL,,\wx:CMnU"bTu9'[x:K+X4e'^HU_S2sqKR.+sMET6+%;G>Ta(G5ButaunRKVR6ZQgICX-2<vdU"$Y^F+t3=/o=q;MJB(EhamJ+lVcIKJFQX>U5S0]#0bQ%sCeGCWI=94v8OgL=NJ[fU"0%MNHJWoI<:Af0M0WPZ]66,olpu#ZnSh5F;[&,hD+p_pP*'KGuX2J='>s/x3f*nU"0R5*?#4RXe/Y_JfOPuAo>OWVEQl'-Ibv-Rt,.X]Pa64W/\;8W<9Yxt<$1=_XL0#U"s-&:Hn1rHRACVt6T,]4u,;X?Cf**fAf83&VejAC:3l?cM.s=*JMIib$-.IN4j(7U"3Rg1^+A;G*A8ZkSxL3k$08K:(E9G&;Qg4:(SR5j)4D'FWC0]\M.45\G9QGm)U+,U"?-G?_(L\54a4m%VDG:-rEzJgQ5WXEfBS=I=?4J7kjnjsbsJugGqBsa<DQ#?5aUPU"pgI8kG=%>5s](XBeL_.V7j(l'U1TU#S]PN9obWW2?huIkn&u\[Vn,0l=?4/>o[hU";r6VB*%lOyNH;.YY3xKG&*K[59Qso^xtW;PEpD6G\:Adb_9;(<+T4+$p(L?>4bZU"_p?sbgUIx<sMms_H_K1ktgbG9*OPLz>0b)Xi,-+[T-Ymt8LXu)=DcFYlwNzu&^(U"DY5P^qDOL-jk7F]vcX/vgk#\/LHR9kRiIKF;$tYsGY5B#0bb5$o?p$lni*YptjEU":$8UROash;g6),59h?hBhnKcXYv/Cq2wJH(6lRk:^*SaIaMX-Osq\#$m$h$g(F)U"Iu3si/V7me/Aju;w_CrQF*#wqAAzEV;-1M[a;_c0F(,Vd5io.[s>HYS-u]O?*ljU"t0UfW3boKWU8>JVnJFYg-pU^nJp?qfqqx;oGX=$>.3[._)&FhpgqVhXnE>YH?S]U"Zk31tKJOfG=^+.B[sr%'T%0ZfgC)_eae7qVmK45TQA^w*X1%^GnWA,3l11YdKWbU"9aeZxZ/u$nNIVpQB=tQWMpr<M4lZ3KPNs+<wd^omgZHnl[v:kXL,u+H6LZ&59xUU"fk%>5g+$t\h,p3U#Kwg)U]g6\Y%8g.34I4kw=r-;JM=CHMgcKdCw5vX<TM[7ABKU"[%SzwxKVPuOmGN]:G+q8I>Z?.Bs>X=I_'Pr*/U=TWJ)S_/FR#pyLID8VR[U1hX*U"+q*X\Jb)DFd^eNBx'IdV:s1JgJf2jcDuLuZ-5NN.&IAb8pT-dPw_/mVb7Fnm^bvU"In$W8k.-wmpkW?2Whh<<PfoIn8V*nFSa[X.-Ialk'1H]&#[Ed*_j'kag1Zn0i)YU"ZB:uBY;<7H0ujeO:X>RQQeD;;H5-CB52tScLm?uPGilq[DBOexMDt.b0h#c2Xn=U";(&OtslIO53EZ;lMn-H7_<4>tv/WHU=]rd?EROp,hV1plgkJ[J=76]*nQ]9tIfpU"t9b#Xf;nJgCO+$%ph\/+SW=Ts]Hq*v)D>te(h#LkO*J=I^=a<X]/shoP,=cpppVU"m<P9<(GP]aUQM0mQLFnzb.dEF1;;as?1&r*XPQaiMVXlO;,lJj*f;*x[WsU]Cq1U"(F0JG#-ii>\e],3EgD_&<VjP_[q.oC%w5lRbpLYf)j?1G;IqpwaF(U^VyX,LtB]U"I4;)wVH5LsuW4-N'kpvdWc0sOmxNTO'g;&:r#c&_v:?M?EQQ=6BZ-?6T=oph:/PU"*;e2r%,U%60ALU0eHbO4AN]Q'A[DX*9.L-=lb.M0r^a+=h=Q_%goFXPF*aK>HAHU"jNEb*%gz5jEF1%KINbhD=N14byo5MI#kEpyxh'_W37sh2-qCJq5DybJ=<)e4okcU"nHMqr<uvQvXj_=9gPHfk$Iq8O(r(p8\,l6D-^1q;+E?EgkF4F(Ng8MiPa<HIQS3U"nZsh/kaOnG?Po)U_^-=[;*+n[1Zo0%%n/]\JO7*,M.Ju=Koo4Bh%&^ENi7Bg?dbU"=uQ,'a\TZpKcmCC^<\+'Bd'SsTQWpjM3*#?prK\*VcbTd(v+r/cQC-eVFHJm$8?U"WC]hEM7X;^GQ-w,[926$H^hG&;YM*8g[/Sbg-l&gNm-0-4<o*gZBQd5v/;hWDi]U"R[.2K>+fkfxP0o/k&d8yXPt?Yx-'#>sp1b->5hjo^Maco0^-a':B\[&(J;rl?n,U"oYva*8t:kJ]d:8biPAe;<bl=x7GZFecPu>*=ZY^[yAAC=efx&LOLX:>tS0r^[k,U"Q*k2P+-w1a0p^NhBHaO.XuR7f8OTbHAkQG5,5\\,53V4)V$G_FHvgg)E.1xRjy9U",opku#.n651DK*00cJUb5A\$+$<3+m^G/VpBentME-2?5tK)51xDbf3]*\d^mJ(U"yx68u(MLrXbeJ5uZBV8MIpUYQl_<pQ7]=oE_'MpM1B1uJZn\kRB2#kL&g2l5\;.U":_t8kjI$5<eTwzpurP8xL=NmDpQ49_eLo:-=E8J(>PojYSEZFEE9vz7(Wor6NszU"'L2rT9%wp+9h%)uusWNqrU6n\OfqMuHxvsV,]6<AQt#s\RW'EuyS:c(f=HUWgh?U"tipX]%SL+T=Xa7'b#P0b22lBt<Y0Y1o2(PgX_U?M&rl-\-60sPV(RTO(m]Oy2a<U"wjmXyZ\#Sn[-GL,ZCfkk.?%vu-oJ2z'x*iXc9kph]aZ4E;fdm'K2b18ICFuwqKhU"_\z82za:\2q&sCJ1ta9G$:8dN+=+tZ(mqJC9Y$B3.QTmB8,H-JQd20T*c]6R6iDU"_#p,GA3\)%mUpBM7Y$K9ulX<AjCa#60TSq8PAsHC/kgK$EaM6lZ&$dfZ3#+H_kwU"1$k91Y/enNJ>5%?^T7TtR*qITA.32tm4]43NY%HOOgKLz+X(.;T3ID0sgn.YB6xU"cC.=#n-'$2U'Zl#ArfSQn'P1?*K5;aq]/%8bA\.qVCuE,4i1YM1K5d+u&bUCFshU"'BK6acqGe7F\:#J73G7X;z]8QH^&Ijl;<L,L3t.c8b:-2?8;Jrr;Vnj')PTTWH;U"jbonnxJ0Jn?h;fUk*E.?dRTTgo?4jC^T)BmxkQNmDP-#U/0xV*'Gl#6j8Fz3>YRU"L=NE7>*u8f:2kv0v,iMUbI2rGP8S91NVjL4njj6oAZF*[Z]'bvr%d&up%()9%%'U"%-%):tLJG,3F3&12%%&=Q%%%1%%%%qnkj%jiny%Sgfx06?<xo[qk,b%rD3+]d;sU"fmFot=M4dBIgu=Pf1):Z-c7)7aZ.Fjqao]r9n\VX/bq15YFd2B\:ZXvaWvWLZLVU"BV,Rv4%0<f.,06\g?R8?d%*]I.Q4h#YBI-g?;(\ULPV]lI^dE3/ZK9_A;)?LGc)U"03i.eZ)IOW,:<&OPmQ6ki-NITld%4tC[?o0B_]sLAJL1<&BYUk'w?[5d^IL*D/JU"^]Wj3%a'/=C-j<n;8P:SM4'Bc)]d5aprW$K.sJVA1CXDuN?7clPSrXbXtpWhdoVU"NPXW2^Z94B#PTkO_b.>CYC/?r)DRB*1a++t\PSaBHHkYXtig5vPLKOp/Am$5(E8U"+/[lfUB#umB\^1.0wqkzZie]wkWIgW]a8yDY;Lq)'YTDRQx:PVG_2FAEx?-71//U"3VD%3[0(V=&&9n'D+LpQsh(.4QuGK$JT5&6O^c?ka)6&Qy6fW\Pp8nZl4S=3U'=U"g]*V?NZq=GqQ/2*qE*TOSLlH;J4r[OxI6-MMY,56?XU-55dbibm4-&(Ux(Xnd87U"1a6Pnu3=^=):t0i5S)P?$+n\,V_S:D0u$0.4<u#NVa,V8uX^Q#NuLr&G-EsUr/mU"=vbL%:R[[_K1?Oxv)nQI]q;DA([8Dfadd.qk=>tHR]6\6bi2:nLU(\cAZa*bL[4U"kl\NZVBFQhWa/W,N:_h:caWh.Den\huTD_#TGpRCjT--',#x9&Z3f?tDO:Lm5\_U"rw:s&:+&y#rvAu3nM'1yk*p3L_Jt.$I81#Fv()2['3NuvDK&g8V*>jdIF:mMj6hU"Um-a%c$Fyf&r=>pjM1EX4fFEhdWzr==55WI<f=+KTNVg9*:(HhwIZUh)0M19Cp+U"oeEmA4_]p_DQJEF',baKsZ]=K7/R6g\11vV,p0xLl2tOWqHX1vk-XS/ohfqf6s2U"uHnBc.\H(3-5%:\7.&7x(GS]ce4&N,)PqVO>3N1]W0sULRjD[3a#^7rXSOYIYj4U"Yjr>7K7+.o'JKA2,n.xct7[Y[\/d:[R0yEd*^H:[B#4:Y_:EL3mc+&>_wUK)ZX?U"Ig-9h-xH&sj#ZF:wonnXrmIkD6*i%lH8<N;Mf8:Y1N7>zP=n\_\WUFK7S(oT-4cU"opw\=XjRuL)jRLVL7c;(Qr+4^zRckJa&RClq^G9/gXp='BJXGsU:ir1XHUbOLCKU"Q-lEjgJ1IJ<9R93\LA[DaW^>I;996,&hXQrSo*WXC6_RW&hhWD1IgCwK_0dPp)pU"K2Ri0Ue'qp#'b^a0:O+Mk_x)(lnsCYJK6HRYq44HUab_?&V#kww$w]S#?V0GyVKU"r\v.ZMEQ&]tHTbc>VNLkHfL;[goD'<#rwZ:_g;y#FZ$*y3X9g5Oy(:[AH#OngwRU"L[Lp$1wI4?tTF4S^iJOb+#=nXiJIi?j0]7fh:1[>?Qpr/JY>[*f#78YP<RCNQySU"/sn*I+lb4/AJi9n[bNZnkf#sG;CkQf#k?#2?rdU3R7+^6uDDp)H;YWOgCTg0Ek?U"qc$%EZUalXb8FH+qNQNYKAKuhSIqe4h>Q#N8CORT*ib/N?]wAX(uGbh:?78ZF]EU"t]u5/86U-GgF#EWD$uDM'B[u8cl<+?pzV$koecaR_Ri?_;d/KhM#'S&#q[iZWxqU"Q*JONSr:KbGc?PU/D))xIEmAsJ6g-q>hIVI'iq?p,kL:Gc-a=8u69jO%*cp?Q2;U"$'(fmOwLI0G)7(::R*n>ZMtxdIvSK)&^UAV93-ZcAnC>7cy?:Aa.AoyH0S9Etr,U"F)dSG6HmBnkzj6%*=8q[Qmtk&#*OoTa%YVQKMVISF/aNqUUMm6Q6hA3[tF),ddoU"BjO8&qrK7)c(q7[8PiFEzM,3IR+qHPd[r\e3GZ5UxCBMf]Z(AhC$0Aj3O6KLKCxU"]GX8PIStuQ*YXjG8*]?P%u1BB\I8Q6HI49%O9=75d&z(H<W6l+QrB*,%;fu]g=DU")-;tcT6l:>M%VH\0#Lk8Yv>T]bw^5XHYQ9WTbNB=&49nC[6a[uh(zw5i=tc&KDtU"%-D7MX<Db>0vB_$^d^M_bCej)$dp/,_3_UCBXR/Kp)tXJl%.?>VV=LBXPJ<vR5;U"7Q,MY(,r0L^HiT=o5dWja2tWRo+pYn(hc^=\l4AuRFs:/x9Elh(9n0qMia,B$Q(U"bL/Lbek>w-\q(oA3ssN%dQTV/YVXdMcaOST[OS]QciL0-/3-K;R=^/SV+85WjRiU"6KoZ%%JUrhRWma+G#+^K0?^CZryR.S-m76Y^H.#XaHM;Q^ly^_(=i;,B's*rj_hU"e6W2/:kMn\QU(Mq]Um,tsh<1^[JqF#cr.C;7,[j*szNcQDL;w]</;+^jQUex-P3U"ixBd4R&AjYTAN)Z),]ALW$_.wu-J+Jaz+w-0:P%7'8)xqNjDXeP&ms:AbV:U>qsU"J$VPfvBk..M%&3foN:g&i8KqqjvO0hU(<MaiHEFq.H[3gHl8.h9gNl0tpmj55QpU"c3')VZ6_YBChY8HoTdm)_[,4xmprIk%f<tHwH$(]u/xQ#A?cvbFkj(viP2I9>(SU"O\wn0:&./L>L[/g'(j1F_i/,r/:QNnK6VUT:.pU:s<s5v]hy/i#>CGUR->H:,[mU"jCccelQGSXe9-Kfi5cO;VC][r2s7Lq%#?GgrWYW+C8UfWlvdPxV;H'lH.QVonjxU"M8DCbOlq(p'KCn$&)hxuBjMH7CIFG'<r(_c8E'XR&BPSpS/>Kl\f6R\-T54QFbQU"#0%]?e#0x8UL<fG.eT91lpjyd;<<ajP^03^V9ox_yKvJ257,u\j&ZhnBvX&nGfRU"6-6-hkgNX#DZQmj[\%m09:GJK>op1chovj<L%f*bzfY(LQ;2bQJjh)DQhU:LC26U"SO;5DDG(9ju-W6=*aPL89F7/g_r923h'o[eSv()^v>jbtP#pu:S0d'i9_vg)enYU"K4V#.Kp1CQS#0X>I+h,SX[b_F\($22R/#NIN[Gwja=4<1_W;Ak'V_=XSBytV/DKU"HjL=rnTaWw#:I*i[:AD]<\[)1xvr<)/fh4YclBht^C8fd2$N8cIb6t(,S=j_UQLU"7/ZGQc%myj?nUc*I;[?Tr;jaE0%[m)W,.c?YjRQ.i?jQIiC*yl$N/UYhE2mE[-hU"e4pJieNNg5DKc%pA_22/36J#%Y%TCIg>qjCFPZj>0LT.0B[b>)V)T&6r+Y>iGLLU")11_xtNMk6MmQ&b:[>o]7&9%F0*g#NzG7*A/n+K2iR#BAge7OXX\v_Rpu_n/dlOU"u?;FDouv&+<^^QoFZq2i71LBE..ga9Lg$kXDC[7.bq\U*Cr?Gp4.f+C*ba7f]UoU"/6hE%o8RMH$TJX]Q4VtTUGKC*j>gQm,5<cI/MW.%TV0[uvB1itP]L1qgRS$nEZJU"((eq]Lk0BSL5\0,5?b7+K]rr>8:6I$></UjI<l$J#0hEo+bdGG4S*tQ]oZ$Jtq%U"TLkia4>a7u:DYSoe_tftHJYRWR7%;g('U,FJL,DWQedh>#3:2+sRMi8YrD<qGgpU"vl*n(opog*Pf-52L1,$t9l8V_buH\>\d9b3fhuZa9C)Oc[ZKcHkDOiORr5_h^DZU"fR/,/IMa(pj:'kQ7.HJo&k]4Lj;/c%7r#XBemQ?)(5RJ3he1/\39e7tUaC[Br]5U"H/gPE?0IXAastbBVfZ-sPja;lc<;o.1.S7z7KI#;AO7PT^%t&/^9*W;XJB7zh*&U"+218,+u-In+d>It9VMZbMfTb*LUk87vkO45VTZcq=('<IM-hHJK\Is9Eqnrf,S:U"gS<PhMGT4py(xa/d(YHJz^AOjXqLG:K4ge&'MmaC'$3>PHlM0a4Ui8IMVqfDx:QU"D9t:i;UVjPU-g+b1V]2ccWB1iM;9FI,[YlfocPuO1J/ndKbtZrV+9qWqtO];P\UU"W;PA#_-*qTcbKd^b,xSj2*WAR41Fs3mBd?HqB?^Y=cLa8]13Q=IlocCd_[H=G\RU"]WlUK<Jf;UQ*#((+RDHG:&Jz=)gB;?:mnG'<UJKXl.0jx^t7.Br7t*BgZc/1aOcU"8xynu=q608GO2zsp(N+tJ.uNtkSuDN6ZJt,ESBb0Qt:]Oo9E%b?m*QlS0l))s]PU"Ri\i6hjN\EPa:hO[=u*fjh+%T-gFz,xU,xxJIO^t_=xd1YatQv?HjYzVHYR..dgU"\EwX3Nr>]\?T\nGb7^Qfcma$DAXE\d<45?H7TDJ(W$%\H>(uh&9&\2=IJ\N^E<RU"9-&9,Q)rFZfqbodoX,qr?V6d^KhO(GdS^Jnfg#6$l(XK$NXPsD#X/kTBBQdkr$VU"rP:#8.p(,#Sw98>64mtbu/aPjqRZa0fVO[pthcuCK</e_W->t6de?J:AS?(%[9_U"6x8K*0m5VtuC_SlwSM$9/G*x%5B.NFV()4SSR4)'x0up%()9%%'%-%))\KJNc>(U"1%e%%%%u%%%%-%%%%qnkj%Shkl[0ssE7nz)zXU^^AanFn%#)W2H62;Z7d07Zk+pU"lwEYK$uk-uKGha5#)?7X'kQbH2al7Wpuo&Bfw+4+5+%%up()%9%'%#-%h9%KJ4eU")WW:&.%%w(%%%-%%%%qn%kjSq[nkRG3D]rUm9)I-/1L_*Ho;=amQUHh?x>bc/i*U"twq#sdtrfMtrivQ[kUFn+bW6Kv5]Y(Dq]9,cieP4K]mHDrARlck$G^uhNTatvxhU"FIvptI(8m8fc1Z91Z1Z91Z1Z91Zi(>nq=L4cjXtGK[8n6rE6cWlhHKf_X.qo;<7U"ieTTKZ70dkH+dkHd]kHdkpH.rCY&7kd<(K^P+dj8d\$8^TP6t;nrf>tTuw/8fsDU"t#wW*Ne.utPw.PNfZLo*TW2uq4uxlTB-wZ6,j\;>K\#?Xq?\PM^&Mi^&M^V&M^&U"GM\\MIH\A2L[56EM56E5V6E_/43_/3$_/3_S3s_34s_3s$_1S_S1S_1+S_Du%p&U"'9%%9%'%%-%(APJJa(7qZj#%%%G%%%%.%%%%%%%%%&%%E%%%%%%%%%xyf%wVSq%U"nkup%&'9%%9%'%I-%LH[KJ.,'V;g%.%%G%%%%0%%%%%%%%%&%%E%%%&;%%%#lwtU"&%ymVS%qnku%p&'9%%9%'%%-%)APJJ5Rbw7[%%%%-%&%%.%%%%%%%%%&%%E%%+%U"P%%%%xyf%wWSq%nkup%&'9%%9%'%I-%]S7KJac6HL1%7%%?%%%%.%%%%%%%%%&%U"%E%%%&Y&%%%xyfw%XSqn%kup&%'9%9%%'%-.%*PJ.JFN>,l0%%%%e'%%%.%%%%%U"%%%%%%E%%%%8%'%%x%yfwY%Sqnk%up&'%9%9%%'%-%*pOJJ/H=Po%E&%%&e(%%%U"1%%%%%%%%%%%E%7%%j'%%%ht%qqni%jVSq%nkup%&'9%%9%'%R-%RQ#JJua;qbmU"%.%%M(%%%1%%%%%%%%%%%%E%%%%$)%%%htqq%nijW%Sqnk%up&'%9%9%%'%-%*ZU"QJJJ+]#D%(&%%&M(%%%1%%%%%%%%%%%E%.%%(*%%%ht%qqni%jXSq%nkup%&'9%U"%9%'%R-%rORJJ#%0\7W%.%%m&%%%1%%%%%%%%%%%%E%%%&U+%%%htqq%nijY%SqU"nk%up&'%9%9%%'%-%*sOJJ4(6lx'#%%%&-'%%%1%%%%%%%%%%%E%%%%],%%%ht%U"qqni%jZSq%nkup%&'9%%9%'%#-%&Q#JJAV6sZe&7%%1*%%%.%%%%%%%%%%%%E%%U"%%N-%%%gtrg%WSqn%kup&%'9%9%%'%-4%fOJdJ4s;-5q(%(%72%%%.%%%%%%%%%U"%%E[%%%_%.%%g%trgX%Sqnk%up&'%9%9%%'%-%)7;KJJpg&c';)%%'73%%%1%%%END SUBSUB V6U"%%%%%%%%E%%%%*3%%%ht%qqni%j[Sq%nkup%&'9%%9%'%R-%cOdJJM_9;Nt(.%%U"72%%%.%%%%%%%%%%%%E%%%'j7%%%gtrg%VSqn%kup&%'9%9%%'%-4%hOJ1J<v(+U"lA)%(%u3%%%.%%%%%%%%%%%E%%%%8%<%%g%trgY%Sqnk%up&'%9%9%%'%-%*jOJU"J;unIG'<)%%&W3%%%.%%%%%%%%%%%E%%%%'A%%%gt%rgZS%qnku%p&'9%%9%'[%U"-%l\OJJa8nDuN[(%%q%/%%.%%%%%%%%%%%%E%%+%eE%%%gtr%g[Sq%nkup%&'9%U"%9%'%R-%,QmJJeZ2H.#'7%%),%%%.%%%%%%%%%%%%E%%%%aI%%%gtrg%\Sqn%kuU"p&%'9%9%%'%-1%*RJjJ^xd-,Q%%+%e&%%%1%%%%%%%%%%%E[%%%M%K%%h%tqqn%U"ij\S%qnku%p&'9%%9%'[%-%n\OJJm<FljN#(%%w%.%%.%%%%%%%%%%%%E%%+%OLU"%%%gtr%g]Sq%nkup%&'9%%9%'%#-%%P7JJsF&=Gb&%%%m(%%%/%%%%%%%%%%%%EU"%%%%KP%%%hwtx%xVSq%nkup%&'9%%9%'%#-%&P#JJJ8'DNW&%%%U(%%%/%%%%%%U"%%%%%%E%%%&ZQ%%%hwtx%xWSq%nkup%&'9%%9%'%#-%'P7JJjw-:C^&%%%g(%%%U"/%%%%%%%%%%%%E%%%'^R%%%hwtx%xXSq%nkup%&'9%%9%'%#-%,P%JJ\Z)qvG&7U"%%1'%%%,%%%%%%%%%%%%E%%%%kT%%&%jjS%qnku%p&'9%%9%'%%-%(APJJDOg#]U"5#%%%7%&%%-%%%%%%%%%%%%E%%(%\U%%%qns%jSqn%kup&%'9%9%%'%-.%'PJ%JU"[C9,b/%%+%G&%%%/%%%%%%%%%%%E%%%%>%V%%h%wtxx%YSqn%kup&%'9%9%%'%-U".%%PJaJ8Mv(vj&%+%I*%%%1%%%%%%%%%%%E[%%%p%V%%h%tqqn%ij^S%qnku%p&U"'9%%9%'#%-%#&RJJ(gAg*?%&%%S%*%%1%%%%%%%%%%%%E%%+%5X%%%htq%qnij%U"]Sqn%kup&%'9%9%%'%-4%pOJpJk)e(Ww'%+%w,%%%1%%%%%%%%%%%E[%%%%%Z%%U"h%tqqn%ijUS%qnku%p&'9%%9%'[%-%a\OJJU4\3#5%e%%['Z%%1%%%%%%%%%%%%U"E%%(%M]%%%gnl%hwfx%mSqn%kup&%'9%9%%'%-4%COJXJ8w+,M8N%4%)l%%%0%%U"%%%%%%%%%E[%%%1&G%%g%nlgt%rgSq%nkup%&'9%%9%'%R-%jSdKJp/5M6k%%%%U"E&%%%.%%%%%%%%%%%%E%%%)oq%%%xyfw%ZSqn%kup&%'9%9%%'%-4%d\KOJ$0C*U"o44%+%;V%%%-%%%%%%%%%&%E#%%%2&r%%q%nkjS%gfxu%p&'9%%9%'#%-%:AtLJU",K3F31#2%%=%Q%%1%%%%%%%%%&%%E%%=%g+%%%qnk%jjin%ySgf%xup&%'9%9%%U"'%-1%)\KOJc>(&1e%%%%u%%%%-%%%%%%%%%&%E#%%%I'9%%q%nkjS%hklu%p&'9U"%%9%'%%-%h&9KJ41eWW:#&%%w%(%%-%%%%%%%%%%%%E%%=%Y9%%%qnk%jSqn%kuU"p*%+%%%%%I%I+%[,%7%#;%%%%%END SUBV2V3V4V5V6CLOSE:IF S=178AND B&=Z&THEN?" :) Ok!"ELSE?" :( Bad!SUB U(A$):FOR A=1TO LEN(A$):C=ASC(MID$(A$,A))-37:IF C<0THEN C=91+C*32IF K<4THEN K=C+243ELSE?#1,CHR$(C+(K MOD 3)*86);:K=K\3:B&=B&+1S=(S+C)AND 255:NEXT:LOCATE,1:?STRING$(B&*50\Z&,219);:END SUBAntoni Gual                    IMITATION LANGUAGE SPEAKER     agual@eic.ictnet.es            12-12-98 (16:39)       QB, PDS                190  5690     POLYGLOT.BASDECLARE FUNCTION filesel$ (prompt$, new%)'----------------------------------------------------------------------------'POLYGLOT.BAS'SILLY "INTELLIGENT" PROGRAM THAT PRETENDS TO SPEAK LANGUAGES'FROM AN ARTICLE IN A 80'S ISSUE OF SCIENTIFIC AMERICAN'----------------------------------------------------------------------------'this program scans a sample file in a given language, collecting the frequences'of each group of 3 characters.'after it generates a random sequence of characters with the same relative'frequences for each group as the sample.'it works better with unformatted pieces of nontechnical texts.'Computer related texts are full of numbers and english-born terms that corrupt'the statistics. Also, formatting add multple spaces to statistics.'It needs a huge array of NxNxN integers to hold the statistics.'so start quick basic with /ah /l options'to run it in qbasic, remove the interrupt call that allows to change drive...'it converts everything to lowercase to keep the array small'public domain'I can be contacted at agual@eic.ictnet.es'----------------------------------------------------------------------------DEFINT A-Z'variables'groupsizeCONST groupsize = 3    'if you want to modify it you must change the number					   'of dimensions of sample()           ' $DYNAMIC' $INCLUDE: 'qb.bi'ON ERROR GOTO errorhandlerDIM SHARED virhe AS INTEGERDIM SHARED inreg AS RegTypeX, outreg AS RegTypeXDIM sample$(10)DIM GROUP(groupsize)CLSMS = INT((FRE(-1) \ 2) ^ (1 / groupsize)) - 2PRINT "                       Here i'am!!"PRINT "I'm inteligent enough to write long texts in any language"PRINT "provided you give me a sample text so i can scan it and learn"PRINT "It can be serbo-croatian, swahili, or anything that can be written in ASCII characters."PRINT "Don't believe me??"PRINT "OK!! Press a key to select a sample file... "a$ = INPUT$(1)'scanningOPEN filesel$("Sample.. ", 0) FOR INPUT AS #1ON ERROR GOTO 0PRINT "building the charmap"CHARMAP$ = " "DO WHILE NOT EOF(1)	LINE INPUT #1, sample$	FOR I = 1 TO LEN(sample$)	 a$ = LCASE$(MID$(sample$, I, 1)):	 IF INSTR(CHARMAP$, a$) = 0 THEN CHARMAP$ = CHARMAP$ + a$: PRINT LEN(CHARMAP$)	 IF LEN(CHARMAP$) = MS THEN GOTO FUERA	NEXTLOOPFUERA:PRINT "collecting info "nchar = LEN(CHARMAP$)REDIM stats(1 TO nchar, 1 TO nchar, 1 TO nchar)SEEK #1, 1CNT = 1DO WHILE NOT EOF(1)	LINE INPUT #1, sample$	'PRINT CNT: CNT = CNT + 1	FOR I = 1 TO LEN(sample$)	  a$ = LCASE$(MID$(sample$, I, 1))	  OK = INSTR(CHARMAP$, a$)	  IF OK THEN		GROUP(1) = GROUP(2): GROUP(2) = GROUP(3): GROUP(3) = OK		IF GROUP(1) THEN stats(GROUP(1), GROUP(2), GROUP(3)) = stats(GROUP(1), GROUP(2), GROUP(3)) + 1	  END IF	NEXTLOOPCLOSE #1PRINT "Adding up frequences"empty& = 0FOR I = 1 TO nchar: FOR j = 1 TO nchar: FOR k = 2 TO nchar	IF stats(I, j, k) = 0 THEN empty& = empty& + 1	stats(I, j, k) = stats(I, j, k) + stats(I, j, k - 1)NEXT:'PRINT MID$(charmap$, i, 1); MID$(charmap$, J, 1); STATS(i, J, nchar),NEXT '   PRINT : a$ = INPUT$(1)NEXT'PRINT "empty combinations "; empty& / nchar / nchar / nchar * 100; "%"PRINT "Here it goes... "RANDOMIZE TIMERDO	DO		FOR I = 1 TO groupsize - 1			GROUP(I) = (nchar - 1) * RND + 1		NEXT	LOOP UNTIL stats(GROUP(1), GROUP(2), nchar)	CNT = 0	DO		index = stats(GROUP(1), GROUP(2), nchar) * RND	   		I = 1: DO WHILE stats(GROUP(1), GROUP(2), I) < index: I = I + 1: LOOP		GROUP(groupsize) = I		PRINT MID$(CHARMAP$, I, 1);		FOR I = 2 TO groupsize: GROUP(I - 1) = GROUP(I): NEXT		CNT = CNT + 1	LOOP UNTIL CNT = 1000	PRINT : INPUT "More? "; a$LOOP UNTIL UCASE$(a$) = "N"ENDerrorhandler: virhe = ERR: RESUME NEXTREM $STATICFUNCTION filesel$ (prompt$, new%)CLSDO	FILESaskdrive:	PRINT prompt$ + "Select Drive [Enter:Current] > "; : INPUT drive$	'if no input, go ask path	IF LEN(drive$) THEN		'---CHDRIVE drive$ in PDS-----------------------R3:		inreg.ax = &HE00		driv% = ASC(UCASE$(drive$)) - ASC("A")		inreg.dx = driv%		CALL INTERRUPTX(&H21, inreg, inreg)			inreg.ax = &H1900		CALL INTERRUPTX(&H21, inreg, inreg)		'probably the drive we asked for does'nt exist		IF (inreg.ax AND &HFF) <> driv% THEN ERROR 68		IF virhe = 68 THEN PRINT "drive does not exist": GOTO askdrive		IF virhe = 71 THEN			virhe = 0: PRINT "DRIVE NOT READY [RETRY/ABORT]?"			a$ = UCASE$(INPUT$(1)): IF a$ = "R" THEN GOTO R3 ELSE GOTO askdrive		END IF	END IFaskpath:	'what is in?  Here we trap the no disk errorr4:	FILES	IF virhe = 71 THEN		virhe = 0: PRINT "DRIVE NOT READY [RETRY/ABORT]?"		a$ = UCASE$(INPUT$(1)): IF a$ = "R" THEN GOTO r4 ELSE GOTO askdrive	END IF	PRINT prompt$ + " Select Path [Enter:Current] > "; : INPUT path$	'if no input go ask filename	IF LEN(path$) THENR1:		CHDIR path$		IF virhe = 53 OR virhe = 76 THEN PRINT "path not found": virhe = 0: GOTO askpath		IF virhe = 71 THEN			virhe = 0: PRINT "DRIVE NOT READY [RETRY/ABORT]?"			a$ = UCASE$(INPUT$(1)): IF a$ = "R" THEN GOTO R1 ELSE GOTO askdrive		END IF		GOTO askpath	END IFaskname:	PRINT prompt$ + "Select Name [Enter:New path] > "; : INPUT name$	'does it exist?R2:	FILES name$	IF virhe = 53 OR virhe = 64 THEN	 IF new% = 0 THEN PRINT "FILE NOT FOUND"; virhe = 0: GOTO askname ELSE GOTO r5	END IF	IF virhe = 71 THEN		virhe = 0: PRINT "DRIVE NOT READY [RETRY/ABORT]?"		a$ = UCASE$(INPUT$(1)): IF a$ = "R" THEN GOTO R2 ELSE GOTO askdrive	END IFr5:LOOP UNTIL LEN(name$)filesel$ = name$VIEW PRINTCLSEND FUNCTIONBrant Kraushar                 AI Test algorithms             Brant_K@hotmail.com            02-05-99 (  :  )       VBDOS                  1005 34183    aitest.bas  '===========================================================================' Subject: AI TEST                            Date: 02-05-99 (01:41)       '  Author: Brant Kraushar                     Code: VBDOS                  '  Origin: brant_k@hotmail.com              Packet: AI.ABC'=========================================================================== REM $INCLUDE: 'VBDOS.BI''by Brant Kraushar'Edmonton, Alberta, Canada ''Alot of glitches in the program... unfortunately i can hardly understand'my own code... complicated relationships between vars''this program written in Visual basic for ms-dos v1.00' on a 286, then 486, then P100, now P300 (long time being developed, eh?)'actually, the 286 was upgraded to 486, same fate for the p100'in the so-called game, push A or B to build a base or turret, respectively'use the 1,2,3,4 keys to build units.'see sub initunits to make new units or see old ones.'you are WHITE player 'READ HERE IF YOU WANT TO CHANGE ANYTHING'fell free to change, modify, destroy, implant viruses, twist, dement,'rip off or otherwise improve this crap, but email me the result...'this program does have a higher purpose in life, this is just to test some'AI and stuff for a DirectX game i am making... so far its a failure...'anyway my email address is at'Brant_K@hotmail.com'any feedback would be appreciated'DECLARE SUB loadm ()DECLARE SUB game ()DECLARE SUB initunits ()DECLARE SUB mapgen ()TYPE UnitType	ALevel(1 TO 16) AS INTEGER 'acces level 0=owner, 1=bought, 2=licensec, 3=stolen\copied, 4=none	buildtime AS INTEGER	ShotRange AS INTEGER	Strength AS LONG	Speed AS INTEGER	AP AS INTEGER 'armor peircing?	FirePower AS INTEGER	shotrate AS INTEGER	symbol AS STRING * 1	Armor AS INTEGER	FuelCap AS INTEGER	flags AS INTEGER	price AS INTEGER	Stealth AS INTEGER	Radar AS INTEGEREND TYPETYPE BuildingType	price AS INTEGER	AP AS INTEGER	Strength AS LONG	ShotRange AS INTEGER	shotrate AS INTEGER	FirePower AS INTEGER	symbol AS STRING * 1	Armor AS INTEGER	flags AS INTEGER	Visibility AS INTEGER	Radar AS INTEGER	buildtime AS INTEGEREND TYPETYPE Unit	hasshotat AS INTEGER	type AS INTEGER	damage AS LONG	Fuel AS INTEGER	loc AS INTEGER	owner AS INTEGER	order AS INTEGER        '1=move 2=attack 3=guard 0=sleep 4=repair 5=findpath	flags AS INTEGER	Path(1 TO 256) AS INTEGER	PathPos AS INTEGER       'PATH array element #	PathNum AS INTEGER       '# of PATH array elements	spcx AS INTEGER	StickyX AS INTEGER	nextorder AS INTEGER	atpos AS INTEGER          '# of loops at current pos; for regulating speed	shotfrompos AS INTEGER	shotby AS INTEGEREND TYPETYPE country	money AS LONG	controller AS INTEGER       '1-16=ai, 100+n = player	color AS INTEGER	funding AS INTEGER	CType AS INTEGER                                 '1=active, 0=passive	WarState(1 TO 16)  AS INTEGER ' ..<5000-8000-10000END TYPETYPE Building	repairing AS INTEGER	build AS INTEGER	timeleft AS INTEGER	owner AS INTEGER	damage AS LONG	btype AS INTEGER	loc AS INTEGER	order AS INTEGER	Spc AS INTEGER	flags AS INTEGER	atpos AS INTEGER	shotfrompos AS INTEGER	shotby AS INTEGER	buildtime AS INTEGEREND TYPETYPE AI	UnitRating(1 TO 100) AS INTEGER	UnitPriceR(1 TO 100) AS INTEGER	BldRating(1 TO 100) AS INTEGER	BldPriceRating(1 TO 100) AS INTEGER	EnUnitMem(1 TO 100, 1 TO 2) AS INTEGER 'x+y,type	EnBldMem(1 TO 100, 1 TO 2) AS INTEGER 'x+y,type	EnUnitClassMem(1 TO 100, 1 TO 2) AS INTEGER  'shoots at type1,2,4,8..., Threat level (if it's type usually attacks), based on average damage one inflicts	EnBuildMem(1 TO 100, 1 TO 2) AS INTEGER		'   <<<<<<<< AI PERSONALITY SECTION >>>>>>>>>	AIPTER AS INTEGER 'ai $ to effect rate	AICautious AS INTEGER  '	AIBuildey AS INTEGER	AIBuy AS INTEGER 'use alot research? buy?	AIType AS INTEGER  'ai level of 'intelligence'	AIDTOR AS INTEGER 'ai def. to off. rat	AIDefType AS INTEGER 'turrets? or tanks?	AIOffType AS INTEGER 'blitz? geurrilla?	AISneaky AS INTEGER     'does it care if being seen?	AIAngry AS INTEGER	AIFriendly AS INTEGER	AIsavey AS INTEGER        'saves money	AIAggressive AS INTEGER	AIFixy AS INTEGER         'repair?	target AS INTEGEREND TYPETYPE map	Name AS STRING * 20	players AS INTEGER	Landmap(1 TO 50, 1 TO 80) AS INTEGER ' trrn	FBUMap(-5 TO 55, -5 TO 85) AS INTEGER 'unit bldng '+1000 = unit +10000 = passable,	country(1 TO 16) AS countryEND TYPESCREEN 0DEFINT A-ZDIM SHARED AI(1 TO 16) AS AIDIM SHARED unittypes(1 TO 10)  AS UnitTypeDIM SHARED units(1 TO 100) AS UnitDIM SHARED bldtypes(1 TO 10)  AS BuildingTypeDIM SHARED blds(1 TO 100) AS BuildingDIM SHARED map AS map DIM inreg AS RegType, outreg AS RegType CLSRANDOMIZE TIMER'DIM SHARED map(1 TO 50, 1 TO 80, 1 TO 3) AS INTEGER 'unit bldng trrnWIDTH 80, 50PRINT "type n if you wanna make a new map. (press escape when satisfied with the map's growth)"INPUT ""; n$IF LCASE$(n$) = "n" THEN mapgen ELSE loadminitunitsgame''SUB game ()ON ERROR RESUME NEXTPLAY "MB"SCREEN 0, , 2, 0FOR a = 1 TO map.players	map.country(a).money = 50000NEXT aFOR a = 1 TO 80	FOR b = 1 TO 45		LOCATE b, a		IF map.Landmap(b, a) = 1 THEN COLOR 11: PRINT ""		IF map.Landmap(b, a) = 3 THEN COLOR 0, 3: PRINT ""		IF map.Landmap(b, a) = 2 THEN COLOR 0, 9: PRINT ""		IF map.Landmap(b, a) = 0 THEN COLOR 0, 0: PRINT " "	NEXT b, aFOR a = 1 TO map.players	COLOR map.country(a).color, 069	y = INT(RND * 30) + 6	x = INT(RND * 65) + 12	IF SCREEN(y, x) = 32 THEN LOCATE y, x: PRINT "" ELSE GOTO 69	blds(a).owner = a	blds(a).damage = 0'INT(RND * 10000)	blds(a).btype = 1'INT(RND * 2) + 1	blds(a).loc = x + (y * 256)	blds(a).order = 3	blds(a).flags = 10x = blds(a).loc MOD 256y = (blds(a).loc - x) / 256map.Landmap(y + 1, x) = 0	units(a).loc = x + (256 * (y + 1))	units(a).damage = 0'INT(RND * 1000)	units(a).owner = a	units(a).type = INT(RND * 4) + 1	units(a).order = 0'((a + 1) MOD 2) * 345 x2 = INT(RND * 80) + 1	y2 = INT(RND * 45) + 1	IF map.Landmap(y2, x2) = 1 THEN GOTO 45	units(a).spcx = (x2) + (256 * (y2))x = blds(a).loc MOD 256y = (blds(a).loc - x) / 256map.Landmap(y - 1, x) = 0	units(a + map.players).loc = x + (256 * (y - 1))	units(a + map.players).damage = INT(RND * 1000)	units(a + map.players).owner = a	units(a + map.players).type = INT(RND * 3) + 1	units(a + map.players).order = ((a) MOD 2) * 3145 x2 = INT(RND * 80) + 1	y2 = INT(RND * 45) + 1	IF map.Landmap(y2, x2) = 1 THEN GOTO 145	units(a + map.players).spcx = (x2) + (256 * (y2))NEXTDO 'main loop	FOR a = 1 TO map.players		IF map.country(a).funding > 15 THEN map.country(a).funding = map.country(a).funding - 1	NEXT aSCREEN 0, , 1, 0PCOPY 1, 0CLSPCOPY 2, 1	ERASE map.FBUMap	FOR a = 1 TO 100		IF units(a).owner <> 0 THEN			y = (units(a).loc - (units(a).loc MOD 256)) / 256			x = units(a).loc MOD 256			LOCATE y, x			IF map.Landmap(y, x) = 0 THEN				bc = 0			ELSEIF map.Landmap(y, x) = 3 THEN				bc = 3			ELSEIF map.Landmap(y, x) = 2 THEN				bc = 9			END IF			IF units(a).order = 4 THEN				IF units(a).damage > INT(unittypes(units(a).type).Strength / 2) THEN					COLOR map.country(units(a).owner).color + 8, bc				ELSE COLOR map.country(units(a).owner).color + 16, bc				END IF			ELSE				IF units(a).damage > INT(unittypes(units(a).type).Strength / 2) THEN					COLOR map.country(units(a).owner).color - 8, bc				ELSE COLOR map.country(units(a).owner).color, bc				END IF			END IF			IF units(a).damage > INT(unittypes(units(a).type).Strength) THEN units(a).owner = 0: PRINT " " ELSE PRINT unittypes(units(a).type).symbol			map.FBUMap(y, x) = a + 1000		ELSE :		END IF	NEXT a	FOR a = 1 TO 100		IF blds(a).owner <> 0 THEN			y = (blds(a).loc - (blds(a).loc MOD 256)) / 256			x = blds(a).loc MOD 256			LOCATE y, x			IF map.Landmap(y, x) = 0 THEN				bc = 0			ELSEIF map.Landmap(y, x) = 3 THEN				bc = 3			ELSEIF map.Landmap(y, x) = 2 THEN				bc = 9			END IF			IF blds(a).repairing <> 0 THEN				IF blds(a).damage > INT(bldtypes(blds(a).btype).Strength / 2) THEN					COLOR map.country(blds(a).owner).color + 8, bc				ELSE COLOR map.country(blds(a).owner).color + 16, bc				END IF			ELSE				IF blds(a).damage > INT(bldtypes(blds(a).btype).Strength / 2) THEN					COLOR map.country(blds(a).owner).color - 8, bc				ELSE COLOR map.country(blds(a).owner).color, bc				END IF			END IF			IF blds(a).damage > INT(bldtypes(blds(a).btype).Strength) THEN blds(a).owner = 0: PRINT " " ELSE PRINT bldtypes(blds(a).btype).symbol			map.FBUMap(y, x) = a ' >- (plane)		ELSE :		END IF               '	NEXT a                 '	LOCATE 50, 5	FOR a = 1 TO map.players		map.country(a).money = map.country(a).money + map.country(a).funding		COLOR map.country(a).color, 0: PRINT "$" + STR$(map.country(a).money) + "        ";	NEXT	LOCATE 49, 5	FOR a = 1 TO map.players		COLOR map.country(a).color, 0: PRINT "$" + STR$(map.country(a).funding) + "        ";	NEXT 	DO: LOOP UNTIL TIMER >= ti1! + .05	ti1! = TIMER	FOR a = 1 TO 100  'unit orders		IF units(a).owner = 0 THEN GOTO 679		IF units(a).order = 5 THEN           'Find Path to 'Units(n).SpcX' position			t1! = INT(TIMER)			fb = 020    d = 0			DO				h = 0				b = fb - 5				d = d + 1         'd a10      IF TIMER >= t1! + .25 THEN units(a).order = 0: GOTO 65				h = h + 1: IF (d >= 255) OR (h = 25) THEN fb = fb + 5: GOTO 20				IF h <= 1 THEN fb = fb - 2: IF fb <= 0 THEN fb = 0				b = b + 5				sx = units(a).spcx MOD 256				sy = (units(a).spcx - sx) / 256				IF d = 1 THEN x = (units(a).loc) MOD 256 ELSE x = units(a).Path(d - 1) MOD 256				IF d = 1 THEN y = (units(a).loc - x) / 256 ELSE y = (units(a).Path(d - 1) - x) / 256				IF x > sx AND y > sy THEN ac1 = 16: ac2 = 8: ac3 = 8: ac4 = 1: ac5 = 2: ac6 = 2: ac7 = 4: ac8 = 4				IF x = sx AND y > sy THEN ac1 = 8: ac2 = 16: ac3 = 4: ac4 = 2: ac5 = 4: ac6 = 1: ac7 = 8: ac8 = 2				IF x > sx AND y = sy THEN ac1 = 8: ac2 = 4: ac3 = 16: ac4 = 2: ac5 = 1: ac6 = 4: ac7 = 2: ac8 = 8				IF x < sx AND y < sy THEN ac1 = 1: ac2 = 2: ac3 = 2: ac4 = 16: ac5 = 8: ac6 = 8: ac7 = 4: ac8 = 4				IF x < sx AND y = sy THEN ac1 = 2: ac2 = 4: ac3 = 1: ac4 = 8: ac5 = 16: ac6 = 4: ac7 = 8: ac8 = 2				IF x = sx AND y < sy THEN ac1 = 2: ac2 = 1: ac3 = 4: ac4 = 8: ac5 = 4: ac6 = 16: ac7 = 2: ac8 = 8				IF x < sx AND y > sy THEN ac1 = 4: ac2 = 8: ac3 = 2: ac4 = 4: ac5 = 8: ac6 = 2: ac7 = 16: ac8 = 1				IF x > sx AND y < sy THEN ac1 = 4: ac2 = 2: ac3 = 8: ac4 = 4: ac5 = 2: ac6 = 8: ac7 = 1: ac8 = 16								IF (y > 48) OR (y < 2) OR (x > 79) OR (x < 2) THEN GOTO 10				ac1 = ac1 + (25 - map.Landmap(y - 1, x - 1) * 3)				ac2 = ac2 + (25 - map.Landmap(y - 1, x) * 3)				ac3 = ac3 + (25 - map.Landmap(y, x - 1) * 3)				ac4 = ac4 + (25 - map.Landmap(y + 1, x + 1) * 3)				ac5 = ac5 + (25 - map.Landmap(y, x + 1) * 3)				ac6 = ac6 + (25 - map.Landmap(y + 1, x) * 3)				ac7 = ac7 + (25 - map.Landmap(y - 1, x + 1) * 3)				ac8 = ac8 + (25 - map.Landmap(y + 1, x - 1) * 3)															ac1 = ac1 + INT(RND * (b + (ac1 / 3)))				ac2 = ac2 + INT(RND * (b + (ac2 \ 3)))				ac3 = ac3 + INT(RND * (b + (ac3 / 3)))				ac4 = ac4 + INT(RND * (b + (ac4 \ 3)))				ac5 = ac5 + INT(RND * (b + (ac5 / 3)))				ac6 = ac6 + INT(RND * (b + (ac6 \ 3)))				ac7 = ac7 + INT(RND * (b + (ac7 / 3)))				ac8 = ac8 + INT(RND * (b + (ac8 \ 3)))				IF (ac1 > ac2) AND (ac1 > ac3) AND (ac1 > ac4) AND (ac1 > ac5) AND (ac1 > ac6) AND (ac1 > ac7) AND (ac1 > ac8) THEN				IF (map.FBUMap(y - 1, x - 1) = 0) AND (map.Landmap(y - 1, x - 1) <> 1) THEN units(a).Path(d) = (x - 1) + ((y - 1) * 256) ELSE GOTO 10				ELSEIF (ac2 > ac1) AND (ac2 > ac3) AND (ac2 > ac4) AND (ac2 > ac5) AND (ac2 > ac6) AND (ac2 > ac7) AND (ac2 > ac8) THEN				IF (map.FBUMap(y - 1, x) = 0) AND (map.Landmap(y - 1, x) <> 1) THEN units(a).Path(d) = (x) + ((y - 1) * 256) ELSE GOTO 10				ELSEIF (ac3 > ac2) AND (ac3 > ac1) AND (ac3 > ac4) AND (ac3 > ac5) AND (ac3 > ac6) AND (ac3 > ac7) AND (ac3 > ac8) THEN				IF (map.FBUMap(y, x - 1) = 0) AND (map.Landmap(y, x - 1) <> 1) THEN units(a).Path(d) = (x - 1) + ((y) * 256) ELSE GOTO 10				ELSEIF (ac4 > ac2) AND (ac4 > ac3) AND (ac4 > ac1) AND (ac4 > ac5) AND (ac4 > ac6) AND (ac4 > ac7) AND (ac4 > ac8) THEN				IF (map.FBUMap(y + 1, x + 1) = 0) AND (map.Landmap(y + 1, x + 1) <> 1) THEN units(a).Path(d) = (x + 1) + ((y + 1) * 256) ELSE GOTO 10				ELSEIF (ac5 > ac2) AND (ac5 > ac3) AND (ac5 > ac4) AND (ac5 > ac1) AND (ac5 > ac6) AND (ac5 > ac7) AND (ac5 > ac8) THEN				IF (map.FBUMap(y, x + 1) = 0) AND (map.Landmap(y, x + 1) <> 1) THEN units(a).Path(d) = (x + 1) + ((y) * 256) ELSE GOTO 10				ELSEIF (ac6 > ac2) AND (ac6 > ac3) AND (ac6 > ac4) AND (ac6 > ac5) AND (ac6 > ac1) AND (ac6 > ac7) AND (ac6 > ac8) THEN				IF (map.FBUMap(y + 1, x) = 0) AND (map.Landmap(y + 1, x) <> 1) THEN units(a).Path(d) = (x) + ((y + 1) * 256) ELSE GOTO 10				ELSEIF (ac7 > ac2) AND (ac7 > ac3) AND (ac7 > ac4) AND (ac7 > ac5) AND (ac7 > ac6) AND (ac7 > ac1) AND (ac7 > ac8) THEN				IF (map.FBUMap(y - 1, x + 1) = 0) AND (map.Landmap(y - 1, x + 1) <> 1) THEN units(a).Path(d) = (x + 1) + ((y - 1) * 256) ELSE GOTO 10				ELSEIF (ac8 > ac2) AND (ac8 > ac3) AND (ac8 > ac4) AND (ac8 > ac5) AND (ac8 > ac6) AND (ac8 > ac7) AND (ac8 > ac1) THEN				IF (map.FBUMap(y + 1, x - 1) = 0) AND (map.Landmap(y + 1, x - 1) <> 1) THEN units(a).Path(d) = (x - 1) + ((y + 1) * 256) ELSE GOTO 10				ELSE				GOTO 10				END IF				IF (units(a).Path(d) MOD 256) = sx AND ((units(a).Path(d) - (units(a).Path(d) MOD 256)) / 256) = sy THEN units(a).order = 3: EXIT DO			LOOP			units(a).PathNum = d			units(a).PathPos = 1			units(a).order = 165		ELSEIF units(a).order = 1 THEN        'Follow path			units(a).atpos = units(a).atpos + 1			IF units(a).atpos >= (map.Landmap(y, x) + (6 - unittypes(units(a).type).Speed)) THEN				units(a).loc = units(a).Path(units(a).PathPos)				units(a).PathPos = units(a).PathPos + 1				IF units(a).PathPos > units(a).PathNum THEN units(a).order = units(a).nextorder:				units(a).atpos = 0			END IF		ELSEIF units(a).order = 0 THEN451   x2 = INT(RND * 60) + 10			y2 = INT(RND * 35) + 10			IF map.Landmap(y2, x2) = 1 THEN GOTO 451			units(a).spcx = (x2) + (256 * (y2))			IF INT(RND * (unittypes(units(a).type).shotrate * 5)) <> 0 THEN units(a).order = 3 ELSE units(a).order = 5					ELSEIF units(a).order = 3 THEN 'guard			IF units(a).hasshotat = 0 THEN units(a).order = 0			units(a).hasshotat = 0			IF units(a).shotby <> 0 THEN units(a).order = 5: units(a).spcx = units(a).shotfrompos - 1: units(a).nextorder = 3: units(a).shotby = 0			x2 = units(a).loc MOD 256			y2 = (units(a).loc - x2) / 256			IF units(a).atpos < unittypes(units(a).type).shotrate THEN 4571			FOR ty = y2 - unittypes(units(a).type).ShotRange TO y2 + unittypes(units(a).type).ShotRange				FOR tx = x2 - unittypes(units(a).type).ShotRange TO x2 + unittypes(units(a).type).ShotRange					IF map.FBUMap(ty, tx) <> 0 THEN						IF map.FBUMap(ty, tx) < 1000 THEN							IF blds(map.FBUMap(ty, tx)).owner <> units(a).owner THEN								IF units(a).atpos >= unittypes(units(a).type).shotrate THEN									units(a).atpos = 0									dx = unittypes(units(a).type).AP * (RND * 1) + .5									dx = dx + (unittypes(units(a).type).FirePower * (bldtypes(blds(map.FBUMap(ty, tx)).btype).Armor / 10))									blds(map.FBUMap(ty, tx)).damage = blds(map.FBUMap(ty, tx)).damage + dx									blds(map.FBUMap(ty, tx)).shotby = units(a).type									blds(map.FBUMap(ty, tx)).shotfrompos = units(a).loc									units(a).hasshotat = blds(map.FBUMap(ty, tx)).loc: map.country(units(a).owner).money = map.country(units(a).owner).money + 500									y2 = (units(a).loc - (units(a).loc MOD 256)) / 256									x2 = units(a).loc MOD 256									COLOR 14, 0									LOCATE y2, x2: PRINT ""									'SOUND 50, .1									y2 = (blds(map.FBUMap(ty, tx) - 1000).loc - (blds(map.FBUMap(ty, tx) - 1000).loc MOD 256)) / 256									x2 = blds(map.FBUMap(ty, tx) - 1000).loc MOD 256									COLOR 14, 0									LOCATE y2, x2: PRINT ""									'SOUND 200, .3									GOTO 890								ELSE4571              units(a).atpos = units(a).atpos + 1									units(a).hasshotat = blds(map.FBUMap(ty, tx)).loc									GOTO 890								END IF							END IF						ELSE							IF units(map.FBUMap(ty, tx) - 1000).owner <> units(a).owner THEN								IF units(a).atpos >= unittypes(units(a).type).shotrate THEN									units(a).atpos = 0									dx = unittypes(units(a).type).AP * (RND * 1) + .5									dx = dx + (unittypes(units(a).type).FirePower * (unittypes(units(map.FBUMap(ty, tx) - 1000).type).Armor / 10))									units(map.FBUMap(ty, tx) - 1000).damage = units(map.FBUMap(ty, tx) - 1000).damage + dx									units(map.FBUMap(ty, tx) - 1000).shotby = units(a).type + 1000									units(map.FBUMap(ty, tx) - 1000).shotfrompos = units(a).loc									units(a).hasshotat = units(map.FBUMap(ty, tx) - 1000).loc: map.country(units(a).owner).money = map.country(units(a).owner).money + 500									y2 = (units(a).loc - (units(a).loc MOD 256)) / 256									x2 = units(a).loc MOD 256									COLOR 14, 0									LOCATE y2, x2: PRINT ""									'SOUND 80, .1									y2 = (units(map.FBUMap(ty, tx) - 1000).loc - (units(map.FBUMap(ty, tx) - 1000).loc MOD 256)) / 256									x2 = units(map.FBUMap(ty, tx) - 1000).loc MOD 256									COLOR 14, 0									LOCATE y2, x2: PRINT ""									'SOUND 300, .2									GOTO 890								ELSE									units(a).atpos = units(a).atpos + 1									units(a).hasshotat = units(map.FBUMap(ty, tx) - 1000).loc									GOTO 890								END IF							END IF						END IF						EXIT FOR					END IF				NEXT			NEXT890		ELSEIF units(a).order = 4 THEN 'fix			IF map.country(units(a).owner).money >= 10 THEN				units(a).damage = units(a).damage - 10				map.country(units(a).owner).money = map.country(units(a).owner).money - 10				IF units(a).damage <= 0 THEN units(a).order = 0: units(a).damage = 0: units(a).nextorder = 0			ELSE			END IF		END IF679	NEXT a	FOR a = 1 TO 100  'building orders		IF blds(a).owner = 0 THEN GOTO 680		IF blds(a).repairing <> 0 THEN 'fix			IF map.country(blds(a).owner).money >= 1000 THEN				blds(a).damage = blds(a).damage - 100				map.country(blds(a).owner).money = map.country(blds(a).owner).money - 1000				IF blds(a).damage <= 0 THEN blds(a).repairing = 0: blds(a).damage = 0: blds(a).order = 3			ELSE			END IF		END IF		IF blds(a).order = 0 THEN			blds(a).order = 3			GOTO 169		ELSEIF blds(a).build <> 0 THEN			IF blds(a).timeleft > 0 THEN				IF map.country(blds(a).owner).money >= INT(unittypes(blds(a).build).price / unittypes(blds(a).build).buildtime) THEN					blds(a).timeleft = blds(a).timeleft - 1					map.country(blds(a).owner).money = map.country(blds(a).owner).money - INT(unittypes(blds(a).build).price / unittypes(blds(a).build).buildtime)				END IF			ELSE				FOR ab = 1 TO 100					IF units(ab).owner = 0 THEN 63				NEXT ab63				units(ab).loc = blds(a).loc + 256				units(ab).damage = 0				units(ab).owner = blds(a).owner				units(ab).type = blds(a).build				units(ab).order = 0				blds(a).build = 0				blds(a).order = 3			END IF		ELSEIF blds(a).order = 3 THEN 'guard169 x2 = blds(a).loc MOD 256			y2 = (blds(a).loc - x2) / 256			IF units(a).atpos < unittypes(units(a).type).shotrate THEN 45712			FOR ty = y2 - bldtypes(blds(a).btype).ShotRange TO y2 + bldtypes(blds(a).btype).ShotRange				FOR tx = x2 - bldtypes(blds(a).btype).ShotRange TO x2 + bldtypes(blds(a).btype).ShotRange					IF map.FBUMap(ty, tx) <> 0 THEN						IF map.FBUMap(ty, tx) < 1000 THEN							IF blds(map.FBUMap(ty, tx)).owner <> blds(a).owner THEN								IF blds(a).atpos >= bldtypes(blds(a).btype).shotrate THEN									blds(a).atpos = 0									dx = bldtypes(blds(a).btype).AP * (RND * 1) + .5									dx = dx + (bldtypes(blds(a).btype).FirePower * (bldtypes(blds(map.FBUMap(ty, tx)).btype).Armor / 10))									blds(map.FBUMap(ty, tx)).damage = blds(map.FBUMap(ty, tx)).damage + dx: map.country(units(a).owner).money = map.country(blds(a).owner).money + 500									y2 = (blds(a).loc - (blds(a).loc MOD 256)) / 256									x2 = blds(a).loc MOD 256									COLOR 14, 0									LOCATE y2, x2: PRINT ""									y2 = (blds(map.FBUMap(ty, tx) - 1000).loc - (blds(map.FBUMap(ty, tx) - 1000).loc MOD 256)) / 256									x2 = blds(map.FBUMap(ty, tx) - 1000).loc MOD 256									COLOR 14, 0									LOCATE y2, x2: PRINT ""									'SOUND 40, .1									'SOUND 400, .2									GOTO 450								ELSE45712  blds(a).atpos = blds(a).atpos + 3									GOTO 450								END IF							END IF						ELSE							IF units(map.FBUMap(ty, tx) - 1000).owner <> blds(a).owner THEN								IF blds(a).atpos >= bldtypes(blds(a).btype).shotrate THEN									blds(a).atpos = 0									dx = bldtypes(blds(a).btype).AP * (RND * 1) + .5									dx = dx + (bldtypes(blds(a).btype).FirePower * (unittypes(units(map.FBUMap(ty, tx) - 1000).type).Armor / 10))									units(map.FBUMap(ty, tx) - 1000).damage = units(map.FBUMap(ty, tx) - 1000).damage + dx									units(map.FBUMap(ty, tx) - 1000).shotby = blds(a).btype									units(map.FBUMap(ty, tx) - 1000).shotfrompos = blds(a).loc: map.country(units(a).owner).money = map.country(blds(a).owner).money + 500									y2 = (blds(a).loc - (blds(a).loc MOD 256)) / 256									x2 = blds(a).loc MOD 256									COLOR 14, 0									LOCATE y2, x2: PRINT ""									'SOUND 50, .1									y2 = (units(map.FBUMap(ty, tx) - 1000).loc - (units(map.FBUMap(ty, tx) - 1000).loc MOD 256)) / 256									x2 = units(map.FBUMap(ty, tx) - 1000).loc MOD 256									COLOR 14, 0									LOCATE y2, x2: PRINT "*"									'SOUND 600, .4									GOTO 450								ELSE									blds(a).atpos = blds(a).atpos + 3									GOTO 450								END IF							END IF						END IF						EXIT FOR					END IF				NEXT			NEXT450		END IF680	NEXT a				'<<<<<<<<<[AI Section]>>>>>>>>> ((((((((((((((((((((((((((({{{{{{{{CCCCC[[[[](){}C)	dr = (dr + 1) MOD 5	IF dr <> 2 THEN 678	FOR a = 1 TO map.players		IF map.country(a).controller <= 16 THEN			FOR ab = 1 TO 100                               'BUILDING REPAIRS				IF blds(ab).owner = a THEN					IF blds(ab).damage >= 1 THEN						IF (blds(ab).repairing <> 4) THEN							blds(ab).repairing = 4							blds(ab).order = 3						END IF					END IF				END IF			NEXT ab			FOR ab = 1 TO 100                  'UNIT REPAIRS				IF units(ab).owner = a THEN					IF units(ab).damage >= (unittypes(units(ab).type).Strength * (AI(map.country(a).controller).AIFixy / 100)) THEN						IF (units(ab).nextorder <> 4) THEN							units(ab).order = 5							units(ab).nextorder = 4							FOR t = 1 TO 100								IF blds(t).btype = 1 THEN									IF blds(t).owner = a THEN										cx = blds(t).loc + 1										units(ab).spcx = cx										EXIT FOR									END IF								END IF							NEXT t						END IF					END IF				END IF			NEXT ab		FOR ab = 1 TO 100                               'BUILD UNITS			IF blds(ab).owner = a THEN				IF (blds(ab).build = 0) AND (blds(ab).btype = 1) THEN					IF map.country(blds(ab).owner).money >= (12000 * (AI(map.country(a).controller).AIsavey / 100)) THEN						blds(ab).build = INT(RND * 4) + 1						blds(ab).timeleft = unittypes(blds(ab).build).buildtime					END IF				END IF			END IF		NEXT ab		FOR ab = 1 TO 100                               'FIND TARGETS + ATTACK			IF units(ab).owner = a THEN				IF (units(ab).shotby > 0) AND (units(ab).shotby < 1000) THEN					AI(map.country(a).controller).target = units(ab).shotfrompos					FOR abc = 1 TO 100						IF (units(abc).owner = a) AND (INT(RND * 2) = 0) AND (units(abc).order <> 1) AND (units(abc).order <> 5) THEN							units(abc).order = 5							units(abc).spcx = AI(map.country(a).controller).target + ((INT(RND * 8) - 4) + ((INT(RND * 8) - 4) * 256))							units(abc).nextorder = 3						END IF					NEXT abc					units(ab).shotby = 0					units(ab).shotfrompos = 0				END IF			END IF		NEXT ab		FOR ab = 1 TO 100                               'DEFEND THE BASE!!!			IF blds(ab).owner = a THEN				IF (blds(ab).shotby <> 0) THEN					FOR abc = 1 TO 100						IF (units(abc).owner = a) AND (units(abc).order <> 1) AND (units(abc).order <> 5) THEN							IF units(abc).nextorder <> 3 THEN units(abc).order = 5							units(abc).spcx = blds(ab).shotfrompos + ((INT(RND * 8) - 4) + ((INT(RND * 8) - 4) * 256))							units(abc).nextorder = 3							blds(ab).shotby = 0							blds(ab).shotfrompos = 0							blds(ab).order = 3						END IF					NEXT abc				END IF			END IF		NEXT ab		IF map.country(a).money >= (40000 * (AI(map.country(a).controller).AIsavey / 100)) THEN			map.country(a).money = map.country(a).money - bldtypes(2).price			FOR abc = 1 TO 100				IF blds(abc).owner = 0 THEN GOTO 34			NEXT abc34    FOR ab = 99 TO 1 STEP -1				IF (blds(a).btype = 1) AND (blds(ab).owner = a) THEN GOTO 35			NEXT ab35			blds(abc).owner = a			blds(abc).damage = 0			blds(abc).btype = INT(RND * 2) + 1			blds(abc).loc = blds(ab).loc + (((INT(RND * 8) - 4) MOD 40) + (((INT(RND * 8) - 4) MOD 79) * 256))			blds(abc).order = 3			blds(abc).flags = 10		END IF		END IF	NEXT a678	FOR a = 1 TO map.players		IF map.country(a).controller >= 100 THEN			a$ = INKEY$			a$ = UCASE$(a$)			FOR u = 1 TO 100				IF (blds(u).build = 0) AND (blds(u).owner = a) THEN 6789			NEXT u6789 IF u >= 100 THEN EXIT FOR			SELECT CASE a$				CASE "1":					blds(u).build = 1					blds(u).timeleft = unittypes(blds(u).build).buildtime				CASE "2":					blds(u).build = 2					blds(u).timeleft = unittypes(blds(u).build).buildtime				CASE "3":					blds(u).build = 3					blds(u).timeleft = unittypes(blds(u).build).buildtime				CASE "4":					blds(u).build = 4					blds(u).timeleft = unittypes(blds(u).build).buildtime				CASE "A", "B", "C":			map.country(a).money = map.country(a).money - bldtypes(2).price			FOR abc = 1 TO 100				IF blds(abc).owner = 0 THEN GOTO 134			NEXT abc134   FOR ab = 99 TO 1 STEP -1				IF blds(ab).owner = a THEN GOTO 135			NEXT ab135			blds(abc).owner = a			blds(abc).damage = 0			IF a$ = "A" THEN blds(abc).btype = 1			IF a$ = "B" THEN blds(abc).btype = 2			IF a$ = "C" THEN blds(abc).btype = 3			blds(abc).loc = blds(ab).loc + ((INT(RND * 8) - 4 MOD 20) + ((INT(RND * 8) - 4 MOD 78) * 256))			blds(abc).order = 3			blds(abc).flags = 10							END SELECT		END IF	NEXT aLOOPEND SUBSUB initunits ()unittypes(4).Strength = 3000unittypes(4).Speed = 5unittypes(4).FirePower = 2500unittypes(4).ShotRange = 14unittypes(4).price = 1000unittypes(4).AP = 1300     'unittypes(4).Armor = 95  ' 5% of ap damage avoidedunittypes(4).symbol = ""  'scoutunittypes(4).shotrate = 20'cyclesunittypes(4).buildtime = 400unittypes(1).Strength = 2000unittypes(1).Speed = 6unittypes(1).FirePower = 50unittypes(1).ShotRange = 4unittypes(1).price = 1000unittypes(1).AP = 5     'armor piercing damageunittypes(1).Armor = 9  ' 10% of ap damage avoidedunittypes(1).symbol = ""  'scoutunittypes(1).shotrate = 1'cyclesunittypes(1).buildtime = 100unittypes(2).Strength = 10000unittypes(2).Speed = 2unittypes(2).FirePower = 250unittypes(2).ShotRange = 6unittypes(2).price = 3000unittypes(2).AP = 180unittypes(2).Armor = 3unittypes(2).symbol = CHR$(2)  'tankunittypes(2).shotrate = 12'cyclesunittypes(2).buildtime = 500unittypes(3).Strength = 6000unittypes(3).Speed = 4unittypes(3).FirePower = 150unittypes(3).ShotRange = 6unittypes(3).price = 2000unittypes(3).AP = 120unittypes(3).Armor = 4unittypes(3).symbol = CHR$(1)  'small tankunittypes(3).shotrate = 9'cyclesunittypes(3).buildtime = 300bldtypes(1).Strength = 10000bldtypes(1).ShotRange = 3bldtypes(1).FirePower = 200bldtypes(1).symbol = ""  'basebldtypes(1).flags = 25bldtypes(1).price = 20000bldtypes(1).AP = 100bldtypes(1).Armor = 7bldtypes(1).shotrate = 10bldtypes(1).buildtime = 2500bldtypes(2).Strength = 5000bldtypes(2).ShotRange = 8bldtypes(2).FirePower = 1000bldtypes(2).symbol = ""  'Turretbldtypes(2).price = 10000bldtypes(2).AP = 500bldtypes(2).Armor = 9bldtypes(2).shotrate = 30bldtypes(2).buildtime = 1200bldtypes(3).Strength = 100000bldtypes(3).ShotRange = 0bldtypes(3).FirePower = 0bldtypes(3).symbol = ""  'wallbldtypes(3).flags = 100 ' 1 = builds units, 2 = blocks fire, 4 = passable, 8 = repairs units 16 = builds buildings 32 = firesbldtypes(3).price = 100bldtypes(3).AP = 0bldtypes(3).Armor = 7bldtypes(3).shotrate = 0bldtypes(3).buildtime = 600map.Name = "The Map"map.players = 5map.country(1).controller = 101map.country(1).color = 15map.country(1).CType = 1map.country(1).funding = 15map.country(2).controller = 2map.country(2).color = 10map.country(2).CType = 1map.country(2).funding = 15map.country(3).controller = 3map.country(3).color = 12map.country(3).CType = 1map.country(3).funding = 15map.country(4).controller = 4map.country(4).color = 13map.country(4).CType = 1map.country(4).funding = 15map.country(5).controller = 5map.country(5).color = 11map.country(5).CType = 1map.country(5).funding = 15map.country(6).controller = 6map.country(6).color = 14map.country(6).CType = 1map.country(6).funding = 15	AI(1).AIPTER = 10'ai $ to effect rate 1 to 100	AI(1).AICautious = 10	AI(1).AIBuildey = 10	AI(1).AIFixy = 10	AI(1).AIBuy = 10	AI(1).AIType = 10	AI(1).AIDTOR = 10	AI(1).AIDefType = 10	AI(1).AIOffType = 10	AI(1).AISneaky = 10	AI(1).AIAngry = 10	AI(1).AIFriendly = 10	AI(1).AIAggressive = 10	AI(1).AIsavey = 10	AI(2).AIPTER = 50'ai $ to effect rate 1 to 100	AI(2).AIFixy = 50	AI(2).AICautious = 50	AI(2).AIBuildey = 50	AI(2).AIBuy = 50	AI(2).AIType = 50	AI(2).AIDTOR = 50	AI(2).AIDefType = 50	AI(2).AIOffType = 50	AI(2).AISneaky = 50	AI(2).AIAngry = 50	AI(2).AIFriendly = 50	AI(2).AIAggressive = 50	AI(2).AIsavey = 50	AI(3).AIPTER = 90'ai $ to effect rate 1 to 100	AI(3).AIFixy = 10	AI(3).AICautious = 90	AI(3).AIBuildey = 90	AI(3).AIBuy = 90	AI(3).AIType = 90	AI(3).AIDTOR = 90	AI(3).AIDefType = 90	AI(3).AIOffType = 90	AI(3).AISneaky = 90	AI(3).AIAngry = 90	AI(3).AIFriendly = 90	AI(3).AIAggressive = 90	AI(3).AIsavey = 90	AI(4).AIPTER = 10'ai $ to effect rate 1 to 100	AI(4).AICautious = 10	AI(4).AIBuildey = 10	AI(4).AIFixy = 10	AI(4).AIBuy = 10	AI(4).AIType = 10	AI(4).AIDTOR = 10	AI(4).AIDefType = 10	AI(4).AIOffType = 10	AI(4).AISneaky = 10	AI(4).AIAngry = 10	AI(4).AIFriendly = 10	AI(4).AIAggressive = 10	AI(4).AIsavey = 10	AI(5).AIPTER = 50'ai $ to effect rate 1 to 100	AI(5).AIFixy = 50	AI(5).AICautious = 50	AI(5).AIBuildey = 50	AI(5).AIBuy = 50	AI(5).AIType = 50	AI(5).AIDTOR = 50	AI(5).AIDefType = 50	AI(5).AIOffType = 50	AI(5).AISneaky = 50	AI(5).AIAngry = 50	AI(5).AIFriendly = 50	AI(5).AIAggressive = 50	AI(5).AIsavey = 50	AI(6).AIPTER = 90'ai $ to effect rate 1 to 100	AI(6).AIFixy = 10	AI(6).AICautious = 90	AI(6).AIBuildey = 90	AI(6).AIBuy = 90	AI(6).AIType = 90	AI(6).AIDTOR = 90	AI(6).AIDefType = 90	AI(6).AIOffType = 90	AI(6).AISneaky = 90	AI(6).AIAngry = 90	AI(6).AIFriendly = 90	AI(6).AIAggressive = 90	AI(6).AIsavey = 90 END SUBSUB loadm ()PRINT "type a map name (no EXT), or press enter."INPUT ""; f$IF f$ = "" THEN EXIT SUB'f$ = "map"OPEN f$ + ".map" FOR BINARY AS #1GET #1, , mapCLOSE #1END SUBSUB mapgen ()n = INT(RND * 3) + 1FOR tt = 0 TO n	x = INT(RND * 40) - 20	y = INT(RND * 20) - 10	t = INT(RND * 10)	LOCATE 25 + y, 40 + x	PRINT STRING$(t, ASC(""))NEXT'DIM x, y, r AS INTEGERCOLOR 11, 0DO	FOR x = 2 TO 79		FOR y = 2 TO 45			IF SCREEN(y, x) = ASC("") THEN				r = INT(RND * 6)				 a = INT(RND * 3) - 1				 z = INT(RND * 3) - 1				 IF r = 0 THEN IF SCREEN(y + 1, x) = 32 THEN LOCATE y + 1, x: PRINT "": map.Landmap(y + 1, x) = 1						IF r = 1 THEN IF SCREEN(y - 1, x) = 32 THEN LOCATE y - 1, x: PRINT "": map.Landmap(y - 1, x) = 1						IF r = 2 THEN IF SCREEN(y, x + 1) = 32 THEN LOCATE y, x + 1: PRINT "": map.Landmap(y, x + 1) = 1						IF r = 3 THEN IF SCREEN(y, x - 1) = 32 THEN LOCATE y, x - 1: PRINT "": map.Landmap(y, x - 1) = 1						IF r = 4 THEN IF SCREEN(y + z, x + a) = ASC("") THEN LOCATE y + z, x + a: PRINT " ": map.Landmap(y + z, x + a) = 3						IF r >= 5 THEN							j = 0							DO								j = j + 1								a = INT(RND * 3) - 1								z = INT(RND * 3) - 1								IF SCREEN(y + z, x + a) = 32 THEN LOCATE y + z, x + a: PRINT "": map.Landmap(y + z, x + a) = 3: EXIT DO								IF j = 2 THEN EXIT DO							LOOP						END IF				 ELSEIF SCREEN(y, x) = ASC("") THEN					 a = INT(RND * 3) - 1					 z = INT(RND * 3) - 1					 t = INT(RND * 3)					 IF t = 0 THEN IF SCREEN(y + z, x + a) = 32 THEN LOCATE y + z, x + a: PRINT "": map.Landmap(y + z, x + a) = 3					 IF t >= 1 THEN IF SCREEN(y + z, x + a) = 32 THEN LOCATE y + z, x + a: PRINT "": map.Landmap(y + z, x + a) = 2				 END IF		NEXT y, x'  SLEEPLOOP WHILE INKEY$ <> CHR$(27)PRINT "press Y to save map, or just push enter to play it."INPUT ""; i$IF UCASE$(i$) = "Y" THENPRINT "type map name (no EXT!)"INPUT ""; f$OPEN f$ + ".map" FOR BINARY AS #1PUT #1, , mapCLOSE #1END IFCLSEND SUBD. J. Tuttle                   MECHANICAL MOUSE PROBLEM       Dtuttle25@aol.com              02-11-00 (18:16)       QB, QBasic, PDS        734  19694    MMOUSE25.BAS'MMOUSE25.BAS for QBasic by D. J. Tuttle'The Mechanical Mouse Problem'This program demonstrates one solution to the Mechanical Mouse problem'which is to devise an algorithm to guide a robotic Mouse through a'set of four mazes.  A single algorithm must work for all four mazes.''The Mechanical Mouse has the following instruction set:'     Move Forward'     Turn Right'     Turn Left'     Turn Around'     Wall Ahead?'     Maze Entrance?'     Maze Exit?'     Halt'Mechanical Mouse problem'from BASIC FUNDAMENTALS AND STYLE by James Quasney and John Maniotes,'(Boyd & Fraser Publishing Co., 1984), Appendix A p. A-11, question 17'The following algorithm -- method of solution -- is demonstrated.''description: "Turn Right, Spin Left" (or "Follow the Right-hand wall.")''flowchart:'                           /--------------\'                           |    Start     |'                           \--------------/'                                   |'                                   |'                           ----------------'                           | Move Forward |'                           ----------------'                                   |'                ------------------>|'                |                  -'                |                /   \'                |               /     \  Y           /--------------\'                |              < Exit? > ----------> |     Halt     |'                |               \     /              \--------------/'                |                \   /'                |                  -'                |                  | N'                |                  |'                |          ----------------'                |          |  Turn Right  |'                |          ----------------'                |                  |'                |                  |<-----------------------'                |                  -                       |'                |                /   \                     |'                |               /     \  Y           ----------------'                |              < Wall? > ----------> |  Turn Left   |'                |               \     /              ----------------'                |                \   /'                |                  -'                |                  | N'                |                  |'                |          ----------------'                |          | Move Forward |'                |          ----------------'                |                  |'                --------------------'suggestions for programmers:'' 1. Use the Single Step option to slow the program down in order to see'    the series of instructions performed by the Mechanical Mouse in detail.'    When this option is selected each instruction, as it is performed by'    the Mouse, is highlighted in the list of instructions displayed on the'    screen and the program is paused until the <Enter> key is pressed.'    Change the value of the Constant SINGLESTEP from FALSE to TRUE to'    select this option.'' 2. Use the Sound On option to turn on an audible beep when the "Wall'    Ahead?" instruction detects a wall.  Change the value of the Constant'    SOUNDON from FALSE to TRUE to select this option.'' 3. Modify the algorithm, in the ZSUBSolveMaze subprogram, from "Turn Right,'    Spin Left" to "Turn Left, Spin Right" so that the Mechanical Mouse'    follows the Left-hand wall.'' 4. Devise your own algorithm, using the Mechanical Mouse instruction set,'    for solving the set of mazes.  Test the algorithm by replacing the'    "Turn Right, Spin Left" solution in the ZSUBSolveMaze subprogram'    with your method of solution.''    The starting position of the Mouse is outside the maze entrance and'    pointing toward the maze.  Then the instruction Move Forward places'    the Mouse inside the maze.  The objective is to continue the advance'    of the Mouse through the maze to the finish (outside the maze exit).'Send comments and questions to this email address: dtuttle25@aol.comDECLARE SUB AInitialization ()DECLARE SUB AProcess ()DECLARE SUB ASummary ()DECLARE SUB Halt ()DECLARE FUNCTION MazeEntrance% ()DECLARE FUNCTION MazeExit% ()DECLARE SUB MoveForward ()DECLARE SUB TurnAround ()DECLARE SUB TurnLeft ()DECLARE SUB TurnRight ()DECLARE FUNCTION WallAhead% ()DECLARE SUB ZSUBCreateMouse ()DECLARE SUB ZSUBDelay (Value AS SINGLE)DECLARE SUB ZSUBDrawMouse ()DECLARE SUB ZSUBDrawWall (Row AS INTEGER, Col AS INTEGER, Dir AS INTEGER)DECLARE SUB ZSUBEraseMouse ()DECLARE SUB ZSUBReadData ()DECLARE SUB ZSUBSolveMaze ()DECLARE SUB ZSUBSSOption (Number AS INTEGER, S AS STRING)DECLARE SUB ZSUBTransform (X AS SINGLE, Y AS SINGLE)DECLARE SUB ZSUBUpdateScreen ()CONST FALSE = 0, TRUE = NOT FALSECONST VIEWPORTBG = 1, VIEWPORTBORDER = 7CONST WALLON = 7, MOUSEON = 2, EYEON = 15CONST GRAPHICSIZE = 562   'based on formula from QBasic Help fileCONST STARTDIR = 0CONST DELAY = .25CONST NOTEFREQ = 440, NOTEDUR = 1CONST B$ = " ", F$ = "F", T$ = "T"'Options: TRUE/FALSECONST SINGLESTEP = FALSECONST SOUNDON = FALSEDIM SHARED MouseRow AS INTEGER, MouseCol AS INTEGERDIM SHARED MouseDir AS INTEGER, MousePtr AS INTEGERDIM SHARED MRowOffset AS INTEGER, MColOffset AS INTEGERDIM SHARED GRowOffset AS SINGLE, GColOffset AS SINGLEDIM SHARED EntranceRow AS INTEGER, EntranceCol AS INTEGERDIM SHARED ExitRow AS INTEGER, ExitCol AS INTEGERDIM SHARED EscKey AS STRING * 1, EnterKey AS STRING * 1DIM SHARED Arrow AS STRING * 1DIM SHARED BinaryWeight(0 TO 3) AS INTEGERDIM SHARED MoveRowOffset(0 TO 3) AS INTEGER, MoveColOffset(0 TO 3) AS INTEGERDIM SHARED Maze(1 TO 2, 1 TO 2) AS INTEGERDIM SHARED BlankGraphic(0 TO GRAPHICSIZE - 1) AS INTEGERDIM SHARED DirGraphic(0 TO 24 * GRAPHICSIZE - 1) AS INTEGERTYPE DataSet   XHead AS SINGLE   YHead AS SINGLE   XBody AS SINGLE   YBody AS SINGLE   XTail AS SINGLE   YTail AS SINGLE   XLtWhisker1 AS SINGLE   YLtWhisker1 AS SINGLE   XRtWhisker1 AS SINGLE   YRtWhisker1 AS SINGLE   XLtWhisker2 AS SINGLE   YLtWhisker2 AS SINGLE   XRtWhisker2 AS SINGLE   YRtWhisker2 AS SINGLE   XLtEye AS SINGLE   YLtEye AS SINGLE   XRtEye AS SINGLE   YRtEye AS SINGLEEND TYPECALL AInitializationCALL AProcessCALL ASummarySYSTEM'format of maze data statements:'maze row offset, maze col offset'entrance row, entrance col'exit row, exit col'wall structure of maze (4 cells; each cell has 4 walls;'   binary value represents walls: 0 = no wall, 1 = wall'   where bit 0 = up, bit 1 = right, bit 2 = down, bit 3 = left)'Maze 1DATA 0,0DATA 3,1DATA 0,1DATA 12,3,9,6'Maze 2DATA 0,4DATA 3,1DATA 0,1DATA 8,7,8,7'Maze 3DATA 4,0DATA 3,1DATA 0,2DATA 9,6,8,7'Maze 4DATA 4,4DATA 3,2DATA 0,1DATA 10,11,12,2'END OF MAIN PROGRAMSUB AInitialization STATIC   DIM I AS INTEGER   DIM Row AS INTEGER, Col AS INTEGER, Dir AS INTEGER   RANDOMIZE TIMER     EscKey$ = CHR$(27): EnterKey$ = CHR$(13)   Arrow$ = CHR$(26)     '0 = up, 1 = right, 2 = down, 3 = left     'binary weight associated with each direction   BinaryWeight(0) = 1   BinaryWeight(1) = 2   BinaryWeight(2) = 4   BinaryWeight(3) = 8     'row offset associated with moving forward from each direction   MoveRowOffset(0) = -1   MoveRowOffset(1) = 0   MoveRowOffset(2) = 1   MoveRowOffset(3) = 0     'col offset associated with moving forward from each direction   MoveColOffset(0) = 0   MoveColOffset(1) = 1   MoveColOffset(2) = 0   MoveColOffset(3) = -1     SCREEN 9, , 1, 0   COLOR 7   PRINT "MMOUSE25.BAS"   LOCATE 3, 1   PRINT "The Mechanical"   PRINT "Mouse Problem"   PRINT   PRINT "devise an algorithm"   PRINT "to solve the mazes"   PRINT   PRINT "algorithm: turn"   PRINT "right, spin left"   PRINT   IF NOT SINGLESTEP THEN      PRINT      PRINT   ELSE      PRINT "Single Step option:"      PRINT "press <Enter> key"   END IF   PRINT   PRINT "Mechanical Mouse"   PRINT "Instruction Set:"   PRINT "  Move Forward"   PRINT "  Turn Right"   PRINT "  Turn Left"   PRINT "  Turn Around"   PRINT "  Wall Ahead?"   PRINT "  Maze Entrance?"   PRINT "  Maze Exit?"   PRINT "  Halt";     VIEW (164, 1)-(638, 348), VIEWPORTBG, VIEWPORTBORDER   WINDOW SCREEN (0, 0)-(8, 8)   LINE (4, 0)-(4, 8), VIEWPORTBORDER   LINE (0, 4)-(8, 4), VIEWPORTBORDER     CALL ZSUBCreateMouse     FOR I = 1 TO 4      'read maze data      CALL ZSUBReadData      'draw maze      FOR Row = 1 TO 2         FOR Col = 1 TO 2            FOR Dir = 0 TO 3               IF NOT (Maze(Row, Col) AND BinaryWeight(Dir)) = 0 THEN CALL ZSUBDrawWall(Row, Col, Dir)            NEXT Dir         NEXT Col      NEXT Row   NEXT I   RESTORE     'slight delay so fast computers do not overrun start of program   IF NOT SINGLESTEP THEN      CALL ZSUBUpdateScreen      CALL ZSUBDelay(.5)   END IFEND SUBSUB AProcess STATIC    DIM I AS INTEGER     FOR I = 1 TO 4      CALL ZSUBReadData           'draw Mouse at maze entrance pointing upward toward maze      MouseRow = EntranceRow      MouseCol = EntranceCol      MouseDir = STARTDIR      MousePtr = MouseDir * 6      CALL ZSUBDrawMouse           CALL ZSUBSolveMaze   NEXT IEND SUBSUB ASummary STATIC   VIEWEND SUBSUB Halt STATIC   'Mechanical Mouse Instruction Set: Halt   'instruction 8 in screen list   CALL ZSUBSSOption(8, "")END SUBFUNCTION MazeEntrance% STATIC   'Mechanical Mouse Instruction Set: Maze Entrance? (returns True or False)   'instruction 6 in screen list   IF NOT ((MouseRow = EntranceRow) AND (MouseCol = EntranceCol)) THEN      CALL ZSUBSSOption(6, F$)      MazeEntrance = FALSE   ELSE      CALL ZSUBSSOption(6, T$)      MazeEntrance = TRUE   END IF END FUNCTIONFUNCTION MazeExit% STATIC   'Mechanical Mouse Instruction Set: Maze Exit? (returns True or False)   'instruction 7 in screen list   IF NOT ((MouseRow = ExitRow) AND (MouseCol = ExitCol)) THEN      CALL ZSUBSSOption(7, F$)      MazeExit = FALSE   ELSE      CALL ZSUBSSOption(7, T$)      MazeExit = TRUE   END IF  END FUNCTIONSUB MoveForward STATIC   'Mechanical Mouse Instruction Set: Move Forward   'instruction 1 in screen list   CALL ZSUBSSOption(1, "")     CALL ZSUBEraseMouse     MouseRow = MouseRow + MoveRowOffset(MouseDir)   MouseCol = MouseCol + MoveColOffset(MouseDir)   MousePtr = MouseDir * 6   CALL ZSUBDrawMouse  END SUBSUB TurnAround STATIC   'Mechanical Mouse Instruction Set: Turn Around   'instruction 4 in screen list   DIM I AS INTEGER    CALL ZSUBSSOption(4, "")     'randomly select direction to turn around   SELECT CASE INT(RND * 2) + 1           CASE 1         'turn around to the left                 IF MouseDir = 0 THEN            MousePtr = 23         ELSE            MousePtr = MouseDir * 6 - 1         END IF          FOR I = 1 TO 12            CALL ZSUBDrawMouse            MousePtr = MousePtr - 1: IF MousePtr = -1 THEN MousePtr = 23         NEXT I         'two left-hand turns         MouseDir = MouseDir - 1: IF MouseDir = -1 THEN MouseDir = 3         MouseDir = MouseDir - 1: IF MouseDir = -1 THEN MouseDir = 3           CASE 2         'turn around to the right                 MousePtr = MouseDir * 6 + 1                 FOR I = 1 TO 12            CALL ZSUBDrawMouse            MousePtr = MousePtr + 1: IF MousePtr = 24 THEN MousePtr = 0         NEXT I                 'two right-hand turns         MouseDir = MouseDir + 1: IF MouseDir = 4 THEN MouseDir = 0         MouseDir = MouseDir + 1: IF MouseDir = 4 THEN MouseDir = 0      END SELECTEND SUBSUB TurnLeft STATIC     'Mechanical Mouse Instruction Set: Turn Left   'instruction 3 in screen list     DIM I AS INTEGER     CALL ZSUBSSOption(3, "")     IF MouseDir = 0 THEN      MousePtr = 23   ELSE      MousePtr = MouseDir * 6 - 1   END IF      FOR I = 1 TO 6      CALL ZSUBDrawMouse      MousePtr = MousePtr - 1   NEXT I    MouseDir = MouseDir - 1: IF MouseDir = -1 THEN MouseDir = 3END SUBSUB TurnRight STATIC   'Mechanical Mouse Instruction Set: Turn Right   'instruction 2 in screen list   DIM I AS INTEGER     CALL ZSUBSSOption(2, "")     MousePtr = MouseDir * 6 + 1     FOR I = 1 TO 6      CALL ZSUBDrawMouse      MousePtr = MousePtr + 1: IF MousePtr = 24 THEN MousePtr = 0   NEXT I     MouseDir = MouseDir + 1: IF MouseDir = 4 THEN MouseDir = 0  END SUBFUNCTION WallAhead% STATIC   'Mechanical Mouse Instruction Set: Wall Ahead? (returns True or False)   'instruction 5 in screen list   IF (Maze(MouseRow, MouseCol) AND BinaryWeight(MouseDir)) = 0 THEN      CALL ZSUBSSOption(5, F$)      WallAhead = FALSE   ELSE      IF SOUNDON THEN SOUND NOTEFREQ, NOTEDUR      CALL ZSUBSSOption(5, T$)      WallAhead = TRUE   END IF END FUNCTIONSUB ZSUBCreateMouse STATIC   CONST XCenter = .5, YCenter = .5     DIM I AS INTEGER   DIM X1 AS SINGLE, Y1 AS SINGLE   DIM X2 AS SINGLE, Y2 AS SINGLE   DIM MG AS DataSet   X1 = PMAP(PMAP(0, 0) + 2, 2)   Y1 = PMAP(PMAP(0, 1) + 2, 3)   X2 = PMAP(PMAP(1, 0) - 2, 2)   Y2 = PMAP(PMAP(1, 1) - 2, 3)     'save blank graphic   GET (X1, Y1)-(X2, Y2), BlankGraphic(0)   'define points for Mouse graphic   MG.XHead = 0: MG.YHead = -.2   MG.XBody = 0: MG.YBody = 0   MG.XTail = 0: MG.YTail = .4   MG.XLtWhisker1 = -.2: MG.YLtWhisker1 = -.29   MG.XRtWhisker1 = .2: MG.YRtWhisker1 = -.29   MG.XLtWhisker2 = -.2: MG.YLtWhisker2 = -.24   MG.XRtWhisker2 = .2: MG.YRtWhisker2 = -.24   MG.XLtEye = -.07: MG.YLtEye = -.265   MG.XRtEye = .07: MG.YRtEye = -.265     FOR I = 0 TO 23      'draw Mouse      CIRCLE (XCenter + MG.XHead, YCenter + MG.YHead), .11, MOUSEON      PAINT (XCenter + MG.XHead, YCenter + MG.YHead), MOUSEON, MOUSEON           CIRCLE (XCenter + MG.XBody, YCenter + MG.YBody), .2, MOUSEON      PAINT (XCenter + MG.XBody, YCenter + MG.YBody), MOUSEON, MOUSEON      LINE (XCenter + MG.XBody, YCenter + MG.YBody)-(XCenter + MG.XTail, YCenter + MG.YTail), MOUSEON      LINE (XCenter + MG.XLtWhisker1, YCenter + MG.YLtWhisker1)-(XCenter + MG.XRtWhisker1, YCenter + MG.YRtWhisker1), MOUSEON      LINE (XCenter + MG.XLtWhisker2, YCenter + MG.YLtWhisker2)-(XCenter + MG.XRtWhisker2, YCenter + MG.YRtWhisker2), MOUSEON      PSET (XCenter + MG.XLtEye, YCenter + MG.YLtEye), EYEON      PSET (XCenter + MG.XRtEye, YCenter + MG.YRtEye), EYEON      'save graphic (each successive graphic is rotated 15 degrees cw)      ' 0 =   0 deg. (up),  1 =  15,  2 =  30,  3 =  45,  4 =  60,  5 =  75      ' 6 =  90 deg. (rt),  7 = 105,  8 = 120,  9 = 135, 10 = 150, 11 = 165      '12 = 180 deg. (dn), 13 = 195, 14 = 210, 15 = 225, 16 = 240, 17 = 255      '18 = 270 deg. (lt), 19 = 285, 20 = 300, 21 = 315, 22 = 330, 23 = 345      GET (X1, Y1)-(X2, Y2), DirGraphic(I * GRAPHICSIZE)           'erase graphic      PUT (X1, Y1), BlankGraphic(0), PSET           'rotate points for Mouse graphic 15 degrees cw      CALL ZSUBTransform(MG.XBody, MG.YBody)      CALL ZSUBTransform(MG.XTail, MG.YTail)      CALL ZSUBTransform(MG.XHead, MG.YHead)      CALL ZSUBTransform(MG.XLtWhisker1, MG.YLtWhisker1)      CALL ZSUBTransform(MG.XRtWhisker1, MG.YRtWhisker1)      CALL ZSUBTransform(MG.XLtWhisker2, MG.YLtWhisker2)      CALL ZSUBTransform(MG.XRtWhisker2, MG.YRtWhisker2)      CALL ZSUBTransform(MG.XLtEye, MG.YLtEye)      CALL ZSUBTransform(MG.XRtEye, MG.YRtEye)     NEXT I     'graphic offsets   GRowOffset = Y1: GColOffset = X1END SUBSUB ZSUBDelay (Value AS SINGLE) STATIC   CONST SPD = 86400   'seconds per day    DIM DelayValue AS SINGLE   DIM TimeCheck1 AS SINGLE, TimeCheck2 AS SINGLE    DelayValue = Value    TimeCheck1 = TIMER    WHILE DelayValue > 0           DO         TimeCheck2 = TIMER      LOOP WHILE TimeCheck1 = TimeCheck2           IF TimeCheck2 > TimeCheck1 THEN         DelayValue = DelayValue - (TimeCheck2 - TimeCheck1)      ELSE         'midnight         DelayValue = DelayValue - (SPD - TimeCheck1) - TimeCheck2      END IF           TimeCheck1 = TimeCheck2        WENDEND SUBSUB ZSUBDrawMouse STATIC   PUT (MColOffset + MouseCol + GColOffset, MRowOffset + MouseRow + GRowOffset), DirGraphic(MousePtr * GRAPHICSIZE), PSET   CALL ZSUBUpdateScreen   'delay if Mouse is pointing up, right, down or left (not while turning)   IF (MousePtr MOD 6) = 0 THEN CALL ZSUBDelay(DELAY)  END SUBSUB ZSUBDrawWall (Row AS INTEGER, Col AS INTEGER, Dir AS INTEGER) STATIC   DIM X1 AS INTEGER, Y1 AS INTEGER   DIM X2 AS INTEGER, Y2 AS INTEGER   SELECT CASE Dir      CASE 0         X1 = Col: Y1 = Row         X2 = Col + 1: Y2 = Row      CASE 1         X1 = Col + 1: Y1 = Row         X2 = Col + 1: Y2 = Row + 1      CASE 2         X1 = Col + 1: Y1 = Row + 1         X2 = Col: Y2 = Row + 1      CASE 3         X1 = Col: Y1 = Row + 1         X2 = Col: Y2 = Row   END SELECT   LINE (MColOffset + X1, MRowOffset + Y1)-(MColOffset + X2, MRowOffset + Y2), WALLONEND SUBSUB ZSUBEraseMouse STATIC   PUT (MColOffset + MouseCol + GColOffset, MRowOffset + MouseRow + GRowOffset), BlankGraphic(0), PSET  END SUBSUB ZSUBReadData STATIC   DIM Row AS INTEGER, Col AS INTEGER     READ MRowOffset, MColOffset   READ EntranceRow, EntranceCol   READ ExitRow, ExitCol     FOR Row = 1 TO 2      FOR Col = 1 TO 2         READ Maze(Row, Col)      NEXT Col   NEXT Row   END SUBSUB ZSUBSolveMaze STATIC   'maze solution algorithm: turn right, spin left (follow right-hand wall)     MoveForward   DO UNTIL MazeExit = TRUE      TurnRight      WHILE WallAhead = TRUE         TurnLeft      WEND      MoveForward     LOOP   HaltEND SUBSUB ZSUBSSOption (Number AS INTEGER, S AS STRING) STATIC   DIM A AS STRING     IF SINGLESTEP THEN      LOCATE 16 + Number, 1: PRINT Arrow$;      LOCATE 16 + Number, 18: PRINT S$;           CALL ZSUBUpdateScreen           DO         A$ = INKEY$      LOOP WHILE NOT A$ = ""      DO         DO            A$ = INKEY$         LOOP WHILE A$ = ""         IF A$ = EscKey$ THEN STOP      LOOP UNTIL A$ = EnterKey$      LOCATE 16 + Number, 1: PRINT B$;      LOCATE 16 + Number, 18: PRINT B$;     END IFEND SUBSUB ZSUBTransform (X AS SINGLE, Y AS SINGLE) STATIC   'transformation matrix for ccw rotation   'rotation is actually cw since WINDOW SCREEN statment reverses the   'Y screen coordinates     CONST COSINE = .9659258         'Cosine = COS(15 degrees * 3.141593 / 180)   CONST SINE = .2588191           'Sine =   SIN(15 degrees * 3.141593 / 180)     DIM Xt AS SINGLE, Yt AS SINGLE   Xt = COSINE * X + -SINE * Y   Yt = SINE * X + COSINE * Y   X = Xt   Y = YtEND SUBSUB ZSUBUpdateScreen STATIC   'wait for vertical retrace   'REMmed out (inactivated); reactivate if graphics are not smooth   'WAIT &H3DA, 8   'WAIT &H3DA, 8, 8     'update screen   PCOPY 1, 0END SUBGerald Wykoff                  Pysc Interview                                                  -  -   (  :  )       QB, Qbasic, PDS        766  41760    dialogue.bas'===========================================================================' Subject: Artificial Intelligence            Date: 06-10-01 (  :  )       '  Author: Gerald Wykoff                      Code: QB Qbasic              '  Origin: wykoff@mbawiz.com                Packet: GAMES.ABC'===========================================================================' Subject:  AI - Pychological Interview           Date: 6-10-1  (18:22) '           Author: Gerald L. Wykoff              Code: QB, QBasic'           Origin:  wykoff@mbawiz.com'REM   Author's Note:  This Artificial Intelligence program is a combinationREM   from a number of other individuals whose coding I took from the ABCREM   files and then I modified and added my own.  What you have here then isREM   a sort of demo learning lesson I put together to teach myself howREM   to make QBasic do what I want ... and I'm certain there are someREM   truly talented people who can create even better code.'DECLARE SUB TextBox (x, y, XEnde, YEnde, Foreground, Background, ShadeFore, ShadeBack)DECLARE SUB TextBox2 (x, y, XEnde, YEnde)'                  Note 750 and 830 (not being used) are DATA sectionsCLS : SCREEN 0: WIDTH 80COLOR 9, 1RANDOMIZE TIMERFOR I% = 1 TO 1000  PRINT "";NEXT I%CALL TextBox2(7, 10, 20, 70)           '14,4,20,50                        '  1. is Top margin                        '  2. is Left margin                        '  3. thickness of box T to B                        '  4. Width of box L to RCOLOR 5, 7LOCATE 8, 20PRINT "A PSYCHOLOGICAL INTERVIEW PROGRAM"LOCATE 9, 23PRINT "WITH DR. WEMEY HASSEL"LOCATE 11, 25COLOR 14PRINT "by Gerald L. Wykoff"COLOR 1, 7LOCATE 15, 20: PRINT "If some issues just keep on bugging you,"LOCATE , 20: PRINT "    try talking them out with our always"LOCATE , 20: PRINT " insightful - but irreverent - psychologist."COLOR 15LOCATE 19, 15PRINT "           Tap Any Key to Continue"DO WHILE INKEY$ = ""LOOPCLSSCREEN 9COLOR 14, 1'=========================CLS : SCREEN 0: WIDTH 80COLOR 9, 1RANDOMIZE TIMERFOR I% = 1 TO 1000  PRINT "";NEXT I%CALL TextBox(4, 4, 22, 74, 11, 1, 4, 7)'      Jerry:  make sure the text background color matches the box color'              so it'll merge properly without background bandsCOLOR 14, 1'========LOCATE 6, 10: PRINT "Before we start, please know that you can stop the inter-"LOCATE 7, 10: PRINT "view at any question by typing 'bye' as your response."LOCATE 9, 10: PRINT "Also, your comments are interpreted by their different"LOCATE , 10: PRINT "lengths and - especially - by END punctuation. So use:"LOCATE , 11: PRINT "--    no end punctuation at all for more neutral comments"LOCATE , 11: PRINT "--    ! for strong and/or emphatic opinions"LOCATE , 11: PRINT "--    . for declarative - but not intense - expressions"LOCATE , 11: PRINT "--    ? for questions and inquiries"LOCATE , 11: PRINT "--    - for thoughts to be left hanging, unfinished"COLOR 12, 1LOCATE 17, 10: PRINT "Finally: NO commas in answers.  If you feel the need"LOCATE 18, 12: PRINT "for comma, use a '-' sign instead i.e., 'well - yes!'"'===========COLOR 14, 1LOCATE 21, 25: PRINT "To Continue, Tap Any Key"         '; stop$DO WHILE INKEY$ = ""LOOP'IF stop$ = "" THEN GOTO 2525CLS : SCREEN 0: WIDTH 80COLOR 9, 1RANDOMIZE TIMERFOR I% = 1 TO 1000  PRINT "";NEXT I%CALL TextBox(4, 4, 22, 74, 11, 1, 4, 7)COLOR 14, 1LOCATE 11, 8: INPUT "With what name should I address you, please"; n$51 LOCATE 13, 11: PRINT "Well, "; n$; " is a fine name."LOCATE 14, 13: PRINT "Is there anything I can help you with, "; n$; "?"                        '============================55 COLOR 15         ' this is the start and return point for all comments---56 c = c + 157 c1 = c1 + 158 IF c1 <= 15 THEN GOTO 6059 c1 = 1COLOR 1460 LOCATE 16, 12: INPUT " -- "; r$CLS : SCREEN 0: WIDTH 80COLOR 9, 1RANDOMIZE TIMERFOR I% = 1 TO 1000  PRINT "";NEXT I%CALL TextBox(4, 4, 22, 74, 11, 1, 4, 7)COLOR 14, 1                                '==============IF r$ = "ok" THEN GOTO 60.55 SELECT CASE r$ CASE "Nuts!"IF LEFT$(r$, 5) = "Nuts!" THEN'                                 this gives some roomLOCATE 12, 10: COLOR 14LET su = INT(RND * 5) + 1IF su = 1 THEN LET r$ = "You're succinct. I'll give you that, " + n$ + "!": PRINT TAB(20); r$: GOTO 55IF su = 2 THEN LET r$ = "My! My! Aren't we the droll one!": PRINT TAB(20); r$: GOTO 55IF su = 3 THEN LET r$ = "Is that all you can think of at this point, " + n$ + "?": PRINT TAB(20); r$: GOTO 55IF su = 4 THEN LET r$ = "Awwww . . .Come off it!": PRINT TAB(20); r$: GOTO 55IF su = 5 THEN LET r$ = "Well - love and kisses to you too, " + n$ + "?": PRINT TAB(20); r$: GOTO 55END IF                        '======================CASE "Really?"IF RIGHT$(r$, 7) = "Really?" THENCOLOR 14, 1LOCATE 12, 10LET su = INT(RND * 5) + 1IF su = 1 THEN LET r$ = "Is your comment intended to be smart-assey, " + n$ + "?": PRINT TAB(20); r$: GOTO 55IF su = 2 THEN LET r$ = "Oh, do we 'really' need such naked sarcasm?": PRINT TAB(20); r$: GOTO 55IF su = 3 THEN LET r$ = "That's what I said.  Something strange about it?": PRINT TAB(20); r$: GOTO 55IF su = 4 THEN LET r$ = "Was my comment all that difficult to digest?": PRINT TAB(20); r$: GOTO 55IF su = 5 THEN LET r$ = "What do we have here: sarcasm or true doubt, " + n$ + "!": PRINT TAB(20); r$: GOTO 55END IF                        '========================= CASE "Yes!"IF LEFT$(r$, 4) = "Yes!" THENCOLOR 14LOCATE 12, 10LET su = INT(RND * 5) + 1IF su = 1 THEN LET r$ = "That's a bold affirmation - and a good one, " + n$ + "!": PRINT TAB(20); r$: GOTO 55IF su = 2 THEN LET r$ = "Well, you certainly are positive about that.": PRINT TAB(20); r$: GOTO 55IF su = 3 THEN LET r$ = "Be absolutely sure now, " + n$ + ".": PRINT TAB(20); r$: GOTO 55IF su = 4 THEN LET r$ = "You betcha.  You're getting the handle, I think!.": PRINT TAB(20); r$: GOTO 55IF su = 5 THEN LET r$ = "Fine!  Let's keep it to one step at a time, " + n$ + "!": PRINT TAB(20); r$: GOTO 55END IF                        '================== CASE "OK"IF LEFT$(r$, 2) = "OK" THEN60.55COLOR 14LOCATE 12, 10LET su = INT(RND * 5) + 1IF su = 1 THEN LET r$ = "I'm happy to notice your cooperation, " + n$ + ".": PRINT TAB(20); r$: GOTO 55IF su = 2 THEN LET r$ = "If we're agreed on that, let's move on now.": PRINT TAB(20); r$: GOTO 55IF su = 3 THEN LET r$ = "Do you really mean OK - or are you bantering with me, " + n$ + "?": PRINT TAB(20); r$: GOTO 55IF su = 4 THEN LET r$ = "Well, you're easy to get along with.": PRINT TAB(20); r$: GOTO 55IF su = 5 THEN LET r$ = "At least we've overcome that issue, right, " + n$ + "?: PRINT TAB(20); r$: GOTO 55"END IF                        '============== CASE "Fuck you!"IF LEFT$(r$, 9) = "Fuck you!" THENCOLOR 14LOCATE 8, 5LET su = INT(RND * 5) + 1IF su = 1 THEN LET r$ = "Well, we know how you got deflowered, huh?": PRINT TAB(20); r$: GOTO 55IF su = 2 THEN LET r$ = "S'matter?  Your Viagra supply missing again?": PRINT TAB(20); r$: GOTO 55IF su = 3 THEN LET r$ = "You sound like a social director at an orgy, " + n$ + "?": PRINT TAB(20); r$: GOTO 55IF su = 4 THEN LET r$ = "That's nifty! All the charm of a dirty Christmas card.": PRINT TAB(20); r$: GOTO 55IF su = 5 THEN LET r$ = "How? Any expert's advice you'd care to offer, " + n$ + "!": PRINT TAB(20); r$: GOTO 55IF su = 6 THEN LET r$ = "Hey? Been there...done that...it hurts.": PRINT TAB(20); r$: GOTO 55END IF                        '================== CASE "How?"IF LEFT$(r$, 4) = "How?" THENCOLOR 14LOCATE 12, 10LET su = INT(RND * 5) + 1IF su = 1 THEN LET r$ = "That, as they say, is the $64 question, " + n$ + ".": PRINT TAB(20); r$: GOTO 55IF su = 2 THEN LET r$ = "If we knew that, we'd have the key to many things.": PRINT TAB(20); r$: GOTO 55IF su = 3 THEN LET r$ = "This interview could be over in a hurry if we knew that.": PRINT TAB(20); r$: GOTO 55IF su = 4 THEN LET r$ = "Maybe we can find out so let's keep trying.": PRINT TAB(20); r$: GOTO 55IF su = 5 THEN LET r$ = "How? Any ideas you'd care to advance right now, " + n$ + "!": PRINT TAB(20); r$: GOTO 55END IFEND SELECT                        '=============================LOCATE 10, 10IF RIGHT$(r$, 5) = "hell!" THEN PRINT "Frankly, I don't care to visit your relatives.": GOTO 55LOCATE 10, 6IF MID$(r$, 1, 6) = "I feel" THEN GOTO 1500LOCATE 10, 6: IF RIGHT$(r$, 5) = "shit!" THEN r$ = LEFT$(r$, LEN(r$) - 5): GOTO 95LOCATE 10, 6IF RIGHT$(r$, 7) = "stupid!" THEN r$ = LEFT$(r$, LEN(r$) - 7): GOTO 1200LOCATE 12, 1460.1 IF MID$(r$, 1, 3) = "Bye" OR MID$(r$, 1, 3) = "bye" OR MID$(r$, 1, 3) = "BYE" THEN GOTO 2000IF LEN(r$) < 2 THEN 10661 IF INSTR(r$, "I suppose") THEN r$ = LEFT$(r$, LEN(r$) - 9): GOTO 10061.1 IF LEFT$(r$, 4) = "why?" OR LEFT$(r$, 4) = "Why?" THEN r$ = RIGHT$(r$, LEN(r$) - 4): GOTO 31061.2 IF LEFT$(r$, 3) = "no!" OR LEFT$(r$, 3) = "No!" THEN r$ = LEFT$(r$, LEN(r$) - 3): GOTO 42761.3 IF LEFT$(r$, 2) = "OK" OR LEFT$(r$, 3) = "ok" THEN r$ = LEFT$(r$, LEN(r$) - 2): GOTO 1520'61.4  IF INSTR(r$, "father") THEN r$ = LEFT$(r$, LEN(r$) - 6): GOTO 13061.5  IF INSTR(r$, "mother") THEN r$ = LEFT$(r$, LEN(r$) - 6): GOTO 14061.7  IF RIGHT$(r$, 5) = "then?" THEN r$ = LEFT$(r$, LEN(r$) - 5): GOTO 33062 IF RIGHT$(r$, 1) = "?" THEN r$ = LEFT$(r$, LEN(r$) - 1): GOTO 15063 IF RIGHT$(r$, 1) = "!" THEN r$ = LEFT$(r$, LEN(r$) - 1): GOTO 16064 IF RIGHT$(r$, 1) = "." THEN r$ = LEFT$(r$, LEN(r$) - 1): GOTO 75065 IF RIGHT$(r$, 2) = " -" THEN r$ = LEFT$(r$, LEN(r$) - 2): GOTO 12066 IF INSTR(r$, "brother") THEN r$ = LEFT$(r$, LEN(r$) - 7): GOTO 17067 IF INSTR(r$, "sister") THEN r$ = LEFT$(r$, LEN(r$) - 6): GOTO 18068   ''=====================================69 IF INSTR(r$, "habit") THEN r$ = LEFT$(r$, LEN(r$) - 5): GOTO 17571 IF INSTR(r$, "because") THEN r$ = LEFT$(r$, LEN(r$) - 7): GOTO 30574 IF LEFT$(r$, 7) = "I don't" THEN r$ = RIGHT$(r$, LEN(r$) - 2): GOTO 42075 IF LEFT$(r$, 8) = "I do not" THEN r$ = RIGHT$(r$, LEN(r$) - 8): GOTO 42076 IF LEFT$(r$, 4) = "I am" THEN r$ = RIGHT$(r$, LEN(r$) - 4): GOTO 53077 IF LEFT$(r$, 3) = "I'm" THEN r$ = RIGHT$(r$, LEN(r$) - 3): GOTO 53078 IF LEFT$(r$, 2) = "I " THEN r$ = RIGHT$(r$, LEN(r$) - 2): GOTO 94079 IF INSTR(r$, "sex") THEN r$ = LEFT$(r$, LEN(r$) - 3): GOTO 105080 IF LEFT$(r$, 7) = "Are you" THEN r$ = RIGHT$(r$, LEN(r$) - 7): GOTO 119081 IF LEFT$(r$, 5) = "where" THEN r$ = LEFT$(r$, LEN(r$) - 5): GOTO 105082 IF INSTR(r$, "sorry") THEN r$ = LEFT$(r$, LEN(r$) - 5): GOTO 113083 IF INSTR(r$, "maybe") THEN r$ = LEFT$(r$, LEN(r$) - 5): GOTO 1160 IF INSTR(r$, "Maybe") THEN r$ = LEFT$(r$, LEN(r$) - 5): GOTO 116084 IF INSTR(r$, "more") THEN r$ = LEFT$(r$, LEN(r$) - 4): GOTO 117085 IF LEFT$(r$, 2) = "If" THEN r$ = RIGHT$(r$, LEN(r$) - 2): GOTO 119986 IF INSTR(r$, "She") OR INSTR(r$, "she") THEN r$ = LEFT$(r$, LEN(r$) - 3): GOTO 435   IF INSTR(r$, "He") OR INSTR(r$, "he") THEN r$ = LEFT$(r$, LEN(r$) - 2): GOTO 32087 IF INSTR(r$, "self-examination") THEN r$ = LEFT$(r$, LEN(r$) - 16): GOTO 1195MID:88 FOR x = 1 TO LEN(r$)REM: more specific responses may be made by taking what's after X+key word(s)89 IF MID$(r$, x, 9) = "don't you" THEN GOTO 33590 IF MID$(r$, x, 9) = "Don't you" THEN GOTO 33591 IF MID$(r$, x, 7) = "perhaps" THEN GOTO 1180   IF MID$(r$, x, 7) = "Perhaps" THEN GOTO 118092 IF MID$(r$, x, 7) = "you are" THEN GOTO 85093 IF MID$(r$, x, 6) = "You're" THEN GOTO 85094 IF MID$(r$, x, 4) = "What" THEN GOTO 1160   IF MID$(r$, x, 4) = "what" THEN GOTO 1160   NEXT xGOTO 750''=======================5555   'locate division point between input and responses''===================================this is where the responses start'95 ON c1 GOTO 95.1, 95.2, 95.3, 95.4, 95.5, 95.6, 95.795.1 LOCATE , 15: PRINT "That was a cute little scatalogical burst, I'd say.": GOTO 5595.2 LOCATE , 15: PRINT "Not bad although I personally prefer 'crap'!": GOTO 5595.3 LOCATE , 15: PRINT "Since you're not talking money spread it thin.": GOTO 5595.4 LOCATE , 15: PRINT "I'll do my best not to step in it.  Now continue, please.": GOTO 5595.5 LOCATE , 15: PRINT "One man's gold is another man's - (get the idea!)": GOTO 5595.6 LOCATE , 15: PRINT "You're sounding, "; n$; " a little poopy now.": GOTO 5595.7 LOCATE , 15: PRINT "Well now, aren't you just the perfect sugar mouth? ": GOTO 55'100 ON c1 GOTO 101, 102, 103, 104101 PRINT "The great Spinoza said uncertainty is the enemy of clear"LOCATE , 15: PRINT "thought.  Care to express a more singular opinion"LOCATE , 15: PRINT "about that?": GOTO 55102 PRINT "Think harder, "; n$; ".  Supposin' won't get you there.": GOTO 55103 PRINT "Such an iffy attitude is uncharacteristic of you.  Please"    LOCATE , 20: PRINT "try to show more conviction.": GOTO 55104 PRINT "I hope that conditional sentiment you just expressed is more"    LOCATE , 15: PRINT "a mode of your speech than a true expression of your mindset.": GOTO 55105  '=============================   '  this line is for the next keyword106 ON c1 GOTO 107, 108, 109, 110107 PRINT "I regard that as a 'whoops!'  Try again, please.": GOTO 55108 PRINT "Don't tell me your finger slipped. Submit something else.": GOTO 55109 PRINT "Now we both know that I can't work with nothing.": GOTO 55110 PRINT "Poof! Enter a comment, please.": GOTO 55'              =====================now it's 110 to 119120 ON c1 GOTO 121, 122, 123, 124LOCATE 12, 10121 PRINT "Just can't make it to the end of your thought, huh?": GOTO 55122 PRINT "Your full thought might be an incisive one.  Please" LOCATE , 20: PRINT "finish the comment.": GOTO 55123 PRINT "I hope you don't want ME to finish that thought.": GOTO 55124 PRINT "Dangling participles, yes!  Dangling thoughts, no!  C'mon"LOCATE , 15: PRINT "now, "; n$; ", finish your comment!": GOTO 55130 ON c1 GOTO 131, 132, 133, 134, 135LOCATE 12, 10131 PRINT "Only boys want to be just like their fathers! What a"LOCATE , 20: PRINT "crock, right!": GOTO 55132 PRINT "Incidentally, do you still view your dad as all-powerful?": GOTO 55133 PRINT "Do you feel that the road to maturity includes at least"LOCATE , 15: PRINT "one face-to-face confrontation with your father.": GOTO 55134 PRINT "Could it be that your father holds an important key?": GOTO 55135 PRINT "Oh, gosh!  Mighty old dad, huh?": GOTO 55140 ON c1 GOTO 141, 142, 143, 144, 145, 146, 147LOCATE 12, 10141 PRINT "You're gonna bring your mother into this, are you?": GOTO 55142 PRINT "As an important aside: has your mother's influence on you"LOCATE , 20: PRINT "been generally good or bad?": GOTO 55143 PRINT "Like it or not, mothers represent a powerful force.": GOTO 55144 PRINT "Only a few mothers are indifferent to what's best for their"LOCATE , 20: PRINT "loved ones.": GOTO 55145 PRINT "Do you truly have the power to sway her?": GOTO 55146 PRINT "'Beware the female of the species' isn't such a joke - huh?": GOTO 55147 PRINT "Should we score one for good, old mom?": GOTO 55150 ON c1 GOTO 151, 152, 152.1, 153, 154, 155, 155.1, 156, 157, 158, 159, 159.1, 159.2, 159.3LOCATE 12, 10151 PRINT "But why must you insist on expressing it that way, "; n$; "?": GOTO 55152 PRINT ; n$; ", I'm just a simple therapist - not an answer man."LOCATE , 15: PRINT "You need to find your own answer to that.": GOTO 55152.1 PRINT "Now that's a good question - and you can answer it best.": GOTO 55153 PRINT "Unless you view me as some sort of Church Lady - why not "LOCATE , 15: PRINT ; "allow me to ask at least most of the questions? OK?": GOTO 55154 PRINT "Do you ask questions a lot when you're with others - ": GOTO 55155 PRINT "But how do you REALLY feel about the issue. ": GOTO 55155.1 PRINT "What seems to impel you to keep asking questions?": GOTO 55156 PRINT "Goodness - this is really getting intense! ": GOTO 55157 PRINT "It won't help us if you keep asking the questions. ": GOTO 55158 PRINT "Sometimes, "; n$; " you make me feel that I'm the one"    LOCATE , 20: PRINT ; "who's getting interviewed here. ": GOTO 55159 PRINT "C'mon now, "; n$; ". Give me a break and stop interrogating ME. ": GOTO 55159.1 PRINT "You know, "; n$; ".  I'm supposed to ask the questions. ": GOTO 55159.2 PRINT "Remember: Socrates got poisoned for always answering"LOCATE , 15: PRINT ; "questions with further questions. Now, please - "LOCATE , 15: PRINT "a comment!": GOTO 55159.3 PRINT "But what's your 'gut reaction' to my question?": GOTO 55160 ON c1 GOTO 161, 162, 163, 164, 165, 166, 167, 168, 169, 169.1, 169.2, 169.3LOCATE 12, 10161 PRINT "You sound rather emphatic. Why do you feel so fierce? ": GOTO 55162 PRINT "You really come quick, direct and hard."LOCATE , 20: PRINT "Let me catch my breath.": GOTO 55163 PRINT "That comment dropped in with a quick thump,"LOCATE , 20: PRINT "but keep going.": GOTO 55164 PRINT "Do you really feel THAT strong about it?": GOTO 55165 PRINT "I'll have to think about THAT!": GOTO 55166 PRINT "Right on, "; n$; ".  Keep the meaty thoughts flowing.": GOTO 55167 PRINT "I can appreciate your feelings, but let's try and keep"LOCATE , 20: PRINT "them toned down, OK?": GOTO 55168 PRINT "It's good to vent such strong feelings.  I'm listening.": GOTO 55169 PRINT "Let'r rip if you must?  It's better than lack of emotion.": GOTO 55169.1 PRINT "Feelings are fine but we must be careful to keep them"LOCATE , 20: PRINT "under control.": GOTO 55169.2 PRINT "I've heard of firm convictions"LOCATE , 25: PRINT "but you're downright emphastic.": GOTO 55169.3 PRINT "A bit less smackin' on the exclamation key if you don't mind.": GOTO 55170 ON c1 GOTO 171, 172, 173, 174LOCATE 13, 20171 PRINT "What is it EXACTLY about a brother that prompt's"LOCATE , 20: PRINT "this comment?": GOTO 55172 PRINT "Aaaaah - brothers!  Is a BIG or small brother involved? ": GOTO 55173 PRINT "Yeh?  Brothers always have ALL the answers, don't they?": GOTO 55174 PRINT "Honestly, don't you really pity people without brothers?": GOTO 55'========175 ON c1 GOTO 176, 177, 178, 179LOCATE 13, 20176 PRINT "There's worse things than a habit - so break it?": GOTO 55177 PRINT "You want to blame all this on habit to get off the hook? ": GOTO 55178 PRINT "Yeh - sure!  And my habit is pretty people. What's that get us?": GOTO 55179 PRINT "Isn't there a better answer than dropping a habit on things?": GOTO 55'===========180 ON c1 GOTO 181, 182, 183, 184LOCATE 13, 20181 PRINT "Sisters!  All sugary and spicey  - and often dicey, right? ": GOTO 55182 PRINT "Aren't sisters the people who always give you two opinions:"LOCATE , 15: PRINT "Her opinion today and her opinion tomorrow!": GOTO 55183 PRINT "Is this sister issue really impacting on you much? ": GOTO 55184 PRINT "We should be truly grateful for a good sister because the "LOCATE , 20: PRINT "alternative is - ugh! ": GOTO 55305 ON c1 GOTO 306, 307, 308, 309LOCATE 13, 20306 PRINT "I'm detecting more than one idea in your answer. Please explain"LOCATE , 15: PRINT "if we're dealing with a weak or strong connection.": GOTO 55307 PRINT "That's a good motive!  Please expand a bit.": GOTO 55308 PRINT "Hmmm...is it possible there are OTHER reasons, too? ": GOTO 55309 PRINT "Is it possible that a strict 'because' argument ";LOCATE , 20: PRINT "ignores equally valid considerations?": GOTO 55310 ON c1 GOTO 311, 312, 313, 314, 315, 316, 317, 318, 319  'this is the WHYLOCATE 13, 20311 PRINT "You really come out swinging. I'll give you that."    LOCATE , 15: PRINT "Now let us both pause momentarily to regroup.": GOTO 55312 PRINT "Is why appropriate? Any thoughts on that? ": GOTO 55313 PRINT "'Why?' is a rather stiff challenge at this point," LOCATE , 20: PRINT "isn't it?": GOTO 55314 PRINT "Not exactly loquacious, are you? Can you try and be" LOCATE , 20: PRINT "a bit more expansive?": GOTO 55315 PRINT "C'mon now, "; n$; ". I need more than a 'why?'": GOTO 55316 PRINT "Hey! It's not my thoughts or rationale we're reviewing." LOCATE , 15: PRINT "Now try to give me a better answer, please.": GOTO 55317 PRINT "God'll getcha if you don't write better comments, "; n$: GOTO 55 LOCATE , 15: PRINT n$; ", pul-eeze lengthen your responses!": GOTO 55318 PRINT "You'll just have to try again.": GOTO 55319 PRINT "You're as smart as a whip tip - so I know you can do better": GOTO 55320 ON c1 GOTO 321, 322, 323, 324, 325, 326, 327321 PRINT "Is this issue taking on an undue masculine flavor or is it me?": GOTO 55322 PRINT "And why have you brought up his role in this? ": GOTO 55323 PRINT "Maybe you should teach him how to fly? ": GOTO 55324 PRINT "Can you get yourself past him? ": GOTO 55325 PRINT "It may seem a bit harsh but let's overlook him for now.": GOTO 55326 PRINT "Do you honestly feel he holds the key to your understanding?": GOTO 55327 PRINT "WOW!  "; n$; "vs. HIM.  Now that's a contest!": GOTO 55330 ON c1 GOTO 331, 332, 333, 334331 PRINT "Perhaps the consequence isn't all that obvious.  Can you"LOCATE , 20: PRINT "see that? ": GOTO 55332 PRINT "That's a darn good question - so YOU try answering it.": GOTO 55333 PRINT "It might just not be all that simple.  The answer lies with you.": GOTO 55334 PRINT "Your question performs a neat U-turn.  Yet it needs an answer.": GOTO 55'===============335 ON c1 GOTO 336, 337, 338, 339, 340336 PRINT "Such a negative assertion tends to inhibit discourse.  Try"    LOCATE , 20: PRINT "again please.": GOTO 55337 PRINT "Congratulations: Your strategic negative is a powerful rhetorical"LOCATE , 15: PRINT "ploy but it often slows down communications.  Would"LOCATE , 15: PRINT "you re-state your comment.": GOTO 55338 PRINT "Well, "; n$; ", understanding doesn't always float from a 'don't,'"    LOCATE , 20: PRINT "does it?": GOTO 55339 PRINT "Oooh...that slammed the brakes on, "; r$: GOTO 55340 PRINT "What happens if this negative expression is inappropriate?": GOTO 55'==========    '   341 to 420 ok to use'================420 ON c1 GOTO 421, 422, 423, 424, 425, 426LOCATE 13, 20421 PRINT "Well,  then please spell out just why you "    LOCATE , 20: PRINT r$: GOTO 55422 PRINT "Let's withhold judgement right now why you "    LOCATE , 20: PRINT r$: GOTO 55423 PRINT "Maybe we have a breakthrough here. Tell me this: why"    LOCATE , 20: PRINT "you "; r$; ".": GOTO 55424 PRINT "Even with effective therapy, what else is needed so you "; r$; "?": GOTO 55425 PRINT "What would others say or do if they "    LOCATE , 20: PRINT r$; ", "; n$; "?": GOTO 55426 PRINT "You brought it up - and now you don't want to talk about it? ": GOTO 55427 ON c1 GOTO 428, 429, 430, 431, 432, 433, 434LOCATE 12, 10428 PRINT "I can't function very well in the face of such brevity.": GOTO 55429 PRINT "Will you pul-leeze give me a bit more to go on?": GOTO 55430 PRINT "By golly!  That's an emphatic rendition of the "LOCATE , 20: PRINT "negative. But why?": GOTO 55431 PRINT "C'mon, "; n$; ". You just gotta offer more information. ": GOTO 55432 PRINT "Pray tell why that inquiry earned such a rivet-like reversal.": GOTO 55433 PRINT "Duck everyone! "; n$; " is on the warpath for sure. Right?": GOTO 55434 PRINT "Give us room - lotsa room - under feisty no's above...": GOTO 55435 ON c1 GOTO 436, 437, 438, 439436 PRINT "Does she exert any ugly influence worth looking at? ": GOTO 55437 PRINT "Why her?  Couldn't it just as easily be anyone? ": GOTO 55438 PRINT "Are your thoughts of her right now useful to our discussion? ": GOTO 55439 PRINT "For the time being: let's try to avoid mentioning her. OK?": GOTO 55530 ON c1 GOTO 531, 532, 533, 534, 535LOCATE 13, 20531 PRINT "Let's examine that particular tidbit a bit more. Just why,"LOCATE , 20: PRINT "as you say, are you"; r$; "?": GOTO 55532 PRINT "Are you absolutely beyond-any-doubt positive that" LOCATE , 20: PRINT "you're "; r$; "?": GOTO 55533 PRINT "Be honest with me now. Do you really get a kick out of being ";LOCATE , 20: PRINT r$; "?": GOTO 55534 PRINT "Easy now! We have some time before the lions enter the"LOCATE , 20: PRINT "arena.  Just how long do you expect to be "LOCATE , 20: PRINT r$: GOTO 55535 PRINT n$; ", could you possibly be "; r$    PRINT TAB(12); "because you LIKE it?": GOTO 55640 ON c1 GOTO 641, 642, 643, 644, 645, 646, 647LOCATE 13, 20641 PRINT "- and - and - and!  C'mon now, finish your thought "; n$; "?": GOTO 55642 PRINT "I feel there's still something you aren't telling me, right?": GOTO 55643 PRINT "It's rather difficult to help when you give me these"LOCATE , 20: PRINT "unfinished answers.": GOTO 55644 PRINT "Do you often leave your final thought dangling or unsaid? ": GOTO 55645 PRINT "Why not give me the whole story and let's deal with it.": GOTO 55646 PRINT "Jeez! And I'm supposed to respond to an unfinished expression.": GOTO 55647 PRINT "Hey! Just when it was getting good you stop talking.": GOTO 55750 ch = INT(104 * RND) + 1         ' had been (15*RND) and then (15*RND)755 FOR rd = 1 TO ch757 READ a$758 NEXT rd759 RESTORE760 q = q + 1                ' counter for statements ending with a period770 IF q > 20 THEN 2000        '  program ends after 15 period statements780 LOCATE 13, 10: PRINT a$790 GOTO 55800 DATA What makes you say it that way?,Dare I ask if this is now occupying your mind?,Go on...,If you're certain then continue.801 DATA Ah Hah! Very interesting!, Maybe if you back away momentarily, What's conflicting you? Your comments sound so oblique., Welcome to the Superbowl of honest feelings!810 DATA Would you mind saying that another way?,I find it a wee bit hard to believe you said that.,You must be joking.,Did you intend to express that idea so casually?811 DATA No kidding?, Oooh - I think maybe not.,Whew! I've had enough for today!, Tell you what. Give it another try!820 DATA Let's just say 'No way...Jose!' OK?,Hmmmmm...you do need some help with this!,Uh huh...hmmmm...anything else?,Perhaps we should quit now?821 DATA What should that make me think?,Have you thought much about the end result of that?,Maybe we should talk about something else.,I only listen to you since it's my job. But go on.822 DATA It'd be better if your statement was entirely true.,What do you think would be your guardian angle's opinion.,I don't fully understand that,What if you were to walk off a cliff today?823 DATA Are you aware of your surroundings much?,If it were clearer might you understand the issue better?,Time for you to take a break for a while?,You come here to share your problems with me?824 DATA Is there something else I should know?,Maybe you should tell me things in more detail.,Is that really the reason?,Do you even trust me?825 DATA OK! I understand and it's my job to help you.,More secrets and less mumbo-jumbo - OK?,I don't know why I even try.,Wait a minute now! Am I supposed to take that serious?826 DATA Is there something else you'd rather be talking about?,I wear a happy smile but even us psychologists lie!,You know what I think?,You should be more assertive827 DATA You need a vacation.,A pot of gold lies at the end of every rainbow.,Not exactly Valentine's day - is it?,You need to look at the big picture.828 DATA What is accomplished?,You should finish something,Pay attention to your instincts? They're there to help you.,You may not understand how others see you829 DATA What's your ultimate goal in life?,Concentrating on one viewpoint overlooks others,Do you try many new things?,My advice? Take a philosphy class! DATA I supppose you could say it that way?,Can you elaborate a bit more?,That's not the strongest way of putting it.,You don't seem too upset. DATA Don't feel too strongly about that - huh?, You're rather calm about it all.,I can see where you'd feel that way.,You sound like you have a good grip DATA By remaining calm you'll get to the point.,I'm rather surprised at your easy approach.,Do you always seem this calm?,Stay with that point. DATA Right on!, Maybe you should crank up your feelings a bit.,What's it take to get you riled up?,I'm not sure I could remain as calm as your are! DATA Is this the calm before the storm?,Do you ever blow up?,Most people would be having a fit right now.,You have just gotta be the King of Kalm! DATA No chance of you throwing a fit!,And you've not even a little bit upset?,Do you think your easy attitude is healthy?,Just what does it take to upset you? DATA I can't believe you're this easy going.,And you're not upset? C'mon now.,This is truly upsetting but you seem so calm.,Do you feel that high emotions are justified right now? DATA You ARE aware of your true feelings?,I take it you are determined to remain cool?,Do you feel you don't have a right to express anger?,Maybe you should get angry about this! DATA You are one cool cat!,If this won't do it what will make you angry?,How about a good old fashioned fit?,I'm truly impressed with your easy deameanor. DATA Yeh! Yeh! And water runs off a duck's back,Be cold - or be hot - but be not lukewarm lest I spew you out!,Calm in the face of storm - huh?, Oh - Really! DATA We seem to be getting to the core issue.,You're calm and around you - turmoil?,Explain that a bit better if you don't mind.,Let's see if we can generate some heat - OK? DATA Now I need a vacation.,Will you be this calm tomorrow?,I think this needs more intense feeling.,Is anyone upset about this?'=================850 ON c1 GOTO 851, 852, 853, 854, 855, 856LOCATE 13, 20851 PRINT n$; ", remember that I'm just here to help you.": GOTO 55852 PRINT "I'm sorry but I can't get personally involved.  ": GOTO 55853 PRINT "Well, just how would you respond if someone talked about"LOCATE , 20: PRINT "you like that.": GOTO 55854 PRINT "Hmmmmm... do you truly have a problem with that?": GOTO 55855 PRINT n$; ", we must get back to YOUR problem... uh, what was it again?": GOTO 55856 PRINT "Pretend you are having a private conversation with God and" PRINT TAB(12); "give me your stripped-to-the-core attitude at this juncture.": GOTO 55940 ON c1 GOTO 950, 970, 990, 1010, 1030LOCATE 13, 20950 PRINT "Do you feel it was a revelation for you to say "LOCATE , 20:  PRINT r$; "?": GOTO 55970 PRINT "This is a tough issue to process.  So - is it rather common"PRINT , 20: PRINT "for you to "971 LOCATE , 20: PRINT r$: GOTO 55990 PRINT n$; ", are you satisifed when you say "; r$; "?": GOTO 551010 PRINT "What would you think if others were to say they want to "LOCATE , 20: PRINT r$; "?": GOTO 551030 PRINT n$; ", should most people also "; r$; "?": GOTO 551050 ON c1 GOTO 1051, 1052, 1053, 1054, 1055LOCATE 12, 101051 PRINT "Did you say sex, "; n$; "? Oh-well! Let'r rip!": GOTO 551052 PRINT "Would it help if perhaps we dropped the sex aspect for now? ": GOTO 551053 PRINT "There isn't much doubt that sex plays a powerful role.": GOTO 551054 PRINT "Whoa!  The sex issue is one that only you can come to grips with.": GOTO 551055 PRINT "Is sex really a significant factor in this matter!": GOTO 551060 ON c1 GOTO 1061, 1062, 1063, 10651061 PRINT "Is that a question or a statement, "; n$; "? Please re-phrase"; : GOTO 551062 PRINT "Ooooh -- sounds like it's deeply effecting you. Is it?": GOTO 551063 PRINT "Do you feel that the 'where' issue should be addressed now?": GOTO 551064 PRINT "Finding the 'where' of any matter can help."; : GOTO 551065 PRINT "I suspect that only the Almighty has enough insight here!": GOTO 551130 ON c1 GOTO 1131, 1140, 1155LOCATE 12, 101131 PRINT "Sometimes 'sorry' exerts a powerful influence.  Keep going?": GOTO 551140 PRINT "You're showing excellent insight here. Have you the"LOCATE , 20: PRINT "courage to go on!": GOTO 551150 PRINT "Keep going.  Recognizing the power of 'sorry' is important!": GOTO 551155 PRINT "Maybe we should shift to another less sorrowful area.": GOTO 551160 ON c1 GOTO 1161, 1162, 1163, 1164, 1165, 1166, 1167LOCATE 12, 101161 PRINT "I perceive a bit of uncertainty.  Could you explain further, "LOCATE , 20: PRINT n$; "?": GOTO 551162 PRINT "Think about that comment a bit.  Is 'maybe' justified?": GOTO 551163 PRINT "You're really thinking smart on this matter, "; n$; "."LOCATE , 20: PRINT "Keep going.": GOTO 551164 PRINT "Explain, please, how you arrived at such an assessment.": GOTO 551165 PRINT "Perhaps your confusion is masking for the real reason."PRINT TAB(15); "Is that possible?": GOTO 551166 PRINT "Why do you shy away from mentioning the REAL issue?": GOTO 551167 PRINT "I'm on the way to heaven over that one.  Now, bring me back": GOTO 551170 ON c1 GOTO 1171, 1172, 1173, 1174LOCATE 12, 101171 PRINT "The concept of things without end...more! more! isn't always"LOCATE , 10:     PRINT TAB(20); "good, you know.": GOTO 551172 PRINT "See if you can tone back the feeling of no end.  Please continue.": GOTO 551173 PRINT "That's a pretty excessive statement, "; n$; ". Keep going.": GOTO 551174 PRINT "Why on earth do you feel such sweeping thoughts?": GOTO 551180 ON c1 GOTO 1181, 1181.1, 1182, 1183, 1184LOCATE 12, 101181 PRINT "Sort of a conditional way of phrasing, don't you think?": GOTO 551181.1 PRINT "Have you given any thought to separating those two thoughts? ": GOTO 551182 PRINT "Let's try an experiment.  Remove even the slightest doubt"LOCATE , 10: PRINT "and re-state. ": GOTO 551183 PRINT "That slick use of 'perhaps' sorta gets you off the "     PRINT "hook, doesn't it?": GOTO 551184 PRINT "That's a thoughtful, articulate and imaginitive"LOCATE , 10: PRINT "observation. Hmmmmmm..."SLEEP 3PRINT "It certainly indicates that you're smart as the dickens, "; n$PRINT "Please  continue,"; r$; ".": GOTO 551190 ON c1 GOTO 1191, 1192, 1193, 11941191 PRINT "Is this really a question for you or for me?  Continue.": GOTO 551192 PRINT "Try converting your query into a meaningful statement. ": GOTO 551193 PRINT "That's an interesting question.  How would you answer it?": GOTO 551194 PRINT "I'll try to answer that during our interview.": GOTO 551195 ON c1 GOTO 1196, 1197, 11981196 PRINT "I'm glad to see you appreciate the introspective aspects of" LOCATE , 10: PRINT "your situation, "; n$; ".  Have you further comments?": GOTO 551197 PRINT "Do you find it difficult to take a hard incisive look at"LOCATE , 10: PRINT "yourself.  Your analysis would be helpful.": GOTO 551198 PRINT "That's excellent.  Don't ever be afraid to look at yourself.": GOTO 551199 ON c1 GOTO 1199.1, 1199.2, 1199.3, 1199.41199.1 PRINT "Sometimes a simple cause and-effect relationship"       LOCATE , 10: PRINT "isn't the answer.": GOTO 551199.2 PRINT "Try dropping the conditional 'if' and see what happens.": GOTO 551199.3 PRINT "Be careful with 'if' reasoning.  Sometimes more than a single"       LOCATE , 10: PRINT "cause can be lurking in the background. Please try again.": GOTO 551199.4 PRINT "I can appreciate how you'd feel that's the reason.  But is it? ": GOTO 551200 ON c1 GOTO 1201, 1202, 1203, 1204, 12051201 PRINT "Now that crack is downright nasty, " + n$ + ".": GOTO 551202 PRINT "Oh, you can certainly insult better than THAT.":  GOTO 551203 PRINT "Think about it and your crack won't seem so cute.": GOTO 551204 PRINT "I'm stupid?  You're the one talking to a dumb computer chip?": GOTO 551205 PRINT "Ever notice how juveniles yell 'stupid' a lot?": GOTO 55'======1500 INPUT "Let's confirm. Will you re-state how you feel in one word"; feel$COLOR 14SELECT CASE feel$    CASE "sick"    LOCATE 13, 15: PRINT "Is it possible your sickness is temporary?": GOTO 55    CASE "angry"    LOCATE 13, 15: PRINT "Can you still deal rationally with your anger?": GOTO 55    CASE "irritable"    LOCATE 13, 15: PRINT "If we're careful we can steer around that condition.": GOTO 55    CASE "determined"    LOCATE 13, 15: PRINT "Good! Determination can breech nearly any obstacle.": GOTO 55    CASE "violated"    LOCATE 13, 15: PRINT "Ouch!  Violation isn't such a sweet condition?": GOTO 55    CASE "happy"    LOCATE 13, 15: PRINT "Good!  It's easier to work when you're 'up.'": GOTO 55    CASE "fine"    LOCATE 13, 15: PRINT "Nothing like a top-of-the-morning attitude, huh?": GOTO 55    CASE "OK"    LOCATE 13, 15: PRINT "Do you mean a sort of wishy-washy OK?"    LOCATE , 15: PRINT "Or do you perhaps feel out of sorts?": GOTO 55    CASE "confused"    LOCATE 13, 15: PRINT "It truly is a rather confusing situation": GOTO 55    CASE "depressed"    LOCATE 13, 15: PRINT "I think that's the worst feeling in the world!"    LOCATE , 15: PRINT "Is there any way I can help you to deal with it?": GOTO 55    CASE "good"    LOCATE 13, 15: PRINT "And that, "; n$; ", is good news!": GOTO 55    'CASE "xxxxxxxxx"    'LOCATE 13, 15: PRINT "I can't contribute on that one.  Let's continue.": GOTO 55    'CASE "xxxxxxxxx"    'LOCATE 13, 15: PRINT "I think that's the worst feeling in the world!"    'CASE "xxxxxxxxx"    'LOCATE 13, 15: PRINT "I think that's the worst feeling in the world!"    END SELECTGOTO 55'============1520 ON c1 GOTO 1521, 1522, 1523, 1524, 1525LOCATE 12, 151521 PRINT "I'm happy to notice your cooperation, " + n$ + ".": GOTO 551522 PRINT "If we're agreed on that, let's move on now.": GOTO 551523 PRINT "Do you really mean OK - or are you bantering with me, " + n$ + "?": GOTO 551524 PRINT "Well, you're easy to get along with.": GOTO 551525 PRINT "At least we've overcome that issue, right, " + n$ + "?: GOTO 55"''1521 PRINT "Now that crack is downright nasty, " + n$ + "?": GOTO 55'1522 PRINT "Oh, you can certainly insult better than THAT.": GOTO 55'1523 PRINT "Think about it and your crack won't seem so cute.": GOTO 55'1524 PRINT "I'm stupid?  You're the one talking to a computer chip?": GOTO 55'1525 PRINT "Ever notice that children yell 'stupid' a lot, too, " + n$ + "!": GOTO 55'==========2000CLS : SCREEN 0: WIDTH 80COLOR 9, 1RANDOMIZE TIMERFOR I% = 1 TO 1000  PRINT "";NEXT I%CALL TextBox(4, 4, 22, 74, 11, 1, 4, 7)LOCATE 10, 15COLOR 15, 12005 c = ABS(c - q)2010 PRINT "Okay, that's enough for today.  Here is my diagnosis:"LOCATE 13, 15: COLOR 142030 IF c > 7 THEN 20602040 LOCATE 14, 20: PRINT "You're perfectly normal, "; n$; ","LOCATE , 20:     PRINT "but you're not really very talkative!"2050 GOTO 21302060 IF c > 15 THEN 2090COLOR 14, 12070 LOCATE 13, 12: PRINT "You're a very complex person, but your dynamics are "2071 LOCATE , 12: PRINT "outstanding and you show a quick wit that I like!"     LOCATE , 12: PRINT "Now try to get a good night's sleep!": PRINT : PRINT : PRINT2080 GOTO 21302090 IF c > 20 THEN 2100COLOR 14, 12100 LOCATE 13, 12: PRINT "Wonderful!  You can be just as fiesty as I try to be!": PRINT : PRINT : PRINTSLEEP 3GOTO 2120LOCATE 15, 152120 PRINT "It's either that, "; n$; " - or you've been peeking at my coding."2130COLOR 15, 1LOCATE 18, 15INPUT "Would you like to 1) Quit, or 2) Repeat (1 or 2)"; asknow$IF asknow$ = "1" THEN GOTO 8200 ELSE GOTO 25CLSLOCATE 14, 25: COLOR 11: PRINT "Goodbye, "; n$; ". See you again."LOCATE 16, 19: COLOR 14: PRINT "(If the program is reluctant to close after you"LOCATE 17, 19: PRINT "tap the enter key, mouse click X in the upper right corner."8200ENDSUB TextBox (x, y, XEnde, YEnde, Foreground, Background, ShadeFore, ShadeBack)COLOR Foreground, Background            'Draw boxLOCATE x, y: PRINT ""LOCATE x, YEnde: PRINT ""LOCATE XEnde, y: PRINT ""LOCATE XEnde, YEnde: PRINT ""FOR BoxY = y + 1 TO YEnde - 1  LOCATE x, BoxY  PRINT ""  LOCATE XEnde, BoxY  PRINT ""NEXT BoxYFOR BoxX = x + 1 TO XEnde - 1  LOCATE BoxX, y  PRINT ""  LOCATE BoxX, YEnde  PRINT ""  LOCATE BoxX, y + 1  FOR a% = y + 1 TO YEnde - 1            'Fill box    LOCATE BoxX, a%    PRINT " "  NEXT a%NEXT BoxX'------IF YOU DON'T WANT A SHADOW THEN CUT HERE----------COLOR ShadeFore, ShadeBack              'Draw shadow    |FOR a = x + 1 TO XEnde + 1              '               |  LOCATE a, YEnde + 1                   '               |  PRINT CHR$(SCREEN(a, YEnde + 1))      '               |NEXT a                                  '               |FOR b = y + 1 TO YEnde + 1              '               |  LOCATE XEnde + 1, b                   '               |  PRINT CHR$(SCREEN(XEnde + 1, b))      '               |NEXT b                                  '               |END SUB'SUB TextBox2 (x, y, XEnde, YEnde)  COLOR 15, 7                              'Draw box  FOR I% = y + 1 TO YEnde - 1    LOCATE x, I%    PRINT ""  NEXT I%  FOR I% = x TO XEnde - 1    LOCATE I%, y    PRINT ""  NEXT I%  LOCATE XEnde, y: PRINT ""  COLOR 8, 7  FOR I% = y + 1 TO YEnde - 1    LOCATE XEnde, I%    PRINT ""  NEXT I%  FOR I% = x TO XEnde    LOCATE I%, YEnde    PRINT ""  NEXT I%  LOCATE x, YEnde: PRINT ""  COLOR 7  FOR a = x + 1 TO XEnde - 1               'Fill box    FOR b = y + 1 TO YEnde - 1      LOCATE a, b      PRINT ""    NEXT b NEXT aEND SUB