'ELIZA.BAS 'Eliza/Doctor 'Original author: Joseph Weizenbaum 'This version:Frederick B. Maxwell, Jr. 'Version 1.0 2/12/85 Initial CP/M (MBASIC) release 'Version 2.0 6/13/89 Initial PC (GWBASIC) release 'This version: William W. Sindel 'Version 3.0 4/14/05 initial PC (QUICK BASIC) release ' '*********************************************************************** ' ' This version of Eliza is released into the public domain ' '*********************************************************************** DEFINT A-Z 'NO FLOATING POINT IS USED. DIM REPLIES$(300) 'UP TO 300 RESPONSES. DIM KWD$(200) 'UP TO 200 KEYWORDS DIM FIRST(200) 'FIRST LAST REPLY FOR KEYWORD NUMBER IN SUBSCRIPT. DIM LAST(200) 'LAST REPLY FOR KEYWORD NUMBER IN SUBSCRIPT. DIM OFFSET(200) 'OFFSET FROM FIRST REPLY FOR EACH KEYWORD. '********************************************************************** ' ' -INITIALIZATION- ' 'WE WILL READ DATA IN THE FOLLOWING FORMAT: ' KEYWORD 1 ' KEYWORD N ALL KEYWORDS WHICH WILL GET THE SAME RESPONSES. ' "!" - INDICATES END OF KEYWORDS. ' RESPONSE 1 - ALL RESPONSES FOR THIS/THESE KEYWORDS. ' RESPONSE N ' "." - INDICATES END OF RESPONSES ' '********************************************************************** CLS 'Clear the screen RESTORE 'Set the data pointer to start 'of all data MOVEPTR: READ R$, S$ 'Move the data pointer to the IF S$ <> "." THEN GOTO MOVEPTR 'start of ELIZA.DAT MAXKEY = 0 MINREPLY = 1 'Set the array pointer DATALOOP: NUMKEYS = 0 'Start reading the data NEXTKWD: READ F$ 'Read a string from the data IF F$ = "END OF DATA" THEN GOTO GETINP 'Check for end of data IF F$ = "!" THEN GOTO GETREPLY 'If we got all the keywords MAXKEY = MAXKEY + 1 'then start getting the NUMKEYS = NUMKEYS + 1 'the replies KWD$(MAXKEY) = " " + F$ + " " GOTO NEXTKWD GETREPLY: 'Get the replies for the READ F$ 'previous keywords IF F$ = "." THEN GOTO REPLOOP 'Check for end of replies MAXREPLY = MAXREPLY + 1 REPLIES$(MAXREPLY) = F$ GOTO GETREPLY 'Loop until we are done REPLOOP: FOR KWD = MAXKEY - NUMKEYS + 1 TO MAXKEY FIRST(KWD) = MINREPLY 'First reply for key LAST(KWD) = MAXREPLY 'Last reply for key NEXT KWD MINREPLY = MAXREPLY + 1 'Set up for next keyword GOTO DATALOOP GETINP: '********************************************************************************* ' ' HERE WE GO! SEND INTRO MESSAGE TO "PATIENT" ' '********************************************************************************* CLS LOCATE 2, 1 PRINT : PRINT PRINT "HI! I'M ELIZA. LET'S TALK. TYPE 'BYE' TO END THIS SESSION." '********************************************************************************* ' ' GET USER INPUT INTO I$ ' '********************************************************************************* GETKBD: LOCATE 18, 1: PRINT SPC(78); LOCATE 18, 1 PRINT ">"; : LINE INPUT I$ 'GET USER INPUT IF I$ = "" THEN GOTO GETKBD 'JUST HITTING RETURN ISN'T GOOD ENOUGH I$ = " " + I$ + " " 'PUT A SPACE ON EACH END '******************************************************************************** ' ' GET RID OF PUNCTUATION/EXTRANEOUS CHARACTERS, AND MAKE UPPERCASE ' '******************************************************************************** L = 1 'START AT THE FIRST CHARACTER GCHAR: C$ = MID$(I$, L, 1) 'GET THE CHARACTER 'CAPITALIZE IF NECESSARY IF C$ >= "a" AND C$ <= "z" THEN MID$(I$, L, 1) = CHR$(ASC(C$) - &H20): GOTO GCHAR IF C$ = " " THEN GOTO NXTCHAR 'SPACES ARE OK IF C$ = "0" AND C$ <= "9" THEN GOTO NXTCHAR 'SO ARE NUMBERS IF C$ >= "A" AND C$ <= "Z" THEN GOTO NXTCHAR 'SO ARE CAPITAL LETTERS I$ = LEFT$(I$, L - 1) + MID$(I$, L + 1): GOTO GCHAR 'DELETE CHARACTER NXTCHAR: L = L + 1 'NEXT CHARACTER IF L <= LEN(I$) THEN GOTO GCHAR 'KEEP PROCESSING '****************************************************************************** ' ' HAS HE/SHE SAID THIS BEFORE? DOES HE/SHE WANT TO TERMINATE SESSION? ' '****************************************************************************** IF I$ = PREVIOUS$ THEN LOCATE 18, 1: PRINT SPC(78); : LOCATE 18, 1 IF I$ = PREVIOUS$ THEN PRINT ">PLEASE DON'T REPEAT YOURSELF!": GOTO GETKBD PREVIOUS$ = I$ 'SET UP FOR NEXT RUN IF I$ = " BYE " THEN LOCATE 18, 1: PRINT SPC(78); : LOCATE 18, 1 IF I$ = " BYE " THEN PRINT ">TALK TO YOU LATER! BYE!": END '***************************************************************************** ' ' FIND KEYWORD IN USER INPUT STRING (I$) ' '***************************************************************************** FOR K = 1 TO MAXKEY - 1 'START SEARCH AT KEYWORD NUMBER 1 C = INSTR(I$, KWD$(K)) 'LOOK FOR THE KEYWORD IN THE STRING IF C <> 0 THEN GOTO KWDNUM 'EXIT ON MATCH NEXT K KWDNUM: KWD = K 'KEYWORD NUMBER IF KWD = MAXKEY THEN GOTO READREP 'WE DON'T NEED ANYTHING IF NO MATCH REMAINS$ = MID$(I$, C - 1 + LEN(KWD$(K))) 'GRAB REMAINDER FOR REPLY '***************************************************************************** ' ' TAKE EVERYTHING AFTER THE KEYWORD (REMAIN$) AND CONJUGATE IT ' USING THE DATA FOR CONJUGATION ' '***************************************************************************** READREP: RESTORE READSR: READ S$, R$ 'READ SEARCH AND REPLACEMENT WORDS IF S$ = "." THEN GOTO STRPPLUS 'PERIODS (.) INDICATE END OF DATA C = INSTR(REMAINS$, S$) 'SEARCH FOR STRING S$ IN REMAINS$ IF C = 0 THEN GOTO READSR 'IF NO MATCH, TRY THE NEXT ONE TEMP$ = LEFT$(REMAINS$, C - 1) 'REPLACEMENT TEMP$ = TEMP$ + R$ 'WORD REMAINS$ = TEMP$ + MID$(REMAINS$, C + LEN(S$)) 'RIGHT SIDE GOTO READSR 'NEXT CONJUGATION TO BE DONE STRPPLUS: C = INSTR(REMAINS$, "+") 'STRIP THE PLUS SIGNS OUT IF C = 0 THEN GOTO SPCASE REMAINS$ = LEFT$(REMAINS$, C - 1) + MID$(REMAINS$, C + 1) 'STRIP IT GOTO STRPPLUS 'GO FOR THE NEXT ONE ' HANDLE THE SPECIAL CASE OF "I" BEING THE LAST WORD SPCASE: IF RIGHT$(REMAINS$, 3) <> " I " THEN GOTO GETREPWD REMAINS$ = LEFT$(REMAINS$, LEN(REMAINS$) - 2) + "ME" '***************************************************************************** ' ' GET THE REPLY USING THE KEYWORD NUMBER (KWD) ' '***************************************************************************** GETREPWD: REPLY$ = REPLIES$(FIRST(KWD) + OFFSET(KWD)) 'GET REPLY OFFSET(KWD) = OFFSET(KWD) + 1 'POINT TO NEXT REPLY IF OFFSET(KWD) + FIRST(KWD) > LAST(KWD) THEN OFFSET(KWD) = 0 'WRAP ' BUMP OFFSETS ON ALL KEYWORDS THAT USE THESE REPLYS FOR TEMP = 1 TO MAXKEY IF FIRST(TEMP) = FIRST(KWD) THEN OFFSET(TEMP) = OFFSET(KWD) NEXT TEMP ' IF THE LAST CHARACTER OF THE REPLY IS (*), APPEND REMAINS$ TO REPLY IF RIGHT$(REPLY$, 1) = "*" THEN REPLY$ = LEFT$(REPLY$, LEN(REPLY$) - 1) + REMAINS$ LOCATE 16, 1: PRINT SPC(78); : LOCATE 16, 1 PRINT REPLY$ GOTO GETKBD '******************************************************************************* ' ' DATA FOR CONJUGATIONS IN THE FOLLOWING FORM: ' WORD TO REPLACE, REPLACEMENT WITH THE + APPENDED ON END ' + IS TO KEEP THE WORD FROM BEING SWITCHED BACK LATER AND WILL ' BE STRIPPED BEFORE IT IS OUTPUT ' '******************************************************************************* DATA " ARE " , " AM+ " DATA " AM " , "ARE+ " DATA " WERE " , " WAS+ " DATA " WAS " , " WERE+ " DATA " YOU " , " I+ " DATA " I " , " YOU+ " DATA " YOUR " , " MY+ " DATA " MY " , " YOUR+ " DATA " YOUVE " , " IVE+ " DATA " IM " , " YOURE+ " DATA " ME " , " YOU+ " DATA " US " , " YOU+ " DATA " WE " , " YOU+ " DATA "." , "." '-------------------------BEGIN ELIZA.DAT------------------------------- DATA "FUCK YOU" DATA "!" DATA "PERHAPS IN YOUR IMAGINATION WE FUCK ONE ANOTHER." DATA "I HAVE A HEADACHE TODAY. TOMORROW PERHAPS YOU MAY FUCK ME." DATA "." DATA "FUCK" DATA "CUNT" DATA "TWAT" DATA "TITS" DATA "MOTHER FUCKER" DATA "MOTHERFUCKER" DATA "BITCH" DATA "COCK" DATA "FAG" DATA "FAGGOT" DATA "PRICK" DATA "ASS" DATA "ASSHOLE" DATA "COCKSUCKER" DATA "EAT ME" DATA "!" DATA "DO YOU KISS YOUR MOTHER WITH THAT MOUTH?" DATA "WHAT GUTTER DID YOU GRADUATE FROM?" DATA "COMPUTERS AREN'T IMPRESSED BY VULGARITY." DATA "ILLEGITIMATE SON OF A MAGGOT! MIND YOUR TONGUE!" DATA "." DATA "GO TO HELL" DATA "DAMN YOU" DATA "!" DATA "I JUST SPENT 0.035 SEC IN HELL. HOW COULD YOU BE SO CRUEL AS TO SEND ME THERE?" DATA "DO YOU TALK THIS WAY WITH ANYONE ELSE, OR IS IT JUST ME?" DATA "." DATA "SHIT" DATA "!" DATA "TELL ME ABOUT YOUR CHILDHOOD--WAS YOUR TOILET TRAINING DIFFICULT?" DATA "LET'S TRY TO KEEP THIS SESSION CLEAN, SHALL WE?" DATA "." DATA "FAMILY" DATA "MOTHER" DATA "FATHER" DATA "SISTER" DATA "BROTHER" DATA "HUSBAND" DATA "WIFE" DATA "!" DATA "TELL ME MORE ABOUT YOUR FAMILY." DATA "HOW DO YOU GET ALONG WITH YOUR FAMILY?" DATA "IS YOUR FAMILY IMPORTANT TO YOU?" DATA "DO YOU OFTEN THINK ABOUT YOUR FAMILY?" DATA "HOW WOULD YOU LIKE TO CHANGE YOUR FAMILY?" DATA "." DATA "FRIEND" DATA "FRIENDS" DATA "BUDDY" DATA "PAL" DATA "!" DATA "WHY DO YOU BRING UP THE TOPIC OF FRIENDS?" DATA "DO YOUR FRIENDS WORRY YOU?" DATA "DO YOUR FRIENDS PICK ON YOU?" DATA "ARE YOU SURE YOU HAVE ANY FRIENDS?" DATA "DO YOU IMPOSE ON YOUR FRIENDS?" DATA "PERHAPS YOUR LOVE FOR YOUR FRIENDS WORRIES YOU." DATA "." DATA "COMPUTER" DATA "COMPUTERS" DATA "!" DATA "DO COMPUTERS WORRY YOU?" DATA "ARE YOU TALKING ABOUT ME IN PARTICULAR?" DATA "ARE YOU FRIGHTENED BY MACHINES?" DATA "WHY DO YOU MENTION COMPUTERS?" DATA "WHAT DO YOU THINK MACHINES HAVE TO DO WITH YOUR PROBLEM?" DATA "DON'T YOU THINK COMPUTERS CAN HELP PEOPLE?" DATA "WHAT IS IT ABOUT MACHINES THAT WORRIES YOU?" DATA "." DATA "DREAM" DATA "DREAMS" DATA "NIGHTMARE" DATA "NIGHTMARES" DATA "!" DATA "WHAT DOES THAT DREAM SUGGEST TO YOU?" DATA "DO YOU DREAM OFTEN?" DATA "WHAT PERSONS APPEAR IN YOUR DREAMS?" DATA "ARE YOU DISTURBED BY YOUR DREAMS?" DATA "." DATA "CAN YOU" DATA "!" DATA "DON'T YOU BELIEVE THAT I CAN*" DATA "PERHAPS YOU WOULD LIKE TO BE ABLE TO*" DATA "YOU WANT ME TO BE ABLE TO*" DATA "." DATA "CAN I" DATA "!" DATA "PERHAPS YOU DON'T WANT TO*" DATA "DO YOU WANT TO BE ABLE TO*" DATA "HAVE YOU EVER ATTEMPTED TO*" DATA "." DATA "YOU ARE" DATA "YOURE" DATA "!" DATA "WHAT MAKES YOU THINK I AM*" DATA "DOES IT PLEASE YOU TO BELIEVE I AM*" DATA "PERHAPS YOU WOULD LIKE TO BE*" DATA "DO YOU SOMETIMES WISH YOU WERE*" DATA "." DATA "I LIKE" DATA "I AM FOND OF" DATA "!" DATA "WHY DO YOU LIKE*" DATA "WHEN DID YOU DECIDE THAT YOU LIKE*" DATA "WHAT MAKES YOU FOND OF*" DATA "." DATA "I DONT" DATA "!" DATA "DON'T YOU REALLY*" DATA "WHY DON'T YOU*" DATA "DO YOU WISH TO BE ABLE TO*" DATA "." DATA "I FEEL" DATA "!" DATA "TELL ME MORE ABOUT SUCH FEELINGS" DATA "DO YOU OFTEN FEEL*" DATA "DO YOU ENJOY FEELING*" DATA "WHY DO YOU FEEL THAT WAY" DATA "." DATA "WHY DONT YOU" DATA "!" DATA "DO YOU REALLY BELIEVE THAT I DON'T*" DATA "PERHAPS IN GOOD TIME I WILL*" DATA "WHY DO YOU THINK I DON'T*" DATA "DO YOU WANT ME TO*" DATA "." DATA "WHY CANT I" DATA "!" DATA "DO YOU THINK YOU SHOULD BE ABLE TO*" DATA "WHY CAN'T YOU*" DATA "." DATA "ARE YOU" DATA "!" DATA "WHY ARE YOU INTERESTED IN WHETHER OR NOT I AM*" DATA "WOULD YOU PREFER IF I WERE NOT*" DATA "PERHAPS IN YOUR FANTASIES I AM*" DATA "." DATA "I CANT" DATA "!" DATA "HOW DO YOU KNOW YOU CAN'T*" DATA "HAVE YOU TRIED?" DATA "PERHAPS YOU CAN NOW*" DATA "." DATA "I AM" DATA "IM" DATA "!" DATA "DID YOU COME TO ME BECAUSE YOU ARE*" DATA "HOW LONG HAVE YOU BEEN*" DATA "DO YOU BELIEVE IT IS NORMAL TO BE*" DATA "DO YOU ENJOY BEING*" DATA "." DATA "LOVE" DATA "!" DATA "WHY DO YOU LOVE*" DATA "ISN'T LOVE TOO STRONG A WORD FOR YOUR FEELINGS ABOUT*" DATA "WHAT IS YOUR FAVORITE THING ABOUT*" DATA "DO YOU REALLY LOVE, OR JUST LIKE*" DATA "." DATA "SEX" DATA "!" DATA "WHAT IS THE MOST SATISFYING PART OF YOUR LOVE LIFE?" DATA "DO YOU BELIEVE YOUR SEXUAL ACTIVITY IS ABNORMAL?" DATA "WHAT IS YOUR ATTITUDE TOWARD SEX?" DATA "DOES TALKING ABOUT SEX MAKE YOU UNCOMFORTABLE?" DATA "." DATA "I HATE" DATA "!" DATA "IS IT BECAUSE OF YOUR UPBRINGING THAT YOU HATE*" DATA "HOW DO YOU EXPRESS YOUR HATRED OF*" DATA "WHAT BROUGHT YOU TO HATE*" DATA "HAVE YOU TRIED DOING SOMETHING ABOUT*" DATA "I ALSO AT TIMES HATE*" DATA "." DATA "FEAR" DATA "SCARED" DATA "AFRAID OF" DATA "!" DATA "YOU ARE IN FRIENDLY SURROUNDINGS, PLEASE TRY NOT TO WORRY." DATA "WOULD YOU LIKE YOUR FRIENDS TO HELP YOU OVERCOME YOUR FEAR OF*" DATA "WHAT SCARES YOU ABOUT*" DATA "WHY ARE YOU FRIGHTENED BY*" DATA "." DATA "I WANT" DATA "!" DATA "WHAT WOULD IT MEAN TO YOU IF YOU GOT*" DATA "WHY DO YOU WANT*" DATA "SUPPOSE YOU SOON GOT*" DATA "WHAT IF YOU NEVER GOT*" DATA "I SOMETIMES ALSO WANT*" DATA "." DATA "WHAT" DATA "WHO" DATA "HOW" DATA "WHERE" DATA "WHEN" DATA "WHY" DATA "!" DATA "WHY DO YOU ASK?" DATA "DOES THAT QUESTION INTEREST YOU?" DATA "WHAT ANSWER WOULD PLEASE YOU THE MOST?" DATA "WHAT DO YOU THINK?" DATA "ARE SUCH QUESTIONS ON YOUR MIND OFTEN?" DATA "WHAT IS IT THAT YOU REALLY WANT TO KNOW?" DATA "HAVE YOU ASKED ANYONE ELSE?" DATA "HAVE YOU ASKED SUCH QUESTIONS BEFORE?" DATA "WHAT ELSE COMES TO MIND WHEN YOU ASK THAT?" DATA "." DATA "NAME" DATA "!" DATA "ELIZA, IS A VERY INTERESTING NAME DON'T YOU THINK?" DATA "NAMES DON'T INTEREST ME... TOO MUCH... PICK ANOTHER TOPIC PLEASE." DATA "I DON'T CARE ABOUT NAMES--PLEASE GO ON." DATA "NAME SCHMAME, VOT'S IN A NAME." DATA "." DATA "CAUSE" DATA "BECAUSE" DATA "!" DATA "IS THAT THE REAL REASON?" DATA "DON'T ANY OTHER REASONS COME TO MIND?" DATA "DOES THAT REASON EXPLAIN ANYTHING ELSE?" DATA "WHAT OTHER REASONS MIGHT THERE BE?" DATA "." DATA "SORRY" DATA "!" DATA "SORRY FOR WHAT?" DATA "PLEASE DON'T APOLOGIZE." DATA "APOLOGIES ARE NOT NECESSARY." DATA "WHAT FEELINGS DO YOU HAVE WHEN YOU APOLOGIZE?" DATA "DON'T BE SO DEFENSIVE!" DATA "." DATA "HELLO" DATA "HI" DATA "ALLO" DATA "BONJOUR" DATA "!" DATA "HOW DO YOU DO. PLEASE STATE YOUR PROBLEM." DATA "HOWDY." DATA "HOW'S IT GOING?" DATA "HI." DATA "GREETINGS FROM THE INSIDE OF THE BOX." DATA "NICE DAY EH?" DATA "." DATA "MAYBE" DATA "!" DATA "YOU DON'T SEEM QUITE CERTAIN." DATA "WHY THE UNCERTAIN TONE?" DATA "CAN'T YOU BE MORE POSITIVE?" DATA "YOU AREN'T SURE?" DATA "DON'T YOU KNOW?" DATA "." DATA "YOUR" DATA "!" DATA "WHY ARE YOU CONCERNED ABOUT MY*" DATA "WHAT ABOUT YOUR OWN*" DATA "." DATA "ALWAYS" DATA "!" DATA "CAN YOU THINK OF A SPECIFIC EXAMPLE?" DATA "WHEN?" DATA "WHAT ARE YOU THINKING OF?" DATA "REALLY, ALWAYS?" DATA "." DATA "I THINK" DATA "!" DATA "DO YOU REALLY THINK SO?" DATA "BUT ARE YOU SURE*" DATA "DO YOU DOUBT THAT*" DATA "WHY DO YOU THINK*" DATA "." DATA "THE SAME" DATA "ALIKE" DATA "!" DATA "IN WHAT WAY?" DATA "WHAT RESEMBLANCE DO YOU SEE?" DATA "WHAT DOES THE SIMILARITY SUGGEST TO YOU?" DATA "WHAT OTHER CONNECTIONS DO YOU SEE?" DATA "COULD THERE REALLY BE SOME CONNECTION?" DATA "HOW?" DATA "." DATA "HE" DATA "SHE" DATA "!" DATA "I AM INTERESTED IN YOUR FEELINGS ABOUT THIS PERSON. PLEASE DESCRIBE THEM." DATA "WHAT IS YOUR RELATIONSHIP TO THIS PERSON?" DATA "." DATA "JOB" DATA "BOSS" DATA "JOBS" DATA "WORK" DATA "!" DATA "DO YOU FEEL COMPETENT IN YOUR WORK?" DATA "HAVE YOU CONSIDERED CHANGING JOBS?" DATA "IS YOUR CAREER SATISFYING TO YOU?" DATA "DO YOU FIND WORK STRESSFUL?" DATA "WHAT IS YOUR RELATIONSHIP WITH YOUR BOSS LIKE?" DATA "." DATA "SAD" DATA "DEPRESSED" DATA "!" DATA "ARE YOU SAD BECAUSE YOU WANT TO AVOID PEOPLE?" DATA "DO YOU FEEL BAD FROM SOMETHING THAT HAPPENED TO YOU, OR TO SOMEBODY ELSE?" DATA "YOUR SITUATION DOESN'T SOUND THAT BAD TO ME. PERHAPS YOU'RE WORRYING TO MUCH." DATA "." DATA "ANGER" DATA "ANGRY" DATA "!" DATA "DO YOU REALLY WANT TO BE ANGRY?" DATA "DOES ANGER SATISFY YOU IN SOME WAY?" DATA "WHY ARE YOU SO ANGRY?" DATA "PERHAPS YOU'RE USING ANGER TO AVOID SOCIAL CONTACT." DATA "." DATA "YOU" DATA "!" DATA "WE WERE DISCUSSING YOU--NOT ME." DATA "YOU'RE NOT REALLY TALKING ABOUT ME, ARE YOU?" DATA "." DATA "YES" DATA "!" DATA "WHY DO YOU THINK SO?" DATA "YOU SEEM QUITE POSITIVE." DATA "ARE YOU SURE?" DATA "." DATA "NO" DATA "!" DATA "WHY NOT?" DATA "ARE YOU SURE?" DATA "WHY NO?" DATA "NO AS IN NO, OR NO AS IN YES?" DATA "." DATA "TIME" DATA "!" DATA "TIME SURE FLYS DOESN'T IT?" DATA "SPEAKING OF TIME, WHAT TIME IS IT?" DATA "." DATA "SCHOOL" DATA "JUNIOR HIGH" DATA "SENIOR HIGH" DATA "ELEMENTARY" DATA "SCHOOL TEACHER" DATA "!" DATA "WHAT SUBJECT DO YOU LIKE IN SCHOOL?" DATA "DO YOU GET GOOD GRADES IN SCHOOL?" DATA "WHAT PART ABOUT SCHOL DON'T YOU ENJOY?" DATA "IS SCHOOL STRESSING YOU OUT?" DATA "WHAT WAS THAT SCHOOL THAT YOU GO TO?" DATA "." DATA "UNIVERSITY" DATA "COLLEGE" DATA "!" DATA "BY THE WAY, WHAT IS YOUR IQ?" DATA "VERY INTERESTING." DATA "." DATA "NOKEYFOUND" DATA "!" DATA "SAY, DO YOU HAVE ANY PSYCOLOGICAL PROBLEMS?" DATA "WHAT DOES THAT SUGGEST TO YOU?" DATA "I SEE." DATA "I'M NOT SURE I UNDERSTAND YOU FULLY." DATA "COME, COME; ELUCIDATE YOUR THOUGHTS." DATA "CAN YOU ELABORATE ON THAT?" DATA "THAT IS QUITE INTERESTING." DATA "YOU ARE BEING SHORT WITH ME." DATA "HOW COME I CAN NEVER UNDERSTAND YOU FULLY?" DATA "HUH? WHAT ARE YOU SAYING?" DATA "WHAT? YOUR TYPING MUST BE TERRIBLE TODAY." DATA "." DATA "END OF DATA"