(COMPARE RTF Q¬DETAB RTF KÝENTAB RTF 7ÕEXAMPLE RTF"ø?F77DEF RAT%rINCLUDE RTF- |ÓQSORT RTF9&ã£RATCOMNSRAT_ 8LRATFOR COMj©!RATLIB RELNÂ0TRNLIT RTFa0&UNIQUE RTF‘ +WRDCNT RTFš†¢ÿ-22APR86DWNŸÜÿ include "b:ratdefn.rtf" define(READ,RDONLY) define(NAMESIZE,50) # compare - compare two files for equality character arg1(MAXLINE), arg2(MAXLINE) character line1(MAXLINE), line2(MAXLINE) integer equal, getarg, getlin, fopen integer infil1, infil2, lineno, m1, m2 call initio if (getarg(1, arg1, MAXLINE) == EOF | getarg(2, arg2, MAXLINE) == EOF) call error("usage: compare file1 file2.") infil1 = fopen(arg1, READ) if (infil1 == ERR) call cant(arg1) infil2 = fopen(arg2, READ) if (infil2 == ERR) call cant(arg2) lineno = 0 repeat { m1 = getlin(line1, infil1) m2 = getlin(line2, infil2) if (m1 == EOF | m2 == EOF) break lineno = lineno + 1 if (equal(line1, line2) == NO) call difmsg(lineno, line1, line2) } if (m1 == EOF & m2 ^= EOF) call remark("eof on file 1.") else if (m2 == EOF & m1 ^= EOF) call remark("eof on file 2.") call putc(EOF) stop end # difmsg subroutine difmsg(lineno, line1, line2) integer line1(MAXLINE), line2(MAXLINE) integer lineno call putdec(lineno, 5) call putc(NEWLINE) call putlin(line1, STDOUT) call putlin(line2, STDOUT) return end  ineno, 5) call putc(NEWLINE) call putlin(line1, STDOUT) call putlin(line2, STDOUT) return end  include "b:ratdefn.rtf" # detab - convert tabs to equivalent number of blanks character getc character c integer tabpos integer col, i, tabs(MAXLINE) call initio call settab(tabs) # set initial tab stops col = 1 while (getc(c) ^= EOF) if (c == TAB) repeat { call putc(BLANK) col = col + 1 } until (tabpos(col, tabs) == YES) else if (c == NEWLINE) { call putc(NEWLINE) col = 1 } else { call putc(c) col = col + 1 } call putc(EOF) stop end # tabpos - return YES if col is a tab stop integer function tabpos(col, tabs) integer col, i, tabs(MAXLINE) if (col > MAXLINE) tabpos = YES else tabpos = tabs(col) return end # settab - set initial tab stops subroutine settab(tabs) integer mod integer i, tabs(MAXLINE) for (i = 1; i <= MAXLINE; i = i + 1) if (mod(i, 8) == 1) tabs(i) = YES else tabs(i) = NO return end  # entab - replace blanks by tabs and blanks include "b:ratdefn.rtf" character getc character c integer tabpos integer col, i, newcol, tabs(MAXLINE) call initio call settab(tabs) col = 1 repeat { newcol = col while (getc(c) == BLANK) { # collect blanks newcol = newcol + 1 if (tabpos(newcol, tabs) == YES) { call putc(TAB) col = newcol } } for ( ; col < newcol; col = col + 1) call putc(BLANK) # output leftover blanks if (c == EOF) {call putc(EOF); stop} call putc(c) if (c == NEWLINE) col = 1 else col = col + 1 } call putc(EOF) stop end # tabpos - return YES if col is a tab stop integer function tabpos(col, tabs) integer col, i, tabs(MAXLINE) if (col > MAXLINE) tabpos = YES else tabpos = tabs(col) return end # settab - set initial tab stops subroutine settab(tabs) integer mod integer i, tabs(MAXLINE) for (i = 1; i <= MAXLINE; i = i + 1) if (mod(i, 8) == 1) tabs(i) = YES else tabs(i) = NO return end  # example.rtf a simple example of a copy routine define(EOF,-1) define(character,byte) character char character getc call remark("enter outputfile.") call initio while (getc(char)!=EOF) call putc(char) call putc(EOF) stop end #This INCLUDE RATFOR file must not be used in its entirety, #since Microsoft FORTRAN loads all statement functions #whether they are used or not. #This file should be INCLUDEd ahead of the COMMON section of #a RATFOR program #This definition will work in the contexts: # CHARACTER*1 and CHARACTER*2 define(CHARACTER,INTEGER) CHARACTER*1 CHAR REAL LOG,LOG10 #These DATA are in the file CONSTS.RAT which may be INCLUDEd #after the DATA section of a RATFOR program. #DATA KB/3/,KONS/3/ #DATA DPR/.01745329/,RPD/57.29578/ #DATA PI/3.141593/ #These statement functions are on F77LIB which may be searched #at LINK time. #ICHAR(I)=I #CHAR(I)=I #ANINT(X)=AINT(SIGN(.5,X)+X) #NINT(X)=INT(SIGN(.5,X)+X) #LOG(X)=ALOG(X) #LOG10(X)=ALOG10(X) #TAN(X)=SIN(X)/SQRT(1.-SIN(X)**2) #ASIN(X)=ATAN2(X,SQRT(1.-X*X)) #ACOS(X)=ATAN2(SQRT(1.-X*X),X) #SINH(X)=(EXP(X)-1./EXP(X))/2. #COSH(X)=(EXP(X)+1./EXP(X))/2. ASIN(X)=ATAN2(X,SQRT(1.-X*X)) #ACOS(X)=ATAN2(SQRT(1.-X*X),X) #SINH(X)=(EXP(X)-1./EXP(X))/2. #COSH(X include "b:ratdefn.rtf" define(NFILES,4) # include - replace include file by contents of file character line(MAXLINE), str(MAXLINE) integer equal, getlin, getwrd, fopen integer infile(NFILES), len, level, loc # string incl "include" character incl(8) data incl(1) /LETI/ data incl(2) /LETN/ data incl(3) /LETC/ data incl(4) /LETL/ data incl(5) /LETU/ data incl(6) /LETD/ data incl(7) /LETE/ data incl(8) /EOS/ call initio infile(1) = STDIN for (level = 1; level > 0; level = level - 1) { while (getlin(line, infile(level)) ^= EOF) { loc = 1 len = getwrd(line, loc, str) if (equal(str, incl) == NO) call putlin(line, STDOUT) else { level = level + 1 if (level > NFILES) call error("includes nested too deeply.") len = getwrd(line, loc, str) infile(level) = fopen(str, RDONLY) if (infile(level) == ERR) call cant(str) } } if (level > 1) call close(infile(level)) } call putch(EOF,STDOUT) stop end # getwrd - get non-blank word from in(i) into out, increment i integer function getwrd(in, i, out) character in(ARB), out(ARB) integer i, j while (in(i) == BLANK | in(i) == TAB) i = i + 1 j = 1 while (in(i) ^= EOS & in(i) ^= BLANK & in(i) ^= TAB & in(i) ^= NEWLINE) { out(j) = in(i) i = i + 1 j = j + 1 } out(j) = EOS getwrd = j - 1 return end  # msort.rtf - sort lines in memory # # this program allocates both a buffer (linbuf) and pointers into that # buffer (linptr) above then end of the program using ialloc. # note that when words are allocated, 2*LEN+1 must be allocated, the +1 # in case the array address is on an odd word boundary. However, # as long as all of the pointer and buffer manipulations are done in # subroutines, these irregularities disappear by using linbuf(bptr) and # linptr(lptr) as the argument to the subroutine. include "b:ratdefn.rtf" define(MERGEORDER,7) define(NAMESIZE,20) define(MAXTEXT,10000) define(MAXPTR,2000) define(LOGPTR,20) # sort - sort text lines in memory character linbuf(ARB) character argbuf(MAXLINE) character clower integer gtext,ialloc,iaddr, getarg integer linptr(ARB), nlines, lptr, bptr integer isp logical rvflag call initio rvflag = NO if (getarg(1,argbuf,MAXLINE)!=EOF) if (argbuf(1)==MINUS & clower(argbuf(2))==LETR & argbuf(3)==EOS) rvflag = YES else call error("usage: sort [-r].") isp = ialloc(2*MAXPTR+1) # allocating words is more difficult than chars if (isp==NO) call error("cannot allocate memory.") else lptr=(isp+1-iaddr(linptr))/2+1 isp=ialloc(MAXTEXT) if (isp==NO) call error("cannot allocate memory.") else bptr=isp-iaddr(linbuf)+1 if (gtext(linptr(lptr), nlines, linbuf(bptr), STDIN) == EOF) { call quick(linptr(lptr), nlines, linbuf(bptr)) call ptext(linptr(lptr), nlines, linbuf(bptr), rvflag, STDOUT) call putch(EOF,STDOUT) } else call error("too big to sort.") stop end # shell - Shell sort for character lines subroutine shell(linptr, nlines, linbuf) character linbuf(ARB) integer compar integer gap, i, ig, j, k, linptr(ARB), nlines for (gap = nlines/2; gap > 0; gap = gap/2) for (j = gap + 1; j <= nlines; j = j + 1) for (i = j - gap; i > 0; i = i - gap) { ig = i + gap if (compar(linptr(i), linptr(ig), linbuf) <= 0) break call exchan(linptr(i), linptr(ig), linbuf) } return end # gtext - get text lines into linbuf integer function gtext(linptr, nlines, linbuf, infile) character linbuf(ARB) integer getlin integer infile, lbp, len, linptr(ARB), nlines nlines = 0 lbp = 1 repeat { len = getlin(linbuf(lbp), infile) if (len == EOF) break nlines = nlines + 1 linptr(nlines) = lbp lbp = lbp + len + 1 # "1" = room for EOS } until (lbp >= MAXTEXT-MAXLINE | nlines >= MAXPTR) gtext = len return end # ptext - output text lines from linbuf subroutine ptext(linptr, nlines, linbuf, rvflag, outfil) character linbuf(MAXTEXT) logical rvflag integer i, j, linptr(MAXPTR), nlines, outfil if (rvflag == YES) for (i = nlines; i >= 1; i = i - 1) { j = linptr(i) call putlin(linbuf(j), outfil) } else for (i = 1; i <= nlines; i = i + 1) { j = linptr(i) call putlin(linbuf(j), outfil) } return end # compar - compare linbuf(lp1) with linbuf(lp2) integer function compar(lp1, lp2, linbuf) character linbuf(ARB) integer i, j, lp1, lp2 i = lp1 j = lp2 while (linbuf(i) == linbuf(j)) { if (linbuf(i) == EOS) { compar = 0 return } i = i + 1 j = j + 1 } if (linbuf(i) < linbuf(j)) compar = -1 else compar = +1 return end # exchan - exchange linbuf(lp1) with linbuf(lp2) subroutine exchan(lp1, lp2, linbuf) character linbuf(ARB) integer k, lp1, lp2 k = lp1 lp1 = lp2 lp2 = k return end # quick - quicksort for character lines subroutine quick(linptr, nlines, linbuf) character linbuf(ARB) integer compar integer i, j, linptr(ARB), lv(LOGPTR), nlines, p, pivlin, uv(LOGPTR) lv(1) = 1 uv(1) = nlines p = 1 while (p > 0) if (lv(p) >= uv(p)) # only one element in this subset p = p - 1 # pop stack else { i = lv(p) - 1 j = uv(p) pivlin = linptr(j) # pivot line while (i < j) { for (i=i+1; compar(linptr(i), pivlin, linbuf) < 0; i=i+1) ; for (j = j - 1; j > i; j = j - 1) if (compar(linptr(j), pivlin, linbuf) <= 0) break if (i < j) # out of order pair call exchan(linptr(i), linptr(j), linbuf) } j = uv(p) # move pivot to position i call exchan(linptr(i), linptr(j), linbuf) if (i-lv(p) < uv(p)-i) { # stack so shorter done first lv(p+1) = lv(p) uv(p+1) = i - 1 lv(p) = i + 1 } else { lv(p+1) = i + 1 uv(p+1) = uv(p) uv(p) = i - 1 } p = p + 1 # push onto stack } return end  #common blocks referred to by ratfor references #"include ratcomns" #no transliteration tables are required for ascii system #Microsoft FORTRAN requires type statements to precede #common blocks. Initialization is performed according to #the block data module. integer bp #next character in buf character buf #pushed-back characters integer*1 fordep #current depth of for statements character forstk #stack of reinit strings character sdo(3),sif(3),selse(5),swhile(6),sbreak(6),snext(5), sfor(4),srept(7),suntil(6),vdo(2),vif(2),velse(2),vwhile(2), vbreak(2),vnext(2),vfor(2),vrept(2),vuntil(2) integer level #level of file inclusion; init=1 integer linect #line count on input file(level); init=1 integer infile #file number(level); infile(1)=stdin integer lastp #last used in namptr; init=0 integer lastt #last used in table; init=0 integer namptr #name pointers character table #text of names & definitions integer outp #last position filled in outbuf; init=0 character outbuf #output collector common/cdefio/bp,buf(bufsize) common/cfor/fordep,forstk(maxforstk) common/ckeywd/sdo,sif,selse,swhile,sbreak,snext,sfor,srept, suntil,vdo,vif,velse,vwhile,vbreak,vnext,vfor,vrept,vuntil common/cline/level,linect(nfiles),infile(nfiles) common/clook/lastp,lastt,namptr(maxptr),table(maxtbl) common/coutln/outp,outbuf(maxline) evel,linect(nfiles),infile(nfiles) common/clook/ÃXratfor FORTRAN preprocessor 2,0 25-Nov-81.enter files as 'outputfile'.^ÃgS!ÍWD!.ÍWDÍÜ9ÍC-„!‚ÍZKÍÃO ÿÿž>€2ªÍUÒ>€2©!H4Êÿ!£¢Í:Fþ-?:©o:Hg"¨ÂÍÜÂ!©·~w+ÂLɪ¯Žw#Â^ɯ~w#ÂnÉÍÌQÍhÍhÍUÃh!±·~w+ÂŽ ˆÉÍ"#:¼·ÈÍñÉͤþÒ¶:aþÀÍñoÍn#¯2Íö:*"S"Q""Ÿ!:gþ, Í$òíÍ"#Í� à ͺ:gþ= 2¦ÍÌQ¯goåÍö:Ã( :ÛͱþÂ�#*Ÿå¯Íö::gþ,Âr >Í;!¨Íj Â> !4Í"#"Sà !¬Íj ÂT !4Í"#"Qà !°Íj  !!4Í…#"à ®Ã0:·ÊŽ *S¯Íó:*Q¯Íó:*¯Íó:*þDMxþRÊžW¬ 2:·Êº 5ú :·Ê· Íñ!HOÍN¯2!ÿÿ|2S"N"QÍ W:gþ,Âß Í—ÃÔ þ áÂ!|µÂ!Íñ Ã!*Q#|µÊþ ÍñtÍD=DNÍNÆ Íñs>2oÍ®Âb!>(Í-c2U*åë*ÙåÍx_ãÁx±ÊB!~ö€w++++ Ã.!*Q"Ÿ*åë*ÙÍx_"Q> ÍÃ>ÿ2SÃ!ÉÍ…#Ã^#Í®=Êz#==Â�#:¼=ø=ÈÍñ€Ín#Ê�#É>2h2€Ã|`@Òß2RATSB2 REL6”•–—˜™š6RATSB2 PRNRATSB2 FOR€XÆÇÈÉÊËXdATSB2 FORRELCRFPRN�@ ˆ  Ɉ(Hè©Ñ�p žª¨†ž�Éꪉʩ±’°’ŒŽŸ52Ž€et„”ÄT9À…•ÒSTàet„”ÄU1`h*À á˜Þ#`0f€ ™@(d§ªª#§ÆF2zª¢ztÔl:•ÒSTçž„¦¨¥h©êªˆéñ—� žª¨†ž�5|Ž€eTåD”Å9À…•ÒSPàet„”ÄT1€ ÐB3@X«€Äg!Vf€¬~™�â1àPhÉ”€LB€Úl outnum(lab) if(.not.(token.eq.-18)) goto 23138 junk = lex(ptoken) call ifgo(lab-1) token = lex(ptoken) call pbstr(ptoken) goto 23139 23138 continue call outgo(lab-1) 23139 continue call outcon(lab+1) return end subroutine whilec(lab) integer labgen integer lab call outcon(0) lab = labgen(2) call outnum(lab) call ifgo(lab+1) return end subroutine whiles(lab) integer lab call outgo(lab) call outcon(lab+1) return end PB:RATSB2=RATSB2 doifelsewhilebreaknextforrepeatuntilöôõòøóðïîd error?File not " !" * ~ÖŸ/2 ·Â3 * É!" * +ë* ~ÖŸ2 ·Ây * +ë* " * ͧEÖÖŸ2 ·Âo * É* #" Ã9 !" É2¥#2¤#2¢#2¡#2¦#<2 #2ž#¶)ů2—#ÍV+Ø$Í9+ $þ Â2*>€2—#å!¨#Í-+á> 2 $2$¯2 $yÖ,·2¡#Â\*:—#î€2¡#ÍV+Ø$:¢#·Êi*$Í9+ $: $2�#Ö 2œ#†*:—#Æ@2—#å!É#Í-+áyþ=7ÀÍV+þ 7ÀïÍ9+ $·ú®*þ 7Èå!ê#Í-+á:—#‡!¨#Ü +‡!É#õ:¢#·Êmissing left paren.*ñÜmissing parenthesis in condition.˜x!ƒ ÍXÖ(ÖŸ2M ·Â¢ !N Í64É!ƒ Í�)!"K x!ƒ ÍX2‚ <ÖŸ2M :‚ Ö}ÖŸ2a :‚ Ö{ÖŸ2b :‚ Ö;ÖŸ!b ¶!a ¶!M ¶/2c ·Âü !ƒ ͇0Ã^:‚ Ö ÖŸ/2M ·Â¯2ƒ ÃD:‚ Ö(ÖŸ/2M ·Â-*K #"K ÃD:‚ Ö)ÖŸ/2M ·ÂD*K +"K !ƒ Í�)*K }µæ´=ÖŸ2M ·Â® *K }µæ´ÖŸ2M ·Âw!d Í64ÉÈÖ.2š#Ì‘,ëÕ$xþillegal break.illegal next.-"{ë"}>!ÍcR*{~#fo"ƒ*ƒ}µæ´=ÖŸ/2…·Â¤*ƒ)++ë*}"†~#fo}µæ´ÖŸ2…*†~#fo}µæ´ÖŸ2ˆ*†~#fo }µæ´ÖŸ2‰*†~#fo}µæ´ÖŸ!‰¶!ˆ¶!…¶/2Š·Âš*�~#fo}µæ´ÖŸ/2…·Â…*ƒ)++ë*~#fo#"†!†Íô(Ù*ƒ)++ë*"†*†Íô(É*ƒ+"ƒÃÀ*�~#fo}µæ´ÖŸ/2…·ÂÉ!‹Í64ÃÏ!™Í64Éþ #̲,#"x)+~áþ7È·É> Í2-> Ã2-õÅÕå$%!""%!É#:Ÿ#Ã’-õÅÕå"$!" $!¨#:¡#·ÊÃ-åÍá~·úÃ-Íå-ÕÍÑÕÍ<ÊÂ)áÍå-Í<ʼ)áÑÁñÉõÅÕå!"$'&'Í!ê#~·úÃ-÷-åÕ ¯w#Âî-wáÑÉõÕê#·ú.ÅåÕ&'ÍÑÅåÍáÁÑñÉõ:Ÿ#·Ê%+ÕàtÊ"Ùë"Û`i"Ý*ÝDM*Ûë*ÙÍõ2¨:¨<ÖŸ2«·ÂW:¨ÖaÖŸ2«·ÂðÃWà*Ùͤ&}µæ´ÖŸ/2«·Â ÃW:àÆÖŸ/2«·Â<*Ý"°¬*Ûë*ÙÍ«à*ÙÍþ"ÃB!à͇0*ÝDM*Ûë*ÙÍõ2¨ÃÐ:¨2ÑÖaÖŸ/2«·Âp*ÙÍ:ÑÉÈÅÕåÍÑ"w!"y*y+ë*w~ÖŸ2{·Âä*y+ë*w"|~ÖZ=Æ�Ÿ2{*|~ÖA?Ÿ!{¦/2~·ÂÚ*y+ë*w"|~Æ *|w*y#"yÈÉ%'Ñdo "æÍc*!êÍ�)!Í?$ë*æs#r*æÍ )!Í®'Íͱ(É åÕÅõ" * Í{(* ~#fo#""!"Í{(ÉÂÌ/> ͺ.~æ¾/ÃÏ/ÍñÁÑáÉåÕÅÍÁÑáþ7È·É!0Í«)ÑÆ@þ@Âö/> Í2-! 0Í«)Í_-ÃDISK FULL†ADD ÍÆADI‰¢ANA Ä£ANA ŦANA ÍæANI‰ÍCALL‰/CMÁ?CMøCMP ¾CMP ÍþCPI‰DAD Ä)DAD È+DCX È=DCR Á2¼ñÂ$3>Ͱ5>þÍ2C*yÍÑO:¨<ÍgC>úÃ�2:Û=ÊP3>Ͱ5>GÍ2C*yÍÑO>2¼Í:>¸Í2C>xÍ2CÛ2:¨=Â+3*yÍÑOÍè:>¾Í2C*{ÍÑO>2¼=Ͱ5>ÚÃ�2Í$!"Ÿò«3ÍD=Í›:ò·Â¡3*Ÿ"ß"á"ãÃŒ#Í„<¯2òÆ õ:ò·Ê¾3ÍD=ÍùB>ÊÍžCñÂçif(.not.=missing left paren.ò·invalid for clause.õA("o!ñÍ?$ë*os#r!íÍ{(ï!sÍXÖ(ÖŸ2N·Â°!OÍ64Éï!sÍXÖ;ÖŸ2N·ÂÔ!s͇0Íc*Íͱ(ï!sÍXÖ;ÖŸ/2N·Âó*oÍ{(ÃØ!s͇0*oÍ )Íc*!EÍ�)!óÍ®'!"C*C}µæ´Ÿ2N·Â›ï!sÍX2rÖ;ÖŸ/2N·ÂBÛ:rÖ(ÖŸ/2N·Â\*C#"CÃs:rÖ)ÖŸ/2N·Âs*C+"C:rÖ_ÆÿŸ2N:rÖ ÆÿŸ!N¦/2b·Â˜!sÍ�)Ã!õÍ®'!õÍ®'!÷Í®'*o~#fo##"c!cÍô(*C}µæ´Ÿ/2N·ÂØ!eÍ64*#"!"A!"?*?ë*{•ozœg}µæ´Ÿ/2N·Â+*A"c*cÍÔC#ë*A"A*?#"?Ãë*A"c¯*cw!"C*C}µæ´Ÿ2N·ÂÛï!sÍX2rÖ(ÖŸ/2N·Âu*C#"CÃŒ:rÖ)ÖŸ/2N·ÂŒ*C+"C:rÖ_ÆÿŸ2N:rÖ ÆÿŸ2b*C}µæ´?Ÿ!b¦!N¦/2x·ÂØyë!sÍ%E!sÍÔCë*A"AÃ@*o~#fo#ë*os#rÉÈ() ÃÂ7+~·ÂŸ6x=È"û*ûÍ )!"!"ÿ*ÿë*{•ozœg}µæ´Ÿ/2·Â[*"*ÍÔC#ë*"*ÿ#"ÿÃ*"*ÍÔC}µæ´=ÖŸ/2·Â“Íc**"*Í�)ͱ(*û~#fo+"!Íô(*û~#fo#"!Í{(*+"É=Ì 2ÍŠ *Ÿë*�ÍÖ"Æ!"¾!"Ê*Ê+ë*Æ~ÖŸ2Ì·Â%*Ê+ë*Æ~oŸgë*¾{•ozœgë*¾{•ozœg¯•oœ•g"¾*Ê#"ÊÃÜ*¾ë!ÍÕQë*¾"¾D!¾͈O"¾ÉÿÅÍ÷9Á:¼·ÊÔ7Í 22¼x=Âá7>Í2CÃç2Ö"S*H#"H*SÍÍ"]!"_*]#"c"K*c"[*F#"F*[)è~#fo}µæ´ÖŸ/2e·Â·*KÉ*[)è~#fo"aé"c*cë*SÍB+}µæ´ÖŸ/2e·Âí*KÉ*_ë*]"c+!c͈O"]*_#"_*_ÿ}µæ´=ÖŸ/2e·Â!ýÿ"KÉÿ´86Í 2Ü8·ÂÈ8:¼þmissing left paren.non-alphanumeric name.missing comma in define.definition too long.missing right paren.".ë"0>!2ÍcR*6ë!>Í 'Ö(ÖŸ2?·ÂÖ!@ÍWD*6DM*0ë*.ÍõÖaÖŸ2?·Âú!SÍWDÃ*6ë!>Í 'Ö,ÖŸ2?·Â!iÍWD!"<!":*<}µæ´Ÿ2?·ÂÔ*:ë*4~#fo{•ozœg}µæ´=ÖŸ/2?·Â`!�͆BÃÊ*:+ë*2"•*6ë*•Í '<ÖŸ/2?·Â‹!—͆BÃÊ*:+ë*2~Ö(ÖŸ/2?·Â¬*<#"<ÃÊ*:+ë*2~Ö)ÖŸ/2?·ÂÊ*<+"<*:#":Ã"*:++ë*2"•¯*•wÉ:L:¼Æ0O*åÍNá"É:Û=ʳ::¼·:aÊ—:þÂu<Íp<>~Ã2include<>~includes nested too deeply.·>¯can't open include.å"ñë"ó*Ü}µæ´=ÖŸ/2"·Â®*Ü)ä"#*#DM*óë*ñͲ2é:é<ÖŸ2"·Â}*ñÍB}µæ´ÖŸ/2"·Â½:éÉ*Ü)ä"#*#DM¶!üͲoŸg"ù*Üüÿ}µæ´Ÿ2"·Âü!%Í64Ã]*Ü)"#æ"@´!üÍm<ë*@s#r*#Þ"B!ë*Bs#r*#æ~#fo###}µæ´ÖŸ/2"·ÂV!DÍ64Ã]*Ü#"Ü*Ü)ä"#*#DM*óë*ñͲ2éÑ*Ü+}µæ´=ÖŸ/2"·Â¤*Ü)ä"#*#ÍÐL*Ü+"ÜÃ_>ÿ2éÉì"™*îÃô_*ÍÑO:aþÊU"Áë"Ã`i"Å*Åë!ËÍ '<ÖŸ2Ì·Â;:ËÖ ÆÿŸ2Ì:ËÖ ÆÿŸ!̦/2Í·Â8Ã;Ã!ËÍë0!"É*Ã~#fo+"Î*Éë*Î{•ozœg}µæ´Ÿ/2̷º*É+ë*Á"Î*Åë*ÎÍ '2Ì!ÌͧE2¹ÖÆÿŸ2Í:¹ÖaÆÿŸ!ͦ/2з°ú*É#"ÉÃG*Ã~#fo+"Î*Éë*Î{•ozœg}µæ´Ÿ2Ì·Âç!ÑÍ64*É+}µæ´=ÖŸ/2Ì·Â( *É+ë*Á"Î*ÎÍë0*É+ë*Á"ί*Îw>a2¹Ã""*Á~Ö$ÖŸ/2̷¡ !ë*Á"Î*Åë*ÎÍ 'Ö(ÖŸ/2Ì·Âi >{*Áw>{2¹Þ !ë*Á~Ö)ÖŸ/2Ì·Â� >}*Áw>}2¹Þ !ë*Á"Î*ÎÍë0Ã""*Á~Ö"ÖŸ2Ì*Á~Ö'ÖŸ!̶/2Í·Âa!!"É*É+ë*Á"Î*Åë*ÎÍ '*Á–ÖŸ2Ì·Â^!*É+ë*Á"Î*Ã~#fo+"à*Éë*à{•ozœg}µæ´?Ÿ2Ì*Î~Ö ÖŸ!̶/2Í·ÂT!!âÍ64*É+ë*Á"Î*Á~*Îw!^"Íë0Ã^!*É#"ÉÃÈ Ã""*Á~Ö#ÖŸ/2̷“!*Åë*ÁÍ 'Ö ÖŸ2̷‹!Ãr!> 2¹Ã""*Á~Ö~ÖŸ2Ì*Á~Ö^ÖŸ2Í*Á~Ö|ÖŸ2Ð*Á~Ö&ÖŸ2ð*Á~Ö=ÖŸ2ñ*Á~Ö!ÖŸ2ò*Á~Ö<ÖŸ2ó*Á~Ö>ÖŸ!ó¶!ò¶!ñ¶!ð¶!ж!Ͷ!̶/2ô·Â""*ÅDMÉ*Á͈1*Éë*Á"ί*Îw*Á~Ö ÖŸ/2Ì·ÂZ"*Ü)Ü"Î~#fo#ë*Îs#r:¹É Êå?Í "a"!|"Í?$ë*a"s#r*a"ÍŒ"É?åÊpif(.not.Í"€"Íc*!‚"Í�)͆ !®"Í®'!°"Í®'*€"Íô(É) Ê%defineü@»"!´"Íþ"É@<õë*ÙÍx_å:ûG:D: too many definitions.Ê@ñêó"êñ"Í"Ê"ë"Ì"*Ê"ÍÔC#"Ö"*Ì"ÍÔC#"Ô"*Ê"Íf"Ò"}µæ´Ÿ2Ø"*èë*Ö"ë*Ô"$ú}µæ´=ÖŸ!Ø"¶/2Ù"·Âc#³#*Ê"ÍD!Ú"ÍWD*Ò")è"ñ"*è#"ó"ë*ñ"s#rõ"±#*Ê"Í%E*è#ë*Ö""ñ"ù"±#*Ì"Í%E*èë*Ö"ë*Ô""èÉ"¨>2‰warning: possible label conflict.:"¶#*¶#ÍÔCûÿ}µæ´ÖŸ/2º#·Â($!ë*¶#~Ö3ÖŸ2º#*¶#~Ö2ÖŸ!º#¦/2»#·Â($!¼#Í64*¶#Í�)Íc*ɷ»A*6"ŸÍØY";$*=$"3$*=$ë*;$~#fo"=$*3$É>2ÛÍ×X>Í>Y*ì"]!"d$„&*d$ÍXÖ ÖŸ/2k$·Â‹$Ãr$*d$~oŸg"\$ƒÿ}µæ´ÖŸ2k$*\$…ÿ}µæ´ÖŸ2l$*\$Åÿ}µæ´ÖŸ2m$*\$#}µæ´ÖŸ!m$¶!l$¶!k$¶/2n$·Âñ$*\$É*d$Í +}µæ´ÖŸ/2k$·Â%!÷ÿ"\$À&É *d$ÍB+}µæ´ÖŸ/2k$·Â:%:õ oŸg"\$À&Ì *d$ÍB+}µæ´ÖŸ/2k$·Âb%:÷ oŸg"\$À&Ñ *d$ÍB+}µæ´ÖŸ/2k$·ÂŠ%:ù oŸg"\$À&Æ *d$ÍB+}µæ´ÖŸ/2k$·Â²%:ó oŸg"\$À&× *d$ÍB+}µæ´ÖŸ/2k$·ÂÚ%:û oŸg"\$À&Ý *d$ÍB+}µæ´ÖŸ/2k$·Â&:ý oŸg"\$À&â *d$ÍB+}µæ´ÖŸ/2k$·Â*&:ÿ oŸg"\$À&æ *d$ÍB+}µæ´ÖŸ/2k$·ÂR&: oŸg"\$À&í *d$ÍB+}µæ´ÖŸ/2k$·Âz&: oŸg"\$À&!ñÿ"\$*\$ÉÈ Statement CompletioîIllegal '"�&ë"‘&*�&Íf"•&)è~#fo"™&}µæ´=ÖŸ2›&·ÂØ&!"‡&É*™&é"œ&*œ&ÍÔCë*™&"—&#"ž&*‘&" & &ž&!êÍ%E!"‡&Érect Number of DA"'ë"'*î}µæ´=ÖŸ/2'·ÂK'*îï~*'wÃf'!"îï"'*'ë*'Í I*'w*î+"î*'~2'Égal "v'Íc**v'Í�):?Ö ÖŸ/2x'·Â›'!¢'Í®'Íͱ(É t of Memor"¥'*‡¸ÿ}µæ´Ÿ2©'·Â(ͱ(!"§'*§'úÿ}µæ´Ÿ/2©'·Â(*§'Š"ª'> *ª'w*§'#"§'ÃÐ'>*2�!"‡!"‰*‰#"‰Š"ª'*¥'~*ª'w*¥'~Ö ÖŸ/2©'·Âd(*‡+"ª'l(!ª'ͽQ"¬'!ë*¬'{•ozœgë*‡"‡Ãk(*‡#"‡Éegecontinueù"o(*o(~#fo}µæ´=ÖŸ/2z(·Â�(*o(Í )Íc*!q(Í�)ͱ(ÉencåIll*‰"«(‹"­(> *­(w*«(Œ"¯(¯*¯(wé(!‹ÍD!"‡!"‰Éategoto "ì(Íc*!î(Í�)*ì(Í )ͱ(Éng Integer QuantitùInv" )q) )* )ÍëF")!")*)ë*){•ozœg}µæ´=ÖŸ2)·Âp)*) )")*)Í®'*)#")Ã8)É devicåIllegal"t)!"w)*w)+ë*t)~ÖŸ2{)·Â^**w)+ë*t)~2v)Ö"ÆÿŸ2{):v)Ö'ÆÿŸ!{)¦/2|)·ÂÐ)!v)Í®'ÃT**w)#"w)+ë*t)"})v)*})ÍKH"y)+")!)Í )!_*Í®'*y)+ë*w)"y)*w)ë*y){•ozœg}µæ´Ÿ/2{)·ÂT**w)+ë*t)~2v)Ö ÖŸ/2{)·ÂD*> 2v)!v)Í®'*w)#"w)Ã**w)#"w)Ê)ÉhOM*‡ùÿ}µæ´Ÿ/2b*·Â€*!�*Í®'É bscriptóArray Multiply EQUIVALENCEd Within a GrouðMultiple EQUIVALENCE of COMMOÎCOMMON Base LowereäNon-COMMON Variable in BLOCK DATÁEmpty List for Unformatted WRITÅNon-Integer ExpressioîOperand Mode Not Compatible with OperatoòMixing of Operand Modes Not AlloweäMissing Integer VariablåMissing Statement Number on FORMAÔZero Repeat FactoòZero Format ValuåFormat Nest Too DeeðStatement Number not FORMAT AssociateäInvalid Statement Number UsagåNo Path to this StatemenôMissing Do TerminatioîCode Output in BLOCK DATÁUndefined Labels Have OccurreäRETURN in a Main PrograíSTATUS Error on REAÄInvalid Operand UsagåFuillegal else.o Paramstack overflow in parser.Diviillegal right brace.P+â,P+â,unexpected EOF.;"!"à,!ÿÿ",!„*Ío$"â,*â,#}µæ´ÖŸ2ä,·Âb0*â, }µæ´ÖŸ/2ä,·Â�-!N+Íe"È.*â, }µæ´ÖŸ/2ä,·Â±-!N+ÍîÈ.*â,}µæ´ÖŸ/2ä,·ÂÒ-!N+Í–8È.*â,}µæ´ÖŸ/2ä,·Âó-!N+Í~È.*â,}µæ´ÖŸ/2ä,·Â.!N+Íš3È.*â, }µæ´ÖŸ/2ä,·Â5.!„*ÍÞ#È.*â, }µæ´ÖŸ/2ä,·Âˆ.*à,),~#fo }µæ´ÖŸ/2ä,·Â‚.*à,)N+"å,*å,ÍRÈ.!ç,Í64*â,…ÿ}µæ´ÖŸ2ä,*â, }µæ´ÖŸ2ô,*â, }µæ´ÖŸ2õ,*â,}µæ´ÖŸ2ö,*â,}µæ´ÖŸ2÷,*â,}µæ´ÖŸ2ø,*â, }µæ´ÖŸ2ù,*â, }µæ´ÖŸ!ù,¶!ø,¶!÷,¶!ö,¶!õ,¶!ô,¶!ä,¶/2ú,·Â“/*à,#"à,œÿ}µæ´=ÖŸ/2ä,·Âd/!û,͆B*à,)"å,,"-*â,ë*-s#r*å,N+"-*N+ë*-s#rÃV0*â,ƒÿ}µæ´ÖŸ/2ä,·Âß/*à,),~#fo…ÿ}µæ´ÖŸ/2ä,·ÂÖ/*à,+"à,ÃÜ/!-Í64Ã;0*â,}µæ´ÖŸ/2ä,·Â0!„*Íy'Ã;0*â, }µæ´ÖŸ2ä,*â,}µæ´ÖŸ!ä,¶/2ô,·Â;0,-,!à,ͧ!„*Ío$"â,!„*͇00-,!à,ÍÉ4!„*Ío$"â,Ã[-*à,+}µæ´ÖŸ2ä,·Â|0!4-Í64ÉMÍ�X:X·Ê*"~0*~0ÍÔC"‚0*‚0}µæ´=ÖŸ/2„0·ÂÄ0*‚0+ë*~0"…0*…0Íë0*‚0+"‚0Ó0ÉÂqNtoo many characters pushed back.:¼"Æ0*î#"îÔþ}µæ´=ÖŸ/2È0·Â1!É0͆B*îï"é0*Æ0~*é0wÉ?ÍhXÍNK!ŽO.ge..gt..lt..le..ne..not..eq..and..or.’3’3R*’3|þ’3¼¯Í’3Ãæ’3 P’3gr’3 U’3t"&1ë"(1`i"*1!ë*&1"^1**1ë*^1Í 'Ö=ÖŸ2`1·ÂÆ1!ë*&1"^1*^1Íë0*&1~Ö>ÖŸ/2`1·Â2!ë*&1~Ö=ÖŸ/2`1·Â2*&1"a1a1’3!/1Í%EÃ2*&1"e1e1’3!41Í%EÄ3*&1~Ö<ÖŸ/2`1·Âh2!ë*&1~Ö=ÖŸ/2`1·ÂS2*&1"i1i1’3!>1Í%EÃe2*&1"m1m1’3!91Í%EÄ3*&1~Ö~ÖŸ2`1*&1~Ö^ÖŸ2q1*&1~Ö!ÖŸ!q1¶!`1¶/2r1·ÂÙ2!ë*&1~Ö=ÖŸ/2`1·ÂÄ2*&1"s1s1’3!C1Í%EÃÖ2*&1"w1w1’3!H1Í%EÄ3*&1~Ö=ÖŸ/2`1·Â(3!ë*&1~Ö=ÖŸ/2`1·Â3*&1"{1{1’3!N1Í%EÃ%3!ë*&1"^1¯*^1wÄ3*&1~Ö&ÖŸ/2`1·ÂN3*&1"11’3!S1Í%EÄ3*&1~Ö|ÖŸ/2`1·Ât3*&1"ƒ1ƒ1’3!Y1Í%EÄ3!ë*&1"^1¯*^1w*&1ÍÔCë*(1s#rÉÍQ"y"–3!Æ3Í{(!È3Í?$ë*–3s#r*–3Í{(*–3~#fo#ë*–3s#rÉÊZQþÊZQx=Ê$Q=Ê-QÃÈQxþÊ*QþÊ'QÃÈQ2oõ:2¡>Í;¬!¢Í0¡Q>Í;NO*°ÍÖ¡Qñ¯2¡:\õberror at line.4Í"Ì3!%4ÍWD!"!4*!4ë*Ü{•ozœg}µæ´=ÖŸ234·Â™4²4!¶4ÍZK*!4)Ü"44´4Î3*44ÍëF"#4²4!Î3ÍD*!4#"!4ÃE4²4!¸4ÍZK²4!º4ÍZK*Ì3ÍWDÉQ : Í0áÑÊWR+++"½4ë"¿4>!Á4ÍcR*½4~#fo+}µæ´=ÖŸ/2Å4·Â=7*½4~#fo)++ë*¿4~#fo…ÿ}µæ´ÖŸ/2Å4·Â5Ã=7*½4~#fo)++ë*¿4"Æ4*Ã4~#fo }µæ´ÖŸ2Å4*Æ4~#fo }µæ´ÖŸ!Å4¦/2È4·Âi5Ã=7*½4~#fo)++ë*¿4~#fo }µæ´ÖŸ/2Å4·Â¬5*½4~#fo)++ë*Á4"Æ4*Æ4Í{(Ã+7*½4~#fo)++ë*¿4~#fo }µæ´ÖŸ/2Å4·Â6*½4~#fo++}µæ´=ÖŸ/2Å4·Âþ5*½4~#fo+ë*½4s#r*½4~#fo)++ë*Á4~#fo#"Æ4!Æ4Í{(Ã+7*½4~#fo)++ë*¿4~#fo }µæ´ÖŸ/2Å4·Âa6*½4~#fo)++ë*Á4"Æ4*Æ4Í$Ã+7*½4~#fo)++ë*¿4~#fo}µæ´ÖŸ/2Å4·Â¤6*½4~#fo)++ë*Á4"Æ4*Æ4ÍÎ8Ã+7*½4~#fo)++ë*¿4~#fo}µæ´ÖŸ/2Å4·Âç6*½4~#fo)++ë*Á4"Æ4*Æ4ÍÃ+7*½4~#fo)++ë*¿4~#fo}µæ´ÖŸ/2Å4·Â+7*½4~#fo)++ë*Á4"Æ4*Ã4ë*Æ4Í8*½4~#fo+ë*½4s#rÃØ4Éë!>ÁÅ s#rÍ[#*Ÿë!sÁÅ s#r:gþ+ÊáTþ-ÂõT2oÍe*¨+ë!gÁÅ s#rÁy!d¾ÊUÅÍ&cÃ…TÍ Wá:õåÍÑOÍ\PÚmV*y"`!"bå*`ë!gÁÅ N#FÕ̓Rë*b"bÑ!>ÁÅ åN#F̓Rëás#rÁÅÕ!s ^#V*ÍÖáʘUÍæ"ÁÅ*å!s ^#Vë">2ÍSWá#|µÊ˜U+""?7ë"A7*?7Í )*A7~#fo}µæ´ÖŸ/28·Âk8!C7Ío$" 8*?7~#fo+"8!8ÍŒ"!C7Ío$ë*A7s#r!C7͇0Ã|8*?7~#fo+"8!8Íô(*?7~#fo#"8!8Í{(É¥å>*2©"�8!Æ8Í{(!Ä8Í?$ë*�8s#r*�8Í )*�8~#fo#"”8!”8ÍŒ"É*#|"Ê8*Ê8Íô(*Ê8~#fo#"Ì8!Ì8Í{(ÉÊ«V*w"*BÍæ">2ÍSW*kÍæ">2ÍSW*:">2ÍSW*å*u"*@Íæ">2ÍSWá#|µÊÙV+">2ÍSW*iÍæ">2ÍSW*8">2ÍSW*å*s"*>Íæ">2tty:*.>2ÍSWácannot open standard input.cannot open standard output.º¯2‘9¯2’9L2‘9!}/o|/gë:î8oŸg¢g}£o}2î8ÃR;!¤9ÍWDÃ<*ƒ909~Ö>ÖŸ/2š9·Âæ;*ƒ919"›9*›9ë!“9ͱB+}µæ´ÖŸ2š9·Âã;*ƒ919"›9P<H<*›9Í�="¢9###}µæ´ÖŸ2š9·ÂÝ;>2’9!}/o|/gë:ï8oŸg¢g}£o}2ï8Ãã;!¿9ÍWDÃ<*ƒ909"›9:�9ÖŸ2š9*›9~Ö ÖŸ!š9¶/2�9·Â<Ã<*ƒ9#"ƒ9Ã<::‘9ÖŸ/2š9·Â1<:î8ö2î8:’9ÖŸ/2š9·ÂG<:ï8ö2ï8ÉZ:0þÒ5ZÍcÚòYþÂìtty:]ë"[<ë"]<*[<ë!e<ͱB+}µæ´ÖŸ/2j<·Â—2f"ZÍ‹Z*\ë*™"\ë*Z"™>cannot allocate buffer.ÂçZÃZÍñ> "<=ë">=`i"@=*>=~2b=*@=~#foé8~æ@Ö@ÖŸ2k=·ÂW>!�?ÍIO"`=}µæ´ÖŸ/2k=·Âé=!l=ÍWD*<=ÍåA!ýÿ"4=É*@=~#foé8"ƒ=~ö@*ƒ=w*@=~#fo)ó8"…=!ô8Í‚O"‡=!ë*‡={•ozœgë*`=ë*…=s#r*@=~#fo)"‰=9"‹=*‰=ó8~#foÿë*‹=s#r�=B=*<=Í´?:b=ÖÖŸ/2k=·Âª>�=B=*@=ÍåO"4=*@=~#fo)"ƒ=9"…=*ƒ=ó8~#fo+ë*…=s#rÃ2?:b==ÖŸ/2k=·Âï>�=B=*@=ÍÈO"4=*@=~#fo)"ƒ=9"…=*ƒ=9~#foë*…=s#rÃ2?:b=ÖÖŸ/2k=·Â2?�=B=*@=ÍÈO"4=*@=~#fo)"ƒ=9"…=*ƒ=9~#foë*…=s#r*4=}µæ´ÖŸ/2k=·ÂM?!ýÿ"4=É*@=~#foé8"ƒ=!€}/o|/gë*ƒ=~oŸg¢g}£o}*ƒ=w*@=~#foé8"…=:b=æ*…=¶*…=w*@=~#fo"4=É(]!:®wÃF\ÍÕ^ÃF\*" ?ë"¢?`i"¤?!"¬?¬?* ?Í£H¯2©?*¬?+ë* ?"®?~Ö'ÖŸ2°?*®?~Ö"ÖŸ!°?¶/2±?·Â@*¬?+ë* ?~2©?*¬?#"¬?*¬?ë* ?~Ö:ÖŸ/2°?·ÂT@*¬?+ë* ?"®?*®?Í@FoŸgë! ÿë*¤?s#r*¬?##"¬?Ã^@!ë*¤?s#r!"ª?*ª?õÿ}µæ´=ÖŸ2°?·Â˜@*ª?+ë*¢?"®?> *®?w*ª?#"ª?Ãd@!"ª?*¬?+ë* ?"®?*®?ͧEÖÖŸ2°?*®?ͧEÖaÖŸ!°?¶/2±?·ÂA*ª?õÿ}µæ´=ÖŸ/2°?·Âë@ÃA*ª?+ë*¢?"®?*¬?+ë* ?"²?*²?͆F*®?w*¬?#"¬?*ª?#"ª?Þ@*¬?+ë* ?~Ö.ÖŸ/2°?·ÂÂA*¬?#"¬?! "ª?*¬?+ë* ?"®?*®?ͧEÖÖŸ2°?*®?ͧEÖaÖŸ!°?¶/2±?·ÂÂA*ª?õÿ}µæ´=ÖŸ/2°?·Â�AÃÂA*ª?+ë*¢?"®?*¬?+ë* ?"²?*²?͆F*®?w*¬?#"¬?*ª?#"ª?ÃBA! ë*¢?"®?¯*®?wÉÍÑO : can't open."ÕAB!BÍZKB*ÕAÍD!×A͆BÉ W>Í;*°|þ Ê6a"þ*®"ü"Bë"B!"B*B+"Bë*B"B*Bë*B"B*B~*B–ÖŸ/2B·Â|B*B+ë*B~ÖŸ/2B·ÂrB!"BÉ*B#"BÃ)B!"BÉþ¯2"„B*„BÍWDÍÃO .ë"*ë*Ü",Ã8`**å*,ë"¢Bë"¤B!"šB!"§B*§B+ë*¢B~ÖŸ2©B·ÂC*§B+"ªBë*¢B"¬B*ªBë*¤B"®B*®BÍ@F2©B*¬BÍ@F!©B–ÖŸ2°B·ÂC*šBÉ*§B#"§BÃÄB!"šBÉÊ6a*wöÿ"ƒrcÍ"-Cë"/C!"1C*/Cë!4CÍ I<ÖŸ25C·ÂŠC*1C+ë*-C"6C:4C*6Cw:4CÖ ÖŸ/25C·Â€CÊC*1C#"1CÃEC:4C<ÖŸ/25C·Â±C*1C+ë*-C"6C¯*6Cw!ÿÿ"%CÉ*1Cë*-C"6C¯*6Cw*1C"%CÉÚÌaò‡aÍ"#:a"ÑC!"ÉC*ÉCë*ÑC~ÖŸ2ÓC·ÂúC*ÉC#"ÉCÃÝC*ÉCÉ]!a6Í×X"ÿCë"D!"D*D+ë*ÿC~ÖŸ2D·ÂID*D+ë*ÿC"D*Dë*DÍZK*D#"DÃDÉ"KD!"OD*OD+ë*KD"SD~ÆÿŸ2UD*SD~Ö.ÆÿŸ!UD¦/2VD·Â¨D*OD+ë*KD~2ND²D!NDÍZK*OD#"ODÃ`D²D!´DÍZKÉ "·D!"»D*»D+ë*·D"½D~ÆÿŸ2¿D*½D~Ö.ÆÿŸ!¿D¦/2ÀD·ÂE*»D+ë*·D~2ºDE!ºDÍZK*»D#"»DÃÊDÉ"Eë"E>!EÍcR*E~#fo" E*E~#fo"E*E+ë*E~ÖŸ2"E·Â‡E* E+ë*E"#E*E+ë*E~*#Ew* E#" E*E#"EÃHE* E+ë*E"#E¯*#EwÉ"£E*£E~Öz=Æ�Ÿ2¥E*£E~Öa?Ÿ!¥E¦/2¦E·ÂÔE>a2›EÃ/F*£E~ÖZ=Æ�Ÿ2¥E*£E~ÖA?Ÿ!¥E¦/2¦E·ÂþE>a2›EÃ/F*£E~Ö9=Æ�Ÿ2¥E*£E~Ö0?Ÿ!¥E¦/2¦E·Â(F>2›EÃ/F*£E~2›E:›EÉ"F*F¦/2?F·ÂuF*-*ãFw*ÛF+"ÇF!"ßF*ßFë*ÛF{•ozœg}µæ´Ÿ/2åF·Â7H*ÛF+ë*ÑF"ãF~oŸg"áF*ßF+"çFë*ÑF~*ãFw*çFë*ÑF"éF:áF*éFw*ÛF+"ÛF*ßF#"ßFÃÒG*ÇFÉ "FHë"HH!">H*>H+ë*FH~ÖŸ2JH·Â“H*>H+ë*FH~*HH–ÖŸ/2JH·Â‰H*>HÉ*>H#">HÃXH!">HÉ"›Hë"�H*�H~#fo+ë*›H"ŸH~Ö ÖŸ2¡H*ŸH~Ö ÖŸ!¡H¶/2¢H·ÂêH*�H~#fo#ë*�Hs#rêHÉcannot read channel."ôHë"öH*öH~#foé8~2ûHæÖÖŸ2üH*öH~#fo}µæ´ÖŸ!üH¶/2ýH·Â£I*ôHÍøN*ôHw~ÖÖŸ/2üH·ÂzI>ÿ*ôHw*ôH~Ö ÖŸ/2üH·Â‘I> *ôHw*ôH~2?*ôH~2ìHÉíJ:ûHæÖŸ/2üH·ÂÇI!þHÍWD>ÿ*ôHw~2ìHÉíJ*öH~#fo)"I9~#fo"I*Ió8~#fo"I*I9~#fo"I*Ië*I{•ozœg}µæ´Ÿ2üH·Â|J:ûHæ€Ö€ÖŸ/2üH·Â0J>ÿ*ôHwíJ*Ió8"I*öHDMBK*IÍP"Iü}µæ´ÖŸ2üH·ÂgJ:ûHö€2ûH*I+"I*Ië*I"IÃùI*I#"Ió8~*ôHw~Ö ÖŸ/2üH·ÂŸJ¯*ôHw*ôH~ÖŸ2üH·ÂùI*ôH~Ö ÖŸ/2üH·ÂÄJ> *ôHw*ôH~ÖÖŸ/2üH·ÂéJ>ÿ*ôHw*I"I:ûHö€2ûH*ôH~2?*ôH~2ìH*öH~#fo)9"I*Ië*Is#r*öH~#fo)9"I*Ië*Is#r*öH~#foé8"I:ûH*Iw:ìHÉ Ö;ÖŸ!b ¶!a ¶!M ¶/2c "EKë"GK*EK~<ÖŸ/2LK·ÂwK>*EKw*GK~#foé8~2IKæÖÖŸ2LK*GK~#fo}µæ´ÖŸ!LK¶/2MK·ÂÚK*EK~ÖÖŸ2LK·ÂÙK*EK~Ö ÖŸ/2LK·ÂÓK!ÆLÍ *EKw*GK~#fo)"TK9~#fo"NK*TKó8~#fo"PK*TK9~#fo"RK*NKë*RK{•ozœg}µæ´Ÿ2LK·ÂaL*PKó8"TK*GKDMÈL*TKÍ-P"VK*PK+"NK*NK#"NK*GK~#fo)9"TK*NKë*TKs#r*NKó8"XK*EK~*XKw*EK~Ö ÖŸ/2LK·Â­L> *EKwÃñK*EK~ÖÖŸ/2LK·ÂÅL*GKÍÐLÉÉ }µ"ËL*ËL~#fo}µæ´ÖŸ/2ÍL·ÂìLÉ*ËL~#foé8"ÎL!}/o|/gë*ÎL~oŸg¢g}£o}*ÎLw*ËL~#foé8~æÖŸ/2ÍL·Â0MÉ*ËL~#foé8~æÖÖŸ/2ÍL·ÂQM*ËL͘M*ËLÍüO*ËL~#foé8"ÎL!ƒ}/o|/gë*ÎL~oŸg¢g}£o}*ÎLwÉÙÍÿÿ2¨Ãÿÿ:¨2ÑÖaÖ"„M*„M~#foé8~æÖÖŸ2ŽM*„M~#fo}µæ´ÖŸ!ŽM¶/2�M·ÂÎMÉ*„M~#fo)"’M9~#fo"†M*’Mó8~#fo"ˆM*’M9~#fo"ŠM!€ë*ˆM{•ozœgë*†M"�Më!€ÍÕQ)))))))"�M+ë*ˆM"ŠM*†M#"†M*†Më*ŠM{•ozœg}µæ´=ÖŸ2ŽM·ÂmN*†Mó8"’M¯*’Mw*†M#"†MÃ6N*ˆMó8"’M*„MDM�M*’MÍ-P"”M*„M~#fo)9"–M*†Më*–Ms#rɦNP×Í! ÍÿÿÃÿÿ: Ö_ÖŸ2Õ: Ö,ÖŸ!Õ¶/2Ö·Âÿÿ!BÍÿÿÖ ÖŸ2Õ·Â!BÍÿÿ: Ö_ÖŸ/å:¦N·ÌO*£N#"£N:¦N=2¦N~áwÉåÕÅ¥N Í ÍÁ!¦N"£N#:¦N_6 <2¦NÑáÉåÕÅ^ÍÁÑáÉ~#foë*¾OåDMåë!9ÍzOå ÚtOë ëáÒtOáá!Éá"¾OáÉ}/o|/g#ÉÉ!9É~#foë~#fo{¥oz¤gÉ~#foë~#fo{µoz´gÉ3U(¯Í¹QÉ~#foåë{Ö2CPßOÍXQáÚDPÉ~#foåë{Ö2CPßOÍsQáÚDPÉ~ÖÍ�QÚDPÉë~#foå ÁÅÕÖ2CPÍÐPÒ*PëÑÁþÂDP}“o|šgÉááÉë~#foå ÁÅÖ2CPÍQáÚDPÉõ!OPñ&!É ERROR -$ ON FILE$ÍÉÿÿ!sÍÿÿÖÍxP~#foÉ!¨OÕ‡_ÑÉÕÅå2ÂOÍpP|µÂ§P!ÀOÍIO|µÊÁPë:ÂOÍxPs#rë(>ÍÇP Ñå#w#³PáÁ wÑÉáÁÑÃnQåw#ÂÈPáÉÍpPåÕÅÍÁáÑÅÕåÍ·Â QÑ!€ëá>€ÁÍNQx±ÂÓPÍQ¯É€ÍÉÍQÑáÁ>·7ÉÍpPÅåÕÍáÑåÕÍ·áÑÁÂFQ>€ÍNQå!€ëáy°ÂQÍQ¯ÉÍQ> ·7É/<�O?xÞGÉ̓PåÕÅëÍÁÑá/·ÊnQ¯É> ·7É̓PÅÕåëÍ/·Â�QÑÕÍ/·Ê•QáÑÁ¯É> áÑÁ·7ÉÍpPÅÕåëÍ/·áÑÁʳQ¯É> ·7ÉɯÃÍ$Rz³È|µÈ|ªõÕëÍÕQáñüRëÉëz³ÊøQz·BüR|¨G|µÈ|·ëüRÅÍ/Rñ·üRëÉÍ×R‰~#fo|·ëüRëɯO“_yšWÉ!)U~/w¯o�G}›_}šW}™OÉ~#foë~#foëÉ|/G}/O!>õ·ÃJRõå ÒIRñ7>á{_zW}o|gñ=Â@R|·g}oÉë`iN#F#ëq#p#ë=ÂfRÉ2+T"Uë"U`i",T¯2.TÉåÕ:.TþÒžR!U‡_òRõ:+Tþ*,TÚ·RñÖ‡_~#foõñ:.T<2.TW:+TºÑÒÊRáÉãáÉ=ÖŸ/2·Âá~#å·õO!)S ^#Vë"ÑR!ÍR6 #6 #6*#6*###6*#6*#6 #6 !ÍR Å~ÍëSÁ# S:eS<2eSþÒSñÐÃSIDF0MPIRFWITEXDOMLDZLGSQIBTLOBDEISBEINOVCNGLGSSNA2IODTBIRCEFµæ¯2eS2fS!|S"}S*+ù`iéÉ”S!‡Så*}Sé> ÍëS> ÍëSÃÉP +}µæ´ÖŸ/2e·Â*K".ë"0>!2Í*6ë!>ÍÖ(ÖŸ2?·Â!@Í*6DM*0ë*.ÍÖa—SÅÕåõ_ÍñáÑÁÉå*éS~þ Ì T#~"éSáÉÅÕ •SÍ!–S^ë#6 #> ÍëSwëÑÁÉ´Ÿ2?·Â*:ë*4~#fo{•ozœg}µæ´=ÖŸ2?·Â!�ÍÃ*:+ë*2"•*6ë*•Íÿÿ<ÖŸ/2?·Â!—ÍÿÿÃ*:+ë*2~Ö(ÖŸ/2?·Â*<#"<Ã*:+ë*2~Ö)Ö"ñë"ó*Ü}µæ´=ÖŸ/2"·Â*Ü)ä"#*#DM*óë*ñÍ2é:é<ÖŸ2"·Â*ñÍ}µæ´ÖŸ/2"·Â:éÉ*Ü)ä"#*#DM*2~Ö)Ö"ñë"ó*Ü}µæ´=ÖŸ/2"·Â*Ü)ä"#*#DM*óë*ñÍ2é:é<ÖŸ2"·…’S’USàd”ä•D”ø¢8IOCOMŠ(€d5DÄ4ôÙpˆÐèy% á`PºZ¯`ðxË@f€!ƒ�ÕÓÓx4`ôµsÖ�` |^2à vÍ€@ ˜–€ °¬úZ¹�ë@º|e†ì U€@?ÿü2"à ñV;ÌR@ ‹€ °Gÿÿ†OÌgú|e†X"¯†O u«˜þ´±�)ñS ÆXlnÂ8CÀ «€ÿødE†@ÍaXŸa€V?5„í` |C†Âñ–[°€Va�� ˆ°à« €ÿødE‡€XxÖ*À ÐÖ*À ‘a€ VÿÿðÉù¬2à v*À a�Xdš±ŒF#>�Ö®cúѬOŒ°ÀÝ„€#,!¢óyð^guŽ Ô”ô4ôÞo §Ìê#9õFo>Œ¸  ˜¦Ëˆ€ fq¸ÞtÎSp€æt0›Œ†‘�@i7§AtµÀCˆ€ Ÿb@Ã&?`¬ƒ�ÕÓÓÿødüÖ5€)ñxË -Ø@«€xdE†@XdÖ! Ú+>�Ö®cúѬOŒ°ÀÝ„ °G€DXd@VfÓ` ˆÄgÐ:ÕÌZ5€)ñ–[°€ðe„ @ô^o> Ìî±Ô’ž†ž›Á@ átù�Dg>¨ÍçÑ—a€ÐqèŒÂn7΂yÀÊnΆq�Âr2 çS¡ÀêtK@@„8ô›]f?à31Œ`Œ†¨˜†ž›ÿÿÃ",2:Á  ` |e†XdüÖ5€)ñ[ ÆXlnÂv$b`1˜»€Ìy€XF"À :À13`ð°>/a€»A©)èié¼ìp@ ŠXë5€)ñxË -Ø@ë‚€=€ƒ. 1adÊ@&8 ÄÀ˜‰šŒš‚¨†‘È誉‰)Ñœpž œ†��Û©)Ȉ«Ð(2”“ÓT#& ‘MR3$”ÒГ’ã  YI5I.c|M]€£ %9%Q%>p…Q“ÔS TdõTè¢8IOCOM`�X‹€K„À‡CÈè-`�X‡ €3@YôµsÖ�` |^2à v!X“1!�À,2*à ³ü2}­\Çõ õ¬OŒ°ÀÝ„ °ÈF IOCOMÿÿá“ó˜Ö§Åã,0·a :Œ1[a�‹ €0é€ÅxU†@X4Býˆ°«€^ÏðÉôµsÖƒÖ±ý>/a€»`�hÃ&1 *Á`±V f€,#ˆÏ u«˜þ´kSâñ–[°€V fÙ0 �ÐÆXU€@2�°ÈxFMATCHŒÑ€dõä4„èÎCANTšãG@*2z‚*tà…“Ô�Ò dõä4„è¢8IOCOM`�X‹€ ",*Á`á–/`ÐðŒÌoÁ©)èié¿ÿü2~sİ>2Ç v! ‹€@ëW1ýhÖ§Åã,p·aã�„Ün7�a°Þc0� ¢ÔÌf2œ…ÒÔp9f€¬Í/×ø‹€2f( ¬~™�áÿþeóØ€*ÊqV ?ÌÆñHG„€DYHC€ ‹*@ X«*Ò¦óÒpÎëbÐˬU”€b3�«€„fcx¤E•€в€ÜUƒ@Â31¼#ÿÿÃ",¤:Åà`«)-…YHî*Á á˜Þ"À ™Bàe觨"§)F{€*z‚*r¼dÄ$ ¦&'¡Æ`€*J ""”ĸŒ¥€e$TÔ$¸ÊˆCANTŒéT4äô騀t'¨'!¤'N…PÐS“Ó T4äôáuˆ°€Ò"À Eƒ@84U€@ ¼e‚€X4Vë`È‹€šÂv°>2 ¬~kšÀø‡€-…ã,$·a¬+uаdü2Á@¬#`Ð Š8«€:ÅX2~kšÀø¼e„@ì Uƒ@n±V ˆ°x«€3@x]>guˆTðˬU�@b3�«€Äb,Ã&. Ö*À 1Êc<!€X,U‚À/WødúZ¹�ëAëXþŸa»`°[¬U€À",> °xÜU‚Àb,ö`"Á`¬+uаdEƒÀX<š5€M` |e„@X<›~€Æ°>! axË -Ø@«€^¯ðÉôµsÖƒÖ±ý>/a»aÑ�‰�«€ Ýb¬`ðV ºÅX2"Â`¬&ÍX<î*Á 1 `°‹€0ïPÄÔUƒ@n±V ŸšÂæ°>/a»`Ћ€A  `Ð[¬U€@",*Áà ÚÖ5€)ñ–`ðmžkZÀø‡€-…ã,$·a¬z¿Ã'Ð:ÕÌZZÇôø¼e„@ì ‡o@f:À"¬+uаdEƒÀX4Vë`È‹ € °˜6©€Š°xÜUƒ@b,*Á`1 aØàŽÈ ÅüB :ÅX 2"Áà ñV;²e šÀ¨² ‹÷Èjª ªQ˜0 †˜ž®Š¥ÊihI‰ÉsQð(èCANONœ…ÐS• D4åA€šh «€3@ p€t 1˜MÂs €Þp2›…ÒÑPf€ ™@ˆÄ4Œ…UUD4‰ˆ8(Ê ª‰‰)Ñ‘� Ф¤ž¥5 Ž€D4åIÀ…QTUPS TUTÁ uˆ°X„`ÐV ˆ°x¬U‚@","*Áà±V ˆ°˜«€…XL,Ö§Åã,*·a¬+uаHdüÖ§Åã,*·aE€@3ÐV ˆ°h†€LN ‹€2eÀVpèEQUALœ…QT”“Ô TU%$õ!`hÍ€@ ”€FAÀ2’*j ’\d(’)ªMD€# II=Jp…Q�ÓÔ`Td4õ‘uˆ°«€:Ä8šÏ u«˜þ´kSã,°·a¬ëàPhààVuˆ@hÉ”,€FCÀ2:*¢bJtd¨(*ª&$§FMÀ*‚ª¢DÄÐþÿšžG@*2z‚Ìà…‘“PUÒ ddÔD4� uˆ°X„`"ÁÀ¬+uаHdüÖ§ÆX@nÂX8V" ±V ˆ°˜«€:ÅX,2" ¬*ÍX@U„ÀµC„Í` |e…Àì U€@3ÀVˆ°p‰€LI@ ‹€2e”à †˜ž®Š¥5sŽ€ddÔD4‰À…‘ÑUT‘àdtUD$x¢ˆCTLCOM`�X‹€ ",!X\Bÿˆ°„a0ŽÁÈj‰ˆi鼚 °˜Gÿÿ†OÍ` |^2Ã` v*À ™‰À« €ÿødE‡ÍaãþŸa°V?5‡Ìgú|C†ÀÂñ–[°€Vˆ°¸¬U‚@Â31¼ö•7ž“†sèjæ?­Àø¼e†Àì †Lb€&,€¬&ÿÿá‘?5„M` |e†ÀXpüÖµ€)ñ[ ÆXxnÂXLE‡<2"Ãà¬8ÿÿá‘!bX«€3@¬U„À",&Ã&6 ¬&ÿÿá“ðË °ÐþŸa°ÖkXÏôøË°ÐX@ƧÄ8xL!Ã` axË€-Ø@« €ÄXLU„À?ÿü2~a €Ìx€XL#ÿÿÃ",8*Â`{ü2}­\Çõ \~Ÿa°V?5€)ñ[ ÆXxn£ÀÐVÿÿðÈ‹ °˜E^ÿ Ÿ@ëW1ýh§ÆXlU‡Í` |C†ÀÂñ–[°€VdÌc€Uã,2*Â`ÿþaÀóXDÖ§ÆXlU‡Ía;XŸá°°¼e‡€ì U„À?ÿü2~a�Vˆ°˜„aPVuаhøFf7žÒ¦óÒpÎ}­\Çõ ]>/a°»a0�ÿÿ Ÿ†Xh¬OŒ°Øë pÈY¬OˆpØØ^2ÃÀ vþà3à!VºÅX,2"À¬4*ÀqVˆ°˜« €ÄXT‡vf$ L0c|!€XTU…@b¬~™�ç´©¼ôœ3Ÿ@ëW1ýhO‹ÆXlnÂXL#ÿÿÃ'á–kSã,6:Ã@ `KXŸaàÖkÀø‡-„8ll/b0»aÖð)�« € Ýb¬aÀÖaÀ¸« €ÄXLU…@b,*êS`)Š@« € Ýb¬aÀx«ÅXTV"À ™A gX¤§""¬FI@2šZbr\×” :‘ÑUT‘ç…ÑUàDtUD1 €¬ÍX“( Œ…TtUD4‰ˆ 5Ž€DtUD9À…‘ÑUS dtUDÄ”á uˆ°X„`ÐV uˆp€45€)ñ–[°€V ºÅX$2"Â@¬ *Â@qÖkšÀø¼e„@ì ‡H&(`¬#`Ð ˜£°€ñ¬O‹ÆXDnÂX4Vë`�È‹ +ÅXHî!¿ÄX“1_`ÐX«€DXH^*Â@qV `L P2*QÑUÒ&²Ð ŽŠ¨˜’�8…“S‘Õ dÄTäuD� €,*À ±V ŸšÀøË€-Ø@«€ÄX‡B@&#@¬É”MJ€# 19Q"p…”UPàeUDDT1uˆ°`0X«€3@L L2$”US•&!`Ô\:”UPç…”US• eUD”åAuˆ°€Ò"À #�ÀXš°¨ŒE„ÀXLÖ*À`á˜Þ{J›ÏIÃ9ôµsÖƒÖ±ý>2Âà v*À ±ÍXLF"Â` :>1?€@,&*Â`±V=¥Mç¤áœúZ¹�ëAëXþŸap»a0Ž ˆ°À«€:ÅX`›R@XLF"Â` :¶1wdÊ€&!  dX$ª'¡ÆbÀ*‚ª¢DÅ@šÎG@2‚ª¢Jr¤à…UàEUD1€¬Í2€0ÈPPUTCH˜‚€PðèPUTCœ…”US eUDÄ”áuˆ°„`PVºÅX2~kSã,·a¬ +uаdE‚X Ö*Á ÐU�@b, á ðL (2jTUÒ&¨@Ð  ª¨˜’�8…”‘SPT’àe$TÔ$±€@, *À ·X«€DX$üƧÆX,U‚@ÍasþŸà°0¼eƒì U�@n±V Ÿ†X"p 4`P‹€0èHļ#OÀ 6¢€2e  2°TUÒ&*  Õ|:”‘SPT’ç…”“ÓT e$ôÕA€@, *À ·X«€DXüƧÆX$U�ÀÍasþŸà�0¼e‚€ì U�@n±V Ÿ†X"p 4`P‹€0èHļ“( ˜Ÿ€”P  ª¨†‘5TŽ€e$ôÕIÀ…TÐÓÔ`U44õ‘uˆ°ø!À  ÐU�ÀÂ31¼E‚ÀX ü#3ÄX$U‚@n±V ŸšÀøË€-Ø@«€ Ýb¬ `àV ºÅX2~`ห€ÄX,U‚@b,ä`PV ºÅX2"ÁÀ ñV;²e�ÐH‚©5tŽ€U44õ™À…T`EE•Q `�óXô=c Sã,*Á 汄.?OˆpX˜^2Á€ v>0Œ° ˜‘€ °Hù¬Z±�)ñ– `�óX‚§Ä8,L/`À»FX†LS@X$üÖ�XÈøË€ °Hù¬0 �Ó⦌°`Ý„€C,Ã&.à¬~` ‹øÅTbV:À ™@hÖ0:Tg„ÑTÐà4U41 uˆ°X«€„fcx­Ö*Á “óX€Ö§ÆX@nÂX,ü#3Ån±V Ÿ†X†LGÀX,ü#3Ýb¬?5€)ñxË-Ø@ø€2À 0b–*Á`á˜Þ#uаXÌFruŠÝb¬aVf€ csXŸŒ°€Ý„�C,Ã&/à¬~™�â·X«€DXDU„@µÈ¬tkSâñ–[°€ð$e€@`ƨU‚ÀÂ31¼Vë`�Éøe€@&6@p Š˜ÄÌu€@2�0ÌèCLOWERšä€G@*šà…�ÓÕÑT d4ÄõtU! `�ðË€ °Hù¬Z±�)ñ– `�óX‚§Ä8,L/`À»`�ó@2À  ÖdÊ@&§ Ð †˜ž®Š¥8…�ÕTT d5UU! `�ðË€ °Hù¬z±�)ñ– `�óX§Ä8,L/`À»`x]>guˆ\ðÉôe€@&%@¬É”€MP#  UAAJp…ÕÒ`D5Dô‘ uˆ°X«€„fcx­Ö*Á ‘?5�-` |e„X8üÖ5€)ñ[ ÆXDnÂX,ü#3Än±V 9ˆÎL:13€,*Á`á˜Þ+uаHdüÖ§ÆX@nÂX,ü#3Ån±V Ÿ†X4¬9µ�éñ–`аÀ.Ÿá°¼e„@ì ‡XÀ&2¬ë‚€ Ð"І]c¬o §Ìá‘`°ðŒÌoºÅX,æ#90êhÆLU€@2� Ìè$M9šâ€G@"¢zLà…UÐàD•Dô1 uˆ°X€Ò"Á ¬ÍX\^*Á`q" ¬*#aPˆ!Âà ÐE„ÀXTVë`°È‹€ °˜D` ŸEXtî*Âà±(ÍX\U…@b¬~™�ç´©¼ôœ3Ÿ@ëW1ýh§ÆX|U…À u«˜þ´kSâ>¶Œ±Ý…HXTÖ*Á á˜Þ{J›ÏIÃ9ôµsÖ�tøË€ °HøFf7Ÿ@ëW1ýhOˆpø˜^2Ä v* 1ºÅX,2"àáh«€æ8@¬*+`"à ¬2ëaPÚTÞzNÏ u«˜þ´ §Åã,>·a¬*+uаXdE‡@Æðº|Î"Ã`¬2+bX«€O¬:wbX«€DXŒu†ÀXŒî* ±a�‹ €0ï8ÄU€@2‚PÈ€IABSŒ—4ÔôI‰@(Sdˆ‡3U èITOCœ…RS‘V T”äDU� uˆ°X„`VºÅX$2~kSã,·a¬+uаHdü*Á` f°>/`л`LÄàU€@b,á ð"À ™@pÕ<:RS‘V'…”ÒГ’àe4´$Ää±uˆ°«€„fcx­Ö*À ‘?5�-` |e�ÀXüÖ5€)ñ[ ÆX nÂX ü#3Än±V9ˆÎL:13dÊ@&©Ð ¦–„˜œ—8…QÑUÒ TtUD4ˆ NXTCOMŠ#€T”ô4ôÑ uˆ°X«€„fcxF IOCOMÿÿá“ðË9€�`#XŸaV ?ÌÆóèjæ?­Àø‡€-…ã,$·a¬ÍX$î~kšÀø¼e„@ì |ÿ`�¼ÅHU‚@Í`kXŸŒ°ˆÝ„�B¬w˜´€ °Høe',*!§¦ðV ? °%†LN€X@ÌkSâñ–[°€ p˜ŒÂn7΂‘”ÂdÍq¸ÊlKdÀ8LšŸâ¬w? °%†Ld@X,ü#3Å",ZƒRSÐÓÓyˆdü#3ÄXœU‹@<$2~™�â,R*Å :?ÌÆñ+bpX«€Ò¦óÒpÎ}­\Çõ ]>2 v:ÂdYÖ§Åã,"·açø«€Ø`ÄUŠ@<$2"Å ¬D&„@V-f€,^?'Ð:ÕÌZ5€)ñ–[°€Ö{ X@bz*Å ±'bðX«€DX¬‡v@&>`¬N#bp� Ÿ…X$î~kZÀø¼e„@ì ^*Á y‹À«€šÀøË€-ØWdcJ1�˜‡Š°Hù¬ kSâñ–[°€ð(U‚@óÀV ?5ƒM` |^2 v>аHÜU‰ÀX¬u„È–˜Ù€Š°Høe',*!§¦ðV ? °«€„fcx¤#¤§¡§¦óÈ‹€ ±8¬U‹@b3�«€„fcx¤#Ç@",b*Å`±V19ˆÎB¬~™�áÿþc0Öc0¸ë€2e ’`¤Š‚ˆ�@ÈèªŠŠ‹1™p ¤Šš‚¤—1 &¤€QÐ ŽŠ¨†‘8…TUÒ UUD4ˆ¢8IOCOM`X‹€ °øxÖ§Åã,·aàЫ€æ" ¬~™�á5%= =7ÿÿ†OÃ, æ5€�` |e‚X ü#3Ï u«˜þ´kSâ¶Œ°HÝ„ °ù¬kSã,·a¬~kšÀø¼e‚ì B3@ ‹ˆ«€3k¸Å€“1P`óXÖ§Åã,·aàh«€æ1à¬~™�â‘óÉøFf7ˆ°P«xHdü#3ÄX0U„¨ÍçÑV;аøFf7„ÿødüæµ€)ñxË€-Ø@&bº*À á˜Þÿÿá“ó˜Ö5€)ñxË€-Ø@«€3@ ‹È«€3@V?ÌÆð�ÿÿ ˆ° …>‹ÍçÁy�Ö*À€ãx]>gQϪ3yôU�ì™@0eü£&*©¤Fa@2šbzš,ÖÈ:PÓÔÑg…Q“TÒ TdÅU4ˆ¢8IOCOM`V?ÌÆðŒ’ž†ž›ÿÿÃ'ç0¬kSã,*À á˜Þ}­\Çõ£XŸà°°¼eƒì “13`ðŒÌoˆ°xG˜€OÂ31¼E€ÀX<#Â@'á˜Þ"À ¬ã “ðŒÌo`p ë`PÚTÞzNÝb¬`ÐX…f€‘H¤R)ŠDX4Vë`PÈ‹€ °ŒE€ÀX Ö*Àà´©¼ôœ3Ÿ@ëW1ýh=kÓã,·a¬á ‘WаxÜU€Àb,óÀ Vð�È‹€ °šÁ ¬ÍXDU€@Â31¼Ræ ‘`0X« €Äg&L T3Ö•Ô’UQ£0@ ‘æj¨ÉŠªi€…URSàdtUEEE˜AUQQQfPª5Q—`0€\ª-rްÝ™F€XF"À¬=`0ó„îÉrµX¡3@ ð(f�@ `ë€ÂÀÈØ<`0‹…’åj±KÀà4 `´\,˜èGETTTYŽ¢eUEEE™À…’PSÐàd”ÄÄô8%JISPVAL”MOÀÂ31½Ö*¤BheÊ뀖m1r‚[T¬Öƒ.·e¥JÀ.Épˆ¨0…’}›Ï‚ó8�’É€–Ld´&¢¦©,ÇN@*J ""”t$ ¦&'¡ÇN€2Jš‚² dà…’PS‘Ô D”äH %=JP5 –€„fc{¬ü#3ÏjSyéHgdŸ„fc{¬ü#3ÏkSyéhgdÇ@"J r$t@¤§©NžÉ€–Ld´&¢¦©,ÇN@*J ""”t$ ¦&'¡ÇN€2Jš‚² dà…’PS‘Ô D”äH %=JP5 –€„fc{¬ü#3ÏjSyéHgdŸ„fc{¬ü#3ÏkSyéhgdÇ@"J r#========= translit program from chapter 2 ========== include "b:ratdefn.rtf" define(MAXARR,100) define(MAXSET,100) define(ESCAPE,ATSIGN) define(DASH,MINUS) define(NOT,BANG) # addset - put c in set(j) if it fits, increment j integer function addset(c, set, j, maxsiz) integer j, maxsiz character c, set(maxsiz) if (j > maxsiz) addset = NO else { set(j) = c j = j + 1 addset = YES } return end # dodash - expand array(i-1)-array(i+1) into set(j)... from valid subroutine dodash(valid, array, i, set, j, maxset) character esc integer addset, index integer i, j, junk, k, limit, maxset character array(ARB), set(maxset), valid(ARB) i = i + 1 j = j - 1 limit = index(valid, esc(array, i)) for (k = index(valid, set(j)); k <= limit; k = k + 1) junk = addset(valid(k), set, j, maxset) return end # esc - map array(i) into escaped character if appropriate character function esc(array, i) character array(ARB) integer i if (array(i) ^= ESCAPE) esc = array(i) else if (array(i+1) == EOS) # \*a not special at end esc = ESCAPE else { i = i + 1 if (array(i) == LETN) esc = NEWLINE else if (array(i) == LETT) esc = TAB else esc = array(i) } return end # filset - expand set at array(i) into set(j), stop at delim subroutine filset(delim, array, i, set, j, maxset) character esc integer addset, index integer i, j, junk, maxset character array(ARB), delim, set(maxset) # string digits "0123456789" character digits(11) # string lowalf "abcdefghijklmnopqrstuvwxyz" character lowalf(27) # string upalf "ABCDEFGHIJKLMNOPQRSTUVWXYZ" character upalf(27) data digits(1)/DIG0/, digits(2)/DIG1/, digits(3)/DIG2/ data digits(4)/DIG3/, digits(5)/DIG4/, digits(6)/DIG5/ data digits(7)/DIG6/, digits(8)/DIG7/, digits(9)/DIG8/ data digits(10)/DIG9/, digits(11)/EOS/ data lowalf(01)/LETA/ data lowalf(02)/LETB/ data lowalf(03)/LETC/ data lowalf(04)/LETD/ data lowalf(05)/LETE/ data lowalf(06)/LETF/ data lowalf(07)/LETG/ data lowalf(08)/LETH/ data lowalf(09)/LETI/ data lowalf(10)/LETJ/ data lowalf(11)/LETK/ data lowalf(12)/LETL/ data lowalf(13)/LETM/ data lowalf(14)/LETN/ data lowalf(15)/LETO/ data lowalf(16)/LETP/ data lowalf(17)/LETQ/ data lowalf(18)/LETR/ data lowalf(19)/LETS/ data lowalf(20)/LETT/ data lowalf(21)/LETU/ data lowalf(22)/LETV/ data lowalf(23)/LETW/ data lowalf(24)/LETX/ data lowalf(25)/LETY/ data lowalf(26)/LETZ/ data lowalf(27)/EOS/ data upalf(01) /BIGA/ data upalf(02) /BIGB/ data upalf(03) /BIGC/ data upalf(04) /BIGD/ data upalf(05) /BIGE/ data upalf(06) /BIGF/ data upalf(07) /BIGG/ data upalf(08) /BIGH/ data upalf(09) /BIGI/ data upalf(10) /BIGJ/ data upalf(11) /BIGK/ data upalf(12) /BIGL/ data upalf(13) /BIGM/ data upalf(14) /BIGN/ data upalf(15) /BIGO/ data upalf(16) /BIGP/ data upalf(17) /BIGQ/ data upalf(18) /BIGR/ data upalf(19) /BIGS/ data upalf(20) /BIGT/ data upalf(21) /BIGU/ data upalf(22) /BIGV/ data upalf(23) /BIGW/ data upalf(24) /BIGX/ data upalf(25) /BIGY/ data upalf(26) /BIGZ/ data upalf(27) /EOS/ for ( ; array(i) ^= delim & array(i) ^= EOS; i = i + 1) if (array(i) == ESCAPE) junk = addset(esc(array, i), set, j, maxset) else if (array(i) ^= DASH) junk = addset(array(i), set, j, maxset) else if (j <= 1 | array(i+1) == EOS) # literal - junk = addset(DASH, set, j, maxset) else if (index(digits, set(j-1)) > 0) call dodash(digits, array, i, set, j, maxset) else if (index(lowalf, set(j-1)) > 0) call dodash(lowalf, array, i, set, j, maxset) else if (index(upalf, set(j-1)) > 0) call dodash(upalf, array, i, set, j, maxset) else junk = addset(DASH, set, j, maxset) return end # makset - make set from array(k) in set integer function makset(array, k, set, size) integer addset integer i, j, k, size character array(ARB), set(size) i = k j = 1 call filset(EOS, array, i, set, j, size) makset = addset(EOS, set, j, size) return end # translit - map characters character getc character arg(MAXARR), c, from(MAXSET), to(MAXSET) integer getarg, length, makset, xindex integer allbut, collap, i, lastto call initio if (getarg(1, arg, MAXARR) == EOF) call error("usage: translit from to.") else if (arg(1) == NOT) { allbut = YES if (makset(arg, 2, from, MAXSET) == NO) call error("from: too large.") } else { allbut = NO if (makset(arg, 1, from, MAXSET) == NO) call error("from: too large.") } if (getarg(2, arg, MAXARR) == EOF) to(1) = EOS else if (makset(arg, 1, to, MAXSET) == NO) call error("to: too large.") lastto = length(to) if (length(from) > lastto | allbut == YES) collap = YES else collap = NO repeat { i = xindex(from, getc(c), allbut, lastto) if (collap == YES & i >= lastto & lastto > 0) { # collapse call putc(to(lastto)) repeat i = xindex(from, getc(c), allbut, lastto) until (i < lastto) } if (c == EOF) { call putc(EOF) break } if (i > 0 & lastto > 0) # translate call putc(to(i)) else if (i == 0) # copy call putc(c) # else delete } stop end # xindex - invert condition returned by index integer function xindex(array, c, allbut, lastto) character array(ARB), c integer index integer allbut, lastto if (c == EOF) xindex = 0 else if (allbut == NO) xindex = index(array, c) else if (index(array, c) > 0) xindex = 0 else xindex = lastto + 1 return end  include "b:ratdefn.rtf" # unique - strip adjacent duplicate lines character buf1(MAXLINE), buf2(MAXLINE) integer equal, getlin, getarg integer t, n, nflag call initio nflag = NO if (getarg(1, buf1, MAXLINE) ^= EOF) if (buf1(1) == MINUS & (buf1(2) == LETN | buf1(2) == BIGN) & buf1(3) == EOS) nflag = YES else call error("usage: unique [-n].") t = getlin(buf1, STDIN) while (t ^= EOF) { n = 1 for (t = getlin(buf2, STDIN); t ^= EOF; t = getlin(buf2, STDIN)) if (equal(buf1, buf2) == NO) break else n = n + 1 if (nflag == YES) { call putdec(n, 5) call putch(TAB, STDOUT) } call putlin(buf1, STDOUT) if (t == EOF) break n = 1 for (t = getlin(buf1, STDIN); t ^= EOF; t = getlin(buf1, STDIN)) if (equal(buf1, buf2) == NO) break else n = n + 1 if (nflag == YES) { call putdec(n, 5) call putch(TAB, STDOUT) } call putlin(buf2, STDOUT) } call putch(EOF, STDOUT) stop end  # wordcount - count words in standard input define(EOF,-1) define(YES,1) define(NO,0) define(BLANK,32) define(NEWLINE,10) define(TAB,9) define(character,byte) character getc character c integer inword, wc call initio wc = 0 inword = NO while (getc(c) != EOF) if (c == BLANK | c == NEWLINE | c == TAB) inword = NO else if (inword == NO) { inword = YES wc = wc + 1 } call putdec(wc, 1) call putc(NEWLINE) call putc(EOF) stop end